TCP/IP
Rodina protokolů TCP/IP (anglicky Transmission Control Protocol/Internet Protocol – „primární přenosový protokol/protokol síťové vrstvy“) obsahuje sadu protokolů pro komunikaci v počítačové síti a je hlavním protokolem celosvětové sítě Internet. Komunikační protokol je množina pravidel, která určují syntaxi a význam jednotlivých zpráv při komunikaci.
Historie
První výzkum
Internet protocol vyplynul z výzkumu a vývoje Defense Advanced Research Project Agency (DARPA), který probíhal na konci 60. let. Po zahájení průkopnického ARPANET v roce 1969, DARPA začala pracovat na celé řadě dalších dat přenášejících technologií. V roce 1972 se Robert E. Kahn připojil k DARPA, přesněji na pracoviště zabývající se zpracováním informací, kde pracoval na obou sítích, jak na satelitní, paketové síti, tak na pozemních, radio-paketových sítí a zjistil, že je možné komunikovat přes obě. Na jaře 1973, Vinton Cerf, vývojář stávajícího protokolu ARPANET Network Control Program (NCP) se připojil ke Kahnovi a začal s ním pracovat na modelech s otevřenou architekturou, s cílem navrhnout novou generaci protokolu pro ARPANET.
V létě roku 1973, Kahn a Cerf vypracovali zásadní reformulaci, v níž byly rozdíly mezi síťovými protokoly skryty za pomocí společného síťového protokolu a zodpovědnost za spolehlivost, kterou dříve nesla síť, nyní přešla na hostitele. Cerf ocenil i práci Huberta Zimmermanna a Louise Pouzina, designéry CYCLADES sítě, kteří měli velmi podstatný vliv na její konečný design.
Konstrukce sítě obsahovala rozeznávání, které mělo poskytnout jedinou funkci a to efektivní vysílání a směřování provozu mezi koncovými uzly a dále, že ostatní inteligence by měly být umístěny na kraji sítě, v koncových uzlech. Pomocí jednoduchého designu se stalo možným připojit téměř jakoukoli síť k ARPANET, bez ohledu na místní charakteristiky, čímž se vyřešil Kahnův problém. Jednou populární hláškou je, že TCP/IP, konečný produkt Cerfa a Kahna překoná dvě plechovky spojené špagátem.
Počítač, který nazveme routerem je vybaven rozhraním pro každou síť. Předává mezi nimi pakety tam a zpět. Původně byl router nazýván bránou (gateway), ale tento termín byl změněn, aby se předešlo zmatku, či záměnou s jinými typy bran.
Specifikace
Od roku 1973 do roku 1974 Cerfova síťová výzkumná skupina na Stanfordu vypracovala detaily myšlenky, což mělo za následek první specifikaci TCP. Významný technický vliv měla předešlá práce v oblasti sítí v Xerox PARC, který produkoval sadu PARC Universal Packet protokolů.
DARPA se poté smluvně spojila s BBN Technologies, Stanfordovou univerzitou a Londýnskou univerzitou kvůli rozvoji operativní verze protokolu na různé hardwarové platformy. Byly vyvinuty čtyři verze: TCP v1, TCP v2, TCP v3 a TCP/IP v4. Poslední z protokolů je do dnes užíván.
V roce 1975, byl mezi Stanfordovou a londýnskou univerzitou proveden komunikační test TCP/IP dvou sítí. V listopadu 1977 byl proveden test TCP/IP tří sítí mezi lokalitami v USA, UK a Norsku. Bylo vyvinuto několik dalších prototypů TCP/IP v několika výzkumných centrech mezi roky 1978 a 1983. Finálový přesun ARPANET na TCP/IP byl oficiálně uskutečněn 1. ledna 1983, kdy byly nové protokoly trvale uvedeny v provoz.
Architektura TCP/IP
Vzhledem ke složitosti problémů je síťová komunikace rozdělena do tzv. vrstev, které znázorňují hierarchii činností. Výměna informací mezi vrstvami je přesně definována. Každá vrstva využívá služeb vrstvy nižší a poskytuje své služby vrstvě vyšší.
Komunikace mezi stejnými vrstvami dvou různých systémů je řízena komunikačním protokolem za použití spojení vytvořeného sousední nižší vrstvou. Architektura umožňuje výměnu protokolů jedné vrstvy bez dopadu na ostatní. Příkladem může být možnost komunikace po různých médiích fyzické vrstvy modelu OSI - ethernet (optické vlákno, kroucená dvojlinka, Wi-Fi), sériová linka.
Architektura TCP/IP je členěna do čtyř vrstev (na rozdíl od referenčního modelu OSI se sedmi vrstvami):
- aplikační vrstva (application layer)
- transportní vrstva (transport layer)
- síťová vrstva (internet layer)
- vrstva síťového rozhraní (network interface)
Vrstva síťového rozhraní
Nejnižší vrstva umožňuje přístup k fyzickému přenosovému médiu. Je specifická pro každou síť v závislosti na její implementaci. Příklady sítí: Ethernet, Token ring, FDDI, 100BaseVG, X.25, SMDS.
Síťová vrstva
Vrstva zajišťuje především síťovou adresaci, směrování a předávání datagramů. Protokoly: IP, ARP, RARP, ICMP, IGMP, IGRP, IPSEC. Je implementována ve všech prvcích sítě - směrovačích i koncových zařízeních.
Transportní vrstva
Poskytuje transportní služby pro kontrolu celistvosti dat: kontrolované spojení spolehlivým protokolem TCP (transmission control protocol) nebo nekontrolované spojení nespolehlivým protokolem UDP (user datagram protocol). Transportní vrstva je implementována až v koncových zařízeních (počítačích) a umožňuje proto přizpůsobit chování sítě potřebám aplikace.
Aplikační vrstva
Vrstva aplikací. Jedná se o protokoly, které slouží k přenosu konkrétních dat. Příklady: Telnet, FTP, HTTP, DHCP, DNS.
Aplikační protokoly používají vždy jednu ze dvou základních služeb transportní vrstvy: TCP nebo UDP, případně obě dvě (např. DNS). Pro rozlišení aplikačních protokolů se používají tzv. porty, což jsou domluvená číselná označení aplikací. Každé síťové spojení aplikace je jednoznačně určeno číslem portu a transportním protokolem (a samozřejmě adresou počítače).
Základní protokoly
IP
Internet Protocol je základní protokol síťové vrstvy a celého Internetu. Provádí vysílání datagramů na základě síťových IP adres obsažených v jejich záhlaví. Poskytuje vyšším vrstvám síťovou službu bez spojení. Každý datagram je samostatná datová jednotka, která obsahuje všechny potřebné údaje o adresátovi i odesilateli a pořadovém čísle datagramu ve zprávě. Datagramy putují sítí nezávisle na sobě a pořadí jejich doručení nemusí odpovídat pořadí ve zprávě. Doručení datagramu není zaručeno, spolehlivost musí zajistit vyšší vrstvy (TCP, aplikace).
Tento protokol se dále stará o segmentaci a znovusestavení datagramů do a z rámců podle protokolu nižší vrstvy (např. ethernet).
V současné době je převážně používán protokol IP verze 4. Nová verze 6, která řeší nedostatek adres v IPv4, bezpečnostní problémy a vylepšuje další vlastnosti protokolu IP, je celosvětově používána jen několika procenty zařízení připojených k internetu, ale jejich počet rychle roste.
IPv4
Internet protokol verze 4
- 32bitové adresy
- cca 4 miliardy různých IP adres, dnes nedostačující
- formát: xxx.xxx.xxx.xxx kde xxx je libovolné číslo od 0 do 255 (8 bitů)
ARP
Address Resolution Protocol se používá k nalezení fyzické adresy MAC podle známé IP adresy. Protokol v případě potřeby vyšle datagram s informací o hledané IP adrese a adresuje ho všem stanicím v síti. Uzel s hledanou adresou reaguje odpovědí s vyplněnou svou MAC adresou. Pokud hledaný uzel není ve stejném segmentu, odpoví svou adresou příslušný směrovač.
Příbuzný protokol RARP (Reverse Address Resolution Protocol) má za úkol najít IP adresu na základě fyzické adresy.
ICMP
Internet Control Message Protocol slouží k přenosu řídících hlášení, které se týkají chybových stavů a zvláštních okolností při přenosu. Používá se např. v programu ping pro testování dostupnosti počítače, nebo programem traceroute pro sledování cesty paketů k jinému uzlu.
TCP
Transmission Control Protocol vytváří virtuální okruh mezi koncovými aplikacemi, tedy spolehlivý přenos dat. Vlastnosti protokolu:
- Spolehlivá transportní služba, doručí adresátovi všechna data bez ztráty a ve správném pořadí.
- Služba se spojením, má fáze navázání spojení, přenos dat a ukončení spojení.
- Transparentní přenos libovolných dat.
- Plně duplexní spojení, současný obousměrný přenos dat.
- Rozlišování aplikací pomocí portů.
UDP
User Datagram Protocol poskytuje nespolehlivou transportní službu pro takové aplikace, které nepotřebují spolehlivost, jakou má protokol TCP. Nemá fázi navazování a ukončení spojení a už první segment UDP obsahuje aplikační data. UDP je používán aplikacemi jako je DHCP, TFTP, SNMP, DNS a BOOTP.
Protokol používá podobně jako TCP čísla portů pro identifikaci aplikačních protokolů.
SCTP
Spolehlivý protokol pro přenos datagramů ve více proudech. Je využívaný zejména v telekomunikacích. Doplňuje některé vlastnosti, které TCP postrádá:
- Multihoming - komunikující uzel může mít několik IP adres.
- Členění datového toku na datagramy.
- Používání více proudů dat - omezuje blokování komunikace způsobené chybějícím blokem dat, ke kterému může dojít v TCP.
- Výběr a sledování cesty - Pokud má primární adresa problémy s dostupností lze používat alternativní.
- Ověřovací a potvrzovací mechanismy - SCTP komplikuje některé útoky směřující k nedostupnosti služeb (DoS). Zajišťuje ověření opakujících se a chybějících balíků.
Stejně jako TCP a UDP rozlišuje aplikační protokoly pomocí portů.
Aplikační protokoly (služby)
- DNS – systém doménových jmen
- DHCP – dynamické přidělování síťových informací jako například: výchozí brána, maska sítě, IP adresa
- FTP – přenos souborů po síti
- TFTP - jednoduchý protokol pro přenos souborů
- HTTP – přenos hypertextových dokumentů (WWW)
- WebDAV – rozšíření HTTP o práci se soubory
- IMAP (Internet Message Access Protocol) umožňuje manipulovat s jednotlivými e-mail zprávami na poštovním serveru.
- IRC (Internet Relay Chat) – jednoduchý chat po internetu.
- NNTP (Network News Transfer Protocol) umožňuje číst a umísťovat do sítě zprávy typu news.
- NFS (Network File System) – síťový systém souborů, který umožňuje transparentní sdílení vzdálených souborů jakoby byly lokální.
- NTLM Autentizační protokol Windows
- NTP – synchronizace času (šíření přesného času)
- POP3 (Post Office Protocol) – protokol pro získání pošty z poštovního serveru.
- SMB (Server Message Block) - sdílení souborů a tiskáren v sítích Windows
- SMTP – zasílání elektronické pošty
- SNMP Simple Network Management Protokol je určen pro správu síťových uzlů.
- Telnet – protokol virtuálního terminálu.
- SSH – bezpečný shell
- X11 – zobrazování oken grafických programů v Unixových systémech
- XMPP – rozšiřitelný protokol pro zasílání zpráv a sledování přítomnosti (protokol Jabber)
Externí odkazy
- Obrázky, zvuky či videa k tématu TCP/IP na Wikimedia Commons