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.
TCP | UDP | |
---|---|---|
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) |
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.
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.
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á.
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.
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á.
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).
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)..
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.
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: