Internet Protocol version 4 je čtvrtá verze Internetového protokolu (IP). Je jedním ze základních protokolů založených na standardech Internetu a dalších sítí s přepojováním paketů. IPv4 byla první verze nasazená do provozu v síti SATNET v roce 1982 a v síti ARPANET v lednu 1983. I dnes se stále používá ke směrování většiny internetového provozu, a to i přes pokračující zavádění internetového protokolu verze 6 (IPv6), nástupce IPv4.

IPv4 používá 32bitový adresní prostor, který poskytuje 4 294 967 296 jedinečných IP adres, ale velké bloky adres jsou vyhrazeny pro speciální účely.

Historie

Internetový protokol verze 4 je popsán v publikaci IETF RFC 791 (září 1981), která nahrazuje dřívější definici z ledna 1980 (RFC 760). [1] RFC 791 bylo aktualizováno následujícími RFC: RFC 1349, RFC 2474 a RFC 6864.

Účel

Internetový protokol je protokol, který definuje a umožňuje propojování na síťové vrstvě v TCP/IP modelu (stejně tak i na síťové vrstvě ISO/OSI modelu). V podstatě tvoří Internet.

Používá systém logického adresování a provádí směrování, což je předávání paketů ze zdrojového hostitele na další směrovač, který je o jeden skok blíže zamýšlenému cílovému hostiteli v jiné síti.

IPv4 je nespojovaný protokol a funguje na modelu doručování s maximální snahou, avšak nezaručuje doručení, ani nezaručuje správné pořadí doručení ani nezamezuje duplicitnímu doručení paketu. Tyto aspekty, včetně integrity dat, jsou řešeny transportním protokolem vyšší vrstvy, jako je Transmission Control Protocol (TCP).

Adresování

IPv4 používá 32-bitové adresy, z čehož nám plyne omezení adresového prostoru na \(4 294 967 296 (2^{32})\) unikátních adres.

IPv4 rezervuje zvláštní adresové bloky

  • pro privátní sítě (asi 18 miliónů adres),

  • a pro multicast adresy ( asi 270 miliónů adres)

Zápis adres

IPv4 adresy mohou být zapsané v libovolném zápisu, který vyjadřuje 32bitovou celočíselnou hodnotu. Nejčastěji se zapisují tečkovaným dekadickým zápisem, který se skládá ze čtyř oktetů adresy vyjádřených desítkovými čísly a oddělených tečkami.

Dekompozice IPv4 adresy na binární hodnotu

IPv4 address structure and writing systems en

Například IP adresa se čtyřmi tečkami 192.0.2.235 představuje 32bitové dekadické číslo 3221226219, což je v hexadecimálním formátu 0xC00002EB.

IPv4 adresa 192.0.2.235 v binární, hexadecimální a dekadické tečkové notaci

ipv4 priklad 1

Notace CIDR (zkratka z Classless Inter-Domain Routing) kombinuje adresu s jejím směrovacím prefixem v kompaktním formátu, ve kterém za adresou následuje znak lomítka (/) a počet úvodních po sobě jdoucích bitů ve směrovacím prefixu (masce podsítě). O směrování a maskách sítí se budeme bavit později.

Ta samá IPv4 adresa ve formátu CIDR (prvních 24 bitů označuje síť)

ipv4 priklad 2

Jiné reprezentace adres byly běžně používány, když se praktikovalo klasické vytváření sítí. Například adresa zpětné smyčky 127.0.0.1 byla běžně zapsána jako 127.1, vzhledem k tomu, že patří do sítě třídy A s osmi bity pro masku sítě a 24 bity pro číslo hostitele. Když byla v adrese v tečkovaném zápisu uvedena méně než čtyři čísla, byla poslední hodnota považována za celé číslo o tolika bajtech, kolik je potřeba k vyplnění adresy do čtyř oktetů. Adresa 127.65530 je tedy ekvivalentní 127.0.255.250. Tento způsob zápisu se nepoužívá.

Maska sítě

Maska sítě je číslo, které v informatice popisuje rozdělení počítačové sítě do podsítí (anglicky subnets). Maska sítě zapsaná v binárním tvaru má zleva samé jedničky až do místa, kde končí číslo sítě a na místě části pro číslo síťového rozhraní jsou samé nuly. Pomocí masky sítě router rozhoduje o směrování (anglicky routing) IP datagramů.

Vlastnosti masky sítě

Maska sítě je v IPv4 zapisována stejně jako IP adresa – čtyřmi desítkovými čísly oddělenými tečkami, z nichž každé odpovídá jednomu oktetu v 32bitové adrese.
Maska 255.255.255.0 může být tedy binárně zapsána jako 11111111.11111111.11111111.00000000BIN.
Nepřerušená řada jedniček jdoucích zleva označuje umístění čísla sítě a zbylé nuly v pravé části+ udávají umístění čísla síťového rozhraní (v dané podsíti).
V tomto případě tedy zadaná maska rozděluje IP adresu na prvních 24 bitů s číslem sítě a zbylých 8 bitů pro číslo síťového rozhraní.

Zkrácený zápis masky

