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.

Formát IP datagramu
Bajty0123
Bajt 0 až 3  verze  IHLtyp službycelková délka
Bajt 4 až 7identifikacepříznaky (3 bity)offset fragmentu (13 bitů)
Bajt 8 až 11TTLčíslo protokolukontrolní součet hlavičky
Bajt 12 až 15zdrojová adresa
Bajt 16 až 19cí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

speciální IPv4 rozsahy
rozsahjméno dle rfc6890využití
0.0.0.0/8This host on this network
10.0.0.0/8Private-Useprivátní adresy pro LAN
100.64.0.0/10Shared Address SpaceCG NAT
127.0.0.0/8Loopback
169.254.0.0/16Link Local
172.16.0.0/12Private-Useprivátní adresy pro LAN
192.0.0.0/24IETF Protocol Assignments
192.0.0.0/29DS-Litemetoda přechodu na IPv6 "B4"[1]
192.0.2.0/24TEST-NET-1vyhrazeno pro použití v příkladech a dokumentaci[2]
192.88.99.0/246to4 Relay Anycastmetoda přechodu na IPv6, zrušeno v rfc7526
192.168.0.0/16Private-Useprivátní adresy pro LAN
198.18.0.0/15Benchmarking
198.51.100.0/24TEST-NET-2vyhrazeno pro použití v příkladech a dokumentaci[2]
203.0.113.0/24TEST-NET-3vyhrazeno pro použití v příkladech a dokumentaci[2]
224.0.0.0/4IP multicast (dříve třída D)
240.0.0.0/4Host group addresses[3]rezervováno pro budoucí použití (dříve třída E)
255.255.255.255/32Limited Broadcast

Tabulka prefixů a masek

Tahák prefixů a masek
Počet IPv4 adresPrefixTřídaMaska
1/32255.255.255.255
2/31255.255.255.254
4/30255.255.255.252
8/29255.255.255.248
16/28255.255.255.240
32/27255.255.255.224
64/26255.255.255.192
128/25255.255.255.128
256/241C255.255.255.0
512/232C255.255.254.0
1 024/224C255.255.252.0
2 048/218C255.255.248.0
4 096/2016C255.255.240.0
8 192/1932C255.255.224.0
16 384/1864C255.255.192.0
32 768/17128C255.255.128.0
65 536/161B255.255.0.0
131 072/152B255.254.0.0
262 144/144B255.252.0.0
524 288/138B255.248.0.0
1 048 576/1216B255.240.0.0
2 097 152/1132B255.224.0.0
4 194 304/1064B255.192.0.0
8 388 608/9128B255.128.0.0
16 777 216/81A255.0.0.0
33 554 432/72A254.0.0.0
67 108 864/64A252.0.0.0
134 217 728/58A248.0.0.0
268 435 456/416A240.0.0.0
536 870 912/332A224.0.0.0
1 073 741 824/264A192.0.0.0
2 147 483 646/1128A128.0.0.0

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

  1. IPv4 Service Continuity Prefix: https://tools.ietf.org/html/rfc7335
  2. a b c IPv4 Address Blocks Reserved for Documentation: https://tools.ietf.org/html/rfc5737
  3. https://tools.ietf.org/html/rfc1112#section-4
  4. Konec bleskovek o IPv4, už jsou definitivně rozebrány ze 3. 2. 2011 od Davida Polesného na Živě.cz

Externí odkazy