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 ==
<DIV dir=ltr>
* – 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.
</DIV>

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

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

* 

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