Někdy se udává maska sítě zkrácenou formou zápisu, kterou označujeme CIDR notace (anglicky Classles Inter-Domain Routing), ve které se maska zapisuje jako dekadické číslo za lomítkem za posledním oktetem IP adresy a číslo udává počet jedniček zleva v binárním zápisu masky (pozice pro číslo sítě).

Příklad: Zapište masku sítě z CIDR zadání 192.168.68.233/20:

Maska binárně: 11111111.11111111.11110000.00000000 (číslo sítě je podle CIDR prvních 20 bitů)
Maska dekadicky: 255. 255. 240. 0
K čemu je nám maska sítě: na výpočet síťové adresy a broadcast adresy

ipv4 maska site

Přidělování adres

V původním návrhu IPv4 byla IP adresa rozdělena na dvě části: síťový identifikátor byl nejvýznamnější oktet adresy a identifikátor hostitele byl zbytek adresy. Posledně jmenovanému se také říkalo odpočinkové pole. Tato struktura umožňovala maximálně 256 síťových identifikátorů, což se rychle ukázalo jako nedostatečné.

K překonání tohoto limitu byl v roce 1981 předefinován nejvýznamnější oktet adres, aby se vytvořily síťové třídy v systému, který se později stal známým jako classful networking.

Revidovaný systém definoval pět tříd. Třídy A, B a C měly různé bitové délky pro identifikaci sítě. Zbytek adresy byl použit jako dříve k identifikaci hostitele v síti. Kvůli různým velikostem polí v různých třídách měla každá třída sítě jinou kapacitu pro adresování hostitelů. Kromě tří tříd pro adresování hostitelů byla definována třída D pro vícesměrové adresování a třída E byla vyhrazena pro budoucí aplikace.

Rozdělení stávajících třídních sítí na podsítě začalo v roce 1985 vydáním RFC 950. Toto rozdělení bylo pružnější se zavedením masek podsítě s proměnnou délkou (VLSM) v RFC 1109 v roce 1987. V roce 1993, na základě této práce, RFC 1517 zavedl Classless Inter-Domain Routing (CIDR),[6] který vyjadřoval počet bitů (od nejvýznamnějších) jako například /24, a schéma založené na třídách bylo naopak nazváno třídní. CIDR byl navržen tak, aby umožňoval přerozdělení libovolného adresního prostoru tak, aby bylo možné uživatelům přidělovat menší nebo větší bloky adres. Hierarchickou strukturu vytvořenou CIDR spravuje Internet Assigned Numbers Authority (IANA) a regionální internetové registry (RIR). Každý RIR udržuje veřejně prohledávatelnou databázi WHOIS, která poskytuje informace o přidělení IP adres.

Každá IPv4 adresa musí být celosvětově unikátní (kromě privátních sítí). Nemůže se stát, že by dva různé stroje dostaly stejnou IP adresu. Nefungovalo by směrování. O unikátnost IP adres se stará právě organizace IANA.
Mapa regionálních internetových registrátorů

rir map

O tom, kdo má jaké IPv4 adresy přiděleny se můžeme dovědět pomocí služby WHOIS (Kdo je kdo).

Například o moji domácí IPv4 adrese 46.253.96.146 se můžeme dozvědět toto:

NetRange:       46.0.0.0 - 46.255.255.255
CIDR:           46.0.0.0/8
NetName:        46-RIPE
NetHandle:      NET-46-0-0-0-0
Parent:          ()
NetType:        Allocated to RIPE NCC
OriginAS:
Organization:   RIPE Network Coordination Centre (RIPE)
RegDate:        2009-09-29
Updated:        2009-09-30
Comment:        These addresses have been further assigned to users in
Comment:        the RIPE NCC region. Contact information can be found in
Comment:        the RIPE database at http://www.ripe.net/whois
Ref:            https://rdap.arin.net/registry/ip/46.0.0.0

ResourceLink:  https://apps.db.ripe.net/search/query.html
ResourceLink:  whois.ripe.net


OrgName:        RIPE Network Coordination Centre
OrgId:          RIPE
Address:        P.O. Box 10096
City:           Amsterdam
StateProv:
PostalCode:     1001EB
Country:        NL
RegDate:
Updated:        2013-07-29
Ref:            https://rdap.arin.net/registry/entity/RIPE

ReferralServer:  whois://whois.ripe.net
ResourceLink:  https://apps.db.ripe.net/search/query.html

OrgAbuseHandle: ABUSE3850-ARIN
OrgAbuseName:   Abuse Contact
OrgAbusePhone:  +31205354444
OrgAbuseEmail:  abuse@ripe.net
OrgAbuseRef:    https://rdap.arin.net/registry/entity/ABUSE3850-ARIN

OrgTechHandle: RNO29-ARIN
OrgTechName:   RIPE NCC Operations
OrgTechPhone:  +31 20 535 4444
OrgTechEmail:  hostmaster@ripe.net
OrgTechRef:    https://rdap.arin.net/registry/entity/RNO29-ARIN

