Menu Zavrieť

2.4. Aplikačný protokol FTP

FTP: file transfer protocolRFC 959

Protokol FTP je určený na prenos súborov zo servera na klienta a naopak. FTP protokol oddeľuje riadenie komunikácie od prenosu dát do samostatných TCP spojení. Riadiaca časť FTP servera čaká na spojenia od klientov na porte 21. Po napojení FTP klienta na riadiacu časť servera sa musí používateľ autorizovať svojím prihlasovacím menom a heslom. V prípade, že ide o verejný FTP server s povolenou anonymnou autorizáciou, používa sa ako prihlasovacie meno anonymous a ako heslo sa uvádza e-mailová adresa (tá môže byť často prázdna alebo stačí uviesť @).

FTP spojenie si uchováva pozíciu v rámci adresárovej štruktúry webového servera. Niektoré príkazy, ktoré nepotrebujú prenášať dáta, si vystačia aj s riadiacim spojením (napr. CWD na zmenu adresára a DELE na zmazanie súboru). Iné príkazy, ktoré už vyžadujú prenos dát (RETR na stiahnutie súboru, STOR na zaslanie súboru, LIST na získanie obsahu aktuálneho adresára), už potrebujú na svoje úspešné vykonanie vopred otvorené dátové spojenie.

Dátové spojenie sa môže otvoriť jedným z dvoch spôsobov – módov:

  • aktívny mód, v ktorom klient riadiaceho spojenia spustí na svojom počítači serverový dátový proces a oznámi serveru riadiaceho spojenia IP adresu a číslo portu, na ktorý sa má napojiť klientskou časťou dátového spojenia. Zasielaná správa o otvorenom porte má tvar PORT a1,a2,a3,a4,p1,p2 v ktorom a1.a2.a3.a4 je IP adresa a výsledok výrazu p1*256+p2 je číslo portu(na obrázku č.1). Server riadiaceho spojenia poďakuje (číslo 2). FTP klient môže predpokladať, že FTP server sa napojí na tento dátový server z portu 20 (číslo 3). Keď sa TCP spojenie podarí (číslo 4), dátový kanál je pripravený na odoslanie jedného súboru dát (súbor alebo výpis adresára). Tento spôsob spojenia sa veľmi nevyužíva, nakoľko klienti dosť často nemajú verejnú IP adresu a FTP server sa na nich nevie napojiť.

  • pasívny mód, v ktorom klient najprv požiada FTP server v riadiacom spojení o otvorenie serverovej časti dátového spojenia príkazom PASV (na obrázku číslo 1). Server otvorí niektorý port a pošle v riadiacom spojení klientovi správu v tvare 227 Entering Passive Mode (a1,a2,a3,a4,p1,p2). v ktorom opäť a1.a2.a3.a4 je IP adresa a výsledok výrazu p1*256+p2 je číslo portu, na ktorom čaká (číslo 2). FTP klient inicializuje dátové spojenie na tento port (číslo 3). Keď sa TCP spojenie podarí (číslo 4), dátový kanál je pripravený na odoslanie jedného súboru dát (súbor alebo výpis adresára). V tomto prípade sa port 20 nevyužíva.

Po otvorení spojenia môže FTP klient požiadať o dátový prenos v riadiacom spojení (RETR, STOR alebo LIST).

Keď používateľ vypne FTP klienta, ten ešte odosiela príkaz QUIT pre FTP server na korektné ukončenie riadiaceho spojenia.

Komunikácia v riadiacom spojení je podobná s prvým riadkom HTTP požiadaviek a odpovedí. FTP odpovede servera sa tiež skladajú z kódu a komentára stavu. Všetky typy požiadaviek a odpovedí si môžete pozrieť v RFC 959.