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

[editovat | editovat zdroj]

Uložen ve velkém endianu.

Formát IP datagramu
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

[editovat | editovat zdroj]
speciální IPv4 rozsahy
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

Tabulka prefixů a masek

[editovat | editovat zdroj]
Tahák prefixů a masek
Počet IPv4 adres Prefix Třída Maska
1 /32 255.255.255.255
2 /31 255.255.255.254
4 /30 255.255.255.252
8 /29 255.255.255.248
16 /28 255.255.255.240
32 /27 255.255.255.224
64 /26 255.255.255.192
128 /25 255.255.255.128
256 /24 1C 255.255.255.0
512 /23 2C 255.255.254.0
1 024 /22 4C 255.255.252.0
2 048 /21 8C 255.255.248.0
4 096 /20 16C 255.255.240.0
8 192 /19 32C 255.255.224.0
16 384 /18 64C 255.255.192.0
32 768 /17 128C 255.255.128.0
65 536 /16 1B 255.255.0.0
131 072 /15 2B 255.254.0.0
262 144 /14 4B 255.252.0.0
524 288 /13 8B 255.248.0.0
1 048 576 /12 16B 255.240.0.0
2 097 152 /11 32B 255.224.0.0
4 194 304 /10 64B 255.192.0.0
8 388 608 /9 128B 255.128.0.0
16 777 216 /8 1A 255.0.0.0
33 554 432 /7 2A 254.0.0.0
67 108 864 /6 4A 252.0.0.0
134 217 728 /5 8A 248.0.0.0
268 435 456 /4 16A 240.0.0.0
536 870 912 /3 32A 224.0.0.0
1 073 741 824 /2 64A 192.0.0.0
2 147 483 646 /1 128A 128.0.0.0

Konec IPv4 adres

[editovat | editovat zdroj]

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]

  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

[editovat | editovat zdroj]