Toto jsou poměrně obecné informace, podrobnější údaje pro IP adresy z Evropy se dozvíme například tady http://itools.com/tool/ripe-whois-ip-address

    inetnum:         46.253.96.0 - 46.253.103.255
    netname:         I2C
    descr:           EDERA Group a.s, Nachod, Czech Republic
    country:         CZ
    admin-c:         DUMY-RIPE
    tech-c:          DUMY-RIPE
    status:          ASSIGNED PA
    mnt-by:          MNT-GDNET
    created:         2023-01-30T11:29:18Z
    last-modified:   2023-01-30T11:29:18Z
    source:          RIPE-GRS
    geoloc:          50.4173992 16.1680219
    remarks:         ****************************
    remarks:         * THIS OBJECT IS MODIFIED
    remarks:         * Please note that all data that is generally regarded as personal
    remarks:         * data has been removed from this object.
    remarks:         * To view the original object, please query the RIPE Database at:
    remarks:         * http://www.ripe.net/whois
    remarks:         ****************************

    route:           46.253.96.0/21
    descr:           GD Net
    origin:          AS42306
    mnt-by:          MNT-GDNET
    created:         2011-07-26T16:58:07Z
    last-modified:   2011-07-26T16:58:07Z
    source:          RIPE-GRS
    remarks:         ****************************
    remarks:         * THIS OBJECT IS MODIFIED
    remarks:         * Please note that all data that is generally regarded as personal
    remarks:         * data has been removed from this object.
    remarks:         * To view the original object, please query the RIPE Database at:
    remarks:         * http://www.ripe.net/whois
    remarks:         ****************************

IP adresy pro speciální účely

Internet Engineering Task Force (IETF) a IANA omezily obecné používání různých vyhrazených IP adres pro speciální účely. Tyto adresy se používají zejména pro multicastový provoz a poskytují adresovací prostor pro neomezené použití v privátních sítích.

Tabulka 1. IPv4 adresy pro speciální účely
Adresní blok Rozsah adres Počet adres Účel Popis

0.0.0.0/8

0.0.0.0—​0.255.255.255

16777216

software

Aktuální (místní, „tato“) síť.

10.0.0.0/8

10.0.0.0—​10.255.255.255

16777216

privátní síť

Pro použití v lokální komunikaci uvnitř privátní sítě (naše škola).

100.64.0.0/10

100.64.0.0—​100.127.255.255

4194304

privátní síť

Sdílený adresový prostor pro komunikaci mezi poskytovatelem služeb a jeho zákazníky když se používá carrier-grade NAT (to máte třeba na mobilu).

127.0.0.0/8

127.0.0.0—​127.255.255.255

16777216

host

Použití pro smyčku (loopback) na lokální počítač.

169.254.0.0/16

169.254.0.0—​196.254.255.255

65536

podsíť

Používá se pro místní adresy mezi dvěma hostiteli na jedné lince, pokud není jinak specifikována žádná IP adresa, jako by byla normálně získána ze serveru DHCP.

172.16.0.0/12

172.16.0.0–172.31.255.255

1048576

privátní síť

Pro použití v lokální komunikaci uvnitř privátní sítě.

192.0.0.0/24

192.0.0.0–192.0.0.255

256

privátní síť

IETF Protocol Assignments, DS-Lite (přechodový mechanismus na IPv6)

192.0.2.0/24

192.0.2.0–192.0.2.255

256

dokumentace

Přidělená síť TEST-NET-1 pro dokumentaci a příklady.

192.88.99.0/24

192.88.99.0–192.88.99.255

256

Internet

Rezervováno. Dříve používané pro přenos IPv6 na IPv4 (včetně bloku adres IPv6 2002::/16).

192.168.0.0/16

192.168.0.0–192.168.255.255

65536

privátní síť

Pro použití v lokální komunikaci uvnitř privátní sítě.

198.18.0.0/15

198.18.0.0–198.19.255.255

131.072

privátní síť

Používá se pro benchmarkové testování mezisíťové komunikace mezi dvěma samostatnými podsítěmi.

198.51.100.0/24

198.51.100.0–198.51.100.255

256

dokumentace

Přidělená síť TEST-NET-2 pro dokumentaci a příklady.

203.0.113.0/24

203.0.113.0–203.0.113.255

256

dokumentace

Přidělená síť TEST-NET-3 pro dokumentaci a příklady.

224.0.0.0/4

224.0.0.0–239.255.255.255

268435456

Internet

Používá se pro IP multicast (dřívější síť třídy D)

233.252.0.0/24

233.252.0.0-233.252.0.255

256

dokumentace

Přidělená síť MCAST-TEST-NET pro dokumentaci a příklady.

240.0.0.0/4

240.0.0.0–255.255.255.254

268435455

Internet

Rezervováno pro budoucí použití (dřívější síť třídy E)

255.255.255.255/32

255.255.255.255

1

podsíť

Rezervováno pro "omezenou broadcast" cílovou adresu

Privátní sítě

Z přibližně čtyř miliard adres definovaných v IPv4 je asi 18 milionů adres ve třech rozsazích vyhrazeno pro použití v privátních sítích. Adresy paketů v těchto rozsazích nejsou směrovatelné ve veřejném internetu; jsou ignorovány všemi veřejnými routery. Soukromí hostitelé proto nemohou přímo komunikovat s veřejnými sítěmi, ale pro tento účel vyžadují překlad síťových adres (NAT - Network Address TRanslation) na směrovací bráně.

Tabulka 2. Vyhrazené IPv4 adresy pro privátní sítě
Jméno CIDR blok Rozsah adres Počet adres Popis (Classful network)

