IP

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 upustilo 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ími 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 . Zatímco IPv4 používá 32bitové adresy (cca 4 miliardy, neboli 4,3×109 adres), IPv6 používá 128bitové adresy (cca 340 sextiliónů, neboli 3,4×1038 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é verzi 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 byly vyčerpány. Nově zaváděný protokol IPv6 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.