http://www.badgerdata.com/content/images/PluggedInCat5.jpg PB169 – Operační systémy a sítě Protokoly pro přenos dat v síti Marek Kumpošt, Zdeněk Říha TCP/IP •Rodina protokolů pro komunikaci v počítačové síti (původně ARPANET) •Protokol –Množina pravidel určující význam a syntaxi zpráv při komunikaci. •Komunikace je rozdělena do vrstev –Analogicky, jako model ISO/OSI, ale vrstev je méně •Původně vyvinuto pro UNIXové systémy TCP/IP •Počítačová síť není považována za 100% spolehlivou –Protokoly s tím musí umět pracovat –Zprávy rozděleny do menších zpráv – paketů –Pakety jsou nezávisle adresovány k cíli –Nezáleží na tom, kudy se tam dostanou •Příjemce potvrzuje přijetí každého paketu –Pakety se mohou ztrácet – posílání znovu TCP/IP – Architektura • http://www.fileformat.info/user/anonymous/download/2a1d74537496432cb81893e623bad044/svg2raster.png TCP/IP •Pracuje na transportní a síťové vrstvě OSI/ISO modelu a má několik „vlastních“ vrstev –Aplikační – DHCP, DNS, FTP, HTTP, Telnet –Transportní – TCP, UDP –Síťová – IP, ARP, ICMP, IPSec –Síťové rozhraní – Ethernet, Token ring… TCP/IP a ISO/OSI • •Korespondence • vrstev •Nižší vrstva poskytuje • služby vyšší vrstvě •Vyšší vrstva využívá • služby nižší vrstvy http://www.codeguru.com/dbfiles/get_image.php?id=12219&lbl=TCP02_GIF&ds=20060629 Transportní vrstva •Dva protokoly na transportní vrstvě –(TCP) Transport Control Protocol –(UDP) User Datagram Protocol •Obecné požadavky: –Možnost propojení „různých“ sítí •Využívající např. různé přenosové technologie –Návrh protokolů s co nejlepší funkcionalitou •Podpora „nových“ protokolů, které ještě nebyly vyvinuty TCP •Před každou komunikací je nejprve navázáno spojení •Po skončení komunikace je spojení uzavřeno •TCP vytváří datové pakety přijaté od vyšší vrstvy a předává je nižší vrstvě •Snaha o optimalizaci přenosových cest •Transparentní přenos libovolných dat •Obousměrné spojení •Rozlišovaní aplikací pomocí portů (80, 21, 22) TCP •TCP je potvrzovaný protokol –Potvrzují se přijaté pakety –Na chybně přijaté nebo nepřijaté pakety se nereaguje (dojde k jejich novému odeslání) –Doručení všech paketů ve správném pořadí •Kontinuální potvrzování –Aby se nesnížila efektivita přenosu –Posílají se pakety s „předstihem“, tzn. ještě před přijetím potvrzení –Množství odeslaných paketů se řídí velikosti „okna“ •TCP neřeší bezpečnost přenosu dat • http://www.fileformat.info/user/anonymous/download/695ee1b1bc6f4d7c8d2be61ab2579098/svg2raster.png UDP •User datagram protokol •„Nespolehlivá“ transportní služba •Využitelné pro aplikace, které nevyžadují spolehlivost přenosu –Streamované video, rádio, videokonference –DHCP, DNS •Použití portů pro rozlišení různých aplikací •Nemá fázi navázání a ukončení spojení Protokol IP •Zajišťuje směrování paketů (datagramů) na základě IP adres –Nejen v rámci jedné sítě •Každý paket obsahuje informace o zdroji a cíli •Zodpovědnost za pořadí a správné doručení má vyšší vrstva (TCP) •Výběr optimální cesty v síti •IPv4 a IPv6 Struktura datagramu • http://www.postfixvirtual.net/ip.header.png Směrování •Hledání cesty v počítačové síti –Co možná nejefektivnější cesta pro doručení paketu •V rámci směrování se řeší komu paket poslat dál, nikoliv celá cesta (viz. traceroute) •Analogie při rozhodování na křižovatkách •Směrovače -> směrovací tabulky •Směrovací protokoly – RIP, OSPF Směrování •Statické –Směrovací tabulky jsou pevně dané •Dynamické –Směrovací tabulky se upravují podle topologie sítě –Síť musí poskytovat informace o svém stavu •Centralizovaně •Distribuovaně Traceroute •Program sloužící k analýze počítačové sítě •Cesta od startu k cíli a průchozí body •Při řešení problémů se směrováním •Hledání slabého/úzkého místa •Z důvodu bezpečnosti jsou odpovědi na požadavky traceroute zahazovány Dostupnost (ping) •Ověření dostupnosti cílového stroje •Reportuje odezvu cíle a zpoždění •Požadavky typu (ICMP pakety) –Echo request •Odpověď typu –Echo reply –Destination unreachable –Timeout NAT •Překlad adres, síťová maškaráda –Způsob adresování ve vnitřní sítí –Router přepisuje zdrojovou nebo cílovou adresu –Ve směrovací tabulce si udržuje informace o spojení a odpověď správně předá •Umožňuje připojit více počítačů za jednu veřejnou IP •Zvyšuje bezpečnost počítačů za NATem •Problémy s příchozím provozem (FTP, HTTPd) DNS •Hierarchický systém doménových jmen (www.google.com) •Převod IP adresy na doménové jméno •TCP/53, UDP/53 • SMTP – Simple mail transfer protocol •Protokol pro přenos zpráv el. pošty •Doručení zprávy do schránky příjemce –Vyzvednutí pomocí protokolu POP3 nebo IMAP •Jedna z nejstarších aplikací (1982) •SMTP funguje nad protokolem TCP/25 •K odeslání používáme poštovního klienta –Odeslání technicky zajistí SMTP server IPv4 •IP adresa – 4 oktety (0-255) •Maska sítě – adresa sítě –Rozdělení adresy sítě a adresy zařízení –Na jejím základě probíhá směrování –Zápis •10.0.0.0/8; 11111111.00000000.0000000.0000000 •Gateway/brána –Směrovač pro komunikaci s vnější sítí IPv6 •Protokol pro přenos paketů v síti •Náhrada stávajícího IPv4 protokolu •Změny: –Ohromný adresní prostor (128b adresa) •2128 adres – 3,4 x 1038 –Není potřeba NAT –Odpadá složitá struktura rozsáhlých sítí –Vyšší nároky na režii IPv6 adres –Zapamatovatelnost -> nutnost používat DNS –Bezpečnost - IPsec •Nejsou nutné drastické změny v aplikacích • IPv6 – struktura adres •Typicky se skládá z prefixu a adresy hosta (64b, 64b) –Adresa hosta je buď MAC adresa jeho síťové karty nebo je přiřazena jiným způsobem •Notace –Skupiny hexadecimálních číslic –2001:0db8:85a3:08d3:1319:8a2e:0370:7334 –2001:0db8:0000:0000:0000:0000:1428:57ab –2001:0db8:0000:0000:0000::1428:57ab –2001:0db8:0:0:0:0:1428:57ab –2001:0db8:0:0::1428:57ab –2001:0db8::1428:57ab –2001:db8::1428:57ab –Poslední část adresy může obsahovat IPv4 adresu •::ffff:12.34.56.78 (z důvodů smíšeného prostředí) –