24-bitový blok

10.0.0.0/8

10.0.0.0 – 10.255.255.255

16777216

Jedna síť třídy A.

20-bitový blok

172.16.0.0/12

172.16.0.0 — 172.31.255.255

1048576

Spojené bloky 16 sítí třídy B.

16-bitový blok

192.168.0.0/16

192.168.0.0 — 192.168.255.255

65536

Spojené bloky 256 sítí třídy C.

Vzhledem k tomu, že dvě privátní sítě, např. dvě pobočky nějaké instituce, nemohou přímo spolupracovat prostřednictvím veřejného internetu, musí být tyto dvě sítě propojeny přes Internet pomocí virtuální privátní sítě (VPN) nebo IP tunelu, který zapouzdřuje pakety, včetně jejich hlaviček obsahujících soukromé adresy v protokolové vrstvě během přenosu po veřejné síti. Kromě toho mohou být zapouzdřené pakety šifrovány pro přenos přes veřejné sítě pro zabezpečení dat.

RFC 3927 definuje speciální adresní blok 169.254.0.0/16 pro link-local adresování. Tyto adresy jsou platné pouze na lince (jako je segment místní sítě nebo připojení typu point-to-point) přímo připojené k hostiteli, který je používá. Tyto adresy nejsou směrovatelné. Stejně jako soukromé adresy nemohou být tyto adresy zdrojem nebo cílem paketů procházejících internetem. Tyto adresy se primárně používají pro automatickou konfiguraci adres (Zeroconf), když hostitel nemůže získat adresu IP ze serveru DHCP nebo jiných metod interní konfigurace.

Když byl blok adresy rezervován, neexistovaly žádné standardy pro automatickou konfiguraci adresy. Microsoft vytvořil implementaci nazvanou Automatic Private IP Addressing (APIPA), která byla nasazena na milionech počítačů a stala se de facto standardem. O mnoho let později, v květnu 2005, IETF definovala formální standard v RFC 3927 s názvem Dynamic Configuration of IPv4 Link-Local Addresses.

Lokální smyčka (loopback)

Síť třídy A 127.0.0.0 (beztřídní síť 127.0.0.0/8) je vyhrazena pro zpětnou smyčku. Pakety IP, jejichž zdrojové adresy patří do této sítě, by se nikdy neměly objevit mimo hostitele. Pakety přijaté na rozhraní bez zpětné smyčky se zdrojovou nebo cílovou adresou zpětné smyčky musí být zahozeny.

První a poslední adresa podsítě (subnetu)

První adresa v podsíti se používá k identifikaci samotné podsítě. V této adrese jsou všechny bity hostitele 0. Aby se předešlo nejednoznačnosti v reprezentaci, je tato adresa vyhrazena. Poslední adresa má všechny hostitelské bity nastaveny na 1. Používá se jako místní broadcast adresa pro zasílání zpráv na všechna zařízení v podsíti současně. U sítí o velikosti /24 nebo větší adresa vysílání vždy končí 255.

Například v podsíti 192.168.5.0/24 (maska podsítě 255.255.255.0) se identifikátor 192.168.5.0 používá k označení celé podsítě. Vysílací adresa sítě je 192.168.5.255.

Tabulka 3. Příklad podsítě a broadcastu
Typ Binárně Desítková tečkovaná notace

Podsíť

11000000.10101000.00000101.00000000

192.168.5.0

Broadcast

11000000.10101000.00000101.11111111

192.168.5.255

Tučně je vyznačena hostová část IP adresy a netučně síťová část IP adresy.

To však neznamená, že každá adresa končící na 0 nebo 255 nemůže být použita jako adresa hostitele. Například v podsíti s prefixem /16 192.168.0.0/255.255.0.0, což je ekvivalentní rozsahu adres 192.168.0.0–192.168.255.255, je adresa vysílání 192.168.255.255. Pro hostitele lze použít následující adresy, i když končí 255: 192.168.1.255, 192.168.2.255 atd. Také 192.168.0.0 je identifikátor sítě a nesmí být přiřazen k rozhraní.[19]: 31  The adresy 192.168.1.0, 192.168.2.0 atd. mohou být přiřazeny, přestože končí 0.

V minulosti docházelo ke konfliktu mezi síťovými adresami a broadcastovými adresami, protože některý software používal nestandardní broadcast adresy s nulami místo jedniček.

V sítích menších než /24 nemusí adresy vysílání nutně končit 255. Například podsíť CIDR 203.0.113.16/28 má adresu vysílání 203.0.113.31.

Počítat podsíť a broadcast ručně pomocí desítkové tečkové notace je těžké. Mnohem lépe se to dělá převodem do binární formy.

Ještě lépe se to dělá programem ipcalc který to počítá excelentně

ipcalc
$ ipcalc 172.16.248.156/28
Address:   172.16.248.156       10101100.00010000.11111000.1001 1100
Netmask:   255.255.255.240 = 28 11111111.11111111.11111111.1111 0000
Wildcard:  0.0.0.15             00000000.00000000.00000000.0000 1111
=>
Network:   172.16.248.144/28    10101100.00010000.11111000.1001 0000
HostMin:   172.16.248.145       10101100.00010000.11111000.1001 0001
HostMax:   172.16.248.158       10101100.00010000.11111000.1001 1110
Broadcast: 172.16.248.159       10101100.00010000.11111000.1001 1111
Hosts/Net: 14                    Class B, Private Internet
Nebo můžete použít 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

