TCP vs. UDP

Existují dva typy provozu internetového protokolu (IP). Oni jsou TCP nebo protokol kontroly přenosu a UDP nebo Protokol uživatele Datagram. TCP je zaměřen na připojení - jakmile je navázáno spojení, lze data odesílat obousměrně. UDP je jednodušší internetový protokol bez připojení. Více zpráv se odesílá jako pakety v blocích pomocí UDP.

Srovnávací tabulka

Rozdíly - podobnosti - Porovnání grafů TCP versus UDP
TCPUDP
Zkratka pro protokol kontroly přenosu User Datagram Protocol nebo Universal Datagram Protocol
Spojení Protokol řízení přenosu je protokol orientovaný na připojení. Protokol User Datagram je protokol bez připojení.
Funkce Jako zpráva prochází přes internet z jednoho počítače do druhého. Toto je založeno na připojení. UDP je také protokol používaný při přenosu nebo přenosu zpráv. Toto není založeno na připojení, což znamená, že jeden program může poslat načtení paketů jinému a to by byl konec vztahu.
Používání TCP je vhodný pro aplikace, které vyžadují vysokou spolehlivost a doba přenosu je relativně méně kritická. UDP je vhodný pro aplikace, které vyžadují rychlý a efektivní přenos, jako jsou hry. Charakter UDP bez státní příslušnosti je také užitečný pro servery, které odpovídají na malé dotazy od velkého počtu klientů.
Použití jinými protokoly HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Objednávání datových paketů TCP přeskupuje datové pakety v uvedeném pořadí. UDP nemá vlastní pořadí, protože všechny pakety jsou na sobě nezávislé. Pokud je vyžadováno objednání, musí být spravováno aplikační vrstvou.
Rychlost přenosu Rychlost pro TCP je pomalejší než UDP. UDP je rychlejší, protože se nepokouší o obnovu chyb. Je to protokol „nejlepšího úsilí“.
Spolehlivost Existuje absolutní záruka, že přenesené údaje zůstanou nedotčeny a dorazí ve stejném pořadí, v jakém byly odeslány. Neexistuje žádná záruka, že by odeslané zprávy nebo pakety dorazily vůbec.
Velikost záhlaví Velikost záhlaví TCP je 20 bajtů Velikost hlavičky UDP je 8 bytů.
Společná pole záhlaví Zdrojový port, cílový port, kontrolní součet Zdrojový port, cílový port, kontrolní součet
Streamování dat Data jsou čtena jako bajtový tok, na hranice signálních zpráv (segmentů) nejsou přenášeny žádné rozlišující indikace. Pakety se odesílají jednotlivě a jejich integrita se kontroluje, pouze pokud dorazí. Pakety mají určité hranice, které jsou po přijetí dodrženy, což znamená, že operace čtení na soketu přijímače přinese celou zprávu tak, jak byla původně odeslána.
Hmotnost TCP je těžký. Protokol TCP vyžaduje tři pakety pro nastavení soketového připojení, než mohou být odeslána jakákoli uživatelská data. TCP zpracovává spolehlivost a kontrolu přetížení. UDP je lehký. Neexistuje žádné řazení zpráv, žádná sledovací připojení atd. Jedná se o malou transportní vrstvu navrženou v horní části IP.
Řízení toku dat TCP provádí řízení toku. Protokol TCP vyžaduje tři pakety pro nastavení soketového připojení, než mohou být odeslána jakákoli uživatelská data. TCP zpracovává spolehlivost a kontrolu přetížení. UDP nemá možnost řízení toku
Chyba při kontrole TCP provádí kontrolu chyb a obnovu chyb. Chybné pakety jsou znovu vysílány ze zdroje do cíle. UDP provádí kontrolu chyb, ale jednoduše zahodí chybné pakety. Oprava chyby se nepokouší.
Pole 1. Pořadové číslo, 2. Číslo AcK, 3. Odsazení dat, 4. Vyhrazeno, 5. Řídicí bit, 6. Okno, 7. Urgentní ukazatel 8. Možnosti, 9. Výplň, 10. Kontrolní součet, 11. Zdrojový port, 12. Cílový port 1. Délka, 2. Zdrojový port, 3. Cílový port, 4. Zkontrolujte součet
Potvrzení Potvrzovací segmenty Žádné potvrzení
Handshake SYN, SYN-ACK, ACK Žádný handshake (protokol bez připojení)

Obsah: TCP vs UDP

  • 1 Rozdíly ve funkcích přenosu dat
    • 1.1 Spolehlivost
    • 1.2 Objednávání
    • 1.3 Připojení
    • 1.4 Způsob přenosu
    • 1.5 Detekce chyb
  • 2 Jak fungují TCP a UDP
  • 3 Různé aplikace TCP a UDP
    • 3.1 TCP vs. UDP pro herní servery
  • 4 Reference

Rozdíly ve funkcích přenosu dat

TCP zajišťuje spolehlivé a nařízené doručení proudu bajtů od uživatele k serveru nebo naopak. UDP není určen pro koncové spojení a komunikace nekontroluje připravenost přijímače.

Spolehlivost

