TCP u odnosu na UDP

Postoje dvije vrste prometa internetskim protokolom (IP). Oni su TCP ili Protokol kontrole prijenosa i UDP ili Korisnički protokol datagrama. TCP je orijentiran na vezu - kad se jednom uspostavi, podaci se mogu poslati dvosmjerno. UDP je jednostavniji internetski protokol koji nema veze. UDP-u se šalju više poruka kao paketi u komadiće.

Usporedni grafikon

Razlike - sličnosti - TCP naspram UDP usporedne tablice
TCPUDP
Skraćenica za Protokol kontrole prijenosa Korisnički protokol Datagram ili Univerzalni protokol Datagrama
Veza Protokol kontrole prijenosa protokol je orijentiran na vezu. User Datagram Protocol protokol je bez veze.
Funkcija Kao poruka putem Interneta prolazi s jednog računala na drugo. Ovo se temelji na vezi. UDP je i protokol koji se koristi u transportu ili prijenosu poruka. Ovo se ne temelji na vezi, što znači da jedan program može poslati paket paketa u drugi i to bi bio kraj veze.
upotreba TCP je pogodan za aplikacije koje zahtijevaju visoku pouzdanost, a vrijeme prijenosa relativno je manje kritično. UDP je prikladan za aplikacije kojima je potreban brz, učinkovit prijenos, poput igara. Priroda bez statusa UDP-a korisna je i za poslužitelje koji odgovaraju na male upite ogromnog broja klijenata.
Koristite druge protokole HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Naručivanje paketa podataka TCP preuređuje pakete podataka u navedenom redoslijedu. UDP nema svojstveni poredak jer su svi paketi neovisni jedan o drugom. Ako je potrebno naručivanje, njime se mora upravljati aplikacijskim slojem.
Brzina prijenosa Brzina za TCP je sporija od UDP. UDP je brži jer se ne pokušava oporaviti pogreške. To je protokol "najboljeg napora".
Pouzdanost Postoji apsolutno jamstvo da preneseni podaci ostaju netaknuti i stižu istim redoslijedom kojim su poslani. Nema garancije da bi poslane poruke ili paketi uopće stigli.
Veličina zaglavlja Veličina TCP zaglavlja je 20 bajtova Veličina UDP zaglavlja je 8 bajta.
Uobičajena polja zaglavlja Izvorski ulaz, Odredišni port, Provjeri zbroj Izvorski ulaz, Odredišni port, Provjeri zbroj
Streaming podataka Podaci se čitaju kao bajtni tok, ne razlikuju se oznake preko granica signalne poruke (segmenta). Paketi se šalju pojedinačno i provjeravaju se integritet samo ako stignu. Paketi imaju određene granice koje se poštuju nakon primitka, što znači da će rad čitanja na utičnici primati čitavu poruku kao što je prvotno poslana..
Težina TCP je velike težine. TCP zahtijeva tri paketa za postavljanje utičnice prije nego što se mogu poslati bilo koji korisnički podaci. TCP upravlja pouzdanošću i kontrolom zagušenja. UDP je lagan. Ne postoji redoslijed poruka, ne prate veze itd. To je mali transportni sloj dizajniran na vrhu IP-a.
Kontrola protoka podataka TCP vrši kontrolu protoka. TCP zahtijeva tri paketa za postavljanje utičnice prije nego što se mogu poslati bilo koji korisnički podaci. TCP upravlja pouzdanošću i kontrolom zagušenja. UDP nema mogućnost kontrole protoka
Pogreška kod provjere TCP ne provjerava pogreške i oporavlja greške. Pogrešni paketi prenose se iz izvora na odredište. UDP provjerava pogreške, ali jednostavno odbacuje pogrešne pakete. Pogreška oporavka nije pokušana.
polja 1. Redoslijed, 2. AcK broj, 3. Pomak podataka, 4. Rezervirano, 5. Kontrolni bit, 6. Prozor, 7. Hitni pokazivač 8. Opcije, 9. Padding, 10. Provjeri zbroj, 11. Izvor izvora, 12. Luka odredišta 1. Duljina, 2. Izvorni izlaz, 3. Odredišni port, 4. Provjerite zbroj
Priznanje Potvrđeni segmenti Nema priznanja
rukovanje SYN, SYN-ACK, ACK Nema rukovanja (protokol bez veze)

Sadržaj: TCP vs UDP

  • 1 Razlike u značajkama prijenosa podataka
    • 1.1 Pouzdanost
    • 1.2 Naručivanje
    • 1.3 Veza
    • 1.4 Način prijenosa
    • 1.5 Otkrivanje pogreške
  • 2 Kako djeluju TCP i UDP
  • 3 različite primjene TCP i UDP
    • 3.1 TCP vs. UDP za poslužitelje igara
  • 4 Reference

Razlike u značajkama prijenosa podataka

TCP osigurava pouzdanu i naručenu isporuku toka bajtova s ​​korisnika na poslužitelj ili obrnuto. UDP nije namijenjen za krajnje veze i komunikacija ne provjerava spremnost prijemnika.

Pouzdanost

TCP pouzdaniji je jer upravlja potvrdom poruke i ponovnim slanjem u slučaju izgubljenih dijelova. Dakle, apsolutno nema podataka koji nedostaju. UDP ne osigurava da je komunikacija došla do prijemnika jer koncepti potvrde, isteka i ponovnog slanja nisu prisutni.

