FTP, czyli File Transfer Protocol, to standardowy protokół sieciowy używany do przesyłania plików pomiędzy klientem a serwerem w sieci komputerowej. Działa w warstwie aplikacji pakietu protokołów TCP/IP i obsługuje zarówno dostęp anonimowy, jak i uwierzytelniony.
Protokół FTP reguluje sposób przesyłania plików i zarządzania nimi między klientem a serwerem. Wykorzystuje połączenie sterujące (zwykle na porcie TCP 21) do wydawania poleceń i koordynowania transferów plików, podczas gdy oddzielne połączenia danych są ustanawiane dynamicznie (przy użyciu portu TCP 20 w trybie aktywnym lub innych portów w trybie pasywnym) w celu przesyłania rzeczywistych danych plików.
Numer protokołu danych powiązany z FTP zależy od tego, czy działa on w trybie aktywnym, czy pasywnym. W trybie aktywnym FTP serwer inicjuje połączenie danych z powrotem do klienta na porcie TCP 20. W trybie pasywnym FTP klient inicjuje zarówno połączenia sterujące, jak i połączenia do transmisji danych, a serwer podaje adres IP i numer portu dla połączenia danych.
Połączenie danych w FTP oznacza oddzielne połączenie TCP ustanowione pomiędzy klientem a serwerem specjalnie w celu przesyłania danych plików. W trybie aktywnym FTP serwer otwiera połączenie danych z określonym adresem IP i numerem portu klienta. W trybie pasywnym FTP klient łączy się z określonym adresem IP i numerem portu serwera w celu przesyłania danych.
FTP obsługuje różne typy danych do przesyłania plików, w tym:
-
Tryb
- ASCII (lub tekstowy): Odpowiedni do przesyłania plików tekstowych, gdzie zakończenia linii są konwertowane w celu dopasowania do konwencji systemu docelowego (np. CR-LF dla Windows, LF dla Unix).
- Tryb binarny (lub obrazowy): Używany do przesyłania plików binarnych, zachowując dokładną zawartość pliku bajt po bajcie bez modyfikacji.
- EBCDIC: używany do przesyłania plików między systemami przy użyciu kodowania znaków EBCDIC, które jest stosowane głównie w starszych systemach mainframe IBM.
Tryb
Wybór typu danych w FTP zależy od charakteru przesyłanych plików i gwarantuje, że pliki zostaną poprawnie zinterpretowane i możliwe do wykorzystania w systemie docelowym.