1024

/22

4C

255.255.252.0

2048

/21

8C

255.255.248.0

4096

/20

16C

255.255.240.0

8192

/19

32C

255.255.224.0

16384

/18

64C

255.255.192.0

32768

/17

128C

255.255.128.0

65536

/16

1B

255.255.0.0

131072

/15

2B

255.254.0.0

262144

/14

4B

255.252.0.0

524288

/13

8B

255.248.0.0

1048576

/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

Kdo si to má pamatovat (Address resolution)

Hostitelé na Internetu jsou obvykle známy svým doménovým jménem (např. www.example.com) a nikoliv svojí IP adresou, která se používá pro směrování a identifikaci síťového rozhraní. Používání doménových jmen vyžaduje překlad jmen na IP adresy a obráceně. To se nazývá resolving (český překlad není). Je to analogické vyhledávání čísla telefonu v telefonním seznamu.

Překlad mezi IP adresami a doménovými jmény provádí Domain Name System, což je hierarchická distribuovaná databáze, která umožňuje delegaci jmenných prostorů jiným DNS serverům.

Úvod do problematiky si můžete přečíst zde

Nečíslovaná rozhraní (Unnumbered interface) PtP

Nečíslované spojení point-to-point (PtP), nazývané také tranzitní spojení, je spojení, ke kterému není přidružena žádná IP síť ani číslo podsítě, ale přesto má adresu IP.

Jako původní návrhář byl poprvé představen v roce 1993 Philem Karnem ze společnosti Qualcomm.

Účelem tranzitního spojení je směrovat datagramy. Používají se k uvolnění IP adres z omezeného prostoru IP adres nebo ke snížení správy přidělování IP a konfigurace rozhraní. Dříve jsme pro každou linku potřebovali vyhradit podsíť /31 nebo /30 pomocí 2 nebo 4 IP adres na spojení point-to-point. Když je linka nečíslovaná, použije se router-id, jedna IP adresa vypůjčená z definovaného (obvykle smyčkového) rozhraní. Stejné id routeru lze použít na více rozhraních.

Jednou z nevýhod nečíslovaných rozhraní je, že je obtížnější provádět vzdálené testování a správu.

Vyčerpání celého rozsahu adres

V 80. letech se ukázalo, že fond dostupných IPv4 adres se vyčerpává tempem, se kterým se původně v původním návrhu sítě nepočítalo. Mezi hlavní tržní síly, které urychlily vyčerpání adres, patřil rychle rostoucí počet uživatelů internetu, kteří stále více používali mobilní výpočetní zařízení, jako jsou přenosné počítače, osobní digitální asistenti (PDA) a chytré telefony s datovými službami IP. Vysokorychlostní přístup k internetu byl navíc založen na vždy zapnutých zařízeních. Hrozba vyčerpání motivovala k zavedení řady sanačních technologií, jako jsou:

  • Classless Inter-Domain Routing (CIDR) pro menší přidělení ISP

  • Nečíslované rozhraní, odstranilo potřebu tranzitních spojů.

  • překlad síťových adres (NAT), odstranil potřebu principu end-to-end.

V polovině 90. let byl NAT všudypřítomný v systémech poskytovatelů síťového přístupu spolu s přísnými zásadami přidělování založených na použití v regionálních a místních internetových registrech.

Primární fond adres internetu, spravovaný IANA, byl vyčerpán 3. února 2011, kdy bylo pěti RIR přiděleno posledních pět bloků. APNIC byl první RIR, který vyčerpal svůj regionální fond dne 15. dubna 2011, s výjimkou malého množství adresního prostoru vyhrazeného pro přechodové technologie na IPv6, který má být přidělen v rámci omezené politiky.

Dlouhodobým řešením vyčerpání IPv4 adres byla v roce 1998 specifikace nové verze internetového protokolu IPv6.

Poskytuje výrazně větší adresní prostor, ale také umožňuje vylepšenou agregaci tras napříč internetem a nabízí koncovým uživatelům velké přidělení podsítě s minimálně 264 hostitelskými adresami. IPv4 však není přímo interoperabilní s IPv6, takže hostitelé pouze s protokolem IPv4 nemohou přímo komunikovat s hostiteli pouze s protokolem IPv6. S vyřazováním experimentální sítě 6bone, které začalo v roce 2004, bylo v roce 2006 zahájeno trvalé formální zavádění IPv6. Očekává se, že dokončení implementace IPv6 zabere značnou dobu, takže jsou nezbytné přechodné přechodové technologie, které umožní hostitelům účastnit se internetu pomocí obou verzí protokolu.

Struktura paketu

Hlavička paketu (packet header)

IPv4 datagram2

