Počítačové sítě a operační systémy  Jaromír Plhák, 10.04.2017PB169 Počítačové sítě a operační systémy  Jaromír Plhák xplhak@fi.muni.cz Protokoly pro přenos dat v síti Směrování PB169 Počítačové sítě a operační systémy  Snímek 2 z 59  Rodina protokolů TCP/IP (1) • Rodina protokolů pro komunikaci v počítačové  síti • Protokol – Množina pravidel určující význam a syntaxi zpráv  při komunikaci PB169 Počítačové sítě a operační systémy  Snímek 3 z 59  Rodina protokolů TCP/IP (2) • 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 PB169 Počítačové sítě a operační systémy  Snímek 4 z 59  Architektura TCP/IP (1) • Komunikace je rozdělena do vrstev – Analogicky, jako model ISO/OSI, ale vrstev je méně • Aplikační – DHCP, DNS, FTP, HTTP, Telnet • Transportní – TCP, UDP • Síťová – IP, ARP, ICMP, IPSec • Síťové rozhraní – Ethernet, Token ring… PB169 Počítačové sítě a operační systémy  Snímek 5 z 59  Architektura TCP/IP (2) PB169 Počítačové sítě a operační systémy  Snímek 6 z 59  Síťová vrstva (1) • Proč nám nestačí vrstva datového spoje? – Nemožnost vybudovat geograficky libovolně  rozsáhlé sítě – Neuniformní prostředí různých sítí • Chceme mít možnost vytvořit komunikační  kanál mezi libovolnými stanicemi v Internetu – Skrze více samostatných fyzických sítí (LANs) PB169 Počítačové sítě a operační systémy  Snímek 7 z 59  Síťová vrstva (2) PB169 Počítačové sítě a operační systémy  Snímek 8 z 59  Služby síťové vrstvy PB169 Počítačové sítě a operační systémy  Snímek 9 z 59  Důvody propojování sítí • Překonání technických omezení/překážek – Např. omezený dosah kabelových segmentů • Optimalizace fungování sítě – Snaha regulovat tok dat, zamezení zbytečného  šíření provozu • Zpřístupnění vzdálených zdrojů – Přístup ke vzdáleným serverům • Zvětšení dosahu poskytovaných služeb – Elektronická pošta, internetové telefonování atd. PB169 Počítačové sítě a operační systémy  Snímek 10 z 59  Propojování sítí dle vrstev (1) • Fyzická vrstva – opakovač (repeater) • Vrstva datového spoje – můstek (bridge),  přepínač (switch) • Síťová vrstva – směrovač (router) • Aplikační vrstva – brána (gateway) PB169 Počítačové sítě a operační systémy  Snímek 11 z 59  Propojování sítí dle vrstev (2) PB169 Počítačové sítě a operační systémy  Snímek 12 z 59  Modely propojování sítí • Přepínání okruhů (Circuit Switching) – Ustavení přímého fyzického spojení mezi odesílatelem a  příjemcem – Fyzická vrstva, využito ve spojovaných sítích • Přepínání paketu (Packet Switching) – Zaslání nezávislých datových jednotek (paketů) – Může být spojovaná i nespojovaná PB169 Počítačové sítě a operační systémy  Snímek 13 z 59  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 PB169 Počítačové sítě a operační systémy  Snímek 14 z 59  Adresace IP • Požadavek jednoznačné identifikace každého  zařízení připojeného k Internetu • Nutnost systematického přidělování adres za  účelem snadnějšího směrování • Každému zařízení/rozhraní přiřazena IP adresa – IPv4 adresa (32 bitů) vs. IPv6 adresa (128 bitů) PB169 Počítačové sítě a operační systémy  Snímek 15 z 59  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í) PB169 Počítačové sítě a operační systémy  Snímek 16 z 59  Typy adres • Individuální (unicast) adresy – Identifikace jediného odesílatele/příjemce • Broadcast adresy – Slouží pro zaslání dat všem možným  příjemcům na dané LAN • Skupinové (multicast) adresy – Slouží pro adresování skupiny příjemců, kteří  o data projevili zájem – Data směrovači rozeslána všem členům  skupiny • Výběrové (anycast) adresy (IPv6) – Data se doručí jen jedinému členu ze skupiny  příjemců – tomu, který je nejblíže PB169 Počítačové sítě a operační systémy  Snímek 17 z 59  Přidělování adres (1) • Classful Addressing – Rozdělení do tříd • Již se nepoužívá – Subnetting – Supernetting PB169 Počítačové sítě a operační systémy  Snímek 18 z 59  Maska sítě • Oba způsoby vyžadují mechanismus pro identifikaci  bitů, které identifikují síť • Maska sítě – 32‐bitový řetězec (v rámci IPv4) – Obsahuje 1 v těch bitech, které odpovídají síťové části  adresy, 0 tam, kde jde o relativní adresu uzlu v rámci sítě • IP adresa uzlu && maska sítě = adresa sítě PB169 Počítačové sítě a operační systémy  Snímek 19 z 59  Přidělování adres (2) • Classless Addressing – Zobecnění a rozšíření subnettingu/supernettingu – Zavádí zcela variabilní délku bloku adresy sítě • Identifikace sítě = adresa sítě a maska sítě – Adresy se přidělují hierarchicky • Umožnění agregace směrování • Snaha o minimalizaci velikosti směrovacích tabulek – Opodstatnění subnettingu zůstává PB169 Počítačové sítě a operační systémy  Snímek 20 z 59  NAT (1) • 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 – Využívá rezervované privátní adresy  – Ve směrovací tabulce si udržuje informace o  spojení a odpověď správně předá PB169 Počítačové sítě a operační systémy  Snímek 21 z 59  NAT (2) • 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) • Využívá překladové tabulky PB169 Počítačové sítě a operační systémy  Snímek 22 z 59  Struktura datagramu PB169 Počítačové sítě a operační systémy  Snímek 23 z 59  Fragmentace datagramů (1) • Datagram při cestě k cíli prochází různými  sítěmi – Všechny sítě (resp. využité protokoly linkové  vrstvy) nemohou přenášet data stejné velikosti • Maximum Transfer Unit (MTU) – Maximální velikost dat, které lze přenést využitým   protokolem nižší vrstvy – Určuje maximální velikost přenositelného IP  datagramu (Total size) PB169 Počítačové sítě a operační systémy  Snímek 24 z 59  Fragmentace datagramů (2) • Zdrojový uzel chce odeslat datagram, který je  větší než MTU výstupní linky • Směrovač přijme datagram, který je větší než  MTU výstupní linky • Lze řešit provedením tzv. fragmentace IP  datagramu • Původní datagram je rozdělen na několik menších  datagramů (tzv. fragmenty) • Každý fragment získá svou vlastní IP hlavičku – Stane se z něj nový, plnohodnotný datagram PB169 Počítačové sítě a operační systémy  Snímek 25 z 59  Fragmentace datagramů (3) • Fragmenty na cílovém uzlu jsou složeny do  původního datagramu – Před předáním transportnímu protokolu • Složení fragmentu do původního datagramu  vyžaduje – Identikaci datagramu, kterému fragmenty náleží – Znalost počtu fragmentů – Znalost pozice každého fragmentu v původním  datagramu PB169 Počítačové sítě a operační systémy  Snímek 26 z 59  Fragmentace datagramů (4) • Kde se fragmentace provádí? – Na zdrojovém uzlu – Na směrovači/směrovačích • Kde se provádí skládání fragmentu? – Pouze na cílovém uzlu – Ztráta fragmentu = ztráta datagramu PB169 Počítačové sítě a operační systémy  Snímek 27 z 59  IPv6 – motivace • Prostor IPv4 dochází nebo už došel (Asie) • Problémy IPv4 – Slabá podpora přenosu aplikací reálného času – Žádná podpora zabezpečené komunikace na  úrovni IP – Žádná podpora autokonfigurace zařízení – Žádná podpora mobility PB169 Počítačové sítě a operační systémy  Snímek 28 z 59  IPv6 • Změny – Ohromný adresní prostor • 128b adresa • 2128 adres – 3,4 x 1038 – Jednodušší hlavička – 40B – Podpora přenosů reálného času – značkování toku,  prioritizace provozu – Podpora zabezpečení přenosu – podpora autentizace,  šifrování a verifikace integrity přenášených dat – Podpora mobility – skrze tzv. domací agenty – Podpora autokonfigurace zařízení • Nejsou nutné drastické změny v aplikacích PB169 Počítačové sítě a operační systémy  Snímek 29 z 59  Směrování • Proces nalezení cesty v počítačové síti mezi dvěma uzly – Co možná nejefektivnější cesta pro doručení paketu – Cesta musí splňovat určité omezující podmínky – Je ovlivněna topologií a zátěží sítě • V rámci směrování se řeší komu paket poslat dál,  nikoliv celá cesta – Někomu blíže k cíli – A ten pak rozhoduje, co s paketem dál • Analogie při rozhodování na křižovatkách • Směrovače mají směrovací tabulky • Na směrování lze nahlížet jako na problém teorie grafů PB169 Počítačové sítě a operační systémy  Snímek 30 z 59  Cena komunikace • Určení ceny (ohodnocení) linky – metrika • Všechny linky mají stejnou cenu – Minimalizace ceny = minimalizace počtu skoků – Nejjednodušší, nejčastěji využívané • Cena linky = převrácená hodnota kapacity • Cena linky = zpoždění linky • Cena linky = využití linky • Cena linky = reálna cena (platba) za využití linky – Staticky přiřazeno administrátorem • Atd. PB169 Počítačové sítě a operační systémy  Snímek 31 z 59  Směrovací tabulka • Základní datová struktura – Sada ukazatelů, podle kterých se rozhoduje, co udělat  s kterým paketem – Obsahuje cesty k prefixům (počáteční IP adresa a blok) • Agregace záznamu – Hledá se nejdelší prefix, který vyhovuje požadavku PB169 Počítačové sítě a operační systémy  Snímek 32 z 59  Problém globálního pohledu • Získaní globální znalosti topologie celé sítě je  problematické – Když už se to podaří, není aktuální – Musí být lokálně relevantní • Lokalní představu o topologii reprezentuje  směrovací tabulka • Rozpor mezi lokalní a globalní znalostí může  způsobit – Cykly (černé díry) – Oscilace (adaptace na zátěž) PB169 Počítačové sítě a operační systémy  Snímek 33 z 59  Směrování – základní přístupy • Statické – Směrovací tabulky jsou pevně (ručně) dané – Jednodušší, ale málo flexibilní • Dynamické – Směrovací tabulky se upravují podle topologie sítě – Nutné pravidelné aktualizace směrovacích tabulek – Nezaručuje pořadí doručení – Síť musí poskytovat informace o svém stavu • Centralizovaně • Izolovaně • Distribuovaně PB169 Počítačové sítě a operační systémy  Snímek 34 z 59  Centralizované směrování • V síti je Routing Control Center (RCC) – Každý směrovač mu posílá zprávy o své situaci (stavu) – RCC informace sbírá, vypočte optimální cesty a rozešle  směrovačům jejich tabulky • Výhody – Globální informace = optimální řešení – Ulehčení práce směrovačů • Nevýhody – Špatně škáluje – nelze využít pro velké sítě – Pomalé – Při výpadku centra se přestane aktualizovat PB169 Počítačové sítě a operační systémy  Snímek 35 z 59  Izolované směrování • Neposílají se žádné informace o stavu sítě, každý se  rozhoduje sám za sebe • Příklady – Náhodná procházka – paket pošle do náhodně vybrané  linky – Horký brambor (hot potatoe) – paket pošle do linky s  nejkratší frontou – Záplava (flooding) – paket pošle do všech linek kromě té,  po níž přisel – Zpětné učení (backward learning) – učí se z procházejících  paketů • Směrovač se dozví, že příchozí linkou vede cesta k odesílateli  nanejvýš dané délky PB169 Počítačové sítě a operační systémy  Snímek 36 z 59  Distribuované směrování • Směrovací informace si vyměňují sousedé či malé  skupiny směrovačů • Na základě periodicky šířených informací se  (podle určitého algoritmu) vypočítávají mapy sítě • Mezi směrovači musí být dohoda o implementaci  určitého směrovacího algoritmu • Dostatečně pružné a robustní, vhodné i pro  rozlehlé sítě • Standardní přístup ke směrovaní v síti Internet PB169 Počítačové sítě a operační systémy  Snímek 37 z 59  Směrování v Internetu PB169 Počítačové sítě a operační systémy  Snímek 38 z 59  Transportní vrstva (1) • Proč nám nestačí síťová vrstva? – Nelze identifikovat aplikaci, které jsou data určena • Na každém uzlu by tak mohla jet jen jedna aplikace – Neřeší defekty sítě (ztrátu/znásobení datagramu,  zahlcení sítě, atp.) • Dva protokoly na transportní vrstvě – TCP – Transport Control Protocol – UDP – User Datagram Protocol PB169 Počítačové sítě a operační systémy  Snímek 39 z 59  Transportní vrstva (2) • Poskytuje služby pro aplikační vrstvu – Přijímá data odesílací aplikace, které transformuje do segmentu – Přijaté segmenty pak předává cílové aplikaci • Ve spolupráci se síťovou vrstvou zajišťuje doručení dat  (segmentů) mezi komunikujícími aplikacemi/procesy – S případným zajištěním spolehlivosti přenosu – Poskytuje jim logický komunikační kanál – Tzv. process‐to‐process delivery • Nejnižší vrstva poskytující tzv. end‐to‐end služby – Hlavičky generované na straně odesílatele jsou interpretovány  jen na straně příjemce – Směrovače vidí data transportní vrstvy jako payload přenášených paketů PB169 Počítačové sítě a operační systémy  Snímek 40 z 59  Transportní vrstva (3) PB169 Počítačové sítě a operační systémy  Snímek 41 z 59  Služby transportní vrstvy PB169 Počítačové sítě a operační systémy  Snímek 42 z 59  Adresace transportní vrstvy • Adresy na transportní vrstvě – čísla portů (ports, port  numbers) – Neboli adresy služeb – Identifikují odesílací aplikaci na zdrojovém uzlu (identifikován IP  adresou) – Identifikují přijímající aplikaci na cílovém uzlu (identifikován IP  adresou) • Identifikace portu 16bitovým číslem • Rozsah 0‐65535 PB169 Počítačové sítě a operační systémy  Snímek 43 z 59  Adresace – Multiplexing vs.  Demultiplexing PB169 Počítačové sítě a operační systémy  Snímek 44 z 59  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í PB169 Počítačové sítě a operační systémy  Snímek 45 z 59  Přednosti UDP • Nemá fázi navázání a ukončení spojení • Žádná nutnost ustavení spojení (přináší  zpoždění na začátku přenosu) • Žádná nutnost uchovávání stavových informací  na komunikujících stranách • Malá hlavička PB169 Počítačové sítě a operační systémy  Snímek 46 z 59  Zajištění spolehlivého přenosu (1) • K čemu je řízení chyb na transportní vrstvě, když  už je toto poskytováno linkovou vrstvou? – Linková vrstva poskytuje řízení chyb vždy pouze mezi  dvěma uzly na cestě, ne mezi koncovými stanicemi PB169 Počítačové sítě a operační systémy  Snímek 47 z 59  Zajištění spolehlivého přenosu (2) • Spolehlivost přenosu zajištěna mechanismem  potvrzování (acknowledgement) – Pakety číslovány tzv. sekvenčními čísly (Sequence Numbers, SEQ) – Pozitivní potvrzování (positive acknowledgement) • Potvrzení úspěšného přijetí paketu (přijato v pořádku) – Negativní potvrzování (negative acknowledgement) • Informace o neúspěšném přijetí/ztrátě datagramu (zopakuj) • V případě výskytu chyby jsou data opětovně  přeposlána – Mechanismy ARQ (Automatic Repeat reQuest) – Nutnost vypořádat se s duplicitami! PB169 Počítačové sítě a operační systémy  Snímek 48 z 59  TCP (1) • Transportní protokol poskytující spojovanou a  plně spolehlivou (= zajištěnou) službu – Pokud je to možné, odesílaná data budou přijímající  aplikací doručena kompletní a ve správném pořadí – Oproti UDP orientován na přenos proudu bytů • Multiplexing/demultiplexing a detekce chyb  stejně jako v UDP • Rozlišovaní aplikací pomocí portů (80, 21, 22) • TCP neřeší bezpečnost přenosu dat PB169 Počítačové sítě a operační systémy  Snímek 49 z 59  TCP (2) • Před začátkem přenosu nutnost ustavení spojení mezi  odesílací a přijímající stranou – Tzv. handshake před začátkem přenosu zahrnuje výměnu  všech potřebných parametrů – Spojení rozeznatelné jen na koncových uzlech (end‐to‐end  služba) • Směrovače tato spojení nevidí – Ustavené spojení možno využít pro plně duplexní  komunikaci • Řídící data přibalována do dat jdoucích opačným směrem  (Piggybacking) – Spojení může být pouze dvoubodové (point‐to‐point) • Komunikace mezi více partnery není podporována PB169 Počítačové sítě a operační systémy  Snímek 50 z 59  Přenos dat v rámci TCP • Aplikace předává TCP protokolu proud bytů, které  TCP segmentuje, opatřuje hlavičkou a předává  síťovému protokolu • Aplikacím poskytuje iluzi roury, která přenáší  jejich data PB169 Počítačové sítě a operační systémy  Snímek 51 z 59  TCP – segmentace dat • Aplikace TCP protokolu předává proud bytů • Síťová vrstva (IP protokol) očekává bloky dat – Nutnost tvorby bloku dat (segmentu) – Velikost segmentu omezena hodnotou Maximum  Segment Size (MSS) • Identifikuje maximální velikost uživatelských dat v segmentu  (ne velikost celého segmentu) – Segmenty následně opatřeny TCP hlavičkou a předány  síťovému protokolu – Číslovány nejsou bloky dat (segmenty), ale jednotlivé  přenášené bajty PB169 Počítačové sítě a operační systémy  Snímek 52 z 59  TCP hlavička segmentů PB169 Počítačové sítě a operační systémy  Snímek 53 z 59  Well‐known TCP aplikace PB169 Počítačové sítě a operační systémy  Snímek 54 z 59  TCP – ustavení spojení • Full‐duplexní přenos – Obě strany musí iniciovat spojení • Mechanismus známý jako třícestný handshake (three‐way handshake) PB169 Počítačové sítě a operační systémy  Snímek 55 z 59  TCP – ukončení spojení • Iniciováno jednou z komunikujících stran • Spojení musí být uzavřeno oběma stranami PB169 Počítačové sítě a operační systémy  Snímek 56 z 59  TCP – řízení chyb • Během přenosu je nutno detekovat poškozené,  ztracené, duplikované a out‐of‐order segmenty • TCP mechanismy pro zajištění spolehlivého  přenosu – Kontrolní součty (detekce poškozených segmentů) – Potvrzování přijatých segmentů (acknowledgements)  • Detekce ztracených (na straně příjemce), duplikovaných a  out‐of‐order segmentů • Zajištěno mechanismem pozitivního potvrzovaní • Využito kumulativní potvrzování – Timeouty • Detekce ztracených segmentu (na straně odesílatele) PB169 Počítačové sítě a operační systémy  Snímek 57 z 59  Ztráta paketu PB169 Počítačové sítě a operační systémy  Snímek 58 z 59  Ztráta potvrzení PB169 Počítačové sítě a operační systémy  Snímek 59 z 59  Timeouty • Timeout = doba, po kterou se čeká na potvrzení  odeslaného segmentu • Založeno na tzv. Round‐Trip Time (RTT) • Čas potřebný pro cestu segmentu od odesílatele k  příjemci a zpět • Typicky je timeout roven dvojnásobku RTT