|
[top] |
|
Na
wstępie objaśnienie kilku dalej użytych terminów: |
data
connection - kanał danych
Jednokierunkowe połączenie przez które przesyłane są dane, w sprecyzowany
wcześniej sposób tzn mode i type.
Przesyłaną treścią może być fragment pliku, cały plik lub kilka plików.
Połączenie to może być nawiązane między server-DTP i user-DTP, lub
między dwoma server-DTP. |
data
port
Pasywny proces nasłuchiwania na danym porcie na połączenie z aktywnego
procesu po to aby zainicjować data connection |
server-DTP
- server-data transfer process - proces transferu danych
Proces transferu danych, w swoim normalnym trybie "active"
ustanawia data connection z słuchającym data port'em , ustawia parametry
transferu i transferuje dane na komende o swojego interpretatora protokołu
(protocol interpreter). Proces transferu danych może być przestawiony
w trub "passive" i wtedy będzie on nasłuchiwał niż inicjował
połączenie z data port'em. |
server-PI
- server- protocol interpreter - interpreter protokołu servera
Interpreter protokołu nasłuchujena porcie X na połączeniez user-PI
i ustanawia połączenie Telnet'owe. Blok ten otrzymuje standardowe
komendy FP od user-PI, wysyła odpowiedzi oraz zarządza server-DTP. |
Telnet
connection - połączenie Telnet'owe
Dwukierunkowe ołączenie komunikacyjne pomiędzy user-PI i server-PI. |
user-DTP
- user-data transfer protocol
Proces transferu danych słuchający na data port za połączeniem od
serververa. Jeżeli dwa serwery transferują dane między sobą to user-DTP
jest nieaktywny. |
user-PI
- user-protocol interpreter - interpreter protokołu klienta
Interpreter protokołu inicjuje połączenie Telnet'owe z swojego portu
U z serverem, inicjuje komendy FTP oraz zarządza user-DTP jeżeli ten
pblok jest związany z transferem
|
Model
FTP:
|
[top] |
Model File Transfer Protocol można przedstawić w następujący sposób:
|
|
Zauważmy że:
- kanał data connection może być użyty w obu kierunkach
- kanał data connection nie musi istnieć cały czas |
W modelu przedstawionym
powyżej, interpreter protokołu użytkownika (user protocol interpreter)
inicjuje połączenie z serverem za pośrednictwem protokołu Telnet
(Telnet connection). Po nawiązaniu połączenia interpreter protokołu
użytkownika generuje standardowe komendy
FTP i przesyła
je do servera za pośrednictwem telnetu. Server po otrzymaniu tych
komend generuje standardowe odpowiedzi i przesyła je do użytkownika
jako odpowiedź na wysłane komendy.
Wysyłane komendy
określają parametry połączenia dla wymiany danych (data port, transfer
mode, representation
type, i
structure) i rodzaj wykonywanych
operacji na plikach (store,
retrive,
append,
delete
...).
Blok użytkownika odpowiedzilny za transfer danych (user data transfer
process) powinien zacząć nasłuchiwanie na uzgodnionym data port.
Następnie server inicjuje połączenie z tym data port'em i tworzy
kanał danych (data connection) i zaczynając transfer o określonych
wcześniej parametrach.
Warto również zauważyć, że uzgodniony data port nie musi dotyczyć
Host'a zaczynającego sesje FTP wysyłając komendy do servera przez
Telnet. Musi on jednak zapewnić server że data port na innym Host'cie
już nasłychuje.
Należy również zwrócić uwage na to, że data connection może być
używany w obu kierunkach.
W innej sytuacji
użytkownik może chcieć przekopiować dane między innymi dwoma serverami.
W tym wypadku jego komputer nawiązuje połączenie przez Telnet z
tymi dwoma komputerami tworząc kanał komunikacyjny (control connection)
za pośrednictwem którego bedą przesyłane komendy. Po nawiązaniu
połączenia z tymi komputerami tworzy kanał danych (data connection)
międzi nimi.
W tym przypadku przez komputer użytkownika, a dokładniej interpreter
protokołu użytkownika, przechodzą tylko komendy i informacje kontrolene
a sam kanał danych przez który przesyłane są dane jest utworzony
tylko miedzy serverami.
Można to przedstawić graficznie w następujący sposób:
|
|
Standard protokołu wymaga aby połącznie Telnet'owe było przez cały
czas trwania transferu między A i B otwarte. Do obowiązku użytkownika
aby żądać zamknieci kanału Telnet gdy skończony jest proces komunikacji,
gdyż on jest w takiej sytałacji jak gdyby to on by był jednym z tych
serverów (zależy to od tego który z którym nawiązał transfer). Nadający
server może przestać wysyłać dane gdy połączenie Telnet'owe zostanie
przerwane bez użycia komendy. |