Obrázek ukazuje formát IP datagramu. Minimální velikost hlavičky IP datagramu je 20 bytů, pokud nejsou přítomny volby

  • Verze (version) První pole hlavičky IP paketu (4 bity) obsahuje verzi. Pro IPv4 je to vždycky 4.

  • Délka hlavičky (header length IHL) Délka hlavičky IP paketu je proměnná kvůli volbám (options). Pole IHL obsahuje délku této hlavičky ve 32bitových číslech. Minimální délka je 5x32bitů = 160 bitů = 20 byte, maximální délka může být 15x32bitů = 480bitů = 60 byte.

  • Differentiated Service Code Point (DSCP) Původně se toto pole nazývalo ToS (Type of Service - typ služby). Data streamovaná v reálném čase používají pole DSCP. Příkladem je VOIP (Voice over IP — telefonie po internetu).

  • Explicit Congestion Notification (ECN) Toto pole dovoluje, aby se oba konce domluvily na snížení rychlosti vysílání, místo toho aby zahazovaly pakety. ECN je nepovinné a funguje jenom tehdy, pokud se oba konce na ní domluví a nižší vrstva to také podporuje.

  • Celková délka (total length) 16bitové pole, které definuje celkovou délku paketu v bytech (hlavička+data). Minimální hodnota tototo pole je 20 byte (hlavička bez dat) a maximální délka paketu je 65535 bytů. U všech strojů na cestě je požadováno, aby uměly znovu sestavit paket do délky 576 bytů, ale převážná většina moderních routerů umí zacházet s mnohem většími pakety. Linková vrstva může vyžadovat kratší pakety a v tomto případě dojde k fragmentaci (rozdělení paketů na menší kousky). Fragmentaci může provádět jak odesílající stroj, tak i routery na cestě. Sestavení paketu do původní velikosti provádí cílový stroj.

  • Identifikace (identification) Toto pole je identifikační pole a primárně se používá pro jednoznačnou identifikaci skupiny fragmentů jednoho IP datagramu. Některé experimentální práce navrhovaly použití pole ID pro jiné účely, například pro přidávání informací o sledování paketů, které pomáhají sledovat datagramy s podvrženými zdrojovými adresami, ale jakékoli takové použití je nyní zakázáno.

  • Flags Následuje tříbitové pole, které se používá k řízení nebo identifikaci fragmentů. Jsou to (v pořadí od nejvýznamnějšího po nejméně významné):

    • bit 0: rezervováno; musí být nula.[a]

    • bit 1: Nefragmentovat (DF)

    • bit 2: Více fragmentů (MF) Pokud je nastaven příznak DF a pro směrování paketu je vyžadována fragmentace, paket je zahozen. Toho lze využít při odesílání paketů hostiteli, který nemá prostředky k provedení opětovného sestavení fragmentů. Může být také použit pro zjišťování MTU cesty, buď automaticky hostitelským IP softwarem, nebo ručně pomocí diagnostických nástrojů, jako je ping nebo traceroute. U nefragmentovaných paketů je příznak MF vymazán. U fragmentovaných paketů mají všechny fragmenty kromě posledního nastaven příznak MF. Poslední fragment má nenulové pole Fragment Offset, které jej odlišuje od nefragmentovaného paketu.

  • Fragment offset Toto pole specifikuje offset určitého fragmentu vzhledem k začátku původního nefragmentovaného IP datagramu. Hodnota offsetu fragmentace pro první fragment je vždy 0. Pole je široké 13 bitů, takže offset může být od 0 do 8191 (od (20 – 1) do (213 – 1)). Fragmenty jsou specifikovány v jednotkách po 8 bytech, proto musí být délka fragmentu násobkem 8. Proto 13bitové pole umožňuje maximální offset (213 – 1) × 8 = 65 528 bajtů, včetně délky hlavičky (65 528 + 20 = 65 548 bajtů), což podporuje fragmentaci paketů přesahujících maximální délku IP 65 535 bajtů.

  • Time to live (TTL) Osmibitový čas do živého pole omezuje životnost datagramu, aby se zabránilo selhání sítě v případě směrovací smyčky. Udává se v sekundách, ale časové intervaly menší než 1 sekunda se zaokrouhlují nahoru na 1. V praxi se pole používá jako počet skoků – když datagram dorazí na router, router sníží TTL pole o jednu. Když pole TTL dosáhne nuly, router zahodí paket a obvykle odešle odesílateli zprávu o překročení času ICMP. Program traceroute odesílá zprávy s upravenými hodnotami TTL a používá tyto zprávy o překročení času ICMP k identifikaci směrovačů, kterými procházejí pakety ze zdroje do cíle.

  • Protocol Toto pole definuje protokol použitý v datové části datagramu IP. IANA udržuje seznam čísel IP protokolů.

  • Header checksum checksum hlavičky paketu (bez dat) Pole 16bitového kontrolního součtu IPv4 hlavičky se používá pro kontrolu chyb hlavičky. Když paket dorazí do routeru, router vypočítá kontrolní součet hlavičky a porovná jej s polem kontrolního součtu. Pokud se hodnoty neshodují, router paket zahodí. Chyby v datovém poli musí ošetřit zapouzdřený protokol. UDP i TCP mají samostatné kontrolní součty, které se vztahují na jejich data. Když paket dorazí k routeru, router sníží TTL pole v záhlaví. Následně musí router vypočítat nový kontrolní součet záhlaví. Pole kontrolního součtu je 16bitový doplněk jedniček součtu doplňku jedniček všech 16bitových slov v záhlaví. Pro účely výpočtu kontrolního součtu je hodnota pole kontrolního součtu nula.

  • Zdrojová IP adresa (source address) Toto 32bitové pole je adresa IPv4 odesílatele paketu. Může být změněna při přenosu překladem síťových adres (NAT).

  • Cílová IP adresa (destination address) Toto 32bitové pole je adresa IPv4 příjemce paketu. Může být ovlivněna NAT.

  • Možnosti (options) Pole možností se často nepoužívá. Pakety obsahující některé možnosti mohou být některými směrovači považovány za nebezpečné a mohou být blokovány. Hodnota v poli délka hlavičky musí obsahovat dostatek dalších 32bitových slov, aby podržela všechny možnosti a veškeré výplně potřebné k zajištění toho, že záhlaví obsahuje celý počet 32bitových slov. Pokud je v poli délka hlavičky větší hodnota než 5 (tj. je od 6 do 15), znamená to, že pole možností je přítomno a musí být s ním počítáno. Seznam možností může být ukončen volbou EOOL (End of Options List, 0x00); to je nutné pouze v případě, že by se konec možností jinak neshodoval s koncem hlavičky. Možné možnosti, které lze vložit do záhlaví, jsou následující:

