FTP – File Transfer Protocol

Transkrypt

FTP – File Transfer Protocol
FTP – File Transfer Protocol






Protokół pozwalający na transfer plików pomiędzy
hostami w sieci TCP/IP.
Protokół warstwy aplikacyjnej.
Opiera się w warstwie transportowej na sesji TCP –
zapewnia kontrolę poprawności przsyłania danych.
W odróżnieniu od TFTP zapewnia autoryzację
użytkownika.
Zwalnia użytkownika od znajomości systemów
plikowych w różnych środowiskach
Pozwala zarówno na dostęp interaktywny jak i z
poziomu programów
1
FTP – File Transfer Protocol
RFC 959 – oficjalna specyfikacja dla FTP – oprogramowanie
FTP (serwer jak i klient) musi być zgodne z tym
dokumentem.
Inne RFC mogą rozszerzać lub wyjasniać ten dokument
Propozycje uzupełnień to np.:
- RFC 2228 FTP Security Extensions (nowe komendy,
mechanizmy dostarczające silnej autentyfikacji,
zapewniające integralność i poufność danych)
- RFC 2428 FTP Extensions for IPv6 and NAT
- RFC 2577 Security Considerations (mechanizm
pozwalający klientowi ustanowić kontrolę połączenia i
transferu danych pomiędzy dwoma serwerami FTP – „proxy
FTP”
2
FTP – Model procesu
3
FTP – Model procesu
Usługa FTP składa się z części obsługującej
użytkownika (na kliencie), nazywanej User-FTP oraz z
części Server-FTP.
User-FTP składa się z interfejsu użytkownika (User
Interface - UI), interpretera protokołu (User Protocol
Interpreter – User PI) oraz procesu obsługującego
przesyłanie danych (User Data Transfer Process – User
DTP).
Serwer składa się z podobnych modułów: Server PI,
oraz Server DTP)
4
FTP – Model procesu
User PI inicjuje logiczne połączenie, które wykorzystuje
protokół TELNET. Użytkoenik wykorzystuje
przydzielony port dynamiczny, aby połączyć się z
numerem portu serwera 21 (domyślnie), przydzielonym
do obsługi kontroli FTP.
Dane, które mają być wysłane, przechodzą przez inny
przydzielony wewnętrznie numer prtu w części User
DTP i wysyłane są do portu 20 na serwerz FTP.
5
FTP – Model procesu
Połączenia do przesyłania danych i uzywające ich
procesy są tworzone dynamicznie w razie potrzeby,
natomiast połączenie sterujące jest jedno na cała sesję
Po zamknięciu połączenia sterującego sesja się
kończy.
Połączenie sterujące (kontrolne) służy do przesyłania
komend i kodów odpowiedzi. Inicjuje ono połączenie z
danymi. Połaczenie kontrolne wykorzystuje protokół
TELNET, komendy i dpowiedzi są ciągami znaków.
6
FTP – polecenia FTP
Polecenia kontroli dostępu:
USER <nazwa użytkownika> - identyfikuje
użytkownika
PASS <hasło> - przekazuje hasło użutkownika
CWD <ścieżka> - zmiana katalogu roboczego
CDUP – przejście do katalogu wyższego poziomu
QUIT – wylogowanie użytkownika
7
FTP – polecenia FTP
Polecenia parametrów przesyłania:
PORT <port host> - określa port danych, który będzie
wykorzystywany
PASV – każe serwerowi nasłuchiwać na porcie
danych
TYPE <kod typu> - określa typ reprezentacji danych
np. ASCII, EBCDIC, Image, Local
STRU <typ struktury> - określa strukturę pliku: File,
Record, Page
MODE <typ trybu> - określa tryb przesyłania: Stream,
Block lub Compressed.
8
FTP – polecenia FTP
Polecenia usług:
RETR <ścieżka> - pobranie kopii pliku
STOR <ścieżka> - umieszczenie danych na serwerze
APPE <ścieżka> - przesłanie pliku i dołączenie
REST <znacznik> rozpoczęcie transmisji od
podanego miejsca
DELE <ścieżka> - usunięcie pliku z serwera
RMD <ścieżka> - usunięcie katalogu
MKD <ścieżka> - utworzenie katalogu
List [<ściezka>] – transfer listy plików
9
FTP – odpowiedzi
Odpowiedzi są transmitowane przez połączenie
Kontrolne.
Odpowiedzi są pojedynczymi liniami zawierającymi:
-
trzycyfrowy numer
tekst komunikatu.
Tekst komunikatu opisuje kod i jest zależna od
implemntacji.
10
FTP – odpowiedzi
Wartości jakie przyjmuje pierwsza cyfra są następujące:
-
-
-
1yz – pozytywna odpowiedź wstępna (działa, czekać)
2yz – pozytywna odpowiedź kończąca (sukces)
3yz – pozytywna odpowiedź przejściowa (czeanie na więcej
informacji)
4yz – przejściowa kończąca odpowiedź negatywna (błąd
sprobuj później)
5yz – trwała kończąca odpowiedź negatywna (błąd)
11
FTP – odpowiedzi
Wartości drugiej cyfry:
-
-
x0z – składnia (problem ze składnią komendy)
x1z – informacja (odpowiedź na help)
x2z – połączenie (problem z połączeniem)
x3z – weryfikowanie autentyczności i prawa dostepu
(problem z logowaniem)
x4z – nieokreślona
x5z – system plików
Trzecia cyfra precyzuje komunikat.
12
FTP – tryb pasywny
A PASV request asks the server to accept a data
connection on a new TCP port selected by the server.
PASV parameters are prohibited. The server normally
accepts PASV with code 227. Its response is a single
line showing the IP address of the server and the TCP
port number where the server is accepting connections.





The PORT verb
A PORT request asks the server to use a different mechanism of creating a data
connection: the server makes a TCP connection to the client. The PORT request has a
parameter in the form
h1,h2,h3,h4,p1,p2 meaning that the client is listening for connections on TCP port
p1*256+p2 at IP address h1.h2.h3.h4. (The RFC 959 formal syntax does not allow any of
these numbers to be 0. The formal syntax is wrong.) The server normally accepts PORT
with code 200. If the server was listening for a connection, it stops, and drops any
connections already made.
The server does not connect to the client's port immediately. After the client sends RETR
and after the server sends its initial mark, the server attempts to connect. It rejects the
RETR request with code 425 if the connection attempt fails; otherwise it proceeds normally.
In theory, the client can send RETR without a preceding PORT or PASV. The server is then
supposed to connect to port 20 at the client's IP address. In practice, however, servers
refuse to do this.
13

Podobne dokumenty