1
Počítačové sítěSystém pro přenos souborů – protokol FTP
• Autorizovaný přístup do souborového systému hostitelského uzlu
• Informace o obsahu souborového systému hostitelského uzlu
• Obousměrný přenos kopií souborů mezi serverem a klientem
• Modifikace struktury souborového systému hostitelského uzlu (výmaz, vytváření, změna jmen a modifikace obsahu adresářů/souborů)
2
Počítačové sítěSystém pro přenos souborů – protokol FTP
• FTP používá TCP transport, vytváří 2 TCP spojení – TCP spojení pro řízení (příkazy a odpovědi) – well-known port 21 – spojení
trvá po celou dobu FTP relace
– TCP spojení pro vlastní přesun dat – well-known port 20 – spojení trvá po dobu přenosu
Souborový systém
Souborový systém
Modul přenosu dat
Modul přenosu dat
Interpretprotokolu FTP
Interpretprotokolu FTP
Uživatelské rozhraní
FTP server
FTP klient
21
20
• Datové definice v protokolu FTP – RFC 959– Typ souboru
• „ASCII“ soubor (výchozí)• „EBCDIC“ soubor• „Image“ file type - binární soubor (posloupnost bytů)• „Local“ - lokální binární soubory (délka bytu je určena
odesílající stranou)– Řízení formátu (Format Control) – pouze pro ASCII a
EBCDIC soubory• „Nonprint“ (výchozí) – soubor neobsahuje řídící znaky pro
vertikální formátování• „Telnet“ format control – soubor obsahuje řídící znaky pro
tisk souboru podle protokolu Telnet • „Fortran“ carriage control – první znak každé řádky je
znak podle specifikace jazyka Fortran
3
– Struktura souborů• „File“ struktura (výchozí) – proud bytů• „Record“ struktura – záznamy – používá se
pouze u textových souborů (ASCI nebo EBCDIC)
• „Page“ struktura – posloupnost stránek s číslem stránky – pro soubory s náhodným přístupem k obsahu
– Přenosový režim• „Stream“ režim (výchozí) – posloupnost bytů –
režim lze použít pro všechny datové typy• „Block“ režim – posloupnost bloků s hlavičkami
(velikost bloku, deskriptor bloku)• „Compressed“ režim – přenos s jednoduchou
kompresí4
5
• Příkazy protokolu FTP (klient)– Příkazy pro řízení přístupu– Příkazy stanovení parametrů přenosu– Příkazy služeb
• Příkazy pro řízení přístupuPříkaz Parametr Popis
USER username Identifikace uživatele
PASS password Autentizace uživatele
CWD cesta / adresář Změna pracovního adresáře
CDUP - Změna prac. adresáře na adresář nadřazený
REIN - Reset parametrů na výchozí nastavení
LOGOUT/QUIT - Odpojení od relace
6
• Příkazy stanovení parametrů přenosu
Příkaz Parametr Popis
PORT p1 p2 p3 p4 p5 p6 (dekadické hodnoty)
Specifikace datového portu (klienta):
p1.p2.p3.p4 .…….IP adresa
(p5 x 256) + p6…..č.portu
PASV - Žádost o zaslání specifikace datového portu serveru
TYPE p1 – dva znaky (typ formát)
p2 – dekadická hodnota velikosti souboru v B
Specifikace typy souboru
typ (A–ASCII E – EBCDIC I– Image)
format (N-Nonprint….)
STRU p1 (F-file, R-record, P-page)
Specifikace struktury souboru
MODE p1 (S-stream, B-block, C-compressed)
Specifikace přenosového režimu souboru
7
• Příkazy služeb (1)
Příkaz Parametr PopisRETR cesta / adresář Žádost o přenos kopie souboru
– směr „IN“
STOR cesta / adresář Žádost o přenos kopie souboru – směr „OUT“ s možným
přepisem souboru existujícího
STOU cesta / adresář Žádost o přenos kopie souboru – směr „OUT“ –unikátní jméno
APPE cesta / adresář Žádost o přenos kopie souboru – směr „OUT“ – s připojením
k existujícímu
ALLO dekadická hodnota (počet B)
Žádost o alokaci paměťové oblasti (následuje příkaz
STOR/APPE)
REST - Reset probíhajícího přenosu souboru
8
• Příkazy služeb (2)
Příkaz Parametr Popis
RNFR cesta Přejmenování souboru: výchozí soubor
RNTO cesta Přejmenování souboru: cílový soubor
(musí předcházet RNFR)
ABOR Ukončení předcházejícího
příkazu souvisejícího s přenosem souboru
DELE cesta Výmaz souboru
RMD cesta / adresář Výmaz adresáře
MKD cesta / adresář Vytvoření adresáře
9
• Příkazy služeb (3)
Příkaz Parametr Popis
PWD - Výpis cesty pracovního adresáře
LIST [cesta / adresář]
Výpis obsahu adresáře
HELP - Nápověda – výpis všech příkazů, které server
implementuje
NOOP - Prázdná operace, odpověď serveru je vždy
pozitivní
10
• Minimální implementace FTP serveru podle RFC 959:
Datové definice :TYPE - ASCII Non-print (AN)MODE - Stream (S)STRUCTURE - File, Record ( F / R )
Příkazy :USER, QUIT, PORT, TYPE, MODE, STRU, RETR, STOR (s výchozími hodnotami) NOOP
11
Odpovědi protokolu FTP (server):
číselný tříciferný kód (X Y Z) + text
• X – 1 Pozitivní předběžná odpověď– 2 Pozitivní konečná odpověď– 3 Pozitivní přechodná odpověď– 4 Negativní přechodná odpověď– 5 Negativní konečná odpověď
12
Odpovědi protokolu FTP (server): číselný tříciferný kód (X Y Z) + text
• Y– 0 Chyba v syntaxi příkazu– 1 Odpověď informační– 2 Odpověď informuje o stavu datového
spojení– 3 Odpověď ve fázi autentizace– 5 Odpověď informuje o statusu souboru
13
• Příklady odpovědí FTP serveru:– 502 Příkaz server neimplementuje– 503 Chybná sekvence příkazů– 550 Soubor nenalezen– 452 Nedostatečný paměťový prostor– 450 Soubor je obsazen– 425 Nemůže být otevřeno TCP datové spojení– 426 Datové spojení bylo uzavřeno, přenos byl zastaven– 331 User-name přijato, je očekáván password– 220 Služba FTP připravena pro uživatele– 225 Datové spojení otevřeno– 226 Datové spojení se uzavírá– 221 Řídící spojení se uzavírá– 125 Datové spojení je již otevřeno, začíná přenos
14
Počítačové sítěSystém pro přenos souborů – protokol TFTP
• Protokol TFTP (Trivial File Transfer Protocol)– jednoduchý protokol, princip klient - server
(požadavek – odpověď) – součástí protokolu není autentizační sekvence –
přístupy jsou autorizovány konfiguračním nastavením na TFTP serveru (ACL – Access Control List)
– používá transportní služby UDP – well known port 69, zprávy jsou potvrzovány. Není-li potvrzení v určeném čase přijato, jsou zprávy opětovně vysílány
– indikace chyby v přijatém požadavku vyslání chybové zprávy
15
Počítačové sítěSystém pro přenos souborů – protokol TFTP
• Formát IP datagramu s TFTP zprávou
• Typy zpráv – 2 B– Read Request – RRQ – kód 1– Write Request – WRQ – kód 2– Data – kód 3– Acknowledgement – ACK – kód 4– Error – kód 5
IP záhlaví UDP záhlaví TFTP záhlaví TFTP data (u datových zpráv)
512 B
pevná délka
Typ zprávy Data záhlaví
nedatové zprávy
nedatové zprávy
datová zpráva
18
Počítačové sítěSystém pro přenos souborů – protokol TFTP
• Data záhlaví– pro RRQ/WRQ – jméno souboru a mód dat souboru
(ASCII text, oktet, ..)– pro DATA – pořadové číslo bloku (offset bloku)– Pro ACK – pořadové číslo bloku potvrzovaných dat– Pro ERROR – kód chyby, chybová zpráva
0 Specifikováno v chyb. zprávě 4 Zakázaná operace
1 Soubor nenalezen 5 Neznámý ident. přenosu
2 Nedodržení přístupových práv 6 Soubor již existuje
3 Nedostatečný paměťový prostor 7 Uživatel neznámý
19
Počítačové sítěSystém pro přenos souborů – protokol TFTP
• Využití implementace TFTP - TFTP klient v ROM u bezdiskových pracovních stanicích
• Postup:– Po zapnutí stanice žádá o IP (implementace
protokolů BootP nebo DHCP nebo RARP)– Po obdržení IP žádá TFTP server o data
potřebná ke spuštění– Po obdržení dat se může spustit
Počítačové sítěSystém pro přenos souborů – protokol TFTP
• Implementace TFTP • Server: tftpd (daemon) - konfigurace /etc/tftpboot/…• Klient: tftp
tftp [options……] [host [port]] [-c command]
Příkazy: get soubor_remote soubor_local
put soubor_local soubor_remote
Volby: -mode (ascii/binary)
-v (verbose mode)
20