pole velikost (bity) popis

Copied

1

Nastaveno na 1 jestliže možnost musí být kopírována do všech fragmentů fragmentovaného paketu

Option Class

2

Obecná kategorie možností. 0 je pro možnosti ovládání a 2 je pro ladění a měření. 1 a 3 jsou vyhrazeny.

Option Number

5

Specifikuje volbu

Option Length

8

Určuj velikost celé volby (včetně tohoto pole). toto pole nemusí existovat u jednoduchých možností

Option Data

variabilní

Data možnosti. Nemusí existovat pro jednoduché možnosti.

Tabulka 4. Tabulka definující volby IPv4 protokolu. Sloupec Option Type je odvozen od Copied, Option Class a Option Number výše.
Option Type (decimal/hexadecimal) Option Name Description

0/0x00

EOOL

konec možností (End of Option List)

0/0x01

NOP

nic (No Operation)

2/0x02

SEC

bezpečnost (Security) — nefunkční

7/0x07

RR

Record Route (zaznamenej routu)

10/0x0A

ZSU

Experimental Measurement (experimentální měření)

11/0x0B

MTUP

MTU Probe (sonda testující Maximal Transfer Unit)

12/0x0C

MTUR

MTU Reply (odpověď na Sondu MTU)

15/0x0F

ENCODE

ENCODE

25/0x19

QS

Quick-Start

30/0x1E

EXP

RFC3692-style Experiment

68/0x44

TS

Time Stamp (časové razítko)

82/0x52

TR

Traceroute

94/0x5E

EXP

RFC3692-style Experiment

130/0x82

SEC

Security (RIPSO)

131/0x83

LSR

Loose Source Route

133/0x85

E-SEC

Extended Security (RIPSO)

134/0x86

CIPSO

Commercial IP Security Option

136/0x88

SID

Stream ID

137/0x89

SSR

Strict Source Route

142/0x8E

VISA

Experimental Access Control

144/0x90

IMITD

IMI TRafic Descriptor

145/0x91

EIP

Extended Internet Protocol

147/0x93

ADDEXT

Address Extension

148/0x94

RTRALT

Router Alert

149/0x95

SDB

Selective Direct Broadcast

151/0x97

DPS

Dynamic Packet Size

152/0x98

UMP

Upstream Multicast Packet

158/0x9E

EXP

RFC3692-style Experiment

205/0xCD

FINN

Experimantal Flow Control

222/0xDE

EXP

RFC3692-style Experiment

  • Data

Užitečná zátěž (data) paketu není zahrnuta v kontrolním součtu. Data jsou interpretována na základě hodnoty pole protokol hlavičky paketu .

Seznam čísel IP protokolů obsahuje úplný seznam typů protokolů.

Některé z běžných protokolů jsou:

číslo protokolu jméno protokolu zkratka

1

Internet Control MEssage Protocol

ICMP

2

Internet Group Management Protocol

IGMP

6

Transmission Control Protocol

TCP

17

User Datagram Protocol

UDP

41

IPv6 encapsulation

ENCAP

89

Open Shortest Path First

OSPF

132

Strean Control TRansmission Protocol

STCP

Internetový protokol umožňuje provoz mezi sítěmi. Návrh pojme sítě různé fyzické povahy; je nezávislý na základní přenosové technologii použité v linkové vrstvě. Sítě s různým hardwarem se obvykle liší nejen přenosovou rychlostí, ale také maximální přenosovou jednotkou (MTU). Když chce jedna síť přenášet datagramy do sítě s menší MTU, může fragmentovat své datagramy. V IPv4 byla tato funkce umístěna na Internet Layer a je prováděna v IPv4 routerech, což omezuje vystavení hostitelů těmto problémům.

Naproti tomu IPv6, další generace internetového protokolu, neumožňuje směrovačům provádět fragmentaci; hostitelé musí před odesláním datagramů provést zjišťování cesty MTU.

Fragmentace (fragmentation)

