File Transfer Protocol, czyli FTP, to jeden z najbardziej podstawowych protokołów służących do przesyłania plików przez sieć komputerową, zwłaszcza w środowiskach opartych o architekturę klient-serwer. Odpowiedź dotycząca dwukierunkowego transferu plików w modelu klient-serwer jest trafna, bo FTP pozwala zarówno na pobieranie, jak i wysyłanie plików pomiędzy serwerem a klientem. W praktyce to wygląda tak, że użytkownik podłącza się do serwera FTP (np. przez Filezillę, Total Commandera czy nawet przeglądarkę), loguje się, a potem może wrzucać pliki albo pobierać je na swoje urządzenie. Stosuje się to np. przy zarządzaniu plikami na serwerach WWW, backupach czy wymianie dużych zestawów danych między firmami. Protokół został opisany w RFC 959, a jego podstawowa konstrukcja opiera się na dwóch kanałach: kontrolnym (do wydawania poleceń) i danych (do transferu plików). Moim zdaniem warto zapamiętać, że FTP nie jest szyfrowany domyślnie, przez co w dzisiejszych czasach częściej korzysta się z jego bezpieczniejszych wersji, jak FTPS czy SFTP. W codziennej pracy administratora sieciowego FTP to taki trochę „kombajn” do plików, ale przez swój wiek i prostotę bywa już zastępowany przez nowsze technologie. Jednak podstawowa zasada – dwukierunkowa wymiana plików między serwerem a klientem – jest kluczowa i warto ją mieć w małym palcu.
File Transfer Protocol, mimo iż nazwa brzmi dość ogólnie, ma bardzo konkretne zastosowanie w sieciach komputerowych i zasadniczo nie służy do zadań takich jak wideokonferencje, ani w modelu peer-to-peer, ani klient-serwer. To dość częsty błąd, bo niektórym osobom nazwa kojarzy się po prostu z jakimś przesyłaniem danych i łatwo wtedy pomylić rodzaje usług sieciowych. Wideokonferencje realizowane są raczej za pomocą protokołów takich jak RTP (Real-time Transport Protocol), SIP (Session Initiation Protocol) czy H.323, które wspierają transmisję czasu rzeczywistego i synchronizację strumieni audio-wideo. FTP natomiast nie obsługuje komunikacji w czasie rzeczywistym i nie nadaje się do tak dynamicznych zastosowań. Często spotykam się też z myleniem modeli – FTP pracuje w modelu klient-serwer, a nie peer-to-peer, który jest charakterystyczny na przykład dla BitTorrent czy innych zdecentralizowanych rozwiązań. W modelu peer-to-peer każdy host jest jednocześnie klientem i serwerem, a wymiana plików nie wymaga centralnego punktu kontrolnego – to zupełnie inna filozofia niż w FTP. Co więcej, twierdzenie, że FTP umożliwia „jedynie jednokierunkowy” transfer jest błędne, bo w standardzie przewidziano zarówno wysyłanie plików na serwer (upload), jak i pobieranie ich z serwera (download), czyli transfer w obu kierunkach. Z mojego doświadczenia wynika, że takie nieporozumienia często biorą się z powierzchownej znajomości protokołów sieciowych i braku rozróżnienia na usługi czasu rzeczywistego a transfer plików. W praktyce, każdy administrator czy użytkownik korzystający z FTP musi rozumieć, że to narzędzie do zarządzania plikami na odległość, działające w architekturze klient-serwer i obsługujące wymianę danych w obie strony. Dlatego warto zawsze precyzyjnie analizować, do czego dany protokół został zaprojektowany i jakie są jego faktyczne możliwości oraz ograniczenia.