Název školy: | Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 |
Autor: | Ing. Marek Nožka |
Anotace: | Protokoly transportní vrstvy |
Vzdělávací oblast: | Informační a komunikační technologie |
Předmět: | Počítačové sítě a komunikační technika (PSK) |
Tematická oblast: | Vrstvy protokolu TCP/IP |
Výsledky vzdělávání: | Žák popíše protokoly TCP a UDP a jejich vlastnosti |
Klíčová slova: | TCP/IP, transportní vrstva, síťový port, TCP, UDP |
Druh učebního materiálu: | Online vzdělávací materiál |
Typ vzdělávání: | Střední vzdělávání, 3. ročník, technické lyceum |
Ověřeno: | VOŠ a SPŠE Olomouc; Třída: 3L |
Zdroj: | Vlastní poznámky, Wikipedia, Wikimedia Commons |
TCP a UDP jsou hlavní komunikační protokoly na Transportní vrsvě rodiny protokolů TCP/IP
Transportní vrstva umožňuje umožňuje adresovat přímo aplikace. K adresování aplikací se používá tzv. síťový port.
Použitím TCP mohou aplikace na počítačích propojených do sítě vytvořit mezi sebou spojení, přes které mohou přenášet data. Protokol garantuje spolehlivé doručování a doručování ve správném pořadí. TCP také rozlišuje data pro vícenásobné, současně běžící aplikace (například webový server a emailový server) běžící na stejném počítači.
TCP je tedy spojově orientovaný protokol pro přenos toku bajtů na transportní vrstvě se spolehlivým doručováním. Slovu spolehlivý musíme rozumět ve významu, že protokol jako takový garantuje doručení všech dat (a to ve správném pořadí). To znamená, že protokol má své vlastí vnitřní mechanizmy, pomocí kterých zjistí jestli byla data správně doručena a případně zjedná nápravu.
Na obrázku vidíme TCP hlavičku.
Aplikace posílá proud (stream) 8-bitových bajtů TCP protokolu k doručení sítí. TCP rozděluje proud bajtů do přiměřeně velkých segmentů. TCP pak předá takto vzniklé pakety IP protokolu k přepravě internetem do TCP modulu na druhé straně TCP spojení. TCP ověří, že se pakety neztratily tím, že každému paketu přidělil pořadové číslo, které se také použije k ověření, že data byla přijata ve správném pořadí.
TCP modul na straně příjemce posílá zpět potvrzení pro pakety, které byly úspěšně přijaty. Pokud by se odesilateli potvrzení nevrátilo do rozumné doby, vypršel by odesilatelův časovač a data by vyslal znovu.
TCP protokol ověřuje, zda přenesená data nebyla poškozena šumem tím, že před odesláním spočítá kontrolní součet, uloží jej do odesílaného paketu a příjemce kontrolní součet vypočítá znovu a ověří, že se shodují.
K navázání spojení slouží tzv. three-way handshake (trojí potřesení rukou). V průběhu navazování spojení se obě strany dohodnou na číslu sekvence a potvrzovacím čísle. Pro navázání spojení se odesílají datagramy s nastavenými příznaky SYN a ACK.
Jak z názvu vyplývá, navázání spojení probíhá ve třech krocích:
Čísla se náhodně generují proto, aby se data do komunikace nemohl připlést žádný další zbloudilý (opožděný) paket z předchozího nebo jiného spojení.
Obě strany si pamatují číslo sekvence své i protistrany. Používají se totiž i pro další komunikaci a určují pořadí paketů. Když úspěšně proběhne trojcestný handshaking, je spojení navázáno a zůstane tak až do ukončení spojení. To se může zneužít na SYN flood útok.
Ukončení spojení probíhá podobně jako jeho navázání. Používá se k tomu příznaků FIN a ACK:
Teprve po těchto čtyřech krocích je spojení ukončeno.
O protokolu UDP říkáme, že nedává záruky na datagramy, které přenáší mezi počítači v síti. Někdy je označován jako nespolehlivý, ale to je velmi zavádějící označení. Na rozdíl od protokolu TCP totiž nezaručuje, zda se přenášený datagram neztratí, zda se nezmění pořadí doručených datagramů nebo zda se některý datagram nedoručí vícekrát.
V sadě protokolů Internetu poskytuje UDP velmi jednoduché rozhraní mezi síťovou vrstvou pod a aplikační vrstvou nad. UDP neposkytuje žádné záruky doručení a odesilatelova UDP vrstva si u jednou už odeslaných zpráv neudržuje žádný stav. UDP pouze přidává kontrolní součty a schopnost roztřiďovat UDP pakety mezi více aplikací běžících na stejném počítači.
UDP hlavička:
+ | bity 0 - 15 | 16 - 31 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | zdrojový port | cílový port | ||||||||||||||||||||||||||||||
32 | délka | kontrolní součet | ||||||||||||||||||||||||||||||
64 | data |
Protokol UDP je vhodný pro nasazení, které vyžaduje jednoduchost nebo pro aplikace pracující systémem otázka-odpověď (např. DNS, sdílení souborů v LAN). Jeho bezstavovost je užitečná pro servery, které obsluhují mnoho klientů nebo pro nasazení, kde se počítá se ztrátami datagramů a není vhodné, aby se ztrácel čas novým odesíláním (starých) nedoručených zpráv