TCP/IP je sada (rodina) protokolů pro komunikaci v počítačových sítích používaná v celosvětové síti Internet. Její název pochází ze dvou nejdůležitějších protokolů: IP (Internet Protocol – „protokol pro propojení sítí“) je protokol síťové vrstvy, který umožňuje komunikaci libovolných dvou uzlů (počítačů) v propojených sítích (internetwork), a TCP (Transmission Control Protocol – „protokol pro řízení přenosu“) je protokol transportní vrstvy, který zajišťuje spolehlivý obousměrný přenos dat mezi aplikacemi na příslušných dvou uzlech.

Komunikační protokol je množina pravidel, která určují syntaxi a význam jednotlivých zpráv při komunikaci. Rodina protokolů TCP/IP zahrnuje stovky protokolů a stále se rozšiřuje. Protokoly TCP/IP se používají nejen v síti Internet, ale i v dalších soukromých i veřejných sítích, které se sítí Internet nejsou propojeny vůbec nebo jenom omezeně.

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 se Vinton Cerf, vývojář stávajícího protokolu ARPANET Network Control Protocol, 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 odpově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 sítě Cyclades, 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ěně 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 užíván dodnes.

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

Vrstvy TCP/IP zajišťující přenos mezi dvěma hostiteli prostřednictvím dvou routerů.
Schéma zapouzdření aplikačních dat na vrstvách 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 OSIethernet (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):

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 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

Podrobnější informace naleznete v článku Internet Protocol.

Internet Protocol je základní protokol síťové vrstvy a celého Internetu. Zajišťuje přenos datagramů na základě IP adresy příjemce obsažené v záhlaví datagramu. 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. 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).

Protokol IP zajišťuje fragmentaci datagramů do rámců protokolu nižší vrstvy (např. Ethernet) a znovusestavování datagramů z přijatých rámců.

Přestože standard nové verze IP – IPv6 – byl schválen a vydán v roce 1995, i po roce 2020 převažuje používání protokolu 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

Podrobnější informace naleznete v článku IPv4.

Internet protokol verze 4

IPv6

Podrobnější informace naleznete v článku IPv6.

Internet protokol verze 6

ARP

Podrobnější informace naleznete v článku Address Resolution Protocol.

Address Resolution Protocol slouží k zjištění fyzické adresy MAC z IP adresy, aby bylo možné odeslat IP datagram na uzel (koncový počítač nebo router) v lokální síti v rámci s individuální fyzickou adresou příjemce. Protokol v případě potřeby vyšle datagram s hledanou IP adresou adresovaný všem stanicím v síti. Uzel s hledanou IP adresou reaguje odpovědí s vyplněnou vlastní MAC adresou. Tazatel si dvojici adres určitou dobu pamatuje v ARP cache. Pokud hledaný uzel není ve stejném segmentu sítě, může odpovědět svou adresou příslušný směrovač.

Obrácený protokol RARP (Reverse Address Resolution Protocol) se používal ke zjištění vlastní IP adresy. Na RARP dotaz odpoví RARP server, který má ručně vytvořenou převodní tabulku mezi fyzickými a IP adresami. Protokol RARP neumožňuje předat ani dva další potřebné parametry – masku sítě a adresu implicitního směrovače – a je překonaný novějšími protokoly BOOTP a DHCP.

ICMP

Podrobnější informace naleznete v článku 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

Podrobnější informace naleznete v článku Transmission Control Protocol.

Transmission Control Protocol vytváří virtuální okruh mezi koncovými aplikacemi, tedy spolehlivý přenos dat. Vlastnosti protokolu:

UDP

Podrobnější informace naleznete v článku User Datagram Protocol.

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

Podrobnější informace naleznete v článku Stream Control Transmission Protocol.

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á:

Stejně jako TCP a UDP rozlišuje aplikační protokoly pomocí portů.

Aplikační protokoly (služby)

Externí odkazy