1 Služby 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 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 Služby pro přenos souborů Protokol FTP
3 Fáze komunikace FPT klient – FTP server Otevření TCP spojení na port 21 (řídící spojení) Identifikace a autentizace uživatele Otevření datového spojení (aktivní nebo pasivní) Datový přenos (na datovém spojení) Nedatové operace (na řídícím spojení) Ukončení FTP dialogu – uzavření řídícího spojení
Zprávy protokolu FTP Klient – vysílá příkaz ( klíčové slovo + parametry ) –Příkazy pro řízení přístupu –Příkazy stanovení parametrů přenosu dat –Příkazy FTP služeb Server – vysílá odpověď ( číselný kód + parametry ) 4 Služby pro přenos souborů Protokol FTP
5 Příkazy pro řízení přístupu PříkazParametrPopis USER usernameIdentifikace uživatele PASS passwordAutentizace 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 Služby pro přenos souborů Protokol FTP
ParametrPopis 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 – velikosti souboru v B (dekadicky) 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 6 Příkazy stanovení parametrů přenosu
7 Příkazy služeb (1) PříkazParametrPopis 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
8 Příkazy služeb (2) PříkazParametrPopis RNFR cestaPřejmenování souboru (výchozí soubor) RNTO cestaPřejmenování souboru (cílový soubor) (Pořadí příkazů: RNFR - RNTO) ABOR Ukončení předcházejícího příkazu souvisejícího s přenosem souboru DELE cestaVýmaz souboru RMD cesta / adresářVýmaz adresáře MKD cesta / adresářVytvoření adresáře
9 Příkazy služeb (3) PříkazParametrPopis 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í
Datové definice v protokolu FTP – RFC Specifikace souboru (parametry příkazu TYPE) –Typ A „ ASCII“ soubor (textový formát) E „EBCDIC“ soubor (EBCDIC je znakový kód – firma IBM) I „Image“ file type - binární soubor L „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 N „ Nonprint“ (výchozí) – soubor neobsahuje řídící znaky pro vertikální formátování T „Telnet“ format control – soubor obsahuje řídící znaky pro tisk souboru podle protokolu Telnet F „Fortran“ carriage control – první znak každé řádky je znak podle specifikace jazyka Fortran 10
2.Struktura souborů (parametry příkazu STRU) –F „File“ struktura (výchozí) – proud bytů –R „Record“ struktura – záznamy – používá se pouze u textových souborů (ASCI nebo EBCDIC) –P „Page“ struktura – posloupnost stránek s číslem stránky – pro soubory s náhodným přístupem k obsahu 3.Přenosový režim (parametry příkazu MODE) –S „Stream“ režim (výchozí) – posloupnost bytů – režim lze použít pro všechny datové typy –B „Block“ režim – posloupnost bloků s hlavičkami (velikost bloku, deskriptor bloku) –C „Compressed“ režim – přenos s jednoduchou kompresí 11
12 Odpovědi protokolu FTP (server) Tříciferný číselný kód (X Y Z) + text X Y Z Hodnota X 1Odpověď pozitivní předběžná 2Odpověď pozitivní konečná 3Odpověď pozitivní přechodná 4 Odpověď negativní přechodná 5Odpověď negativní konečná Hodnota Y (ke které funkční skupině se odpověď vztahuje) 0Chyba v syntaxi příkazu 1Odpověď informační 2Odpověď informuje o stavu datového spojení 3Odpověď ve fázi autentizace 5Odpověď informuje o statusu souboru Hodnota Z Indikace specifické chyby v dané funkční skupině
13 Příklady odpovědí FTP serveru: –502Příkaz server neimplementuje –550Soubor nenalezen –425Nemůže být otevřeno TCP datové spojení –426Datové spojení bylo uzavřeno, přenos byl zastaven –331User-name přijato, je očekáván password –220Služba FTP připravena pro uživatele –225Datové spojení otevřeno –226Datové spojení se uzavírá –221Řídící spojení se uzavírá –125Datové spojení je již otevřeno, začíná přenos
Při pasivním FTP spojení: Data connection navazuje klient příkazem PASV. V odpovědi (na příkaz PASV) posílá server svou IP adresu a TCP port, na kterém naslouchá. 227 Entering Passive Mode (213,229,112,130,216,4) IP adresa port Poznámka: Pasivní režim je bezpečnější. Většina aplikací Web browser podporuje jen pasivní režim. Při aktivním FTP spojení: Data connection navazuje server. Data jsou přenášena na portu 20. Klient naslouchá na portu, který poslal předtím příkazem PORT na server. PORT (222,123,50,215,210,5) IP adresa port Poznámka: Problém zpravidla nastává v případě, kdy se klient připojuje z privátní sítě a jeho IP adresa je překládána (NAT). 14 Otevření datového spojení aktivní vs. pasivní
15 Pasivní otevření datového spojení Otevření datového spojení aktivní vs. pasivní
16 Aktivní otevření datového spojení (port 20) Otevření datového spojení aktivní vs. pasivní
17 Minimální implementace FTP serveru (podle RFC 959) 1.Datové definice : TYPE - ASCII Non-print (AN) MODE - Stream (S) STRUCTURE - File, Record ( F / R ) 2.Příkazy : USER, QUIT, PORT, TYPE, MODE, STRU, RETR, STOR (s výchozími hodnotami) NOOP
18 Protokol TFTP (Trivial File Transfer Protocol): –Jednoduchý protokol, princip klient - server (požadavek – odpověď) –Součástí TFTP protokolu není autentizační sekvence. Přístupy k file systému jsou autorizovány konfiguračním nastavením na TFTP serveru (ACL – Access Control List) –TFTP 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 vyvolá vyslání chybové zprávy. Služby pro přenos souborů Protokol TFTP
19 Počítačové sítě Služby 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) nedatové zprávy datová zpráva
20 Data záhlaví TFTP zprávy –Typ RRQ/WRQ – jméno souboru a mód dat souboru (ASCII text, oktet,..) –Typ DATA – pořadové číslo bloku (offset bloku) –Typ ACK – pořadové číslo bloku potvrzovaných dat –Typ ERROR – kód chyby, chybová zpráva 0Specifikováno v chyb. zprávě4Zakázaná operace 1Soubor nenalezen5Neznámý ident. přenosu 2Nedodržení přístupových práv6Soubor již existuje 3Nedostatečný paměťový prostor7Uživatel neznámý Služby pro přenos souborů Protokol TFTP
Protokol TFTP – Write Request 21
Protokol TFTP – Read Request 22
23 TFTP Read Služby pro přenos souborů Protokol TFTP
24 TFTP Write Služby pro přenos souborů Protokol TFTP
25 Využití implementace TFTP u bezdiskových počítačů (terminály, pracovní stanice…) Aplikace DHCP klient a TFTP klient jsou uloženy v počítačích v permanentních pamětech EPROM, ROM apod. –Po zapnutí stanice žádá o přidělení IP adresy (prostřednictvím protokolů BootP nebo DHCP) –Po obdržení IP adresy žádá TFTP server o data potřebná ke spuštění (jádro, atd.) –Po obdržení těchto dat se jádro natáhne do operační paměti a počítač se spustí. Služby pro přenos souborů Protokol TFTP
26 Služby pro přenos souborů Protokol TFTP