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ů) 1
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 Uživatelské rozhraní FTP server Interpret protokolu FTP 21 Interpret protokolu FTP FTP klient Souborový systém Modul přenosu dat 20 Modul přenosu dat Souborový systém 2
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
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řístupu Pří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 5
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 TYPE STRU MODE p1 dva znaky (typ formát) p2 dekadická hodnota velikosti souboru v B p1 (F-file, R-record, P- page) p1 (S-stream, B-block, C- compressed) datového portu serveru Specifikace typy souboru typ (A ASCII E EBCDIC I Image) format (N-Nonprint.) Specifikace struktury souboru Specifikace přenosového režimu souboru 6
Příkazy služeb (1) Příkaz Parametr Popis RETR 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 7
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 ABOR Ukončení předcházejícího příkazu souvisejícího s přenosem souboru (musí předcházet RNFR) DELE cesta Výmaz souboru RMD cesta / adresář Výmaz adresáře 8 MKD cesta / adresář Vytvoření adresáře
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í 9
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 10
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ěď 11
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 12
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 13
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 14
Počítačové sítě Systém pro přenos souborů protokol TFTP Formát IP datagramu s TFTP zprávou IP záhlaví UDP záhlaví TFTP záhlaví TFTP data (u datových zpráv) Typy zpráv 2 B Typ zprávy Data záhlaví 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 512 B pevná délka nedatové zprávy datová zpráva nedatové zprávy 15
Protokol TFTP Write Request TFTP Klient 69 WRQ ACK 0 DAT 1 TFTP Server 69 69 16
Protokol TFTP Read Request TFTP Klient 69 RRQ DAT 1 TFTP Server 69 ACK 1 69 17
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ý 18
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 19
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 Volby: put soubor_local soubor_remote -mode (ascii/binary) -v (verbose mode) 20