Rodina protokolů TCP/IP 9. přednáška rodina protokolů TCP/IP datový komunikační model porty, sockety charakteristika vrstev komunikačního modelu TCP/IP Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 1
Rodina protokolů TCP/IP TCP/IP (výhody): (nejen) doporučení (požadavek vojenských společností), otevřený protokolový standard, vyvinutý nezávisle na hw a OS široká podpora vhodný i pro komunikaci mimo Internet (malé účelové izolované sítě) nezávislost na síťovém hw a typu sítě (Ethernet, Token Ring, FDDI, X.25) obecné adresové schéma standardizované vysokoúrovňové protokoly Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 2
Rodina protokolů TCP/IP Standardy protokolů protokol = pravidla chování (např. komunikace národů různých kultur – diplomatické protokoly definují množinu pravidel, která jsou veřejně známá a nezávisí na chování konkrétních národů, minimalizují riziko nedorozumění) v homogenní síti definuje protokol dodavatel systému – využití silných stránek konkrétního hw a sw (analogie kultury jednoho národa – přirozeně akceptují jen domorodí obyvatelé) TCP/IP je pro heterogenní sítě, je dostupný pro každého, vývoj a modifikace se řídí dohodou, ne diktátem jednoho výrobce veřejně přístupná dokumentace standardů Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 3
Rodina protokolů TCP/IP Datový komunikační model vrstvový model, kvůli vzhledu nakresleného modelu se používá termín protocol stack v jedné vrstvě může být více protokolů (např. mail, ftp jsou ve stejné vrstvě) každý protokol komunikuje se svým partnerem (peer = druh, osoba stejného stavu, rovný) - implementací stejného protokolu v ekvivalentní vrstvě ve vzdáleném systému neexistuje obecně platná dohoda o popisu TCP/IP pomocí vrstvového modelu, obvykle se považuje za složený z méně vrstev než ISO/OSI (3 až 5 úrovní), např.: aplikační vrstva transportní vrstva (doručení dat mezi dvěma účastníky) internetová vrstva (definuje datagram, zajišťuje směrování) síťová vrstva (procedury pro přístup k fyzické síti) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 4
Rodina protokolů TCP/IP Datové struktury - terminologie podle použitého transportního protokolu (viz dále) se datové struktury transportní a aplikační vrstvy liší TCP UDP aplikační stream message transportní segment packet internetová datagram síťová frame Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 5
Rodina protokolů TCP/IP Síťová komunikace více procesů běžících v jednom počítači rozhraní aplikačních procesů socket = (IP adresa, port) porty dle port # message stream ICMP UDP TCP packet segment dle protocol # ARP IP RARP dle frame type datagram Ethernet frame Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 6
TCP/IP - čísla protokolů identifikují protokol ve vrstvě nad IP, kterému se mají předat data 8 bitů v UNIXu v tabulce /etc/protocols ve Windows v souboru \windows\system32\drivers\etc\protocol # Copyright (c) 1993-1999 Microsoft Corp. # Tento soubor obsahuje seznam protokolů Internetu, které jsou definované # normou RFC 1700 (a pýiýazen źˇsla). # Formát výpisu: # <název protokolu> <přiřazené číslo> [aliasy...] [#<komentář>] ip 0 IP # Internet protocol icmp 1 ICMP # Internet control message protocol ggp 3 GGP # Gateway-gateway protocol tcp 6 TCP # Transmission control protocol egp 8 EGP # Exterior gateway protocol pup 12 PUP # PARC universal packet protocol udp 17 UDP # User datagram protocol hmp 20 HMP # Host monitoring protocol xns-idp 22 XNS-IDP # Xerox NS IDP rdp 27 RDP # "reliable datagram" protocol rvd 66 RVD # MIT remote virtual disk Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 7
TCP/IP - čísla portů transportní protokol předává data procesu odpovídající aplikace (síťové službě) 16 bitů zdrojový port, cílový port v UNIXu v tabulce /etc/services ve Windows v \windows\system32\drivers\etc\services # Copyright (c) 1993-1999 Microsoft Corp. # Tento soubor obsahuje čísla portů "dobře známých" služeb, jak byly # definovány podle IANA. # Formát: # <název služby> <číslo portu>/<protokol> [aliasy...] [#<poznámka>] echo 7/tcp echo 7/udp ... ftp-data 20/tcp #FTP, data ftp 21/tcp #FTP. control telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer Protocol http 80/tcp www www-http #World Wide Web Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 8
př.: zdroj se připojuje ke službě telnet TCP/IP - sockety socket = kombinace čísla IP adresy a čísla portu jednoznačná identifikace procesu v rámci Internetu well-known ports: standardizovaná čísla portů pro určité síťové služby, použití jako cílový port (možnost připojit se k jisté službě na jistém počítači), server dynamicky alokované porty: dynamické přidělování, používá se pro zdrojové porty, klient zdroj (klient) cíl (server) 147.229.35.20 147.229.37.11 well known port (3044,23) (23, 3044) (3044,23) (23, 3044) dynamicky alokovaný port př.: zdroj se připojuje ke službě telnet Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 9
TCP/IP - síťové rozhraní Síťová vrstva (Network Access Layer) pozor, český terminologický problém, dle ISO/OSI je síťová vrstva 3., zde se v TCP/IP myslí přibližný ekvivalent fyzické vrstvy prostředek, kterým systém doručuje data jiným zařízením na přímo připojené síti definuje způsob přenášení IP datagramů po síti musí znát detaily o síti (hw adresování apod.) z OSI může zahrnovat 3 dolní vrstvy, částečný překryv – IP se typicky uvádí jako záležitost síťové vrstvy OSI (tedy 3.) známější protokoly (TCP, UDP, IP) jsou záležitostí vyšších vrstev funkce: zapouzdření IP datagramů na framy, mapování IP adres na fyzické a naopak (např. RFC 826: Address Resolution Protocol – ARP, ovšem ARP jako všechno ostatní používá pro přenos IP, proto se řadí do vyšší vrstvy) kombinace ovladačů a souvisejících programů Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 10
TCP/IP - internetová vrstva Internetová vrstva (Internet Layer) IP (RFC 791) – základní služba pro doručování paketů (pro všechny další protokoly včetně ARP a RARP a ICMP) obsahuje IP, ARP, RARP, ICMP a IGMP ARP (Address Resolution Protocol) (RFC 826) převod IP na hardwarovou adresu postup zjištění hw adresy: žadatel vyšle žádost (vyplní Sender HA, Sender IP, Target IP) na všeobecnou hw adresu žádost akceptuje počítač s Target IP, pošle odpověď, současně si dvojici adres žadatele zařadí do svojí tabulky (minimalizace provozu) žadatel přijme odpověď, zařadí ji do tabulky ARP cache pokud hledaný je v jiné síti, odpovídá svojí hw adresou router (jako jeho zástupce – proxy ARP) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 11
TCP/IP - internetová vrstva RARP (Reverse ARP) zjištění IP adresy při znalosti fyzické nejčastěji při startu systému ke zjištění vlastní IP (např. u bezdiskových stanic nebo jako náhrada manuální konfigurace - "zjistit IP adresu automaticky") stanice vyplní svoji fyzickou adresu a pošle RARP na všeobecnou adresu RARP server zjistí z databáze adresu a pošle odpověď formát zpráv je shodný s ARP pro komunikaci v IP sítích je znalost pouze vlastní IP adresy nedostatečná (je třeba znát masku podsítě, router, DNS server, ...), proto se místo ARP častěji používají komplexnější protokoly (BootP, DHCP) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 12
TCP/IP - internetová vrstva ICMP (Internet Control Message Protocol), RFC 792 protokol řídících hlášení, zprávy o chybách a zvláštních okolnostech při přenosu často se vysílají v situaci zahlcené sítě nebo jiných problémů, proto zprávy koncipovány tak, aby co nejméně zatěžovaly síť (negenerují se v určitých situacích, např. při problémech s doručováním na všeobecnou nebo skupinovou adresu) funkce: řízení přenosu (pozastavení vysílání) detekce nedosažitelných cílů přesměrování trasy (posílá router, radí použít jiný router – zdroj i oba routery musí být na jedné síti) kontrola vzdálených hostů (ping) zjištění komunikační cesty (traceroute) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 13
TCP/IP - internetová vrstva ICMP - ping Packet Internet Groper (grope = tápat, hmatat) k ověření komunikace mezi stanicemi nejjednodušší zjištění dosažitelnosti cílové stanice/sítě pracuje na nejnižší možné vrstvě, odpově implementována v jádře OS úspěch signalizuje funkčnost TCP/IP na "druhé straně" několik možných chybových ukončení C:\>ping www.seznam.cz Příkaz PING na www.seznam.cz [77.75.72.3] s délkou 32 bajtů: Odpověď od 77.75.72.3: bajty=32 čas=4ms TTL=248 Statistika ping pro 77.75.72.3: Pakety: Odeslané = 4, Přijaté = 4, Ztracené = 0 (ztráta 0%), Přibližná doba do přijetí odezvy v milisekundách: Minimum = 4ms, Maximum = 4ms, Průměr = 4ms C:\> Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 14
TCP/IP - internetová vrstva ICMP - traceroute zjištění komunikační cesty, dosažitelnosti cílové stanice a všech směrovačů na trase ve Windows se vyskytuje pod názvem tracert využívá pole životnosti paketu (ttl) C:\>tracert www.seznam.cz Výpis trasy k www.seznam.cz [77.75.72.3] s nejvýše 30 směrováními: 1 2 ms 2 ms 2 ms gw.fme.vutbr.cz [147.229.35.1] 2 1 ms 1 ms 1 ms hp-tech.net.vutbr.cz [147.229.254.121] 3 6 ms 6 ms 3 ms hp-kou.net.vutbr.cz [147.229.254.65] 4 1 ms 1 ms 1 ms gw-kou.net.vutbr.cz [147.229.254.54] 5 1 ms 3 ms 3 ms crs1.net.vutbr.cz [147.229.253.180] 6 4 ms 3 ms 3 ms 195.113.235.85 7 4 ms 4 ms 4 ms nix.seznam.cz [91.210.16.195] 8 4 ms 4 ms 4 ms www.seznam.cz [77.75.72.3] Trasování bylo dokončeno. C:\> Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 15
TCP/IP - internetová vrstva IP (Internet Protocol), RFC 791 základní protokol doručování paketů, v TCP/IP použit vždy bez ohledu na zdroj a cíl použitý i pro ARP a RARP, ICMP, ... connectionless protocol (nemá handshake) (opak by byl connection-oriented protocol) unreliable protocol (neobsahuje kód pro detekci ani opravy chyb) doručuje datagramy fragmentace datagramu, MTU (maximum transmission unit) – gateway může datagram fragmentovat předání datagramu transportní vrstvě podle čísla protokolu (8 bitů) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 16
TCP/IP - transportní vrstva doručení dat mezi dvěma účastníky nabízí přístup aplikací ke službám doručování datagramů (IP) dva nejdůležitělší protokoly: UDP a TCP UDP (User Datagram Protocol), RFC 768 connectionless protokol unreliable protocol nespolehlivá nespojovaná transportní služba nízká režie, jednoduchý typicky pro aplikace "dotaz/odpověď", pro aplikace nevyžadující vysoké zabezpečení, aplikace požadující jednoduchost a malou režii podporuje i vysílání na všeobecnou adresu (255.255.255.255) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 17
TCP/IP - transportní vrstva TCP (Transmission Control Protocol), RFC 793 poskytuje virtuální okruh mezi koncovými aplikacemi vykonává i řízení koncového zabezpečení a datového toku, řízení koncového spojení spolehlivá (reliable) transportní služba (doručí adresátovi data tak, jak je uživatel odeslal – bez ztráty dat a duplicitních paketů), využívá pozitivní potvrzování a opětovné přenosy (Positive Acknowledgement with Retransmission – PAR) – opakuje se tak dlouho, až přijde potvrzení předávaná jednotka dat je segment, TCP dělí data (stream) na segmenty kontrolní součet, když souhlasí, příjemce potvrdí příjem, jinak segment ignoruje služba se spojením (navázání spojení, přenos dat, ukončení spojení) efektivní využití přenosových kanálů (bufferování, zahájení vysílání až po nashromáždění dostatečného množství dat, ...) full duplex přenášená data chápána jako posloupnost bytů, nikoliv jako pakety (proto stream) řízení zahlcení (RFC 2581) – ztráta paketů např. v důsledku malé vyrovnávací paměti příjemce, obdržení segmentu mimo pořadí apod. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 18
TCP/IP - aplikační vrstva Aplikační vrstva (Process/Application Layer) nejvyšší vrstva síťové architektury Internetu protokoly specifikují pravidla komunikace a formáty datových struktur pro jednotlivé síťové služby některé služby vázány na konkrétní komunikační protokol, jiné mohou volit mezi TCP a UDP (podle implementace a/nebo konfigurace) např.: HTTP FTP telnet SMTP DNS TFTP NTP RPC DHCP SNMP RFC: 2616 959 854 821 1035 1350 1305 1831 2131 1157 port: 80 20/21 23 25 53 69 123 111 546/547 161/162 TCP (RFC 793) (číslo protokolu 6) TCP nebo UDP UDP (RFC 768) (číslo protokolu 17) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 19