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ů)
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 Modul přenosu dat Interpret protokolu 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) Formát řízení (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
Struktura souborů Přenosový režim „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í
Příkazy protokolu FTP (klient) Příkazy pro řízení přístupu Příkazy stanovení parametrů přenosu Příkazy služeb 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
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
Příkazy služeb (1) Příkaz Parametr Popis RETR cesta / adresář STOR Žádost o přenos kopie souboru – směr „IN“ STOR Žádost o přenos kopie souboru – směr „OUT“ s možným přepisem souboru existujícího STOU Žádost o přenos kopie souboru – směr „OUT“ –unikátní jméno APPE Žá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
Příkazy služeb (2) Příkaz Parametr Popis RNFR cesta RNTO ABOR DELE RMD Přejmenování souboru: výchozí soubor RNTO 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 Výmaz souboru RMD cesta / adresář Výmaz adresáře MKD Vytvoření adresáře
Příkazy služeb (3) Příkaz Parametr Popis PWD - LIST [cesta / adresář] 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í
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
Odpovědi protokolu FTP (server): X čí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ěď
Odpovědi protokolu FTP (server): Y čí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
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
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
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 datová zpráva nedatové zprávy
Protokol TFTP – Write Request TFTP Klient TFTP Server WRQ 69 ACK 0 69 DAT 1 69
Protokol TFTP – Read Request TFTP Klient TFTP Server RRQ 69 DAT 1 69 ACK 1 69
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 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ý
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)