Když směrovač přijme paket, prozkoumá cílovou adresu a určí odchozí rozhraní k použití a MTU tohoto rozhraní. Pokud je velikost paketu větší než MTU a bit Nefragmentovat (DF) v hlavičce paketu je nastaven na 0, může směrovač fragmentovat paket.

Směrovač rozdělí paket na fragmenty. Maximální velikost každého fragmentu je odchozí MTU minus velikost IP hlavičky (minimálně 20 bajtů; maximálně 60 bajtů). Směrovač vloží každý fragment do vlastního paketu, přičemž každý paket fragmentu má následující změny:

  • Pole celkové délky je velikost fragmentu.

  • Příznak více fragmentů (MF) je nastaven pro všechny fragmenty kromě posledního, který je nastaven na 0.

  • Pole ofsetu fragmentu je nastaveno na základě offsetu fragmentu v původní datové zátěži. To se měří v jednotkách 8bajtových bloků.

  • Pole kontrolního součtu záhlaví je přepočítáno.

Například pro MTU 1 500 bajtů a velikost záhlaví 20 bajtů by offsety fragmentu byly násobky 185: stem:[{\frac {1500-20}{8}} = 185\quad (0, 185, 370, 555, 740 atd.).

Je možné, že paket je fragmentován na jednom směrovači a že fragmenty jsou dále fragmentovány na jiném směrovači.

Například paket o velikosti 4 520 bajtů, včetně 20 bajtové hlavičky IP, je fragmentován na dva pakety na lince s MTU 2 500 bajtů:

Tabulka 5. Fragmentace, MTU 2500 bajtů
fragment velikost (bajty) velikost hlavičky (bajty) velikost dat (bajty) flag More fragments Fragment offset (8 bajtové bloky)

1

2500

20

2480

1

0

2

2040

20

2020

0

310

Celková data jsou zachována: 2480 bajtů + 2020 bajtů = 4500 bajtů. Offset prvního fragmentu je 0 a offset druhého fragmentu je \(\frac{0+2480}{8}=310\).

Pokud by pakety měly dále téci přes síť, která má MTU jenom 1500 bajtů, potom se musí každý fragment rozdělit ještě do dalších dvou fragmentů:

Tabulka 6. Fragmentace z fragmentace, MTU 1500 bajtů
fragment velikost (bajty) velikost hlavičky (bajty) velikost dat (bajty) flag More fragments Fragment offset (8 bajtové bloky)

1

1500

20

1480

1

0

2

1020

20

1000

1

185

3

1500

20

1480

1

310

4

560

20

540

0

495

Opět je zachována velikost dat: 1480 + 1000 = 2480 a 1480 + 540 = 2020.

Také v tomto případě bit More Fragments zůstává 1 pro všechny fragmenty, které došly s 1 v nich a pro poslední fragment, který dorazí, funguje jako obvykle, to znamená, že bit MF je nastaven na 0 pouze v posledním z nich. A samozřejmě, pole Identifikace má nadále stejnou hodnotu ve všech refragmentovaných fragmentech. Tímto způsobem, i když jsou fragmenty znovu fragmentovány, přijímač ví, že původně všechny začaly ze stejného paketu.

Poslední offset a poslední velikost dat se používají k výpočtu celkové velikosti dat: 495 × 8 + 540 = 3960 + 540 = 4500.

Opětovné sestavení paketu na straně příjemce (Reassembly)

Přijímač ví, že paket je fragment, pokud platí alespoň jedna z následujících podmínek:

  • Je nastaven příznak more fragments, což platí pro všechny fragmenty kromě posledního.

  • Posun fragmentu pole je nenulový, což platí pro všechny fragmenty kromě prvního.

Přijímač identifikuje odpovídající fragmenty pomocí zdrojové a cílové adresy, ID protokolu a identifikačního pole. Přijímač znovu sestaví data z fragmentů se stejným ID pomocí příznaku offset fragmentu a více fragmentů. Když přijímač přijme poslední fragment, který má příznak více fragmentů nastavený na 0, může vypočítat velikost původní datové zátěže vynásobením offsetu posledního fragmentu osmi a přidáním datové velikosti posledního fragmentu. V daném příkladu byl tento výpočet 495 × 8 + 540 = 4500 bajtů. Když má přijímač všechny fragmenty, lze je znovu sestavit ve správném pořadí podle offsetů a vytvořit tak původní datagram.


IP adresy nejsou žádným trvalým způsobem svázány se síťovým hardwarem a skutečně, v moderních operačních systémech může mít síťové rozhraní více IP adres. Aby bylo možné správně doručit IP paket cílovému hostiteli na lince, hostitelé a směrovače potřebují další mechanismy, které vytvoří spojení mezi hardwarovou adresou síťových rozhraní a IP adresami. Protokol ARP (Address Resolution Protocol) provádí tento překlad IP adresy na hardwarovou adresu pro IPv4. Navíc je často nezbytná obrácená korelace. Pokud například není adresa předem nakonfigurována správcem, musí při spouštění nebo připojení hostitele IP k síti určit svou IP adresu. Protokoly pro takové reverzní korelace zahrnují Dynamic Host Configuration Protocol (DHCP), Bootstrap Protocol (BOOTP) a zřídka reverzní ARP.


1. RFC znamená Request for comments, je to de facto standard. Každé RFC lze najít na https://datatracker.ietf.org/