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 editovat

První výzkum editovat

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 editovat

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 editovat

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

  • 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í editovat

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 editovat

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 editovat

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 editovat

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 editovat

IP editovat

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 editovat

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

IPv6 editovat

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

Internet protokol verze 6

  • 128bitové adresy
  • podpora bezpečnosti
  • podpora pro mobilní zařízení
  • funkce pro zajištění úrovně služeb (QoS – Quality of Service)
  • fragmentace paketů – rozdělování
  • není zpětně kompatibilní s IPv4
  • snadnější automatická konfigurace (NDP – Neighbor discovery protocol)

ARP editovat

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 editovat

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 editovat

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:

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

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 editovat

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

  • 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) editovat

  • 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) se šifrovanou verzí HTTPS a novějšími verzemi HTTP/2 a HTTP/3
  • 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.
  • TLS a SSLzabezpečená komunikace na úrovni soketů.
  • SSHšifrované přihlašování na jiné počítače, nahrazuje starší nešifrovaný telnet, rsh, rlogin, rexec, …; lze používat i pro přenos souborů – SFTP, Secure Copy, a další služby jako rsync, git, …
  • 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 editovat