File Transfer Protocol

FTP (ראשי תיבות: File Transfer Protocol) הוא פרוטוקול תקשורת מבוסס TCP להעברת קבצים בין מחשבים. באמצעות פרוטוקול זה, תוכנת לקוח FTP מתקשרת עם תוכנת שרת FTP, לשם לקיחת קובץ מהשרת או הוספת קובץ אליו. שימושים אופייניים לפרוטוקול: הורדת קובצי מולטימדיה למיניהם (סרטים, מוזיקה וכדומה) מאתר המאחסן קבצים כאלה. ניהול אתר אינטרנט: העברת דפים וקבצים ממחשבו של מנהל האתר אל שרת האינטרנט המאפשר לציבור גישה לקבצים אלה. המטרות של פרוטוקול FTP, על פי ה-RFC שלו, הן: לקדם שיתוף קבצים (קובצי תוכנה וקובצי נתונים) לעודד שימוש עקיף במחשבים מרוחקים. להגן על המשתמש מווריאציות של דרכי אחסון קבצים במחשבים שונים. להעביר נתונים באמינות וביעילות ובמהירות. FTP הוא פרוטוקול מבוסס 8 סיביות, שמסוגל לטפל בכל סוג של קובץ בלי צורך בעיבוד נוסף כמו MIME או UUEncode. לפרוטוקול FTP יש זמן השהיה ארוך מאוד: הזמן שלוקח בין שליחת הבקשה למידע לבין התחלת קבלת המידע הוא ארוך מאוד, ודורש תהליך כניסה (login) ארוך למדי. לרוב, פרוטוקול זה משתמש בפורט 21 של פרוטוקול TCP. בשלב הראשון, FTP פותח session לפורט 21, ובו עוברות פקודות הבקרה – login, העברת סיסמה, פקודות, וכו'. בשלב השני, נפתח Session עם בקשה להעברת קובץ. לבסוף מועבר הקובץ עצמו. FTP מתפקד בשכבת היישום של מודל ה-OSI ובשכבת היישום של מודל ה-TCP/IP. הפרוטוקול תומך בחידושה של פעולת העברה של קובץ מהשרת ללקוח, לאחר שזו הופרעה עקב תקלת תקשורת. לחידוש ההעברה תוכנת הלקוח מעבירה לשרת את מספר הבתים שהגיעו אליה, וההעברה מתחדשת ממקום זה. חידוש של פעולת העברה של קובץ מהלקוח אל השרת הוא צעד מורכב יותר. המפרט המקורי של פרוטוקול FTP אינו מתייחס לשאלות של אבטחת מידע, ואין בו כל הצפנה של המידע המועבר. בעיה זו אופיינית לרבים מפרוטוקולי האינטרנט שנוצרו לפני יצירת SSL. הפתרון המקובל לבעיה זו הוא שימוש ב-SFTP או ב-FTPS, המוסיפים הצפנה ל-FTP. שרת FTP הוא תוכנה המאפשרת מתן שירותי העברת קבצים לתוכנות לקוח FTP המתקשרות אליה. שרת FTP עוסק בזיהוי הלקוח הפונה אליו, קביעת זכויותיו (הקבצים שהוא רשאי להוריד, הקבצים שהוא רשאי למחוק וכדומה), ומימוש בקשותיו של הלקוח. למרבית הדפדפנים יש יכולת להתקשר עם שרתי FTP, לשם העברת קבצים בפרוטוקול FTP. חלק מהדפדפנים מאפשרים רק הורדה של קבצים, אך לא העלאה של קבצים. בנוסף עומדות לרשות משתמש הקצה מגוון רחב של תוכנות לקוח FTP, המאפשרות לו להעביר קבצים ממחשבו לשרת FTP ומשרת FTP אל מחשבו. תוכנה מסוג זה מטפלת בהזדהות מול שרת ה-FTP, בחירת רשימת קבצים להעברה וביצוע ההעברה (כולל התאוששות מתקלות). כמו כן מאפשרת התוכנה מתן הוראה למחיקת קבצים מהשרת. קיימות שתי שיטות מרכזיות למימוש FTP כאשר רוב השרתים הרשת תומכים בשתי השיטות. בשתי השיטות תוכנת הקצה יוצרת קשר עם השרת על גבי פורט 20, פורט זה ישמש לאורך כל חיי ה Session לצורך העברת פקודות ומידע בין התחנה לשרת ולהפך. כאשר מופעלת על פורט 20 פקודת הדורשת העברת מידע, המידע יכול לעבור באחת מהשיטות הבאות: בתצורה זו כאשר נדרש השרת להעביר מידע לתחנה הדבר יתבצע על פורט 20 כאשר השרת דוחף את המידע לתחנה. בתצורה זו כאשר נדרש השרת להעביר מידע אל התחנה הדבר יתבצע על פורט רנדומלי כאשרת התחנה מושכת את המידע מהשרת. RFC 959 – File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. This obsoleted the preceding RFC 765 and earlier FTP RFCs back to the original RFC 114. RFC 1579 – Firewall-Friendly FTP. RFC 2228 – FTP Security Extensions. RFC 2428 – Extensions for IPv6, NAT, and Extended passive mode. Sep-1998. RFC 2640 – Internationalization of the File Transfer Protocol. RFC 3659 – Extensions to FTP. P. Hethmon. March-2007. פיילזילה – תוכנת FTP מנוע החיפוש ארצ'י מונחים ברשת מחשבים HTTP FlashFXP מדיה וקבצים בנושא File Transfer Protocol בוויקישיתוף File Transfer Protocol, באתר אנציקלופדיה בריטניקה (באנגלית)