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
Úč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.
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.
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.
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
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. |
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.
| 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ě.
| 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.
Link-local adresování
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.
| 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 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)
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. |
| 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 |
ICMP |
|
2 |
Internet Group Management Protocol |
IGMP |
6 |
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ů:
| 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ů:
| 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.