IP adresa
IP adresa dostala název podle svého protokolu, na kterém běží a to anglicky Internet Protocol, známý hlavně díky své zkratce IP. Tento protokol vznikl v roce 1974 a je součástí tzv. Rodiny protokolů TCP/IP, které již podrobněji popsány v kapitole 2.3 zabývající se síťovou vrstvou modelu TCP/IP.
Zopakujme si jen, že IP protokol je univerzální přenosový protokol, nezáleží tedy na přenosové technologii, zajišťuje směrování a přenos IP datagramu, funguje nespolehlivě, tzn. že negarantuje doručení, nepoškození a nepoužívá potvrzování a také nespojovaně, tzn. že nečísluje packety a nezaručuje pořadí a dobu doručení. O spolehlivost a spojovanost se stará protokol TCP.
IP adresa tedy slouží k jedinečné identifikaci síťového rozhraní v počítačové síti, která používá protokol IP. V současnosti je nejpoužívanější IP adresa verze 4 (označována jako IPv4), která ovšem bude muset být v dohledné době nahrazena IP adresou verze 6 (IPv6) jak se dozvíme níže.
Data v počítačových sítích s přepojováním packetů, což je i např. dnes nejpoužívanější Ethernet putují ve formě tzv. IP datagramů. Co obsahuje takový typický IP datagram v4 můžete vidět v následujícím Obr. 28.
Bajty |
0 |
1 |
2 |
3 |
|
Bajt 0-3 |
Verze |
Délka hl. |
Typ služby |
Celková délka |
|
Bajt 4-7 |
Identifikace |
Příznaky |
Offset fragmentu |
||
Bajt 8-11 |
TTL |
Protokol |
Kontrolní součet hlavičky |
||
Bajt 12-15 |
Adresa odesílatele |
||||
Bajt 16-19 |
Adresa cíle |
||||
Bajt 20-23 |
Volby |
Výplň |
|||
... |
Data |
||||
Obr. 28: Formát IP datagramu v4
Prvních až 24 bajtů bývá označováno jako hlavička a pak následují data. Jednotlivé pole hlavičky jsou:
Verze (angl. Version) – verze IP protokolu, v našem případě tam bude 4.
Typ služby (angl. Type of Service – TOS) – původně si v této položce měl uživatel zvolit službu, která bude ideální pro jeho datagram – tzn. že si mohl zadat požadavek na nejmenší zpoždění, nejlevnější dopravu apod., přičemž se měly tyto hodnoty při směrování brát v potaz a volit podle toho směrovací trasu. V praxi se to ale nerealizovalo a tato položka se používá pro značky zajišťující služby s definovanou kvalitou přenosu (viz QoS v kapitole 1.6).
Celková délka (angl. Total Length) – udává celkovou délku datagramu
Identifikace (angl. Identification) – odesílatel přidá každému odeslanému datagramu jednoznačný identifikátor a kdyby došlo při přenosu dat k rozdělení datagramu (tzv. fragmentování), jednotlivé položky se dají k sobě právě pomocí tohoto identifikátoru.
Příznaky (angl. Flags) – udává, jestli tento datagram nesmí být fragmentován (příznak don't fragment) nebo ano (more fragments).
Offset fragmentu (angl. Fragment Offset) – udává, na jaké pozici původního datagramu se nachází aktuální fragment, když je v předchozích příznaku naznačeno more fragments.
TTL (angl. Time to Live) – se používá jako ochrana proti zacyklení. Každý směrovač hodnotu TTL sníží o jedničku a pokud je TTL = 0, tak je datagram zahozen, protože vypršela jeho životnost.
Protokol (angl. Protocol) – číslo zde udává, kterému protokolu vyšší vrstvy se mají data předat při doručení.
Kontrolní součet hlavičky (angl. Header Checksum) – slouží k ověření, že jsou data nepoškozena, počítá se pouze z hlavičky a pokud nesouhlasí, je datagram zahozen.
Adresa odesílatele (angl. Source Address) – IPv4 adresa síťového rozhraní, odkud data vyšla
Adresa cíle (angl. Destination Address) – IPv4 adresa síťového rozhraní, kam mají data doputovat.
Volby (angl. Options) – jsou zde pro různé informace a požadavky jako je např. série adres, kterými má datagram projít. Obvykle nebývá tato položka využita.
Výplň (angl. Pad) – se používá k zaokrouhlení délky hlavičky na násobek čtyř bajtů.
IPv4
Zatím nejpoužívanější IPv4 je 32bitové číslo rozdělené na čtyři tzv. oktety (8 bitů) zapisované v desítkové soustavě oddělené tečkou. IP adresou v4 je např.:
195.168.52.14
Je tedy jasné, že čísla mají rozsah 0-255 protože nejmenší číslo je 000000002= 010
a největší číslo je 111111112 = 25510.
Jelikož jde o 32bitové číslo, je z matematického hlediska jasné, že můžeme dosáhnout maximálně 232 = 4 294 967 296 IPv4 adres, a protože některé rozsahy jsou rezervované, např. pro vnitřní potřebu protokolu, a tím nemohou být použity, prakticky dosáhneme podstatně méně IP adres. Je nutné si uvědomit, že IP adresu musí mít každé síťové rozhraní, nejenom počítače, ale i např. síťové tiskárny, scannery, webové kamery, mobilní telefony připojené k Internetu apod. a tak již před několika lety bylo jasné, že bude IP adres v budoucnu málo.
Jelikož se o nedostatku IP adres vědělo již zhruba 10 let předem, zaváděly se různá nařízení a postupy, které ubývání alespoň zpomalily. Jedním způsobem je přidělování IP adres dynamicky, které se využívá především u komutovaného připojení, kde nejsou účastníci připojeni stále, tzn. že IP adresu dostanou dočasně a při svém odpojení se tato adresa uvolní pro jiného uživatele, který se zrovna připojí. Druhým způsobem je použití tzv. neveřejných IP adres, kde uživatelé místní LAN sítě mají adresu nejčastěji v rozsahu 192.168.X.X nebo 10.X.X.X a v komunikaci směrem ven do Internetu jsou tyto adresy tzv. překladány (anglicky Network Address Translation – NAT) a celá síť se navenek tváří jako jeden uzel s jednou IP adresou.
Struktura IPv4 adresy se člení na tři základní části:
adresa sítě |
adresa podsítě |
adresa rozhraní |
Tato struktura má hlavní význam kvůli směrování, o kterém jsme se již bavili dříve. Směrovače totiž při průchodu datagramu primárně zajímá především adresa sítě a až poté, co datagram připutuje na směrovač dané sítě. Až poté se řeší adresa podsítě a adresa cílového rozhraní. Platí, že datagramy v rámci jedné sítě lze doručovat přímo, protože uživatelé jsou většinou propojeni jednou sítí. Pokud je ovšem cílová stanice mimo danou síť, musí se přepravit až k příslušnému směrovači.
Obecně IP adresu sítě přiděluje uživateli jeho ISP nebo lokální registrátor a žádá se o ni pomocí formuláře. Rozdělení na sítě a podsítě si pak již udělá správce sítě sám, stejně tak jako IP adresu koncových stanic.
Dříve to bylo rozděleno tak, že prvních 8 bitů určovalo adresu sítě a zbytek byla adresa koncových zařízení. To ovšem umožňovalo využití pouze 256 sítí se zhruba 16 miliony koncových stanic uvnitř, což s rozvojem LAN sítí bylo problém, protože u nich potřebujeme více sítí někdy s podstatně méně stanicemi.
Třída |
Začátek |
Bitů sítě |
Bitů stanice |
Počet sítí |
Počet stanic |
A |
0 |
7 |
24 |
27 = 128 |
224 = 16 777 216 |
B |
10 |
14 |
16 |
214 = 16 384 |
216 = 65 536 |
C |
110 |
21 |
8 |
221 = 2 097 152 |
28 = 256 |
D |
1110 |
multicast |
|||
E |
1111 |
rezerva |
Tab. 3: Třídy IP adres v4
Proto se IP adresy začaly rozdělovat do tzv. tříd podle toho, jaká část označuje adresu sítě a jaká adresu koncové stanice. Tyto třídy jsou označovány písmeny, přičemž nejpoužívanější jsou třídy A, B a C a třídy D a E jsou vyhrazeny pro tzv. multicast a jako rezerva. Přehled těchto tříd můžete najít v Tab. 3. O jakou třídu jde, se dá poznat i podle hodnot prvního bajtu – viz Tab. 4.
Třída |
1.bajt |
Rozsah |
Maska |
A |
0-127 |
0.0.0.0 – 127.255.255.255 |
255.0.0.0 |
B |
128-191 |
128.0.0.0 – 191.255.255.255 |
255.255.0.0 |
C |
192-223 |
192.0.0.0 - 223.255.255.255 |
255.255.255.0 |
D |
224-239 |
224.0.0.0 - 239.255.255.255 |
255.255.255.255 |
E |
240-255 |
240.0.0.0 - 255.255.255.255 |
- |
Tab. 4: Rozsahy IP adres v4
Hranici mezi adresou podsítě a stanice určuje tzv. maska podsítě (angl. subnet mask), která je také 32bitová a zapisuje se stejně jako IP adresa. V binárním tvaru má jedničky tam, kde má IP adresa adresu sítě a podsítě a nuly v části udávající adresu koncového zařízení.
Př. Teď již víme, že výše uvedená adresa 195.168.52.1410 je adresa třídy C a její binární zápis je 11000011.10101000.00110100.000011102.Adresa sítě jsou první tři oktety, tj. 195.168.52.X10 tzn. že maska podsítě je 255.255.255.010 neboli 11111111.11111111.11111111.000000002.
Výše uvedené dělení se anglicky označuje classfull network a postupem času se stalo nedostačující díky svému velmi omezenému rozsahu – máme buď moc sítí s málo stanicemi nebo málo sítí s moc počítači, nic mezi tím, což je velmi nepružné. Proto přišlo v roce 1993 vylepšení tohoto systému pomocí systému tzv. classless network, které začalo využívat tzv. beztřídní mezidoménové směrování (angl. Classless Inter-Domain Routing – CIDR), ve kterém je možno dát předěl mezi sítí a uzlem na libovolnou pozici mezi všechny 32bity. CIDR se značí jako lomítko a číslo za IP adresou, kde číslo značí počet jedničkových bitů v masce podsítě v binární formě, viz následující případ:
Př. Pokud máme např. adresu 10.0.5.2/20, tak její maska sítě je:
Počet jedniček 8 8 4 0
Binárně 11111111 11111111 11110000 0000000
Dekadicky 255 255 240 0
Jestliže máme IPv4 adresu zapsánu ve formátu s CIDR, není již tak jednoduché na první pohled poznat, kolik má daná síť podsítí a stanic. K výpočtu těchto hodnot nejdříve vezmeme oktet masky, ve kterém je přechod mezi 1 a 0 a spočítáme počet jedniček v tomto oktetu, počet nul v celé adrese a dosadíme do vzorce:
počet podsítí = 2počet jedniček
počet hostů = 2počet nul – 1
Př. Vypočítejte maximální počet podsítí a počet hostů pro IP adresu 10.0.5.2/20.
Maska sítě (viz příklad výše) je:
255.255.240.010 = 11111111.11111111.11110000.0000000002
počet podsítí = 2počet jedniček = 24 = 16 podsítí
počet hostů = 2počet nul – 1 = 212 – 2 = 4094 hostů v jedné síti
Jestliže chceme vypočítat základní adresu sítě, potřebujeme udělat bitový součin IP adresy a masky sítě – viz následující příklad.
Př. Určete základní adresu sítě, když víte IP adresu ve tvaru 10.0.105.2/20.
IP adresa |
dekadicky |
10 |
0 |
105 |
2 |
||
binárně |
00001010 |
00000000 |
01101001 |
00000010 |
|||
Maska sítě |
binárně |
11111111 |
11111111 |
11110000 |
00000000 |
||
dekadicky |
255 |
255 |
240 |
0 |
|||
Adresa sítě |
binárně |
00001010 |
00000000 |
01100000 |
00000000 |
||
dekadicky |
10 |
0 |
96 |
0 |
K výpočtům výše uvedených adres, ať už výpočet masky, počty podsítí, hostů a základní adresy sítě, existuje samozřejmě spousta kalkulaček, ať už ve formě programů do počítače, nebo on-line výpočtů na webových stránkách. Jako příklad si může uvést stránky http://subnet-calculator.samuraj-cz.com/, kde zadáme IP adresu a CIDR, popř. přímo masku sítě po stisku tlačítka získáme množství adres, které bychom jinak museli počítat ručně.
IPv6
Jak již bylo psáno výše, v současné době je kritický nedostatek volných IP adres. K tomuto výraznému nedostatku přispělo také to, že jsou IP adresy přidělovány hierarchicky podle logických bloků a velkých geografických skupin na AfriNIC (Afrika), RIPE/NCC (Evropa a severní a západní část Asie), ARIN (USA a Kanada), LACNIC (Jižní Amerika) a APNIC (jihovýchodní Asie, Austrálie a Pacifik) – viz Obr. 29. Je jasné, že některé oblasti byly nedočerpané, některé zase nedostatečné a i přes optimalizaci došlo dne 3.2.2011 k rozdání posledních bloků globálních IP adres. Pár volných IP adres v4 na lokální úrovni ještě najdeme, ale svět se pomalu převádí na IP adresy v6, jako např. velké společnosti Google, Facebook, Yahoo, Bing apod., které na IPv6 přepnuly své servery dne 6.6.2012 k příležitosti tzv. World IPv6 Launch dne.
Problém s nedostatkem IP adres bylo ovšem nutné vyřešit trvale a také proto se zavedla kolem roku 1992 nová verze protokolu IP a to verze 6. IPv6 adresa má oproti IPv4 délku 128 bitů, což znamená, že teoreticky můžeme mít 2128 adres, což je asi 3x1038 IP adres, což je opravdu obrovské číslo. Pěkný příklad pro srovnání uvádí, že při takovém množství připadá na 1 m2 zemského povrchu 6x1023 adres a to již by mělo chvíli vydržet pro každé zařízení připojené k Internetu i za předpokladu, že některé adresy jsou rezervované.
IPv6 adresa se zapisuje jako osm skupin po čtyřech hexadecimálních číslech, kde prvních 64 bitů je adresa sítě (podsítě) a dalších 64 bitů je adresa hosta (často MAC adresa – viz kapitola níže), např.:
2001:0718:1c01:0016:0214:0000:0000:0ca5
Přičemž pokud skupina obsahuje v úvodu nějaké nuly, mohou se vynechat. Výše uvedená adresa může mít tedy zápis:
2001:718:1c01:16:214:0:0:ca5
Pokud adresa obsahuje několik po sobě jdoucích nulových skupin, může se místo nich zapsat znak ::, ale tento může být použit jen jednou, tedy:
2001:718:1c01:16:214::ca5
IPv6 nepoužívá tzv. všesměrové (broadcast) adresy, ale obecnější model skupinových adres. Díky vrstvové architektuře modelu TCP/IP spočívá implementace pouze ve výměně formátu IP datagramů na síťové vrstvě a všechny protokoly vyšších vrstev (UDP, TCP apod.) zůstávají stejné.
Jelikož se dvojtečka používá např. také pro označení portu při zadávání URL adresy, IPv6 adresa se zadává v URL v hranatých závorkách, např.:
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/
V IPv6 se oproti IPv4 řeší také bezpečnost pomocí tzv. IPsec (anglicky IP security), která poskytuje šifrování a autentizaci. Implementace IPsec je povinná, ale ne vždy využívaná. Dále je zde podpora mobility, která umožňuje, že mobilní zařízení používá adresu své vlastní domácí sítě, i když je připojeno jinde.
Nástup IPv6 adres je dnes ještě pozvolný, ale dříve nebo později se mu nejspíš nevyhne každé zařízení připojení k Internetu. Je k němu ale potřeba upravit stávající zařízení, popř. si pořídit nové – např. operační systém Windows Vista a novější.