Skip to main content

10.1 Protokoly TCP a UDP

Transportná vrstva

Na transportnej vrstve siete sa pre prenos údajov vo forme segmentov využívajú protokoly TCP a UDP. Oba tieto protokoly identifikujú konkrétne konverzácie daného zariadenia - a to v podobe 16-bitového čísla (0 až 65535), ktoré nazývame port. Kým IP adresa identifikuje zariadenie, port identifikuje konkrétneho účastníka konverzácie, teda aplikáciu alebo službu. Podobne ako v prípade IP adresy, aj pri portoch sa jedná o dva identifikátory: zdrojový a cieľový port. Dvojicu IP:port nazývame soket (socket), napríklad 192.168.1.1:80. Každá konverzácia má takúto dvojicu na oboch koncoch.

Funkcie a úlohy

Transportná vrstva zodpovedá za nasledovné funkcie (ktoré môže, ale nemusí realizovať každý jej protokol):

  • evidencia jednotlivých spojení / konverzácií a identifikácia aplikácie - operačný systém zaeviduje číslo portu ku konkrétnej aplikácii, aby po prijatí údajov na určitý port vedel určiť, ktorej aplikácii patria;
  • segmentácia prenášaných údajov a ich zostavenie - teda rozdelenie objemných údajov na menšie celky (segmenty) pri odosielaní a poskladanie týchto celkov do celku po prijatí, prípadne aj riešenie nedoručených segmentov;
  • zostavenie hlavičky segmentu - do hlavičky sa zapíšu rôzne údaje, napríklad čísla portov, prípadne aj poradové číslo segmentu konverzácie;
  • multiplexovanie konverzácie - súvisí so segmentáciou, segmenty údajov jednotlivých aplikácií sa odosielajú striedavo tak, aby prebiehali „súčasne“.

Protokol TCP

Protokol TCP (Transmission Control Protocol) vytvára obojsmerné spojenie pre konverzáciu, je spoľahlivý (potvrdzovaný - nedoručené segmenty odošle znovu, usporiada prijaté segmenty podľa poradového čísla), riadi tok dát (reguluje rýchlosť). Používa sa tam, kde je potrebný spoľahlivý prenos aj za cenu zdržania, napríklad pri prenose webstránky, e-mailu. Umožňuje len unicast komunikáciu. Hlavička TCP segmentu má 20 B, obsahuje aj kontrolný súčet prenášaných údajov.

Zo známych aplikačných protokolov využívajú TCP napríklad HTTP, FTP, SSH, SMTP, POP3, IMAP4, ale aj väčšina tradičných protokolov.

Protokol UDP

Protokol UDP (User Datagram Protocol) ani nevytvára skutočné spojenie - hoc ho tak môžeme chápať a budeme ho vedieť identifikovať neskôr aj na firewalli. Nerieši spoľahlivosť (nepotvrdzuje doručenie, nerieši poradie), neriadi tok dát (čo stihne prísť, to príde). Používa sa tam, kde je potrebný prenos v reálnom čase bez zdržania, aj za cenu straty časti údajov, napríklad pre telefonovanie, či živý prenos z kamery. Ak je potrebný spoľahlivý prenos (riešenie stratených rámcov), musí to riešiť aplikačný protokol alebo aplikácia. Okrem unicast komunikácie je UDP možné využiť pre multicast a broadcast komunikáciu. Odosielané segmenty údajov nazývame datagramy. Hlavička UDP datagramu má len 8 B, okrem portov obsahuje len veľkosť prenášaných údajov a ich kontrolný súčet.

Zo známych aplikačných protokolov využívajú UDP napríklad DNS, DHCP, TFTP, ale aj všetky multicast prenosy (napríklad OSPF komunikácie) a protokoly pre VoIP, či všeobecne pre prenosy hlasu a videa v reálnom čase.

Protokol QUIC

Novinkou je protokol QUIC (Quick UDP Internet Connections), ktorý síce formálne funguje na UDP, no prináša spoľahlivý prenos so šifrovaním. Je základom protokolu HTTP/3 a už v súčasnosti ho vo veľkej miere využívajú predovšetkým veľkí prevádzkovatelia webových služieb (napríklad Google, Facebook, Wikipedia). Jeho hlavným cieľom je zvýšiť rýchlosť webu elimináciou zdržaní vyplývajúcich z tradičného TCP + TLS. Kým v prípade TCP sa najskôr v troch krokoch vytvára spojenie, potom sa na vyššej vrstve TLS rieši šifrovanie, QUIC priamo rieši šifrovanie a spojenie nedohaduje, čo prináša výrazne vyššiu rýchlosť odozvy. Zrýchlenie je aj pri následnom prenose údajov - kým v prípade TCP sú prenosy webu realizované jedným spojením, ktoré sa pozastaví pri každej strate údajov, QUIC rieši stratené segmenty individuálne pre každý prenos (dokument). QUIC tiež rieši presun klienta medzi sieťami, identifikuje spojenie aj pri zmene IP adresy. Dalo by sa povedať, že QUIC efektívne spája viaceré komunikačné vrstvy.