TCP vs. UDP

Existujú dva typy prenosu cez internetový protokol (IP). Oni sú TCP alebo Protokol o kontrole prenosu a UDP alebo Protokol užívateľských údajov. TCP je orientovaný na pripojenie - po vytvorení spojenia je možné údaje odosielať obojsmerne. UDP je jednoduchší internetový protokol bez pripojenia. Viacnásobné správy sa odosielajú ako pakety v blokoch pomocou protokolu UDP.

Porovnávacia tabuľka

Rozdiely - podobnosti - Porovnávacia tabuľka TCP verzus UDP
TCPUDP
Skratka pre Protokol o kontrole prenosu Protokol užívateľských údajov alebo univerzálny protokol údajov
prípojka Protokol riadenia prenosu je protokol orientovaný na pripojenie. Protokol User Datagram Protocol je protokol bez pripojenia.
funkcie Ako správa prechádza cez internet z jedného počítača na druhý. Toto je založené na spojení. UDP je tiež protokol používaný pri prenose alebo prenose správ. Toto nie je založené na pripojení, čo znamená, že jeden program môže poslať zaťaženie paketov druhému a to by bol koniec vzťahu.
používanie TCP je vhodný pre aplikácie, ktoré vyžadujú vysokú spoľahlivosť a čas prenosu je relatívne menej kritický. UDP je vhodný pre aplikácie, ktoré potrebujú rýchly a efektívny prenos, napríklad hry. Povaha UDP bez štátnej príslušnosti je užitočná aj pre servery, ktoré odpovedajú na malé otázky od veľkého počtu klientov.
Použitie inými protokolmi HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Objednávanie dátových paketov TCP usporiada dátové pakety v uvedenom poradí. UDP nemá vlastné poradie, pretože všetky pakety sú na sebe nezávislé. Ak sa vyžaduje objednávanie, musí byť spravované aplikačnou vrstvou.
Rýchlosť prenosu Rýchlosť TCP je pomalšia ako UDP. UDP je rýchlejšia, pretože sa nepokúša o obnovenie chyby. Je to protokol „najlepšej snahy“.
Spoľahlivosť Existuje absolútna záruka, že prenesené údaje zostanú nedotknuté a že dorazia v rovnakom poradí, v akom boli odoslané. Neexistuje žiadna záruka, že by sa zaslané správy alebo pakety dostali vôbec.
Veľkosť hlavičky Veľkosť hlavičky TCP je 20 bajtov Veľkosť hlavičky UDP je 8 bajtov.
Bežné polia záhlavia Zdrojový port, Cieľový port, Check Sum Zdrojový port, Cieľový port, Check Sum
Streamovanie údajov Dáta sa čítajú ako bajtový tok, na hranice signálnych správ (segmentov) sa neprenášajú žiadne rozlišujúce indikácie. Pakety sa odosielajú jednotlivo a ich integrita sa kontroluje, len ak dorazia. Pakety majú určité hranice, ktoré sú po prijatí rešpektované, čo znamená, že operácia čítania v sokete prijímača prinesie celú správu tak, ako bola pôvodne odoslaná..
závažia TCP je ťažký. TCP vyžaduje tri pakety na nastavenie soketového pripojenia, predtým ako môžu byť odoslané akékoľvek užívateľské dáta. TCP rieši spoľahlivosť a kontrolu preťaženia. UDP je ľahký. Neexistuje žiadne usporiadanie správ, žiadne sledovacie spojenia atď. Je to malá transportná vrstva navrhnutá v hornej časti IP.
Riadenie toku dát TCP vykonáva riadenie toku. TCP vyžaduje tri pakety na nastavenie soketového pripojenia, predtým ako môžu byť odoslané akékoľvek užívateľské dáta. TCP rieši spoľahlivosť a kontrolu preťaženia. UDP nemá možnosť riadenia toku
Chyba kontroly TCP vykonáva kontrolu chýb a obnovu chýb. Chybné pakety sa prenášajú zo zdroja do cieľa. UDP vykonáva kontrolu chýb, ale jednoducho zahodí chybné pakety. Nepodarilo sa obnoviť chybu.
Fields 1. Poradové číslo, 2. Číslo AcK, 3. Posun dát, 4. Vyhradené, 5. Kontrolný bit, 6. Okno, 7. Urgentný ukazovateľ 8. Možnosti, 9. Výplň, 10. Kontrolný súčet, 11. Zdrojový port, 12. Cieľový prístav 1. Dĺžka, 2. Zdrojový port, 3. Cieľový port, 4. Skontrolujte sumu
poďakovanie Potvrdzovacie segmenty Žiadne potvrdenie
podanie ruky SYN, SYN-ACK, ACK Žiadne podanie ruky (protokol bez pripojenia)

Obsah: TCP vs UDP

  • 1 Rozdiely vo funkciách prenosu údajov
    • 1.1 Spoľahlivosť
    • 1.2 Objednávanie
    • 1.3 Pripojenie
    • 1.4 Spôsob prenosu
    • 1.5 Detekcia chýb
  • 2 Ako fungujú TCP a UDP
  • 3 Rôzne aplikácie TCP a UDP
    • 3.1 TCP vs. UDP pre herné servery
  • 4 Referencie

Rozdiely vo funkciách prenosu údajov

TCP zaisťuje spoľahlivé a objednané doručenie toku bajtov od užívateľa k serveru alebo naopak. UDP nie je určený na spojenie medzi koncovými bodmi a komunikácia nekontroluje pripravenosť prijímača.

Spoľahlivosť

TCP je spoľahlivejšia, pretože riadi potvrdzovanie správ a opakovaný prenos v prípade stratených častí. Neexistujú teda absolútne žiadne chýbajúce údaje. UDP nezabezpečuje, že komunikácia dosiahla príjemcu, pretože nie sú prítomné koncepty potvrdenia, oneskorenia a opakovaného prenosu.

