Transportní vrstva: TCP a UDP
Klíčová slova: Transportní vrstva sítí (TCP a UDP)
Klíčové pojmy: Transportní vrstva propojuje procesy pomocí portů, TCP je orientovaný na spojení a spolehlivý (ACK, opakování), Three-way handshake: SYN, SYN-ACK, ACK, TCP používá segmentaci a sekvenční čísla, TCP okno zvyšuje propustnost bez čekání na ACK po každém segmentu, UDP je bez spojení, bez potvrzení a s nízkou režii, UDP je vhodné pro VoIP, hry, DNS, streamování, Port identifikuje službu/proces, ne zařízení, Vyber protokol podle potřeby: spolehlivost vs latence, U maturity vysvětli princip, uveď příklad a porovnej výhody a nevýhody
## Úvod
Transportní vrstva zajišťuje komunikaci mezi aplikacemi na koncových zařízeních. Zatímco IP doručuje pakety mezi adresami, transportní protokoly TCP a UDP řeší komunikaci mezi konkrétními procesy pomocí portů. Typická čísla portů: HTTP 80, HTTPS 443, DNS 53, SSH 22.
> **Definice:** Transportní vrstva poskytuje služby pro přenos dat mezi aplikacemi, spravuje porty a rozhoduje o spolehlivosti a režii přenosu.
## Základní rozdělení: TCP vs UDP
### TCP (Transmission Control Protocol)
- **Charakteristika:** orientovaný na spojení, spolehlivý, zajišťuje pořadí dat a opakování ztracených paketů.
- **Kdy se používá:** tam, kde je důležitá úplnost a správné pořadí dat (web, e-mail, přenos souborů, SSH).
> **Definice:** TCP je transportní protokol, který před odesláním dat naváže spojení a následně garantuje doručení pomocí potvrzování a opakování.
### UDP (User Datagram Protocol)
- **Charakteristika:** bez spojení, nespolehlivý na úrovni protokolu, menší režie, rychlejší a s menším zpožděním.
- **Kdy se používá:** tam, kde je důležitá rychlost a nízké zpoždění před absolutní spolehlivostí (VoIP, hry, DNS, streaming).
> **Definice:** UDP je jednoduchý transportní protokol, který posílá datagramy bez záruky doručení nebo pořadí.
## Podrobné mechanismy TCP
### Navazování spojení – three-way handshake
1. Klient pošle SYN (žádost o navázání spojení).
2. Server odpoví SYN-ACK (potvrzení a souhlas).
3. Klient potvrdí ACK.
Po třech krocích je spojení navázáno a mohou se přenášet data.
> **Definice:** Three-way handshake je postup tří zpráv (SYN, SYN-ACK, ACK) pro vytvoření spolehlivého spojení mezi dvěma koncovými body.
### Segmentace a potvrzování
- Větší data se rozdělí na segmenty, každý má pořadové číslo (sequence number).
- Příjemce posílá potvrzení (ACK) s číslem další očekávané bajtové pozice.
- Pokud přijde mezera (některý segment chybí), odesílatel může danou část znovu odeslat.
### Okénkové potvrzování (window)
- TCP používá okno, které určuje, kolik dat může být odesláno bez okamžitého potvrzení.
- Velikost okna se dynamicky mění podle podmínek sítě a schopnosti příjemce.
- Díky oknu se snižuje režie z čekání na ACK po každém segmentu a zvyšuje se propustnost.
> **Definice:** TCP okno určuje počet bajtů, které může odesílatel přenést, než musí čekat na potvrzení od příjemce.
## Vlastnosti UDP
- Žádné navazování spojení, žádná potvrzení, žádné opakování.
- Odesílatel pošle samostatné datagramy, každá zpráva je nezávislá.
- Nižší režie a menší latence, vhodné pro aplikace tolerantní ke ztrátám.
> **Definice:** UDP je jednoduchý protokol pro bezstavový přenos datagramů bez záruky doručení.
## Porovnávací tabulka
| Vlastnost | TCP | UDP |
|---|---:|---:|
| Navazuje spojení | Ano | Ne |
| Spolehlivost | Vysoká (ACK, opakování) | Nízká (bez mechanizmů) |
| Pořadí dat | Zajištěno | Nezajištěno |
| Režie | Vyšší | Nižší |
| Příklady použití | Web, e-mail, SSH, FTP | DNS, VoIP, hry, streaming |
## Praktické příklady
- Otevření webové stránky přes HTTPS: prohlížeč používá **TCP na portu 443**, potřebuje spolehlivý přenos HTML, obrázků a skriptů; ztráta dat by vedla k chybné nebo nefunkční stránce.
- Hlasový hovor (VoIP): používá **UDP**, kde je lepší ztratit malý počet paketů než čekat na opakování a zvýšit zpoždění, které kazí plynulost hovoru.
Věděli jste, že UDP se velmi často používá i pro DNS dotazy, přestože je označován jako nespolehlivý? DNS favorizuje rychlost a krátké dotazy, a pokud dotaz selže, klient jej jednoduše zopakuje.
## Typické chyby a doporučení pro maturitu
- Neříkat, že UDP se nikdy nepoužívá; naopak je široce používaný.
- Nerozlišovat IP adresu a port: IP adresuje zařízení, port identifikuje službu/proces na zařízení.
- Neříkat, že port patří zařízení – patří k procesu/službě.
- Vysvětlit proč je u některých aplikací důležitá rychlost vs spolehlivost (např. VoIP vs stahování souborů).
Tip pro odpověď u maturity: 1) krátká definice tématu, 2) vysvětlení principu, 3) pra