FTP (ראשי תיבות:File Transfer Protocol) הואפרוטוקול תקשורת מבוססTCP להעברתקבצים ביןמחשבים. באמצעות פרוטוקול זה, תוכנתלקוח FTP מתקשרת עם תוכנתשרת FTP, לשם לקיחת קובץ מהשרת או הוספת קובץ אליו. שימושים אופייניים לפרוטוקול:
הורדת קובצימולטימדיה למיניהם (סרטים, מוזיקה וכדומה) מאתר המאחסן קבצים כאלה.
ניהול אתר אינטרנט: העברתדפים וקבצים ממחשבו של מנהל האתר אלשרת האינטרנט המאפשר לציבור גישה לקבצים אלה.
להגן על המשתמש מווריאציות של דרכי אחסון קבצים במחשבים שונים.
להעביר נתונים באמינות וביעילות ובמהירות.
FTP הוא פרוטוקול מבוסס8 סיביות, שמסוגל לטפל בכל סוג של קובץ בלי צורך בעיבוד נוסף כמוMIME אוUUEncode. לפרוטוקול FTP ישזמן השהיה ארוך מאוד: הזמן שלוקח בין שליחת הבקשה למידע לבין התחלת קבלת המידע הוא ארוך מאוד, ודורש תהליך כניסה (login) ארוך למדי.
לרוב, פרוטוקול זה משתמש בפורט 21 של פרוטוקולTCP. בשלב הראשון, FTP פותחsession לפורט 21, ובו עוברות פקודות הבקרה –login, העברתסיסמה, פקודות, וכו'. בשלב השני, נפתח Session עם בקשה להעברת קובץ. לבסוף מועבר הקובץ עצמו.
הפרוטוקול תומך בחידושה של פעולת העברה של קובץ מהשרת ללקוח, לאחר שזו הופרעה עקב תקלת תקשורת. לחידוש ההעברה תוכנת הלקוח מעבירה לשרת את מספר הבתים שהגיעו אליה, וההעברה מתחדשת ממקום זה. חידוש של פעולת העברה של קובץ מהלקוח אל השרת הוא צעד מורכב יותר.
המפרט המקורי של פרוטוקול FTP אינו מתייחס לשאלות שלאבטחת מידע, ואין בו כלהצפנה של המידע המועבר. בעיה זו אופיינית לרבים מפרוטוקולי האינטרנט שנוצרו לפני יצירתSSL. הפתרון המקובל לבעיה זו הוא שימוש ב-SFTP או ב-FTPS, המוסיפים הצפנה ל-FTP.
שרת FTP הוא תוכנה המאפשרת מתן שירותי העברת קבצים לתוכנותלקוח FTP המתקשרות אליה. שרת FTP עוסק בזיהוי הלקוח הפונה אליו, קביעת זכויותיו (הקבצים שהוא רשאי להוריד, הקבצים שהוא רשאי למחוק וכדומה), ומימוש בקשותיו של הלקוח.
למרבית הדפדפנים יש יכולת להתקשר עם שרתי FTP, לשם העברת קבצים בפרוטוקול FTP. חלק מהדפדפנים מאפשרים רק הורדה של קבצים, אך לא העלאה של קבצים.
בנוסף עומדות לרשות משתמש הקצה מגוון רחב של תוכנותלקוח FTP, המאפשרות לו להעביר קבצים ממחשבו לשרת FTP ומשרת FTP אל מחשבו. תוכנה מסוג זה מטפלת בהזדהות מול שרת ה-FTP, בחירת רשימת קבצים להעברה וביצוע ההעברה (כולל התאוששות מתקלות). כמו כן מאפשרת התוכנה מתן הוראה למחיקת קבצים מהשרת.
קיימות שתי שיטות מרכזיות למימוש FTP כאשר רוב השרתים הרשת תומכים בשתי השיטות. בשתי השיטות תוכנת הקצה יוצרת קשר עם השרת על גבי פורט 20, פורט זה ישמש לאורך כל חיי ה Session לצורך העברת פקודות ומידע בין התחנה לשרת ולהפך. כאשר מופעלת על פורט 20 פקודת הדורשת העברת מידע, המידע יכול לעבור באחת מהשיטות הבאות:
RFC 959 – File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. This obsoleted the precedingRFC 765 and earlier FTP RFCs back to the originalRFC 114.