Základy počítačových sítí
12. Úlohy a protokoly síťové vrstvy
12.1. Protokol IPv4
Protokol IPv4 je navržen tak, že během zapouzdřování není třeba přidávat mnoho řídicích dat. Poskytuje pouze základní funkce potřebné k přenosu paketů ze zdroje do cíle. Je bez připojení, což znamená, že před odesláním dat nenavazuje spojení, a funguje na principu "nejlepšího úsilí", což znamená, že nepoužívá řízení toku ani potvrzení o doručení dat jako protokol TCP, ale dělá vše pro to, aby byla komunikace efektivní. Je to také protokol nezávislý na médiu, což znamená, že data lze přenášet mezi hostiteli bez ohledu na použité médium.
Vždyť v jedné síti můžeme používat kroucenou dvojlinku, v jiné optická vlákna a ve třetí rádiové vlny. Protokol IP funguje v každé síti úplně stejně. Problém, který může nastat při přenosu dat přes různá média, je maximální velikost paketu, což je hodnota MTU (Maximum Transmission Unit), pokud je paket příliš velký, směrovače připojené k síti jej rozdělí na menší části. Tento proces se nazývá fragmentace, což je další termín z našeho internetového slovníku.
Abychom pochopili, jak IPv4 funguje a jak se pakety přenášejí přes Internet, použiji k vysvětlení jeho fungování příklad paketu odeslaného mojí tetou ze Spojených států. Balíček se skládal ze 3 lepenkových krabic spojených dohromady. Teta napsala adresu dárku a poslala ji kurýrní společnosti. Při odesílání balíku se vzdává dalších možností, jako je potvrzení o přijetí nebo sledování. Pracovník společnosti před vydáním zásilky označí karton místem určení a zpáteční adresou. Spolu s desítkami dalších zásilek je autem převezen do přístavu, kde je zabalen do kontejneru a následně přeplaven přes oceán.
V cílovém přístavu se kontejnery vybalí, zásilky se roztřídí a poté se autem převezou do různých měst a místních sběrných míst. Z místa vyzvednutí autem má být zásilka doručena na adresu, ale ukáže se, že tři spojené kartony jsou příliš velké na to, aby je bylo možné přepravit na vozíku, a tak je kurýr rozdělí na jednotlivé kartony a doručí vám je v této podobě. Protože si vaše teta nevybrala další možnosti, kurýrní společnost jí nevystavila potvrzení. Můžete to udělat sami, např. zavolat tetě a poděkovat jí
Převod na IP komunikaci by vypadal následovně:
- zásilka je odeslána bez předchozího oznámení příjemci - máme režim bez spojení;
- během procesu zapouzdření je přiřazena zdrojová a cílová adresa.
- v našem případě je adresa domova příjemce adresou cílovou a adresa domova tety je adresou zpáteční;
- zásilka neobsahovala mnoho kontrolních údajů, které by mohly zpomalit komunikaci - proto se teta vzdala další možnosti, potvrzení a sledování zásilky;
- zásilky se na místo určení dostávají prostřednictvím optických vláken, kroucených párů a rádiových vln - protože zásilky jsou doručovány různými dopravními prostředky: loděmi, velkými auty, malými auty;
- balík je příliš velký na to, aby mohl být poslán celý po jedné síti, a proto je roztříštěn - tj. balík je na určitém místě rozdělen tak, aby mohl být přepraven v malém autě;
- protokol IP nezaslal potvrzení o přijetí balíku - stejně jako společnost neujistila mou tetu, že balíček dorazil.
Jako každý komunikační protokol má i IPv4 standardizované hlavičky pro přidání řídicích informací. Příklad typické hlavičky IPv4 je uveden níže.
Verze |
IHL |
Typ služby |
Délka balení |
|
Identifikace |
Vlajka |
Přesunutí fragmentu |
||
TTL |
Protokol |
Kontrolní součet záhlaví |
||
Zdrojová adresa |
||||
Cílová adresa |
||||
Možnosti |
Náplň |
- cílová IP adresa - IP adresa zařízení, na které jsou data směrována;
- zdrojová IP adresa - IP adresa zařízení, které odesílá data;
- Time to Live (TTL) - 8bitové pole udávající zbývající dobu životnosti paketu. Hodnota TTL se snižuje nejméně o 1 při každém průchodu paketu směrovačem (tj. po každém skoku). Pokud hodnota dosáhne 0, směrovač paket zahodí a odstraní jej ze síťového datového toku. Tento mechanismus zabraňuje nekonečnému přenosu paketů, které nemohou dosáhnout svého cíle, mezi tzv. směrovači. Pokud jsou povoleny směrovací smyčky, bude síť přetížena pakety, které nikdy nedorazí do cíle. Snižování hodnoty TTL na každém skoku zajistí, že nakonec dosáhne hodnoty 0, a pakety s polem TTL 0 budou zahozeny.
- Protokol - tato 8bitová hodnota identifikuje použitý protokol vyšší (transportní) vrstvy, například UDP nebo TCP.
- Type of Service (ToS) - obsahuje 8bitovou hodnotu, která určuje prioritu každého paketu.
- Fragment Offset - pole používané při rekonstrukci paketů rozdělených směrovači. Určuje pořadí, v jakém mají být jednotlivé pakety uspořádány při rekonstrukci.
- Příznak More Fragments (MF) - Jeden bit používaný spolu s polem Fragment Offset k rozdělení a rekonstrukci paketů. Nastavení příznaku MF znamená, že fragment není posledním fragmentem v paketu. Když přijímající hostitel zaznamená příchozí paket s nastavenou hodnotou MF = 1, zkontroluje pole Fragment Offset, aby mohl fragment umístit při rekonstrukci paketu. Pokud přijímající hostitel zjistí, že příchozí paket má nastavenou hodnotu MF = 0 a nenulovou hodnotu v poli fragment offset, použije tento fragment jako poslední blok rekonstruovaného paketu.
- Příznak DF (Don't Fragment) - Jediný bit, který, pokud je nastaven, znamená, že fragmentace paketů není povolena. Fragmentace paketů není povolena, pokud je nastaven příznak DF.
- Version - obsahuje číslo verze protokolu IP (v tomto případě IPv4).
- Délka hlavičky (IHL) - určuje velikost hlavičky paketu.
- Délka paketu - toto pole udává celkovou velikost paketu v bajtech, včetně délky paketu, včetně záhlaví a dat.
- Identifikace - toto pole slouží k jednoznačné identifikaci fragmentu rozděleného paketu IP.
- Kontrolní součet záhlaví - toto pole slouží ke kontrole chyb v záhlaví paketu.
- OPTIONS - jedná se o prostor v záhlaví IPv4 pro další pole pro podporu dalších služeb. Používá se však jen zřídka.