TÉMATICKÝ OKRUH Počítače, sítě a operační systémy
Číslo otázky : Otázka :
08. Protokolová rodina TCP/IP. Vztah k referenčnímu modelu ISO-OSI.
Obsah : 1 2 3 4 5 6
Úvod TCP/IP vs ISO-OSI IP - Internet Protocol Hlavička IP paketu Podpůrné protokoly IP Protokoly transportní vrstvy
2 TCP/IP vs ISO-OSI Rodina protokolů TCP/IP je standardem pro komunikaci v Internetu. Na rozdíl od OSI síťového modelu, který má sedm vrstev, má TCP/IP síťový model jen čtyři vrstvy.
Relační, prezentační a aplikační vrstvy OSI modelu jsou sloučeny do jediné aplikační vrstvy. Fyzická a spojová vrstva OSI modelu je reprezentována jednou vrstvou síťového rozhraní. Ekvivalentní v jednotlivých modelech jsou transportní a síťové vrstvy (transport – transport, internetwork – network). Na druhém obrázku vidíme příklady protokolů používaných na jednotlivých vrstvách.
3. IP - Internet Protocol IP (Internet Protocol ) je základní protokol síťové vrstvy a celého Intenetu. Provádí vysílání paketů na základě síťových IP adres obsažených v jejich záhlaví. Poskytuje vyšším vrstvám síťovou službu bez spojení. Každý paket je samostatná datová jednotka, která obsahuje všechny potřebné údaje o adresátovi i odesilateli. Pakety se přenášejí v síti nezávisle na sobě a pořadí jejich doručení může být jiné než pořadí ve kterém byly odeslány. V současné době je převážně používán protokol IP verze 4. Je připravena nová verze 6, která řeší nedostatek adres v IPv4, bezpečnostní problémy a vylepšuje další vlastnosti protokolu IP. IPv4 ● ●
Ipv6
32 bitové adresy cca 4 miliardy různých IP adres, dnes nedostačující
● ● ● ● ●
128 bitové adresy podpora bezpečnosti podpora pro mobilní zařízení funkce pro zajištění úrovně služeb fragmentace paketů - rozdělování
Dále se bude pojednávat jen o protokolu IPv4. Adresa protokolu IPv4 je 32 bitové číslo které se nejčastěji zapisuje v dekadické tečkové notaci např. 192.168.1.1. Adresa má dvě části část, která obsahuje adresu sítě a část, která obsahuje adresu hostitele a jednoznačně identifikuje hostitele v rámci dané sítě. Původní návrh protokolu dělil adresy do tříd (viz obrázek), každá třída měla jiný poměr síťová část adresy: hostitelská část adresy.
Později se z části určující stanici v síti vyčlenilo několik bitů pro určení podsítě, ve které se stanice nachází (subnetting). Postupem času se však i toto rozdělení ukazovalo jako velice nepružné a s rostoucím nedostatkem adres se hledaly způsoby na vylepšení tohoto systému. Od roku 1993 se pak začal používat tzv. classless interdomain routing(CIDR, beztřídní mezidoménové směrování), ve kterém je možno předěl mezi adresou sítě a stanice umisťovat libovolně. Značí se kombinací prefixu a délky ve formě adresa/prefix např. 192.168.24.0/21, což znamená, že takto určená síť je určena prvními 21 bity adresy, zbytek je hostitelská část (případně podsítě), takže tato síť používá rozsah adres 192.168.24.0–192.168.31.255. Některé IP adresy mají speciální význam: ● ● ●
●
127.0.0.1 tzv. loopback, zpětnovazební smyčka v rámci uzlu 255.255.255.255 univerzální broadcast (všesměrové vysílání), šíří se jen v rámci segmentu vysílače adresa sítě/podsítě jako celku slouží pro formální označení sítě jako takové, v IP paketech se nikdy nepoužívá. Adresa sítě má v hostitelské části samé nuly. Příklad: hostitel IP adresa 192.168.1.1, maska 255.255.255.0, adresa sítě bude 192.168.1.0 broadcast v síti/podsíti Adresa pro všesměrové vysílání do sítě/podsítě má v hostitelské části samé jedničky. Příklad: hostitel IP adresa 192.168.1.1, maska 255.255.255.0, adresa pro všesměrové vysílání bude 192.168.1.255.
Kromě speciálních adres a tzv. veřejných adres, které přiděluje oblastní správce (LIR local internet registry, většinou ISP, ten dostává adresy od RIR regional internet registry, pro Evropu je to RIPE), jsou definovány (v RFC1918) tzv. privátní adresní rozsahy, které nelze použít pro adresování zařízení přímo připojených do Internetu, ale mohou se použít například pro adresaci
podnikové sítě, která je připojena do Internetu pomocí brány maskující privátní adresy za jednu nebo více veřejných adres. Privátní rozsahy jsou:
● ● ●
10.0.0.0 až 10.255.255.255 172.16.0.0 až 172.31.255.255 192.168.0.0 až 192.168.255.255
4. Hlavička IP paketu
● ● ● ● ● ● ● ● ● ● ●
version verze protokolu header length protože header obsahuje options s proměnnou délkou type of service určuje prioritu paketu při posílání sítí (použití se zavádí postupně) total length délka IP paketu (max. 64kB) identification ID paketu (dočasně) jednoznačné v rámci zdroje, všechny fragmenty paketu mají ID stejné flags povolení/zákaz fragmentace, indikace posledního fragmentu fragmentovaného paketu Time to Live počítadlo snižované při každém průchodu směrovačem, proti zbloudilým paketům cyklujícím ve směrovací smyčce. Při dočítání do nuly se paket likviduje. číslo protokolu vyšší vrstvy neseného v paketu header checksum nezahrnuje datovou část paketu (!) zdrojová a cílová IP adresa options volitelné, proměnná délka
5 Podpůrné protokoly IP ARP (Address Resolution Protocol) Používá se k získání MAC adresy počítače. Stanice v sítí, která potřebuje zjistit MAC adresu jiné stanice, vyšle do sítě ARP request (broadcast). ARP request obsahuje IP adresu zařízení, jehož MAC adresa se hledá. Pokud se zařízení s uvedenou IP adresou v síti nachází, pošle ARP reply se svou MAC adresou dotazující se stanici. Příbuzný protokol RARP (Reverse Address resolution Protocol) má za úkol najít IP adresu na
základě fyzické adresy. ICMP (Internet Control Message Protocol) Slouží k přenosu řídících hlášení, které se týkají chybových stavů a zvláštních okolností při přenosu. Používá se např. v programu ping pro testování dostupnosti počítače, nebo programem traceroute pro sledování cesty paketů k jinému uzlu. Nejpoužívanější ICMP zprávy: ● ● ●
● ●
echo request požadavek na odpověď, prvek v síti pracující na IP vrstvě by na tuto výzvu měl reagovat echo reply odpověď na echo request destination unreachable informace o nedostupnosti cíle, obsahuje další upřesňující informace ○ net unreachable nedostupná cílová síť, reakce směrovače na požadavek komunikovat se sítí, do které nezná cestu ○ host unreachable nedostupný cílový stroj ○ protocol unreachable informace o nemožnosti použít vybraný protokol ○ port unreachable informace o nemožnosti připojit se na vybraný port redirect přesměrování time exceeded vypršel časový limit
6 Protokoly transportní vrstvy Protokoly transportní vrstvy jsou dva, protokol UDP (User Datagram Protocol) poskytuje nepotvrzovanou přenosovou službu, oproti tomu TCP (Transmission Control Protocol) je spojově orientovaný protokol se spolehlivým doručováním. Oba protokoly používají pro určení služby (identifikace procesu serveru i klienta) čísla portů. UDP Protokol UDP nedokáže zajistit vyšší spolehlivost, než jakou nabízí implementace protokolu IP v nižší vrstvě. Aplikace, které UDP využívají, musí zajistit opakované vyslání ztracených paketů, musí provádět opětovnou rekonstrukci paketů, zajišťovat řízení toku dat, atd. Hlavička protokolu UDP
UDP je používán aplikacemi jako je DHCP, TFTP, SNMP, DNS a BOOTP. TCP
Protokol TCP vytváří plně duplexní kanál mezi komunikujícími počítači. Pro přenos dat využívá služeb protokolu IP, současně však definuje další mechanismy, které se starají o ztracené a zdvojené pakety. TCP také zabezpečuje správné složení jednotlivých paketů, které dorazí do cíle mimo správné pořadí. ● ● ● ● ● ●
4. vrstva, duplexní spolehlivý logický kanál (v prostředí se ztrácením, duplikací, a přehazováním pořadí) RFC 793 algoritmus sliding window (go-back-N), pozitivní (inkluzivní) potvrzování, piggybacking, adaptivní změna časového limitu pro retransmisi řízení toku dat inzerováním aktuální kapacity přijímacích bufferů, vysílací okno se dynamicky přizpůsobuje přijímacímu segmentování dat (rozdělení proudu dat do částí vhodných pro přenos v paketech), číslování oktetů proudu dat robustní protokol navazování spojení a ukončování spojení
Hlavička protokolu TCP
● ● ● ● ● ●
Porty - určení služby (identifikace procesu serveru i klienta) Podpora alg. Sliding Window: sequence number, acknowledge number Řízení toku dat: window (zbývající kapacita přijímacích bufferů) Navazování a ukončování spojení: příznaky SYN, FIN, (ACK), RST Volitelné parametry: options (např. dohoda max. délky segmentu) Urgent pointer - pozice urgentních dat v TCP segmentu (při nastaveném příznaku URG)
U protokolu TCP se spojení mezi dvěma síťovými uzly navazuje pomocí metodu nazývané
3way handshaking. Tato metoda řeší problémy pokusu o aktivní navázání spojení oběma stranami současně a zároveň zabraňuje případnému ovlivnění zbloudilými pakety ze zavřeného a brzy znovu otevřenému spojení mezi týmiž uzly pomocí náhodně zvolených sekvenčních čísel. Průběh navázání spojení ukazuje následující obrázek. Strana, která iniciuje spojení, vysílá paket s příznakem SYN, protějšek odpovídá paketem s příznaky SYN a ACK a iniciátor dokončuje navazování spojení potvrzovacím paketem s příznakem ACK. Pak může začít přenos dat pomocí některého z protokolů vyšší vrstvy. Spojení se ukončuje paketem s příznakem FIN nebo RST.
TCP patří mezi protokoly, které pro řízení toku dat používají tzv. plovoucí okno (sliding window). Plovoucí okno představuje určitý počet paketů, které může odesílatel vyslat, aniž by obdržel nějaké potvrzení o přijetí. Velikost okna není statická a mění se dynamicky podle aktuálních podmínek na síti. Jak si komunikující strany inzerují navzájem velikost plovoucího okna a potvrzují přijatá data, ukazuje obrázek.
Protokol TCP je využíván například těmito aplikačními protokoly: HTTP, SMTP, POP3.
Uzavření spojení ● ●
dohoda obou stran možnost "polovičního" uzavření spojení (half-close)