Obstajata dve vrsti internetnega protokola (IP) prometa. So TCP ali Protokol o nadzoru prenosa in UDP ali Uporabniški protokol Datagram. TCP je usmerjen v povezavo - ko je povezava vzpostavljena, se podatki lahko pošljejo dvosmerno. UDP je enostavnejši internetni protokol brez povezave. Več sporočil se pošlje kot pakete v kosih z uporabo UDP.
TCP | UDP | |
---|---|---|
Akronim za | Protokol o nadzoru prenosa | Uporabniški protokol Datagram ali Univerzalni protokol Datagram |
Povezava | Protokol za nadzor prenosa je protokol, ki je usmerjen v povezavo. | Uporabniški protokol Datagram je protokol brez povezave. |
Funkcija | Ker sporočilo prehaja iz interneta iz enega računalnika v drugega. To temelji na povezavi. | UDP je tudi protokol, ki se uporablja pri prenosu ali prenosu sporočil. To ne temelji na povezavi, kar pomeni, da lahko en program naloži paket paketov v drugega in to bi bil konec zveze. |
Uporaba | TCP je primeren za aplikacije, ki zahtevajo visoko zanesljivost, čas prenosa pa je razmeroma manj kritičen. | UDP je primeren za aplikacije, ki potrebujejo hiter in učinkovit prenos, kot so igre. Brezposelnost UDP je uporabna tudi za strežnike, ki odgovarjajo na majhne poizvedbe velikega števila strank. |
Uporaba po drugih protokolih | HTTP, HTTP, FTP, SMTP, Telnet | DNS, DHCP, TFTP, SNMP, RIP, VOIP. |
Naročanje podatkovnih paketov | TCP preuredi podatkovne pakete v določenem vrstnem redu. | UDP nima vrstnega reda, saj so vsi paketi med seboj neodvisni. Če je potrebno naročanje, ga mora upravljati aplikacijski sloj. |
Hitrost prenosa | Hitrost za TCP je počasnejša od UDP. | UDP je hitrejši, ker se ne poskuša obnoviti napak. Gre za protokol "najboljšega truda". |
Zanesljivost | Obstaja popolno zagotovilo, da preneseni podatki ostanejo nedotaknjeni in prispejo v enakem vrstnem redu, kot so bili poslani. | Ni zagotovila, da bi poslana sporočila ali paketi sploh dosegli. |
Velikost glave | Velikost glave TCP je 20 bajtov | Velikost glave UDP je 8 bajtov. |
Skupna polja glave | Izvorno pristanišče, Destinacijska vrata, Preveri vsoto | Izvorno pristanišče, Destinacijska vrata, Preveri vsoto |
Pretakanje podatkov | Podatki se berejo kot bajtni tok, na mejah signalnega sporočila (segmenta) se ne prenašajo nobene razlikovalne oznake. | Paketi se pošiljajo posamično in preverjajo celovitost le, če prispejo. Paketi imajo točno določene meje, ki se spoštujejo ob prejemu, kar pomeni, da bo branje v sprejemni vtičnici prineslo celotno sporočilo, kot je bilo prvotno poslano.. |
Utež | TCP je težka. TCP potrebuje tri pakete za vzpostavitev povezave vtičnice, preden lahko pošljete kakršne koli uporabniške podatke. TCP upravlja z zanesljivostjo in nadzorom zastojev. | UDP je lahek. Ni urejanja sporočil, povezav za sledenje itd. To je majhen transportni sloj, zasnovan na vrhu IP. |
Nadzor pretoka podatkov | TCP izvaja nadzor pretoka. TCP potrebuje tri pakete za vzpostavitev povezave vtičnice, preden lahko pošljete kakršne koli uporabniške podatke. TCP upravlja z zanesljivostjo in nadzorom zastojev. | UDP nima možnosti krmiljenja pretoka |
Napaka pri preverjanju | TCP naredi preverjanje napak in obnovitev napak. Napačni paketi se ponovno pošljejo od vira do cilja. | UDP preverja napake, vendar preprosto zavrže napačne pakete. Napaka obnovitve ni poskusna. |
Polja | 1. zaporedna številka, 2. številka AcK, 3. odmik podatkov, 4. rezervirano, 5. kontrolni bit, 6. okno, 7. urgentni kazalec 8. Možnosti, 9. oblazinjenje, 10. preverite vsoto, 11. izvorno pristanišče, 12. Pristaniško pristanišče | 1. Dolžina, 2. Vrata vira, 3. Namenska vrata, 4. Preverite vsoto |
Zahvala | Potrditveni segmenti | Brez priznanja |
Rokovanje | SYN, SYN-ACK, ACK | Brez stiskanja roke (protokol brez povezave) |
TCP zagotavlja zanesljivo in urejeno dostavo toka bajtov od uporabnika do strežnika ali obratno. UDP ni namenjen končnim povezavam in komunikacija ne preverja pripravljenosti sprejemnika.
TCP je bolj zanesljiv, saj upravlja s potrjevanjem sporočil in ponovno oddajo v primeru izgubljenih delov. Tako absolutno manjkajočih podatkov. UDP ne zagotavlja, da je komunikacija dosegla sprejemnik, saj koncepti potrjevanja, časovne omejitve in ponovnega prenosa niso prisotni.
TCP prenosi so poslani v zaporedju in prejeti v istem zaporedju. V primeru, da segmenti podatkov pridejo v napačnem vrstnem redu, TCP naroči in dostavi aplikacijo. V primeru UDP, Zatem, ko prejme aplikacijo, ni mogoče vzdrževati zaporedja poslanih sporočil. Popolnoma ni mogoče napovedati vrstnega reda prejema sporočila.
TCP je povezava z veliko težo, ki potrebuje tri pakete za povezavo z vtičnico in skrbi za nadzor prezasedenosti in zanesljivost. UDP je lahka transportna plast, zasnovana na vrhu IP. Ni povezav za sledenje ali naročanja sporočil.
TCP bere podatke kot tok bajtov in sporočilo se prenese na meje segmenta. UDP sporočila so paketi, ki se pošljejo posamično, ob prihodu pa se preveri njihova celovitost. Paketi imajo določene meje, medtem ko podatkovni tok nima.
UDP deluje na podlagi "najboljšega truda". Protokol podpira zaznavanje napak prek kontrolne vsote, ko pa je napaka odkrita, se paket zavrže. Ponovnega pošiljanja paketa za obnovitev po tej napaki se ne poskuša. To je zato, ker je UDP ponavadi za časovno občutljive aplikacije, kot sta igranje ali prenos govora. Izterjava od napake bi bila nesmiselna, ker do prejema ponovno poslanega paketa ne bo koristilo.
TCP uporablja tako odkrivanje napak kot tudi obnovitev napak. Napake so odkrite s kontrolno vsoto in če je paket napačen, ga sprejemnik ne potrdi, kar sproži pošiljatelj znova. Ta operativni mehanizem se imenuje pozitivno potrditev s ponovnim oddajanjem (PAR).
TCP povezava se vzpostavi s tristranskim stiskanjem, ki je postopek iniciacije in potrditve povezave. Ko je povezava vzpostavljena, se lahko začne prenos podatkov. Po prenosu se povezava prekine z zapiranjem vseh vzpostavljenih virtualnih vezij.
UDP uporablja preprost model prenosa brez implicitnih dialogov tresenja roke, da bi zagotovil zanesljivost, naročilo ali celovitost podatkov. Tako UDP zagotavlja nezanesljivo storitev, podatkigrami pa lahko pridejo iz pošte, se podvojijo ali izginejo brez predhodnega obvestila. UDP predpostavlja, da preverjanje in odpravljanje napak v aplikaciji ni potrebno ali se izvaja, s čimer se izognemo prekomerni uporabi takšne obdelave na ravni omrežnega vmesnika. Za razliko od TCP je UDP združljiv s paketnimi oddajami (pošiljanje vsem v lokalnem omrežju) in večpredstavnostnimi sporočili (pošiljanje vsem naročnikom).
Brskanje po spletu, e-pošta in prenos datotek so običajne aplikacije, ki uporabljajo TCP. TCP se uporablja za nadzor velikosti segmenta, hitrosti izmenjave podatkov, nadzora pretoka in zastojev omrežja. TCP je prednostno tam, kjer so potrebne zahteve za odpravo napak na ravni omrežnega vmesnika. UDP večinoma uporabljajo tako časovno občutljive aplikacije kot tudi strežniki, ki odgovarjajo na majhne poizvedbe velikega števila strank. UDP je združljiv s paketnim oddajanjem - pošiljanje vsem v omrežju in večpredstavnostnim sporočilom - pošiljanje vsem naročnikom. UDP se pogosto uporablja v sistemu domenskih imen, prenosu govora prek IP, trivialnem protokolu za prenos datotek in spletnih igrah.
Za množične večplastniške spletne (MMO) igre se morajo razvijalci pogosto odločiti za arhitekturo med uporabo trajnih povezav UDP ali TCP. Prednosti TCP so stalne povezave, zanesljivost in možnost uporabe paketov poljubnih velikosti. Največja težava TCP v tem scenariju je njegov algoritem za nadzor prezasedenosti, ki obravnava izgubo paketov kot znak omejitve pasovne širine in samodejno zaustavi pošiljanje paketov. V omrežjih 3G ali Wi-Fi lahko to povzroči velike zamude.
Izkušeni razvijalec Christoffer Lernö je pretehtal prednosti in slabosti ter priporočil naslednja merila, da izberete, ali boste za svojo igro uporabili TCP ali UDP: