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, בחירת רשימת קבצים להעברה וביצוע ההעברה (כולל התאוששות מתקלות). כמו כן מאפשרת התוכנה מתן הוראה למחיקת קבצים מהשרת.

## אפשריות מימוש FTP
קיימות שתי שיטות מרכזיות למימוש FTP כאשר רוב השרתים הרשת תומכים בשתי השיטות. בשתי השיטות תוכנת הקצה יוצרת קשר עם השרת על גבי פורט 20, פורט זה ישמש לאורך כל חיי ה Session לצורך העברת פקודות ומידע בין התחנה לשרת ולהפך. כאשר מופעלת על פורט 20 פקודת הדורשת העברת מידע, המידע יכול לעבור באחת מהשיטות הבאות:

### Active FTP
בתצורה זו כאשר נדרש השרת להעביר מידע לתחנה הדבר יתבצע על פורט 20 כאשר השרת דוחף את המידע לתחנה.

### Passive FTP
בתצורה זו כאשר נדרש השרת להעביר מידע אל התחנה הדבר יתבצע על פורט רנדומלי כאשר התחנה מושכת את המידע מהשרת.

## מסמכי האפיון של פרוטוקול FTP

*  – File Transfer Protocol (FTP). J. Postel, J. Reynolds. Oct-1985. This obsoleted the preceding  and earlier FTP RFCs back to the original .
*  – Firewall-Friendly FTP.
*  – FTP Security Extensions.
*  – Extensions for IPv6, NAT, and Extended passive mode. Sep-1998.
*  – Internationalization of the File Transfer Protocol.
*  – Extensions to FTP. P. Hethmon. March-2007.


## ראו גם
* פיילזילה – תוכנת FTP
* מנוע החיפוש ארצ'י
* מונחים ברשת מחשבים
* HTTP
* FlashFXP

## קישורים חיצוניים

* 

קטגוריה:תקנים בתקשורת מחשבים
קטגוריה:היסטוריה של האינטרנט