Naručivanje

TCP prijenosi se šalju u slijedu i primaju se istim redoslijedom. U slučaju da segmenti podataka dođu pogrešnim redoslijedom, TCP ponovno naručuje i isporučuje aplikaciju. U slučaju UDP, slijed poslanih poruka možda se neće održavati kada dođe do prijema aplikacije. Ne postoji apsolutno nikakav način predviđanja redoslijeda u kojem će poruka biti primljena.

Veza

TCP je priključak velike težine koji zahtijeva tri paketa za priključak na utičnicu i koji upravlja kontrolom zagušenja i pouzdanost. UDP je lagani transportni sloj dizajniran na vrhu IP-a. Ne postoje veze za praćenje niti naručivanje poruka.

Način prijenosa

TCP čita podatke u toku bajta, a poruka se prenosi na granice segmenta. UDP poruke su paketi koji se šalju pojedinačno, a po dolasku provjerava se njihova cjelovitost. Paketi imaju definirane granice dok tok podataka nema nijedan.

Otkrivanje pogreške

UDP djeluje na bazi "najboljeg napora". Protokol podržava otkrivanje pogreške pomoću kontrolnog zbroja, ali kada se utvrdi greška, paket se odbacuje. Ponovni prijenos paketa za oporavak od te pogreške nije pokušavan. To je zato što je UDP obično za vremenski osjetljive aplikacije poput igara ili prijenosa glasa. Oporavak od pogreške bio bi besmislen jer do trenutka kad se ponovo primi paket neće biti od koristi.

TCP koristi i otkrivanje i oporavak pogreške. Pogreške se otkrivaju putem provjere i ako je paket pogrešan, primatelj ne priznaje, što pokreće ponovni prijenos. Ovaj se mehanizam rada naziva Pozitivno potvrđivanje s prijenosom (PAR).

Kako djeluju TCP i UDP

TCP veza uspostavlja se kroz trosmjerno stiskanje ruke, što je postupak pokretanja i potvrđivanja veze. Nakon uspostavljanja veze prijenos podataka može započeti. Nakon prijenosa, veza se prekida zatvaranjem svih uspostavljenih virtualnih krugova.

UDP koristi jednostavan model prijenosa, bez implicitnih dijaloga koji trese rukom kako bi se zajamčila pouzdanost, naručivanje ili integritet podataka. Stoga, UDP pruža nepouzdanu uslugu i datagrami mogu izaći iz reda, izgledati duplicirani ili nestati bez prethodne najave. UDP pretpostavlja da provjera i ispravljanje pogrešaka nije nužna ili se ne provodi u aplikaciji, izbjegavajući prekomjerne troškove takve obrade na razini mrežnog sučelja. Za razliku od TCP-a, UDP je kompatibilan s paketnim emisijama (slanje svima na lokalnoj mreži) i multicastingom (slanje svim pretplatnicima).

Različite primjene TCP i UDP

Pregledavanje weba, e-pošta i prijenos datoteka uobičajene su aplikacije koje koriste TCP. TCP se koristi za kontrolu veličine segmenta, brzine razmjene podataka, kontrole protoka i zagušenja mreže. TCP je poželjan tamo gdje su potrebni uređaji za ispravljanje pogrešaka na razini mrežnog sučelja. UDP se u velikoj mjeri koriste vremenski osjetljivim aplikacijama, kao i poslužiteljima koji odgovaraju na male upite ogromnog broja klijenata. UDP je kompatibilan s paketnim emitiranjem - slanje svima na mreži i multicasting - slanje svim pretplatnicima. UDP se najčešće koristi u sustavu naziva domena, prenosu glasa putem IP adrese, trivijalnom protokolu za prijenos datoteka i mrežnim igrama.

TCP vs. UDP za poslužitelje igara

Za masovno multiplayer online (MMO) igre, programeri često moraju napraviti arhitektonski izbor između korištenja UDP ili TCP trajnih veza. Prednosti TCP-a su postojane veze, pouzdanost i mogućnost korištenja paketa proizvoljnih veličina. Najveći problem s TCP-om u ovom scenariju je njegov algoritam kontrole zagušenja koji gubitak paketa tretira kao znak ograničenja propusnosti i automatski umanjuje slanje paketa. Na mrežama 3G ili Wi-Fi to može uzrokovati značajno kašnjenje.

Iskusni programer Christoffer Lernö izmjerio je prednosti i nedostatke te preporučuje sljedeće kriterije za odabir upotrebe TCP ili UDP za svoju igru:

  • Koristite HTTP preko TCP-a za izradu povremenih upita koje se pokreću od strane klijenta kada je u redu povremeno kašnjenje.
  • Upotrijebite uporne TCP utičnice ako i klijent i poslužitelj neovisno šalju pakete, ali povremeno odgađanje je u redu (npr. Online Poker, mnogi MMO-i).
  • Koristite UDP ako i klijent i poslužitelj mogu samostalno slati pakete i povremeno kašnjenje nije u redu (npr. Većina akcijskih igara za više igrača, neki MMO).

Reference

  • Wikipedia: Protokol o kontroli prijenosa
  • Wikipedia: Protokol korisničkog datagrama
  • UDP vs TCP za poslužitelje igara
  • Protokol o kontroli prijenosa