MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY
Výuková interaktivní animace TCP/IP síťové komunikace BAKALÁŘSKÁ PRÁCE
Brno, jaro 2011
Marek Menšík
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně dne 23. května 2011
Vedoucí práce: RNDr. Tomáš Rebok, Ph.D.
Marek Menšík
Poděkování Zde bych chtěl poděkovat vedoucímu mé bakalářské práce, panu RNDr. Tomášovi Rebokovi, za jeho ochotu, hodnotné rady a čas strávený nad touto prací.
Shrnutí Cílem této práce je poskytnout studentům interaktivní počítačovou animaci pro lepší a rychlejší pochopení síťové komunikace vyučované v předmětech na Fakultě informatiky. Rovněž je cílem poskytnout vyučujícím nástroj pro snazší a názornější výuku.
Klíčová slova Hlavička, TCP a UDP protokol, segment, paket, rámec, ISO/OSI model
Obsah 1 Úvod .................................................................................................................................................... 1 2 ISO/OSI model ..................................................................................................................................... 2 2.1 Vrstvy ISO/OSI modelu ................................................................................................................. 3 2.1.1 Aplikační vrstva (Application Layer - L7)................................................................................. 3 2.1.2 Prezentační vrstva (Presentation Layer - L6) .......................................................................... 4 2.1.3 Relační vrstva (Session Layer - L5) .......................................................................................... 4 2.1.4 Transportní vrstva (Transport Layer - L4) ............................................................................... 5 2.1.5 Síťová vrstva (Network Layer - L3) ........................................................................................ 10 2.1.6 Spojová vrstva (Data Link Layer - L2) ................................................................................... 12 2.1.7 Fyzická vrstva (Physical Layer - L1) ....................................................................................... 13 3 Analýza síťové komunikace ............................................................................................................... 15 3.1 Zadání webové adresy a DNS resolving ..................................................................................... 15 3.2 Ustanovení spojení s hostitelem požadované stránky ............................................................... 16 3.3 Vytvoření požadavku na stránku a jeho enkapsulace ................................................................ 17 3.4 Manipulace s daty na přepínači a směrovači ............................................................................. 19 4 Výuková interaktivní animace ........................................................................................................... 20 4.1 Důvody pro vytvoření a očekávaný přínos ................................................................................. 20 4.2 Původní návrh animace, její realizace a výsledek ...................................................................... 20 4.3 Představení rozložení animace a její navigace ........................................................................... 21 4.4 Možná rozšíření do budoucna .................................................................................................... 21 5 Závěr .................................................................................................................................................. 22 6 Použitá literatura ............................................................................................................................... 23
1. Úvod 1 Úvod Běžný, počítačově gramotný uživatel Internetu málokdy tuší, co se vše odehrává v rámci technologie, která mu umožňuje komunikovat uvnitř této celosvětové sítě. Procesy jako prohlížení stránek nebo hraní her vyžadují různé parametry pro nastavení síťové komunikace. Pro průměrného uživatele však není nutné znát technologické pozadí komunikace přes Internet, ale pro vysokoškolské studenty informatiky je to nevyhnutelné. Především pro ně je určena výuková animace síťové komunikace, která bude představovat výstup této bakalářské práce. Na začátku teoretické části představím jednotlivé vrstvy síťového ISO/OSI modelu, které umožňují popsat veškeré prvky síťové komunikace, od aplikací, přes kódování, až po světelné signály na optických linkách. Tento model zjednodušuje síťovou komunikaci. Jde o jakousi pomůcku, která se dá použít například při řešení problémů se sítí a konfigurování protokolů. V připravované výukové animaci slouží též jako popisný rámec procesů probíhajících při síťové komunikaci. Samostatnou kapitolu tvoří analýza síťové komunikace mezi uživateli Internetu, která představuje simulaci zadání internetové adresy do prohlížeče, cestu tohoto „dotazu“ k serveru se stránkou a její následné zobrazení. Obsahuje tak popis fungování nejdůležitějších procesů, které probíhají na jednotlivých vrstvách ISO/OSI modelu předloženého v úvodní části práce. Následující kapitola se věnuje již popisu samotné výukové animace, důvodům jejího vytvoření, jejímu návrhu a očekávaným přínosům. Taktéž tato kapitola zahrnuje základní manuál pro její použití, tedy popis uživatelského rozhraní animace a návrhy na její možné zdokonalení v budoucnosti. V rámci praktické části bakalářské práce jsem vytvořil samotnou výukovou interaktivní animaci TCP/IP síťové komunikace, která názorně zobrazuje průchod dat sítí popsaný v teoretické části práce. Animace je vytvořena za pomocí vývojového nástroje Adobe Flash CS5, který představuje vhodné prostředí pro grafickou práci i programovaní, které jsou nutné při vytváření tohoto typu animací.
1
2. ISO/OSI model 2 ISO/OSI model K pochopení celé problematiky síťové komunikace je nutné představit si ISO/OSI model model, který je schopen popsat veškeré dění na síti, od zadání příkazu L7 Aplikační vrstva uživatelem, až po signály putující kabelem či vzduchem. Pro tento účel poslouží referenční model ISO/OSI navržený Mezinárodní organizací pro L6 Prezentační vrstva Relační vrstva normalizaci (International Organization for Standardization) sídlící v L5 Ženevě. Tento model zobrazuje a zjednodušuje řešení komunikace L4 Transportní vrstva v počítačových sítích. Je v něm názorně vyobrazeno sedm vrstev, L3 Síťová vrstva kterými data při této komunikaci procházejí. Ve skutečnosti se nedá L2 Spojová vrstva přesně říci, kde jedna vrstva končí a další začíná. Jde pouze o jakousi L1 Fyzická vrstva pomůcku, která se dá použít při řešení problémů se sítí, konfiguracích protokolů a jiných účelů týkajících se síťové komunikace. [2] Většinou všechny úlohy začínají na aplikační vrstvě, kde je nějakou svou činností vytvoří uživatel. Po jejich odeslání musí informace projít skrze všechny vrstvy ISO/OSI modelu, kde se postupně upravuje a přidávají se k ní další, režijní data. Jakmile dorazí na nejspodnější, fyzickou vrstvu, je informace poslána po přenosovém médiu skrze síť k jejímu adresátovi, kde se celá akce rozbalování a úprav dat děje opačně, tedy od fyzické vrstvy nahoru k vrstvě aplikační. Laicky řečeno: každý počítač, směrovač či server si můžeme představit jako tento model, na jehož vrstvách se komunikace odehrává a my si ji můžeme ukázat a porozumět ji.
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
L7 L6 L5 L4 L3 L2 L1
Přenosové médium
2
2.1 Vrstvy ISO/OSI modelu 2.1 Vrstvy ISO/OSI modelu V následující kapitole bude blíže rozebrána každá z vrstev ISO/OSI modelu, bude popsáno, k čemu slouží a budou zmíněny jejich nejdůležitější funkce.
2.1.1 Aplikační vrstva (Application Layer - L7) Jedná se o nejvyšší vrstvu OSI modelu, která se stará o to, aby aplikace měly přístup k síťové komunikaci na nižších vrstvách a byly mezi sebou schopny komunikovat. Aplikace komunikují za pomocí protokolů, které pracují nad určitými porty, jež aplikaci v síti jednoznačně identifikují (o tom podrobněji až na transportní vrstvě). Aplikační vrstva má schopnost iniciovat spojení, k čemuž využívá nižší vrstvy. Je vlastně takovým prostředníkem mezi hardwarem a uživatelem, který se složitostí komunikace nechce zabývat.
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
Příklad: Internetové stránky v internetovém prohlížeči používají pro komunikaci port č. 80 (alternativně i 8080), na kterém komunikuje protokol http (starající se mimo jiné o zobrazování stránek). Pokud chce uživatel nějakou stránku vidět, zadá adresu, prohlížeč pošle dotaz na server a ten stránku pošle zpět. Vše obstará protokol HTTP, přesněji HTTP GET dotaz klienta a HTTP RESPONSE odpověď serveru. Odpovězená stránka je ve formě textu (HTTP kódu) s případnými obrázky a jinými multimédii, které aplikace prohlížeče, naslouchající na portu 80, poskládá dohromady a stránku zobrazí. Odchozí požadavek (HTTP GET) Zdrojový port: 1013 Cílový port: 80
Uživatel
Server Odpověď na požadavek (HTTP RESPONSE) Zdrojový port: 80 Cílový port: 1013
Další protokoly: HTTP (port 80), DHCP (porty 67, 68), IMAP (port 143), POP3 (port 110), SMTP (port 25), SSH (port 22), Telnet (port 23), FTP (port 21), NTP (port 123).
3
2.1 Vrstvy ISO/OSI modelu 2.1.2 Prezentační vrstva (Presentation Layer - L6) Prezentační vrstva se zabývá strukturou dat a transformuje je do tvaru, který používá architektura daného systému, což zahrnuje konvertování, transformace, šifrování, převádění abeced, atd. Je odpovědná za doručení informace aplikační vrstvě k dalšímu zpracování či rovnou k zobrazení.
Protokoly: AFP, ASCII, EBCDIC, LPP, atd.
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
2.1.3 Relační vrstva (Session Layer - L5) Před jakoukoliv komunikací je nejprve potřeba „vytočit“ příjemce, tj. navázat s ním spojení – relaci. Toto spojení mezi koncovými účastníky vznikne na úrovni relační vrstvy. Hlavními úkoly relační vrstvy je řízení a synchronizace tohoto dialogu.
Řízení dialogu
Řízení dialogu mezi dvěma koncovými uzly je jedna z hlavních funkcí relační vrstvy. Je totiž nežádoucí, aby oba uzly „hovořily“ najednou, což je vyřešeno předáváním pověření k přenosu dat – data token. Token si lze představit jako štafetový kolík s tím, že kdo jej vlastní, může vysílat, přičemž relační vrstva disponuje prostředky, jak token poslat dál, či si jej vyžádat. Rozlišují se tři druhy řízení dialogu: Plně duplexní (full duplex) – Obě strany mohou vysílat i přijímat data zároveň. Klasickým příkladem je spojení telefonního hovoru, kdy oba účastníci mohou hovořit i poslouchat. Polo duplexní (half duplex) – Obě strany mohou vysílat i přijímat, avšak nikoliv zároveň. Právě zde se využívá mechanismu předávání pověření k přenosu dat – tzv. data token (viz výše). Příkladem mohou být vysílačky, kde po stisknutí tlačítka jeden mluví a druhý poslouchá. Jednosměrné (simplexní) – Simplexové spoje se v telefonních sítích nevyskytují. Jde o princip, kdy existuje vysílač a jeden nebo více přijímačů, které vysílat neumějí. Příkladem jsou televizory, GPS navigace či řízené rakety.
Synchronizace dialogu Relační vrstva vkládá do vysílaných dat takzvané synchronizační body (checkpoints), které jsou zapotřebí tehdy, pokud je relační vrstva příjemce zahlcena daty z vrstvy transportní, nestíhá je zpracovávat a může docházet k jejich ztrátě. Proto si relační vrstva příjemce může vyžádat opakované odvysílání dat, které nestihla zpracovat od určitého synchronizačního bodu. Takto dojde k synchronizaci obou uzlů a vysílač může začít dále „mluvit“ tam, kde příjemce zapomněl poslouchat.
Protokoly: PPTP, RTCP, AppleTalk Session Protocol, SSL.
4
2.1 Vrstvy ISO/OSI modelu 2.1.4 Transportní vrstva (Transport Layer - L4) Transportní vrstva poskytuje velké množství služeb. Zajišťuje mimo jiné transparentní a spolehlivý přenos dat mezi koncovými uzly. Umí vytvářet, udržovat a ukončovat transportní spojení (spojově orientovaná služba), k čemuž využívá například protokol TCP (Transmission Control Protocol), nebo přenášet bloky (nespojově orientovaná služba), kde naopak využívá protokol UDP. Umožňuje také více aplikacím komunikovat najednou, i když jsou na stejném zařízení. K datům, která odesílá, přidává hlavičku zaručující identifikaci dat, která pak má na přijímací straně za úkol předat je správným aplikacím. [3]
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
TCP hlavička
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Source port Destination port Sequence number Acknowledgment number Data Reserved Flags Window size offset Checksum Urgent pointer Options Padding
Data
Segment TCP header
Hlavička TCP protokolu je 20bajtová informace, která je na transportní vrstvě přidávána k datům, pocházejícím z vyšší, relační vrstvy. Obsahuje informace, podle kterých protokol pozná, odkud data jdou, kam je má doručit, v jakém pořadí, atd. [5]
Data
Source port (zdrojový port) – číslo portu aplikace, ze které jsou data odeslána. Destination port (cílový port) – číslo portu aplikace na cílovém uzlu. Sequence number (sekvenční číslo) – důležité při segmentaci (viz níže) a taky při ustanovení spojení (např. Three-way handshaku). Acknowledgment number (potvrzovací číslo) - důležité při segmentaci (viz níže) a taky při ustanovení spojení Flags (příznaky) – nastavují se v různých situacích. Jsou to URG, ACK, PSH, RST, SYN, FIN. Window size (velikost okna) – značí momentální maximální velikost okna jako množství dat v oktetech, které je potvrzováno najednou. Checksum (kontrolní součet) – součet hlavičky sloužící jako její kontrola. Options (volby) – pole proměnné délky pro volitelné parametry. Padding – doplnění nulových bitů tak, aby byla hlavička dělitelná 32 beze zbytku.
Aplikace používající TCP jako přenosový protokol: FTP, SMTP, HTTP, SAP
5
2.1 Vrstvy ISO/OSI modelu Ustanovení spojení (Three-way handshake) Před přenosem dat je třeba ustanovit transportní spojení, kdy si oba uzly vymění sekvenční a potvrzovací číslo. Tuto výměnu obstará protokol TCP pomocí metody three-way handshake, která přenastavováním příznaků SYN a ACK v TCP hlavičce spojení ustanoví: krok 1.: Klient pošle SYN paket (seq.n.=x, ack.n.=0) krok 2.: Server odpoví SYN+ACK (seq.n.=y, ack.n.=x+1) krok 3.: Klient potvrdí ACKem (seq.n.=x+1, ack.n.=y+1) Client
Server
Send SYN Tim Receive SYN+ACK e Send ACK
Receive SYN Send SYN+ACK
SYN (synchronize) – žádost o synchronizaci sekvenčních čísel
Receive ACK
ACK(acknowledgment) – potvrzení o přijetí zprávy
Established
Ukončení spojení (Four-way handshake) Při ukončení spojení se použije takzvaný čtyřcestný handshake nastavující příznaky FIN a ACK. [3] Client
Server
Send FIN Tim e
Receive FIN Send ACK
SYN (synchronize) – žádost o synchronizaci čísel sekvence
Send FIN
ACK (acknowledgment) – potvrzení o přijetí zprávy
Receive ACK
FIN (final) – žádost o ukončení spojení
Receive ACK Receive FIN Send ACK
Terminated
6
2.1 Vrstvy ISO/OSI modelu Funkce a služby TCP protokolu Hlavními funkcemi TCP protokolu na této vrstvě je adresace portů, segmentace a znovusestavení segmentů a kontrola chyb. Rovněž je třeba kontrolovat síť, což obstarají funkce pro řízení toku a zahlcení.
Adresace portů (Port Addressing) Data z transportní vrstvy jsou nasměrována ke správným aplikacím pomocí unikátních čísel - portů, pod kterými každá aplikace komunikuje a je podle nich v počítači jednoznačně identifikovatelná. Protokoly TCP i UDP mají v hlavičce nastaven cílový port, podle kterého poznají, které aplikaci mají data na cílovém uzlu předat. Naopak, když data do transportní vrstvy přijdou z vyšší vrstvy, mají nastaven port zdrojový, tedy identifikaci aplikace, ze které data pocházejí. Porty se podle použití dělí na: Well-known – 0 až 1023 - tyto porty jsou vyhrazeny pro nejběžnější služby, jakými jsou například FTP, SMTP, DNS, HTTP, POP3, IRC. Registered ports – 1024 až 49151 – porty v tomto rozmezí si je možné registrovat u organizace ICANN1, která má rozdělování portů na starost. Příklad MS SQL, WAP MMS, VOIP. Dynamic ports – 49152 až 65535 – určeny pro dynamické přidělování a soukromé využití.
Segmentace a znovusestavení (Segmentation and reassembly) Segment má stanovenu maximální možnou velikost, a proto transportní vrstva, konkrétně protokol TCP, rozděluje data na segmenty (na obrázku), a každému z nich přiřadí do hlavičky sekvenční číslo. Toto číslo pak umožňuje příjemci složit přijaté segmenty ve správném pořadí a případně zjistit, zda nějaký nechybí. [3]
Přenášená aplikační data TCP hlavička
TCP hlavička
Data TCP hlavička
Data
Data TCP hlavička
Data
Detekce chyb (Error Checking) Přijatá data, která přišla z nižší, síťové vrstvy, mohou být neúplná nebo obsahovat chyby, a proto je zapotřebí je zkontrolovat. Přestože kontroly hlaviček probíhají i na ostatních vrstvách, zde na transportní vrstvě probíhá kontrola všech dat.
1
7
2.1 Vrstvy ISO/OSI modelu Řízení toku (Flow Control) TCP protokol se snaží kontrolovat a upravovat množství a tempo vysílání dat tak, aby všechna odeslaná data byla příjemcem spolehlivě přijata a odesílatel je nemusel posílat znovu. Používá k tomu nastavení pole velikosti okna v hlavičce, jehož délka (0-65535 bajtů) je nastavena během ustavování spojení (three-way handshake). Velikost okna určuje příjemce, vysílající se musí přizpůsobit. Máme například výkonného odesílatele, síť a slabšího příjemce. Tento příjemce disponuje bufferem, do kterého si přijatá a zatím nezpracovaná data ukládá a skrz TCP posílá odesílateli informace, zda má posílat pomaleji či rychleji, čímž uplatňuje řízení toku.
Odesílatel
Síť
Příjemce
Řízení zahlcení (Congestion Control) Síť neumí sama říct, že je zahlcená, a tak je množství nebo naopak nedostatek potvrzení o přijetí2 indikátorem jejího stavu. TCP protokol disponuje mnohými technikami, které mu umožňují efektivní využití sítě. Při této řízení zahlcení pak využívá odesílatel přijatá potvrzení o přijetí k analýze aktuálního stavu sítě.
Odesílatel
Síť
Příjemce
2
Potvrzením o přijetí, že zpráva byla přijata v pořádku, se rozumí zaslání potvrzovacího paketu adresátem s nastaveným příznakem ACK = 1
8
2.1 Vrstvy ISO/OSI modelu Protokol TCP a spojově orientované spojení (Connection-oriented communication) Protokol TCP je spojově orientovaný protokol, což znamená, že výměně dat předchází ustanovení logického spojení mezi oběma koncovými uzly. Poskytuje potvrzení po každém úspěšném doručení a automaticky žádá o retransmisi v případě ztráty dat či při detekci chyby přenosu. [5]
Protokol UDP a nespojově orientované spojení (Connectionless-oriented communication) Protokol UDP je téměř protikladem k protokolu TCP. Je nespojově orientovaný, což znamená, že se před začátkem vysílání dat neustanovuje spojení s příjemcem a data se začnou rovnou posílat na jeho adresu. Nevytváří žádnou zbytečnou režii a toleruje ztrátu dat, díky čemu dokáže data odbavit rychleji než protokol TCP, a proto se využívá ve specifických oblastech komunikace, kde nezáleží na doručení všech dat, ale na jejich množství a rychlosti doručení. Hlavička UDP protokolu je navíc ve srovnání s hlavičkou TCP protokolu velmi malá, neobsahuje zbytečnou režii a usnadňuje jeho velmi rychlé odbavení. S nedostatky a chybějícími funkcemi UDP protokolu se musí vypořádat až aplikace.
TCP
UDP
Použití:
Časově nekritické aplikace.
Aplikace upřednostňující stálý přísun dat nad integritou, např. online hry.
Vysílání:
TCP potřebuje tři pakety k ustanovení spojení, než začne vysílat data.
UDP je jednoduchý, žádné ustanovení spojení, rovnou vysílá data na adresu příjemce.
Ukládá si data a podle čísel v hlavičce je uspořádává.
Nezachovává pořadí.
Spojově orientovaný. Zpráva putuje od jednoho počítače ke druhému a je potvrzena.
Nespojově orientovaný. Zpráva je odvysílána bez ustanovení spojení. Na potvrzení se nečeká.
Vysoká režie, obsáhlá hlavička, v porovnání s UDP je pomalejší.
Malá režie, jednoduchá hlavička, v porovnání s TCP je rychlejší.
Potvrzení o přijetí a žádost o opětovné zaslání. Spolehlivě doručí všechny pakety a to i ve správném pořadí.
Mohou se ztrácet pakety, žádné potvrzování ani přeposílání. Není jasné, zda data vůbec dojdou.
Uspořádané doručení, kontrola chyb, kontrola toku.
-
20 bytů
8 bytů
Protokoly:
HTTP(s), FTP, SMTP, Telnet, ...
DNS, DHCP, RIP, VOIP, ...
Aplikace:
Internetové prohlížeče, přenos souborů, zasílaní mailů
Real-time přenosy, streamování audia/videa, online hry
Příjem dat:
Zprávy:
Režie/rychlost:
Spolehlivost:
Funkce: Hlavička:
9
2.1 Vrstvy ISO/OSI modelu 2.1.5 Síťová vrstva (Network Layer - L3) Základní úlohou síťové vrstvy je přenést data bez ohledu na to, jakého jsou typu. Protokoly této vrstvy definují strukturu a zpracování paketu pro jeho přenos od jednoho uzlu ke druhému. Asi nejdůležitějším prvkem síťové vrstvy jsou IP adresy. Ty mají funkci logických identifikátorů počítačů v síti.
Ipv4 hlavička (Internet Protocol version 4)
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
Segment
Packet IPv4 header
Ipv4 je nejpoužívanější síťový protokol. Je rychlý a flexibilní, nespojově orientovaný, přepravuje data bez záruky doručení a zachování pořadí. Má za úkol zabalit segment (nebo datagram) transportní vrstvy a přidat mu svou hlavičku, čímž vytvoří tzv. paket.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Header Version TOS Total length length Identification Flags Fragment offset Time to live Protocol Header checksum Source IP Address Destination IP Address Options Data
Version (verze) – verze použitého IP protokolu, například hodnota 4 pro IPv4 nebo 6 pro IPv6. Header length (délka hlavičky) – minimální velikost 20 bajtů, maximální 60 bajtů. TOS (typ služby) – nastavuje například prioritu hlasových dat nad daty obyčejnými. Total length (celková délka) – celková délka segmentu/datagramu včetně IP hlavičky. Flags (příznaky) – příznaky pro fragmentaci. Time to live – doba po které bude paket zahozen pro prevenci nekonečného bloudění paketu v síti. Protocol (protokol) – protokol přenášený segmentem/datagramem (1-ICMP, 6-TCP, 17-UDP, …) Header checksum (součet hlavičky) – kontrolní součet zajišťující integritu hlavičky. Source IP Address – IP adresa odesílatele Destination IP Address – IP adresa příjemce Options (volby) – pole proměnné délky určené pro různá měření, debugging a bezpečnostní účely.
10
2.1 Vrstvy ISO/OSI modelu Směrování paketů (Routing, Packet Forwarding) Jedná se o proces vybírání cesty na síti, skrz kterou se budou data posílat. Pakety je potřeba správně doručit podle jejich cílové IP adresy uvedené v hlavičce. Tyto pakety zpočátku dorazí na směrovač jako rámce (frames) zabalené z nižší vrstvy, tedy s L2 hlavičkou, která je zde na síťové vrstvě zahozena. Každý paket je na směrovači samostatně obsloužen, což zahrnuje proces, ve kterém směrovač zjistí z hlavičky paketu na jeho cílovou IP adresu a následně ve své směrovací tabulce, kde má uloženy adresy všech sousedních směrovačů, vyhledá a určí další (next-hop) směrovač, kam dále paket odešle. Celkem má směrovač tři možnosti, jak s paketem naloží: buď najde odpovídající záznam ve své tabulce a pošle jej dalšímu směrovači nebo je oním posledním směrovačem před cílovým uzlem a odešle jej rovnou adresátovi. Třetí možnost zahrnuje zahození paketu, což udělá v případě, že ve své směrovací tabulce nenalezne další cestu kam paket poslat. Směrování se dělí na kategorie podle úprav směrovací tabulky a to na: Statické směrování – adresy ve směrovacích tabulkách jsou zadány manuálně a při samotném směrování se nijak nemění. Dynamické směrování – směrovací tabulky se mění podle způsobu výměny dat mezi jednotlivými zařízeními sítě. Ta se totiž může měnit například výpadkem nebo přidáním nových zařízení.
Adresy protokolu IPv4 IP adresa je číslo jednoznačně identifikující počítač v síti. Ve verzi IPv4 (IP – Internet Protokol) je to 32bitové číslo zapsané jako čtyři oktety oddělené tečkami, např.: 192.168.1.1. Jeden oktet (byte) může nabývat hodnot 0 až 255, tedy IP adres od 0.0.0.0 až po 255.255.255.255 je celkem 2^32 = 4 294 967 296. Rozdělování a rezervace IP adres zajišťuje organizace IANA a u množství čtyř miliard adres by se mohlo zdát, že musí stačit na dostatečně dlouhou dobu, avšak poslední bloky IP adres už byly dávno rozděleny, jen se teď pečlivěji zachází s jejím přerozdělováním.
Adresy protokolu IPv6 Novější, šestá verze protokolu IP, už má délku 128 bitů, což je oproti IPv4 až absurdně velký adresní prostor. Zapisuje se jako osm skupin po čtyřech hexadecimálních číslicích, např.: fe08:0db8:e547:9a79:34ce:f5d6:fe1e:8329. Přináší také standardně některé funkce, které byly v IPv4 časem doimplementovány. Jedna z funkcí je například bezstavová konfigurace adres, což znamená, že si počítač po připojení do sítě automaticky vyžádá její nastavení a směrovač mu odpoví paketem s konfiguračními parametry síťové vrstvy. Z dalších například standardně implementovaný multicast nebo možnost posílat větší pakety, tzv. jumbogramy. [7]
Protokoly: IPv4, IPv6, IPX, AppleTalk, atd.
11
2.1 Vrstvy ISO/OSI modelu 2.1.6 Spojová vrstva (Data Link Layer - L2) Spojová vrstva kontroluje přístup k přenosovému médiu, jako jsou kabely, optika nebo vzduch a připravuje pakety přicházející ze síťové vrstvy na přenos po těchto médiích. Důležitým prvkem je zde MAC adresa, což je fyzický identifikátor uzlu v síti. Spojová vrstva se dělí na dvě podvrstvy: Media Access Control (MAC) – přiřazuje rámcům adresy, stará se o identifikaci začátku a konce rámce a řídí přístup k médiu. Logical Link Control (LLC) – kontroluje chyby vzniklé při přenosu dat (parita, Hammingův kód, CRC) a má na starosti de/multiplexing (kombinování datových toků do jednoho signálu)
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
Hlavička ethernetového rámce (Ethernet Frame header) Ethernetový rámec se skládá z hlavičky (header), dat (zabaleného paketu) a tzv. ocásku (trailer). Na každém síťovém prvku, ať už je to L2 směrovač nebo třeba switch, je třeba rozhodnout, kam dále rámec poputuje. Tento interface je zjištěn přečtením informace z hlavičky (Destination MAC) a porovnáním s MAC tabulkou sousedních zařízení, kterou si každý switch (nebo L2 směrovač) udržuje. Následně je vytvořena nová hlavička s novou adresou a spolu s trailerem je vytvořen nový rámec připravený k přenosu.
Frame Header Preamble + Destination Source MAC SOF MAC 8 bytes
6 bytes
Packet Etherype or length
Data
46-1500 bytes 64 bytes – minimum frame size
6 bytes
2 bytes
Trailer Interframe FCS gap 4 bytes
12 bytes
Preamble + SOD (preambule a začátek rámce) – 8 bajtů značících začátek rámce. Destination and Source MAC Address – fyzická MAC adresa koncového a zdrojového uzlu. Type or length – číslo označující typ protokolu použitého ve vyšší vrstvě nebo délku pole s daty. FCS (Frame check sequence) – kontrolní součet pro rámec. Interframe gap (mezirámcová mezera) – zařízení generuje mezeru mezi jednotlivými rámci o minimální délce 96 bitů, což je např. pro 100Mbit/s Ethernet čas 960 ns.
MAC adresa Fyzické identifikace síťového adaptéru počítače, což může být například síťová nebo Wi-Fi karta. MAC adresa má 6 oktetů (48 bitů), kde první tři z nich označují výrobce adaptéru.
12
2.1 Vrstvy ISO/OSI modelu 2.1.7 Fyzická vrstva (Physical Layer - L1) Fyzická vrstva zajišťuje fyzickou komunikaci, kterou umí jak aktivovat a udržovat, tak i deaktivovat. Převádí bity, reprezentující rámce, na elektrické, optické či jiné signály, které pak posílá po komunikačním médiu. Je schopna různých kódování, přenosů a definuje standardy kabelů a topologií.
Potřeba zavedení kódování
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
Oba komunikující uzly se musí před vysíláním synchronizovat pomocí synchronizačního signálu a tato synchronizace by se měla udržovat po celou dobu jejich komunikace. Synchronizace se dá představit jako sekundová ručička, která by měla tikat na obou uzlech stejně. Pokud každá tiká jinak, může dojít ke špatnému přečtení odvysílané informace. Synchronizační hodiny vysílače a odvysílaný signál
1
0
0
1
0
1
1
1
Synchronizační hodiny přijímače 1 1 0 0 0 1 1 0 0 1 1 1 1 1 a přijatý signál
Příkladem kódování bez synchronizace může být kód NRZ (Non Return to Zero). Toto kódování se nadá použít pro synchronní přenosy dat. Naopak zástupcem kódu spojujícího datový signál se signálem synchronizačním je kód Manchester. Binární data
1
0
0
1
0
1
1
1
NRZ
Manchester
13
2.1 Vrstvy ISO/OSI modelu Médium (medium) Signály se mohou přenášet nejen po vodičích, ale i vzduchem. Při volbě přenosového média často záleží na vzdálenosti koncových uzlů, předpokládané zátěži média nebo prostředí, ve kterém bude médium instalováno. Médií existuje celá řada. Zde jsou zmíněny nejznámější z nich.
Kroucená dvoulinka (Twisted pair) Klasický síťový kabel používaný v mnoha domácnostech. Nejpoužívanější varianty jsou Category5e s přenosovou rychlostí 1000Mbps a Category6 s rychlostí 1000Mbps a více. Kroucením kabelu je dosaženo lepších elektrických vlastností kabelu. Je velmi levný a dá se použít maximálně na 100 metrů.
Koaxiální kabel (Coaxial cable) Elektrický kabel složený ze dvou stíněných vodičů, dnes již se slabým výskytem v počítačových sítích. Používá se spíše k přenosu televizního signálu a k napájení antén. Tlustá verze kabelu, používaná pro Ethernet, dokáže přenést signál až na vzdálenost 500 metrů. [8]
Optické vlákno (Optical fiber) Tenké optické médium, vyráběné z různých druhů skla a plastů, schopné přenášet data na velké vzdálenosti pomocí světelných paprsků. Je odolné proti elektromagnetickému záření a má velmi malou ztrátovost. Masivnější verze optických kabelů bývají pokládány na mořské dno pro objemné přenosy dat mezi kontinenty.
14
3. Analýza síťové komunikace 3 Analýza síťové komunikace Síťová komunikace může být někdy velmi složitá a ne vždy dojde k bezchybné, bezpečné a rychlé výměně informací mezi oběma uzly. V následujících řádcích bude pomocí vrstev ISO/OSI modelu analyzována síťová komunikace, která bude simulovat zadání internetové adresy do prohlížeče.
3.1 Zadání webové adresy a DNS resolving Uživatel zadá požadovanou adresu, jinak též doménové jméno, do adresního řádku prohlížeče. Ten však podle tohoto jména nepozná, kam má adresu směrovat a pokud už dotazovanou stránku nemá uloženou v paměti, musí jméno odeslat DNS (Domain Name System) serveru. DNS servery jsou hierarchicky uspořádané databáze sloužící jako převodníky mezi doménovými jmény a IP adresami, za pomoci kterých už počítač pozná, kam má dotaz směrovat. Nechť má požadovaná adresa tvar kupříkladu www.address.com. Hned první DNS server, přes který dotaz projde, je většinou lokální a patři internetovému poskytovateli (ISP DNS Server). Ten však adresu nezná, ale díky znalosti adres kořenových DNS serverů se postará o veškerou komunikaci při hledání IP adresy. Pošle dotaz kořenovému DNS serveru (Root DNS Server), který jej podle domény nejvyšší úrovně (.com, .cz., .eu) odkáže na další, Intermediate DNS server. Tento server však odpověď také nezná a odkáže na autoritativní DNS server, který již odpověď zná a pošle lokálnímu DNS serveru IP adresu požadované domény. Ten ji předá počítači, jež podle ní může stránku navštívit. [6]
Root DNS Server 2 3
Client
1
Intermediate DNS Server (.com)
4
ISP DNS Server
8
5 6
9
7
Authoritative DNS Server (address.com)
www.address.com
15
3. Analýza síťové komunikace 3.2 Ustanovení spojení s hostitelem požadované stránky Nyní je už známa IP adresa, pod kterou se dá požadovaná stránka najít, ale před jejím přenesením je potřeba ustanovit s hostitelem TCP spojení pomocí metody Three-Way handshake. [5]
1. Prvním krokem této metody je zaslání tzv. SYN paketu s nastaveným příznakem SYN = 1 v TCP hlavičce. Číslo zdrojového portu, značícího zdrojové zařízení, je zvoleno náhodně, avšak port cílový je nastaven na číslo 80 pro identifikaci webové služby na cílovém zařízení. Sekvenční číslo je náhodné, potvrzovaní číslo nulové.
Bity 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 Source port = 12345 (random) Destination port = 80 32 Sequence number = 7332 (random) 64 Acknowledgment number = 0 Data Flags: SYN = 1 96 Reserved Window size offset ACK = 0
2. Hostitel odpoví SYN-ACK paketem s příznaky SYN a ACK nastavenými na 1 a zdrojovým portem nastaveným na 80. Sekvenční číslo je náhodné, potvrzovací číslo musí být o jedna větší, než sekvenční číslo v předchozím kroku.
Bity 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 Source port = 80 Destination port = 12345 32 Sequence number = 15463 (random) 64 Acknowledgment number = 7333 Data Flags: SYN = 1 96 Reserved Window size offset ACK = 1
3. Třetím a posledním krokem potvrdí klient přijatý SYN-ACK paket příslušným nastavením příznaků a portů TCP hlavičky. Sekvenční číslo je stejné, potvrzovací číslo je inkrementováno o jedničku.
Bity 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 Source port = 12345 Destination port = 80 32 Sequence number = 7333 64 Acknowledgment number = 15464 Data Flags: SYN = 0 96 Reserved Window size offset ACK = 1
16
3. Analýza síťové komunikace 3.3 Vytvoření požadavku na stránku a jeho enkapsulace Aplikační vrstva Po ustanovení spojení s hostitelem je aplikační vrstvou vytvořen HTTP GET dotaz, což je textový požadavek, napsaný v jazyce html, zaslaný hostiteli, obsahující požadovanou stránku. HTTP GET požadavek se skládá z řádku požadavku (určuje například 1.1 verzi http protokolu) a hlaviček, které mohou mimo adresu požadované stránky obsahovat povolení k zobrazení v požadovaném jazyce nebo třeba povolení kódování. Každý řádek musí být zakončen
(Carriage return, Line feed) Vše je pak odděleno prázdným řádkem a následuje volitelné tělo zprávy. [4] HTTP GET požadavek GET / HTTP/1.1/ (řádek požadavku) Host: www.google.com (hlavičky) Accept-Language_ de, en (prázdný řádek) (...volitelné tělo zprávy...)
Transportní vrstva
Data
Segment TCP header
K datům (HTTP GET požadavku) je na transportní vrstvě připojena TCP hlavička, čímž je vytvořen segment. Cílový port 80, značí, že tato data jsou určena pro webovou službu běžící na serveru a zdrojový port identifikuje aplikaci odesílatele, ze které data pocházejí. Sekvenční číslo je o jedničku větší než bylo u posledního kroku Three-Way handshaku.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Source port = 12345 Destination port = 80 Sequence number = 7334 Acknowledgment number = 15464 Data Reserved Flags Window size offset Checksum Urgent pointer Options Padding Data = HTTP GET text
17
3. Analýza síťové komunikace Síťová vrstva
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Version = Header TOS Total length 4 (IPv4) length Identification Flags Fragment offset Time to live = 15 Protocol = 6 (TCP) Header checksum Source IP Address = 192.168.1.2 (PC’s IPaddress) Destination IP Address = 74.125.87.99 (Google’s IP address) Options
Segment
Packet IPv4 header
Při vyplňování IPv4 hlavičky je jako zdrojová adresa použita IP adresa klienta a jako adresa cílová je použita IP adresa cíle obdržená od lokálního DNS serveru při DNS resolvingu. Připojením této hlavičky k datům (segmentu) vznikne paket.
Data
Spojová vrstva Příchozí paket je na spojové vrstvě obalen hlavičkou a ocáskem, čímž se vytvoří rámec. Hlavička začíná preambulí a oddělovačem, identifikujícím začátek rámce. Následuje MAC adresa cíle, která je načtena z ARC tabulky zdrojového počítače, kde jsou uloženy záznamy naposledy použitých MAC adres a k nim příslušných IP adres. Zdrojový počítač zná pouze IP adresu cíle, a pokud k ní nenajde ve své ARP tabulce příslušnou MAC adresu, musí vyslat broadcast zprávu všem okolním přístrojům v síti, ve které se zeptá, kam má dále podle této IP adresy posílat. Ozve se mu některý ze směrovačů v síti a on odešle rámec jemu. [4]
Frame Header Preamble + Destination Source MAC SOF MAC 8 bytes
6 bytes
Packet Etherype or length
Data
46-1500 bytes 64 bytes – minimum frame size
6 bytes
2 bytes
Trailer Interframe FCS gap 4 bytes
12 bytes
Fyzická vrstva Na fyzické vrstvě se příchozí rámec převede pomocí kódu, jehož druh záleží na médiu, po kterém se signály budou přenášet. V tomto případě data poputují přes klasický ethernetový kabel, kde můžeme použít například kódování Manchester.
18
3. Analýza síťové komunikace 3.4 Manipulace s daty na přepínači a směrovači Přepínač (Switch) S daty, která po přenosovém médiu doputují k přepínači, se manipuluje podobně, jako na samotném počítači, akorát ne na všech vrstvách ISO/OSI modelu. Klasický přepínač operuje jen na dvou spodních vrstvách, fyzické a spojové. Příchozí data se dekódují, čímž se dosáhne rámce, jehož header a trailer se zahodí. Z ARP tabulky přepínače, kde jsou záznamy MAC adres spojeny s IP adresami, se zjistí MAC adresa dalšího prvku v síti, na který data poputují, přidá se zdrojová MAC adresa, vytvoří se kontrolní součet a zapsáním těchto informací do hlavičky a ocásku vznikne nový rámec. Ten se na fyzické vrstvě opět převede na signály a pošle na další zařízení v síti. Pokud však v ARP tabulce cílová MAC adresa nalezena není, vyšle směrovač všem okolním zařízením hromadnou (broadcast) zprávu, která se ptá, kdo má záznam IP adresy a s ní spojenou MAC adresu. Některý z přístrojů mu odpoví svou MAC adresou, kterou si přepínač uloží do své ARP tabulky pro další použití.
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model - Počítač Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
ISO/OSI model - Přepínač Spojová vrstva Fyzická vrstva
L2 L1
Přenosové médium
Směrovač (Router) Na směrovači se po dekódování rámce pokračuje až na třetí, síťovou vrstvu, kde po jeho rozbalení vznikne paket. Z něj směrovač potřebuje IP adresu cíle, kterou porovná se záznamy ve své směrovací tabulce, ze které se dozví, na který další směrovač (next hop router) data odešle. Pak předá paket na vrstvu spojovou, která z něj opět udělá rámec a fyzická vrstva jej pošle na další síťové zařízení.
L7 L6 L5 L4 L3 L2 L1
ISO/OSI model - Počítač Aplikační vrstva Prezentační vrstva Relační vrstva Transportní vrstva Síťová vrstva Spojová vrstva Fyzická vrstva
ISO/OSI model - směrovač Síťová vrstva Spojová vrstva Fyzická vrstva
L3 L2 L1
Přenosové médium
19
4. Výuková interaktivní animace 4 Výuková interaktivní animace 4.1 Důvody pro vytvoření a očekávaný přínos Animace byla původně pouhým nápadem, který by ve výsledku usnadnil práci nejen studentům, ale i vyučujícím. Jelikož žádná podobná animace, která by zahrnovala kompletní průchod dat sítí, nebyla na Internetu k nalezení, stal se z něj úkol na bakalářskou práci. Cílem bylo vytvořit pro studenta jednoduchý a interaktivní program, který urychlí pochopení probírané látky. Animace nalezne uplatnění ve výuce některých předmětů Fakulty informatiky Masarykovy univerzity a bude také k dostání pro samostudium. Celé prostředí je navíc v anglickém jazyce pro snazší použití nejen v českých školách.
4.2 Původní návrh animace, její realizace a výsledek Zprvu animace existovala jen jako náčrtek topologie na papíře, avšak prvků, které by mohla obsahovat, bylo nebylo málo. Přešlo se tedy k výběru vhodného nástroje pro tvorbu animace, čímž se stal Adobe Flash CS5, ve kterém je možné kreslit i programovat. Po hodinách seznamování se s uživatelským rozhraním a desítkami videotutoriálů vznikl prvotní návrh topologie s několika málo tlačítky. Postupně přibývaly různé grafické prvky, texty a animace, které se měnily po víceméně nepravidelných konzultacích. Největšími změnami procházela animace na začátku, když přibývaly nové prvky. Poté se vývoj poněkud ustálil. Znatelných změn, především v grafických prvcích, dosáhla animace po zobrazení skrze projektor, na kterém zejména barvy vypadaly úplně jinak, než na klasickém LCD displeji. Výsledkem je interaktivní animace zobrazující podobu dat a manipulace s nimi krok po kroku, a to kompletně od zadání adresy do webového prohlížeče, až po její zobrazení na uživatelově počítači. [1]
20
4. Výuková interaktivní animace 4.3 Představení rozložení animace a její navigace Celá animace se vizuálně dělí celkem na tři části. Horní část zobrazuje text, který se mění u každého kroku. V dolní části je napevno umístěna topologie sítě, kde se jednotlivé kroky animují. A konečně vlevo je zobrazen ISO/OSI model, u kterého se animuje momentální podoba dat a na němž je vidět, na které vrstvě se animace právě odehrává. Animace se sestává z několika kroků, kde každý z nich je na svém počátku automaticky zastaven, aby bylo možné přečíst si příslušný text, uvědomit si, na které vrstvě se animace právě nachází a případně si dovysvětlit, jaká akce se odehraje. Teprve pak je možné použít mezerník, který v animaci funguje jako tlačítko play/pause a je jím možné animaci kdykoliv pozastavit nebo pustit dále s tím, že se na začátku dalšího kroku opět automaticky zastaví. Navigace mezi jednotlivými kroky se ovládá převážně pomocí klávesnice, a to šipkami vpravo a vlevo, stejně tak jako klávesami page up a page down, jež si navíc rozumí i s dálkovým ovladačem, používaným při prezentacích. Za pomocí myši je navíc možné v průběhu animace přejít na libovolný krok stisknutím některého z očíslovaných tlačítek umístěných pod animací, mezi kterými je i tlačítko vracející animaci na úplný začátek.
4.4 Možná rozšíření do budoucna V budoucnu je možné doplnit animaci na druhý zobrazený server, tedy seznam.cz a komunikaci pomoci protokolu UDP. Je možně také lépe a úsporněji uspořádat jednotlivé zobrazené prvky, detailněji doplnit texty, případně doplnit více interaktivních částí. ARP dotazy by animaci rovněž mohly značně obohatit.
21
5. Závěr 5 Závěr Komunikace přes Internet je v dnešním světě každodenní nezbytností v mnohých krajinách světa. Fungování dopravy, světové burzy či zábavného průmyslu je do jisté míry závislé na Internetu. Běžný uživatel se nevěnuje technologickým problémům na pozadí tohoto komunikačního kanálu. Na jeho udržování a bezproblémový provoz je však potřeba nespočetně mnoho odborníků, kteří mají vhled do dané problematiky. Proto je nezbytné vytvářet neustále aktualizovaný výukový materiál, který přinese relevantní informace pro studenty informatiky. Účelem této práce bylo poskytnout detailnější úvod do problematiky síťové komunikace a následně, s pomocí těchto poznatků, vytvořit výukovou interaktivní animaci síťové komunikace, která je určená studentům vysokých škol a zájemcům o technologii Internetové komunikace. V textové části bakalářské práce jsem se věnoval nejdříve popisu jednotlivých vrstev ISO/OSI modelu. Každá z těchto sedmi vrstev vykonává určitý soubor jasně definovaných funkcí potřebných pro komunikaci, která byla dále obsahem kapitoly věnující se analýze síťové komunikace, tedy popisu toho, co se děje na jednotlivých vrstvách od zadání adresy do internetového prohlížeče, až po zobrazení požadované stránky. V praktické části pak byla vytvořena animace, která prakticky zobrazuje vše popsané v kapitole analyzující síťovou komunikaci. Byla zkonstruována za pomocí softwaru Adobe Flash CS5 a pomáhá uživatelům získat potřebné informace o problematice přehlednou formou pomocí jednoduchého interfejsu s intuitivním ovládáním.
22
6. Použitá literatura 6 Použitá literatura [1] Adobe Systems Incorporated: Adobe Flash CS5, 2011, Dostupné online (květen 2011): . [2] BOUŠKA, Petr.: Počítačové sítě – Computer networks, OSI model, 2007, Dostupné online (květen 2011): . [3] DOSTÁLEK Libor.: Velký průvodce protokoly TCP/IP a systémem DNS, Protokol TCP, 2002, Dostupné online (květen 2011): . [4] FOROUZAN, Behrouz A., FEGAN, Sophia Chung.: Data communications and networking. 3rd ed. Boston: McGraw-Hill, 2004. 973 s. [5] HLADKÁ, Eva.: PB156: Počítačové sítě, Fakulta Informatiky, Masarykova Univerzita, materiály k předmětu, 2010. [6] KUROSE, James F., ROSS, Keith W.: Computer networking: a top-down approach. 5th ed. New York: Addison-Wesley, 2010. 862 s. [7] MATYSKA Luděk.: PA160 Počítačové sítě a jejich aplikace II, Fakulta Informatiky, Masarykova Univerzita, materiály k předmětu, 2010. [8] ODVÁRKA Petr.: Principy komunikace, média, rozsah, Svět sítí & Infinity a.s, 2000, Dostupné online (květen 2011): .
23