IPv4
Internet Protocol version 4 (IPv4) je v informatice čtvrtá revize IP (Internet Protocol) a zároveň jeho první verze, která se masivně rozšířila. Spolu s IPv6 vytvářejí základ pro komunikaci v rámci sítě Internet. IPv4 je popsána IETF v RFC 791 (září 1981), které nahradilo RFC 760 (leden 1980) a je standardizována jako MIL-STD-1777 Ministerstvem obrany USA.
IPv4 je datově orientovaný protokol, který je používán v sítích s přepojováním paketů (např. Ethernet). Jde o protokol přepravující data bez záruky, tj. negarantuje ani doručení ani zachování pořadí ani vyloučení duplicit. Zajištění těchto záruk je ponecháno na vyšší vrstvě, kterou představuje protokol TCP. Stejně tak je na vyšší vrstvě ponechána kontrola integrity dat, protože IPv4 datagram nese pouze informaci o kontrolním součtu hlavičky datagramu se služebními údaji.
Starší protokol IPv4 poskytuje omezený adresní prostor – teoreticky 232 adres (cca 4×109 = 4 miliardy adres), prakticky však mnohem méně, protože adresy jsou sdružovány kvůli snadnějšímu směrování do podsítí (viz maska sítě). Protokol IPv4 též nevyhovuje současnému nárůstu přenosových rychlostí (zejména kvůli přenosu multimediálních dat – videokonference, internetová televize, telefonování po internetu atd.).
Dne 3. února 2011 byly rozděleny poslední bloky adres protokolu IPv4, čímž došlo k jejich vyčerpání. Od té doby postupně probíhá přechod na protokol IPv6.
Formát IPv4 datagramu
Uložen ve velkém endianu.
Bajty | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bajt 0 až 3 | verze | IHL | typ služby | celková délka | ||||||||||||||||||||||||||||
Bajt 4 až 7 | identifikace | příznaky (3 bity) | offset fragmentu (13 bitů) | |||||||||||||||||||||||||||||
Bajt 8 až 11 | TTL | číslo protokolu | kontrolní součet hlavičky | |||||||||||||||||||||||||||||
Bajt 12 až 15 | zdrojová adresa | |||||||||||||||||||||||||||||||
Bajt 16 až 19 | cílová adresa | |||||||||||||||||||||||||||||||
Bajt 20 až ((IHL × 4) - 1) | rozšířená nepovinná nastavení | |||||||||||||||||||||||||||||||
... | data |
Datagram IPv4 obsahuje hlavičku se služebními údaji nutnými pro přepravu a za ní následují data. Konec hlavičky je zarovnán na násobek čtveřice bajtů pomocí výplně (anglicky padding). Strukturu IP datagramu vystihuje tabulka uvedená nahoře.
Následuje popis jednotlivých polí:
- Verze: verze protokolu (0x4)
- IHL: délka hlavičky jako počet 32bitových slov (pro získání délky v bajtech je potřeba vynásobit čtyřmi, tzn. typická a minimální délka (0x5 × 4) = 20 bajtů, a maximální (0xF ×* 4) = 60 bajtů.
- Typ služby (TOS, Type of Service): podle původních představ měla tato položka umožnit odesilateli, aby zvolil charakter přepravní služby ideální pro dotyčný datagram. Jednotlivé bity znamenaly např. požadavek na nejmenší zpoždění, největší šířku pásma či nejlevnější dopravu. Směrování pak mělo brát ohled na hodnotu TOS a volit z alternativních tras tu, která nejlépe odpovídala požadavkům datagramu. V praxi však k realizaci nedošlo. V současnosti se položka používá k podobným účelům – nese značku pro mechanismy zajišťující služby s definovanou kvalitou (QoS).
- Celková délka: délka datagramu v bajtech.
- Identifikace: odesilatel přidělí každému odeslanému paketu jednoznačný identifikátor. Pokud byl datagram při přepravě fragmentován, pozná se podle této položky, které fragmenty patří k sobě (mají stejný identifikátor).
- Příznaky: slouží pro řízení fragmentace. První je vždy nulový, druhý je Don’t fragment zakazující tento datagram fragmentovat, a třetí More fragments nastavuje, zdali není fragmentem posledním.
- Offset fragmentu: udává, na jaké pozici v původním datagramu začíná tento fragment. Jednotkou je osm bajtů.
- TTL (Time To Live): představuje ochranu proti zacyklení. Každý směrovač zmenší tuto hodnotu o jedničku (případně o počet sekund, které datagram ve směrovači strávil, pokud zde čeká déle). Pokud tím TTL nabude hodnotu nula, datagram zahodí, protože vypršela jeho životnost.
- Protokol: určuje, kterému protokolu vyšší vrstvy se mají data předat při doručení. Čísla protokolů definována v RFC 1700 (TCP: 6, UDP: 17, ICMP: 1, EGP: 8, …). RFC 1700 je již překonáno novým standardem RFC 3232, jež odkazuje na databáze organizace IANA a její stránky: https://web.archive.org/web/20170920185613/http://www.iana.org/ .
- Kontrolní součet hlavičky: slouží k ověření, zda nedošlo k poškození. Počítá se pouze z hlavičky a pokud nesouhlasí, datagram bude zahozen.
- Adresa odesílatele: IPv4 adresa síťového rozhraní, které datagram vyslalo.
- Adresa cíle: IP adresa síťového rozhraní, kterému je datagram určen.
- Volby: různé rozšiřující informace či požadavky. Například lze předepsat sérii adres, kterými má datagram projít. Volby obvykle nejsou v datagramu použity (v tabulce jsou barevně odlišeny).
- Data: obsahuje další zapouzdřené protokoly.
Speciální IPv4 adresy
rozsah | jméno dle rfc6890 | využití |
---|---|---|
0.0.0.0/8 | This host on this network | |
10.0.0.0/8 | Private-Use | privátní adresy pro LAN |
100.64.0.0/10 | Shared Address Space | CG NAT |
127.0.0.0/8 | Loopback | |
169.254.0.0/16 | Link Local | |
172.16.0.0/12 | Private-Use | privátní adresy pro LAN |
192.0.0.0/24 | IETF Protocol Assignments | |
192.0.0.0/29 | DS-Lite | metoda přechodu na IPv6 "B4"[1] |
192.0.2.0/24 | TEST-NET-1 | vyhrazeno pro použití v příkladech a dokumentaci[2] |
192.88.99.0/24 | 6to4 Relay Anycast | metoda přechodu na IPv6, zrušeno v rfc7526 |
192.168.0.0/16 | Private-Use | privátní adresy pro LAN |
198.18.0.0/15 | Benchmarking | |
198.51.100.0/24 | TEST-NET-2 | vyhrazeno pro použití v příkladech a dokumentaci[2] |
203.0.113.0/24 | TEST-NET-3 | vyhrazeno pro použití v příkladech a dokumentaci[2] |
224.0.0.0/4 | IP multicast (dříve třída D) | |
240.0.0.0/4 | Host group addresses[3] | rezervováno pro budoucí použití (dříve třída E) |
255.255.255.255/32 | Limited Broadcast | |
Konec IPv4 adres
Dne 3. února 2011 byly rozděleny na konferenci v Miami poslední bloky adres protokolu IPv4, čímž došlo k jejich vyčerpání. Tato událost je jedna z nejvýznamnějších událostí historie internetu. Spotřeba IP adres stále stoupá a největším spotřebitelem je asijsko-pacifický region, ve kterém poslední přidělený blok spolu se stávající zásobou vystačí maximálně do konce roku 2011. Nejdéle vydrží zásoby IPv4 v Africe, kde s nimi mohou počítat ještě několik let dopředu.[4]
Reference
- IPv4 Service Continuity Prefix: https://tools.ietf.org/html/rfc7335
- IPv4 Address Blocks Reserved for Documentation: https://tools.ietf.org/html/rfc5737
- https://tools.ietf.org/html/rfc1112#section-4
- Konec bleskovek o IPv4, už jsou definitivně rozebrány ze 3. 2. 2011 od Davida Polesného na Živě.cz