TCP je spolehlivější, protože spravuje potvrzení zprávy a opakovaný přenos v případě ztracených částí. Neexistuje tedy absolutně žádná chybějící data. UDP nezajišťuje, že komunikace dosáhla příjemce, protože nejsou přítomny pojmy potvrzení, časový limit a opakovaný přenos.

Objednání

TCP přenosy jsou posílány v sekvenci a jsou přijímány ve stejné sekvenci. V případě, že segmenty dat dorazí v nesprávném pořadí, TCP změní pořadí a doručí aplikaci. V případě UDP, posloupnost odeslaných zpráv nemusí být zachována, když dorazí do přijímací aplikace. Neexistuje absolutně žádný způsob, jak předpovědět pořadí, ve kterém bude zpráva přijata.

Spojení

TCP je spojení s vysokou hmotností vyžadující tři pakety pro připojení soketu a zpracovává řízení a spolehlivost přetížení. UDP je lehká transportní vrstva navržená na vrcholu IP. Neexistují žádná sledovací spojení ani řazení zpráv.

Způsob přenosu

TCP čte data jako byte stream a zpráva je přenášena na hranice segmentu. UDP zprávy jsou pakety, které jsou zasílány jednotlivě a při příjezdu jsou kontrolovány z hlediska jejich integrity. Pakety mají definované hranice, zatímco datový tok nemá žádné.

Detekce chyb

UDP funguje na principu „nejlepšího úsilí“. Protokol podporuje detekci chyb pomocí kontrolního součtu, ale když je detekována chyba, paket je vyřazen. Opakovaný přenos paketu pro zotavení z této chyby se nepokouší. Důvodem je, že UDP je obvykle určen pro aplikace citlivé na čas, jako jsou hry nebo přenos hlasu. Zotavení z chyby by bylo zbytečné, protože v době, kdy je přijat znovu vyslaný paket, nebude k ničemu.

TCP používá detekci chyb i obnovu chyb. Chyby jsou detekovány pomocí kontrolního součtu a pokud je paket chybný, není potvrzen přijímačem, který vyvolá opakovaný přenos odesílatelem. Tento operační mechanismus se nazývá pozitivní potvrzení s opakovaným přenosem (PAR).

Jak fungují TCP a UDP

TCP spojení je navázáno pomocí třícestného handshake, což je proces iniciace a potvrzení spojení. Po navázání spojení lze zahájit přenos dat. Po přenosu je spojení ukončeno ukončením všech vytvořených virtuálních obvodů.

UDP používá jednoduchý přenosový model bez implicitních dialogů o třepání rukou pro zajištění spolehlivosti, objednávání nebo integrity dat. UDP tak poskytuje nespolehlivou službu a datagramy mohou přijít mimo provoz, vypadat duplikovaně nebo mohou zmizet bez předchozího upozornění. UDP předpokládá, že kontrola a oprava chyb není nutná nebo se provádí v aplikaci, čímž se zabrání režii takového zpracování na úrovni síťového rozhraní. Na rozdíl od TCP je UDP kompatibilní s paketovým vysíláním (odesílání všem v lokální síti) a vícesměrovým vysíláním (odesílání všem předplatitelům).

Různé aplikace TCP a UDP

Procházení webu, e-mail a přenos souborů jsou běžné aplikace využívající TCP. TCP se používá k řízení velikosti segmentu, rychlosti výměny dat, řízení toku a přetížení sítě. TCP je upřednostňován tam, kde jsou požadována zařízení pro opravu chyb na úrovni síťového rozhraní. UDP je z velké části používán časově citlivými aplikacemi i servery, které odpovídají na malé dotazy od velkého počtu klientů. UDP je kompatibilní s paketovým vysíláním - odesílání všem v síti a vícesměrové vysílání - odesílání všem předplatitelům. UDP se běžně používá v systémech doménových jmen, Voice over IP, Trivial File Transfer Protocol a online hrách.

TCP vs. UDP pro herní servery

U masivně multiplayerových online (MMO) her musí vývojáři často zvolit architektonickou volbu mezi používáním trvalých připojení UDP nebo TCP. Výhodami protokolu TCP jsou trvalá připojení, spolehlivost a schopnost používat pakety libovolné velikosti. Největším problémem s TCP v tomto scénáři je jeho algoritmus řízení přetížení, který považuje ztrátu paketů za známku omezení šířky pásma a automaticky omezuje odesílání paketů. V sítích 3G nebo Wi-Fi to může způsobit značné zpoždění.

Zkušený vývojář Christoffer Lernö zvážil výhody a nevýhody a doporučuje následující kritéria pro výběr, zda použít TCP nebo UDP pro vaši hru:

  • Použijte HTTP přes TCP pro občasné, klientem iniciované dotazy bez státní příslušnosti, když je v pořádku občasné zpoždění.
  • Pokud klient i server nezávisle odesílají pakety, ale jsou občasné zpoždění v pořádku (např. Online poker, mnoho MMO), použijte trvalé prosté sokety TCP..
  • Použijte UDP, pokud klient i server mohou samostatně odesílat pakety a příležitostné zpoždění není v pořádku (např. Většina akčních her pro více hráčů, některé MMO).

Reference

  • Wikipedia: Transmission Control Protocol
  • Wikipedia: User Datagram Protocol
  • UDP vs TCP pro herní servery
  • Protokol o kontrole přenosu