IP protokol
Internet Protocol (zkratka IP) je v informatice základním protokolem pracujícím na síťové vrstvě používaným v počítačových sítích a Internetu. Protokol IP poskytuje datagramovou službu celé rodině protokolů TCP/IP. Sám o sobě neposkytuje záruky na přenos dat a rozlišuje pomocí IP adresy pouze jednotlivá síťová rozhraní (doplňující služby jsou poskytovány na vyšších vrstvách, viz referenční model ISO/OSI). V současné době je stále ještě používána starší verze protokolu IPv4, nově se přechází na IPv6.
Historie
IP protokol byl původně datagramová služba bez vystavění spojení
(anglicky connectionless) v rámci projektu Transmission Control Program, který v
roce 1974 uvedla dvojice Vint Cerf a Bob Kahn. Doplňkem byl spojově orientovaný
protokol TCP (Transmission Control Protocol) a společně tak tvořili Rodinu
internetových protokolů (anglicky Internet Protocol Suite), která je často
zkráceně označována jako Rodina protokolů TCP/IP.
Funkce protokolu
Internet Protocol je zodpovědný za směrování datagramů
(paketů) ze zdrojového počítače do cílového hostitele přes jednu nebo více IP
sítí. Paket se skládá z řídících dat (metadat) a z uživatelských dat (užitečné
zatížení, anglicky payload). Řídící data poskytují síti potřebná data k doručení
paketu, například adresu zdroje a cíle, kódy pro detekci chyb – kontrolní součty
a informace o pořadí.
Data se v IP síti posílají po blocích nazývaných datagramy. Jednotlivé datagramy putují sítí zcela nezávisle, na začátku komunikace není potřeba navazovat spojení či jinak „připravovat cestu“ datům, přestože spolu třeba příslušné stroje nikdy předtím nekomunikovaly.
IP v doručování datagramů poskytuje nespolehlivou službu, označuje se také jako best effort – „nejlepší úsilí“; tj. všechny stroje na trase se datagram snaží podle svých možností poslat blíže k cíli, ale nezaručují prakticky nic. Datagram vůbec nemusí dorazit, může být naopak doručen několikrát a neručí se ani za pořadí doručených paketů. Pokud aplikace potřebuje spolehlivost, je potřeba ji implementovat v jiné vrstvě síťové architektury, typicky protokoly bezprostředně nad IP (viz TCP).
Pokud by síť často ztrácela pakety, měnila jejich pořadí nebo je poškozovala, výkon sítě pozorovaný uživatelem by byl malý. Na druhou stranu příležitostná chyba nemívá pozorovatelný efekt. Navíc se obvykle používá vyšší vrstva, která ji automaticky opraví.
Adresování a směrování
Každé síťové rozhraní komunikující prostřednictvím IP
má přiřazeno jednoznačný identifikátor, tzv. IP adresu. V každém datagramu je
pak uvedena IP adresa odesílatele i příjemce. Na základě těchto adres pak
směrovače (routery) na trase provádí rozhodnutí, jakým směrem paket odeslat,
tzv. směrování (routing).
Spolehlivost
Návrh internetových protokolů předpokládá, že síťová
infrastruktura je neodmyslitelně nespolehlivá a dynamická z hlediska dostupnosti
a propojení uzlů. Neexistuje žádný centrální monitoring anebo měření výkonnosti,
který by umožňoval sledování, nebo udržování stavu sítě. V zájmu snížení
složitosti sítě se využívá tzv. konec-konec princip. Routery v přenosové cestě
pouze přepošlou pakety na další známé místní brány, které odpovídají směrovacímu
prefixu cílové adresy.
V důsledku tohoto návrhu Internet Protocol poskytuje nejlepší výkon, ale služba jako taková je charakterizována jako nespolehlivá. Proto se můžou v průběhu přenosu objevit různé chyby, jako například poškození dat, ztráta paketů a opakování, ale i špatné pořadí paketů. Vzhledem k tomu, že je směrování dynamické pro každý paket a síť si neuchovává stav cesty, je možné, že některé pakety jsou směrovány přes delší cestu k určenému cíli, což vede k nesprávnému pořadí v přijímači.
Jediná pomůcka, kterou poskytuje Internet Protocol verze 4 (IPv4), je zajištění záhlaví IP paketu bez chyb pomocí výpočtu kontrolního součtu při průchodu každým uzlem. Díky této metodě je možné vyřazení paketu se špatným kontrolním součtem. V tomto případě se chyba zasílá koncovému uzlu, i když existuje tzv. Internet Control Message Protocol(ICMP). V nové verzi IPv6 se opustilo od používání IP hlavičky s kontrolním součtem ve prospěch rychlého zasílání přes směrovací prvky v síti.
Rozpoznání a opravu některého z těchto problémů je v kompetenci vrchní vrstvy protokolu. Například, aby bylo dodrženo pořadí doručení, může horní vrstva využít "cachování" dat.
Co se týče spolehlivosti, dynamický charakter a rozmanitost internetu a jeho součástí, není poskytnuta žádná záruka, že konkrétní cesta je schopná, nebo vhodná pro provedení požadovaného přenosu, i když je cesta dostupná a spolehlivá. Jedním z technických omezení je velikost datových paketů k danému odkazu. K dispozici je mechanizmus, který může zjistit velikost místní sítě (Maximum transmission unit(MTU)), stejně jako pro celou naplánovanou cestu k cíli při použití IPv6. Síťová vrstva IPv4 umožňuje automaticky fragmentovat původní datagram do menších jednotek. V tomto případě IP znovu uspořádá fragmenty dodané ve špatném pořadí.
Transmission Control Protocol (TCP) je protokol, který dokáže upravit velikost segmentu. UDP a Internet Control Message Protocol(ICMP) ignoruje velikost MTU a tím nutí k fragmentaci příliš velkých datagramů.
IP adresování a směrování
Snad nejsložitějšími aspekty IP jsou IP adresování
a směrování. IP protokol řeší, jakým způsobem se přiděluje IP adresa hostitelům
a jak se IP adresy hostitele dělí a seskupují v podsítích. IP směrování se
provádí všemi hostiteli, ale především routery propojující sítě, kde se obvykle
používá buď IGP (Interior Gateway Protocol), nebo EGP (Exterior Gateway
Protocol), pomocí nichž se IP datagramy přeposílají přes připojené sítě. IP
směrování se také používá v lokálních sítích. Například, Ethernet přepínače dnes
podporují IP multicast. Tyto přepínače primárně používají IP adresy, ale
podporují i MAC adresy kvůli kompatibilitě se staršími přepínači.
Historie verzí IP
V květnu 1974 Institut elektrických a elektronických
inženýrů (IEEE) vydal knihu nazvanou "Protokol pro propojení paketové sítě". V
knize autoři Vint Cerf a Bob Kahn popsali protokol síťování pro sdílení zdrojů
pomocí přepínání paketů mezi jednotlivými uzly. Centrální ovládací prvek tohoto
modelu je "Transmission Control Program" (TCP), který obsahuje současně odkazy
orientované na připojení a datagram služeb mezi hostiteli. Monolitický TCP byl
později rozdělen na modulární architekturu sestávající z TCP protokolu a síťovou
vrstvu. Tento model se stal známý jako TCP/IP, i když formálně odkazoval na
Internet Protocol Suite.
Internet Protocol je jedním z určujících prvků, které definují Internet. Dnes se na internetu využívá převážně IPv4. Verze protokolu je uvedeno v každém IP datagramu. IPv4 je popsán v RFC 791 (1981). Nástupce IPv4 je IPv6 . Jeho nejvýznamnější změny od verze 4 je řešení systému. IPv4 používá 32bitové adresy (cca 4 miliardy, neboli 4,3 x 10 9 adres), zatímco IPv6 používá 128bitové adresy (cca. 340 sextiliónů , neboli 3,4 × 10 38 adres). I když nasazování IPv6 je pomalé, v červnu 2008 vláda Spojených států začala využívat IPv6 (i když jen na úrovni páteřní sítě) jako vyjádření podpory nové verze protokolu.
Verze čísla 0 až 3 byly vývojové verze IPv4 používány v letech 1977 a 1979. Verze číslo 5 byla používána jako streamovací protokol (anglicky Internet Stream Protocol). Čísla verzí 6 až 9 byly navrženy pro různé modely protokolu s cílem nahradit IPv4: SIPP (Simple Internet Protocol Plus, známý nyní jako IPv6), TP / IX ( RFC 1475 ), PIP ( RFC 1621 ) a TUBA (TCP a UDP s většími adresami, RFC 1347 ). Číslo verze 6 byl nakonec vybrán jako oficiální nástupce IPv4, následně standardizovaný jako IPv6 .
Dnes se nejčastěji používá verze označovaná číslem 4 nazývaná IPv4. IPv6 je navrhovaný a chystaný nástupce IPv4. Internetu pozvolna docházejí adresy (přesněji nebýt NATu a organizačních opatřeních zpřísňujících přidělování adres zavedených v polovině 90. let, už by došly), a IPv6 má kromě jiného adresy 128bitové, které poskytují větší adresní prostor než 32bitové adresy v IPv4 (IPv4 má miliardy adres, IPv6 stovky sextiliónů).
Nejnovější verze IPv6 nahradí stávající vzhledem k faktu, že adresy IPv4 i přes provedená úsporná opatření díky rozvoji internetu stále ubývají a mezi lety 2010 až 2011 by se mohly všechny vyčerpat. Nový protokol bude klást určité nároky na vybavenost osobních počítačů i jiných zařízení. Moderní operační systémy (Windows XP, Windows Vista, Windows 7, Mac OS X, Linux) jsou již na implementaci připravené, je ale nutné upravit i všechny síťové aplikace.