Radenie

TCP prenosy sa odosielajú v sekvencii a prijímajú sa v rovnakej sekvencii. V prípade, že segmenty údajov prídu v nesprávnom poradí, TCP zmení poradie a doručí aplikáciu. V prípade UDP, sekvencia odoslaných správ sa nemusí zachovať, keď sa dostane do prijímacej aplikácie. Neexistuje žiadny spôsob, ako predpovedať poradie, v ktorom bude správa prijatá.

prípojka

TCP je pripojenie s vysokou hmotnosťou, ktoré vyžaduje tri pakety na pripojenie do zásuvky a spracováva kontrolu a spoľahlivosť preťaženia. UDP je ľahká transportná vrstva navrhnutá na vrchole IP. Neexistujú žiadne sledovacie spojenia ani objednávanie správ.

Spôsob prenosu

TCP číta dáta ako bajtový tok a správa sa prenáša na hranice segmentov. UDP správy sú pakety, ktoré sa odosielajú jednotlivo a pri príchode sa kontrolujú z hľadiska ich integrity. Pakety majú definované hranice, zatiaľ čo dátový tok nemá.

Detekcia chýb

UDP pracuje na princípe „maximálneho úsilia“. Protokol podporuje detekciu chýb pomocou kontrolného súčtu, ale keď sa zistí chyba, paket sa zahodí. Opakovaný prenos paketu na zotavenie z tejto chyby sa nepokúsi. Dôvodom je skutočnosť, že protokol UDP je zvyčajne určený pre aplikácie citlivé na čas, ako sú hry alebo prenos hlasu. Zotavenie z chyby by bolo zbytočné, pretože v čase prijatia opakovaného prenosu paketu už nebude potrebné.

TCP používa detekciu aj obnovenie chyby. Chyby sa zisťujú pomocou kontrolného súčtu a ak je paket chybný, prijímač ho nepotvrdí, čo spustí opakovaný prenos odosielateľom. Tento operačný mechanizmus sa nazýva kladné potvrdenie s opakovaným prenosom (PAR).

Ako fungujú TCP a UDP

TCP spojenie je nadviazané trojcestným podaním ruky, čo je proces iniciácie a potvrdenia spojenia. Po nadviazaní spojenia sa môže začať prenos údajov. Po prenose sa spojenie ukončí zatvorením všetkých vytvorených virtuálnych okruhov.

UDP používa jednoduchý prenosový model bez implicitných dialógov o trasení rúk na zabezpečenie spoľahlivosti, objednávania alebo integrity údajov. UDP teda poskytuje nespoľahlivú službu a datagramy sa môžu objaviť mimo prevádzky, môžu sa zdať duplikované alebo môžu zmiznúť bez predchádzajúceho upozornenia. UDP predpokladá, že kontrola a opravy chýb nie sú potrebné alebo sa vykonávajú v aplikácii, čím sa predíde réžii takého spracovania na úrovni sieťového rozhrania. Na rozdiel od protokolu TCP je protokol UDP kompatibilný s paketovým vysielaním (odosielaním všetkým v miestnej sieti) a multicastingom (odosielaním všetkým predplatiteľom)..

Rôzne aplikácie TCP a UDP

Prehliadanie webu, e-mail a prenos súborov sú bežné aplikácie, ktoré využívajú protokol TCP. TCP sa používa na riadenie veľkosti segmentu, rýchlosti výmeny údajov, riadenia toku a preťaženia siete. TCP je uprednostňovaný tam, kde sú na úrovni sieťového rozhrania potrebné zariadenia na opravu chýb. UDP vo veľkej miere používajú aplikácie citlivé na čas, ako aj servery, ktoré odpovedajú na malé otázky od veľkého počtu klientov. UDP je kompatibilný s paketovým vysielaním - odosielaním všetkým v sieti a multicasting - odosielaním všetkým predplatiteľom. UDP sa bežne používa v systéme názvov domén, Voice over IP, protokole prenosu triviálnych súborov a online hrách.

TCP vs. UDP pre herné servery

V prípade hier s veľkým počtom hráčov online (MMO) musia vývojári často zvoliť architektonickú voľbu medzi používaním trvalých pripojení UDP alebo TCP. Výhodami protokolu TCP sú trvalé pripojenia, spoľahlivosť a schopnosť používať pakety ľubovoľnej veľkosti. Najväčší problém s TCP v tomto scenári je jeho algoritmus riadenia preťaženia, ktorý považuje stratu paketov za znak obmedzení šírky pásma a automaticky obmedzuje odosielanie paketov. V sieťach 3G alebo Wi-Fi to môže spôsobiť výraznú latenciu.

Skúsený vývojár Christoffer Lernö zvážil klady a zápory a odporúča nasledujúce kritériá, aby si vybral, či pre svoju hru použije TCP alebo UDP:

  • Ak chcete príležitostne oneskoriť, pomocou protokolu HTTP cez TCP môžete robiť občasné otázky bez štátnej príslušnosti iniciované klientom.
  • Ak klient aj server nezávisle odosielajú pakety, použite trvalé obyčajné sokety TCP, ale príležitostné oneskorenie je v poriadku (napr. Online poker, veľa MMO).
  • Použite UDP, ak klient aj server môžu nezávisle odosielať pakety a občasné oneskorenie nie je v poriadku (napr. Väčšina akčných hier pre viacerých hráčov, niektoré MMO).

Referencie

  • Wikipedia: Protokol kontroly prenosu
  • Wikipedia: User Datagram Protocol
  • UDP vs TCP pre herné servery
  • Protokol o kontrole prenosu