TCP vs UDP

Interneti-protokolli (IP) liiklust on kahte tüüpi. Nemad on TCP või Edastamise juhtimisprotokoll ja UDP või Kasutaja andmegrammi protokoll. TCP on ühendusele orienteeritud - kui ühendus on loodud, saab andmeid saata kahesuunaliselt. UDP on lihtsam, ühendusteta Interneti-protokoll. Mitu teadet saadetakse pakettidena pakettidena, kasutades UDP-d.

Võrdlusdiagramm

Erinevused - sarnasused - TCP versus UDP võrdlustabel
TCPUDP
Lühendi lühend Edastamise juhtimisprotokoll Kasutaja andmegrammi protokoll või universaalne andmegrammi protokoll
Ühendus Edastuse juhtimisprotokoll on ühendusele orienteeritud protokoll. Kasutaja andmegrammi protokoll on ühendusteta protokoll.
Funktsioon Kuna sõnum jõuab Interneti kaudu ühest arvutist teise. See põhineb ühendusel. UDP on ka protokoll, mida kasutatakse sõnumite edastamisel või edastamisel. See ei ole ühendusel põhinev, mis tähendab, et üks programm saab teisele saata koorma pakette, ja see oleks suhte lõpp.
Kasutamine TCP sobib rakenduste jaoks, mis vajavad suurt töökindlust ja edastusaeg on suhteliselt vähem kriitiline. UDP sobib rakenduste jaoks, mis vajavad kiiret ja tõhusat edastamist, näiteks mängude jaoks. UDP kodakondsuseta olemus on kasulik ka serverite jaoks, mis vastavad tohutul hulgal klientide väikestele päringutele.
Kasutamine teiste protokollide poolt HTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Andmepakettide tellimine TCP korraldab andmepaketid määratud järjekorras ümber. UDP-l puudub omane järjekord, kuna kõik paketid on üksteisest sõltumatud. Kui tellimine on vajalik, peab seda haldama rakenduskiht.
Ülekande kiirus TCP kiirus on UDP-st aeglasem. UDP on kiirem, kuna vigade taastamist ei üritata. See on "parimate pingutuste" protokoll.
Töökindlus On täiesti tagatud, et edastatud andmed jäävad puutumatuks ja jõuavad samasse järjekorda, milles nad saadeti. Ei ole mingit garantiid, et saadetud sõnumid või pakid üldse jõuavad.
Päise suurus TCP päise suurus on 20 baiti UDP päise suurus on 8 baiti.
Tavalised päiseväljad Lähteport, sihtsadam, kontrollsumma Lähteport, sihtsadam, kontrollsumma
Andmete voogesitus Andmeid loetakse baidivooluna, signaalsõnumi (segmendi) piiridele eristatavaid märke ei edastata. Paketid saadetakse eraldi ja nende terviklikkust kontrollitakse ainult siis, kui need saabuvad. Pakkidel on kindlad piirid, mida austatakse nende vastuvõtmisel, st lugemistoiming vastuvõtja pistikupesas annab kogu teate, nagu see algselt saadeti.
Kaal TCP on raske kaal. TCP nõuab enne kasutaja andmete saatmist pistikupesa ühenduse seadistamiseks kolme paketti. TCP tegeleb töökindluse ja ummikute kontrolliga. UDP on kerge. Ei ole vaja sõnumeid tellida ega jälgida ühendusi jne. See on väike transpordikiht, mis on loodud IP peale.
Andmevoo juhtimine TCP teeb voo juhtimist. TCP nõuab enne kasutaja andmete saatmist pistikupesa ühenduse seadistamiseks kolme paketti. TCP tegeleb töökindluse ja ummikute kontrolliga. UDP-l pole voo juhtimise võimalust
Viga kontrollimisel TCP kontrollib tõrkeid ja taastab vead. Vigaseid pakette edastatakse lähtest sihtkohta. UDP kontrollib tõrkeid, kuid loobub ekslikest pakettidest lihtsalt. Viga ei taastata.
Väljad 1. Järjenumber, 2. AcK number, 3. Andmete nihe, 4. Reserveeritud, 5. Kontrollbit, 6. Aken, 7. Kiireloomuline osuti 8. Valikud, 9. Padding, 10. Check Sum, 11. Source port, 12. Sihtsadam 1. Pikkus, 2. Lähteport, 3. Sihtpunkt, 4. Kontrollige summat
Tunnustus Kinnitussegmendid Ei kinnitust
Käepigistus SYN, SYN-ACK, ACK Ilma käepigistuseta (ühenduseta protokoll)

Sisu: TCP vs UDP

  • 1 Andmeedastusfunktsioonide erinevused
    • 1.1 Töökindlus
    • 1.2 Tellimine
    • 1.3 Ühendus
    • 1.4 Ülekandeviis
    • 1.5 Veatuvastus
  • 2 Kuidas TCP ja UDP töötavad
  • 3 TCP ja UDP erinevad rakendused
    • 3.1 TCP vs UDP mänguserveritele
  • 4 viidet

Andmeedastuse funktsioonide erinevused

TCP tagab baitivoo usaldusväärse ja tellitud edastamise kasutajalt serverile või vastupidi. UDP ei ole pühendatud otsast lõpuni ühendustele ja suhtlus ei kontrolli vastuvõtja valmisolekut.

Töökindlus

TCP on usaldusväärsem, kuna haldab kadunud osade korral sõnumite kinnitamist ja edastamist. Seega puuduvad puuduvad andmed. UDP ei taga, et suhtlus on vastuvõtjani jõudnud, kuna kviteerimise, aegumise ja uuesti edastamise kontseptsioonid puuduvad.

Tellimine

TCP ülekanded saadetakse jadas ja nad võetakse vastu samas järjestuses. Kui andmesegmendid saabuvad vales järjekorras, tellib ja edastab TCP rakenduse. Juhul kui UDP, saadetud sõnumijada ei pruugi säilitada, kui see jõuab vastuvõturakenduseni. Mingit võimalust ennustada sõnumi saamise järjekorda ei saa.

Ühendus

TCP on raskekaaluline ühendus, mis nõuab pistikupesa ühendamiseks kolme paketti ning tegeleb ummikute kontrolli ja töökindlusega. UDP on IP peal olev kerge transpordikiht. Puudub jälgimisühendused ega sõnumite tellimine.

Ülekande meetod

TCP loeb andmeid baidivooluna ja sõnum edastatakse segmentide piiridele. UDP sõnumid on paketid, mis saadetakse eraldi ja saabumisel kontrollitakse nende terviklikkust. Paketid on määratlenud piirid, samas kui andmevood puuduvad.

Veatuvastus

UDP töötab "parima võimaliku" põhimõttel. Protokoll toetab vea tuvastamist kontrollsumma kaudu, kuid vea avastamisel pakett visatakse ära. Sellest tõrkest taastumiseks mõeldud paketi uuesti edastust ei üritata. Selle põhjuseks on asjaolu, et UDP on tavaliselt ajatundlikele rakendustele, näiteks mängudele või kõne edastamiseks. Vigast toibumine oleks mõttetu, kuna selleks ajaks, kui edastatud pakett vastu võetakse, pole sellest mingit kasu.

TCP kasutab nii vigade tuvastamist kui ka vea taastamist. Vigu tuvastatakse kontrollsumma kaudu ja kui pakett on vigane, siis vastuvõtja seda ei kinnita, mis käivitab saatja uuesti edastamise. Seda töömehhanismi nimetatakse positiivseks kinnitamiseks koos edastamisega (PAR).

Kuidas TCP ja UDP töötavad?

TCP-ühendus luuakse kolmepoolse käepigistuse kaudu, mis on ühenduse algatamise ja kinnitamise protsess. Kui ühendus on loodud, võib andmeedastus alata. Pärast edastamist katkestatakse ühendus kõigi loodud virtuaallülituste sulgemisega.

UDP kasutab töökindluse, tellimise või andmete terviklikkuse tagamiseks lihtsat edastusmudelit ilma kaudsete kätega raputavate dialoogideta. Seega pakub UDP ebausaldusväärset teenust ja andmegrammid võivad jõuda korrast ära, tunduda dubleeritud või kaduda ilma ette teatamata. UDP eeldab, et vigade kontrollimine ja parandamine pole kas rakenduses vajalik või teostatakse, vältides sellise töötlemise üldkulusid võrguliidese tasemel. Erinevalt TCP-st ühildub UDP pakettülekannete (saatmine kõigile kohalikes võrkudes) ja multisaadetega (saata kõigile abonentidele).

TCP ja UDP erinevad rakendused

Veebibrauser, e-posti ja failide ülekandmine on tavalised rakendused, mis kasutavad TCP-d. TCP-d kasutatakse segmendi suuruse, andmevahetuse kiiruse, voo juhtimise ja võrgu ülekoormuse juhtimiseks. TCP on eelistatav, kui võrguliidese tasemel on vaja veaparandusvõimalusi. UDP-d kasutavad suures osas nii ajatundlikud rakendused kui ka serverid, mis vastavad väga paljude klientide väikestele päringutele. UDP ühildub pakettülekandega - võrgus kõigile saatmine ja multisaadetega - kõigile tellijatele saatmine. UDP-d kasutatakse tavaliselt domeeninimede süsteemis, Voice over IP-is, Trivial File Transfer Protocol ja võrgumängudes.

TCP vs UDP mänguserverite jaoks

Massiliselt mitme mängijaga võrgumängude (MMO) jaoks peavad arendajad sageli tegema arhitektuurse valiku UDP või TCP püsiühenduste vahel. TCP eelised on püsivad ühendused, töökindlus ja suvalise suurusega pakettide kasutamise võimalus. Selle stsenaariumi suurim probleem TCP-ga on selle ummikute kontrolli algoritm, mis käsitleb paketi kadu ribalaiuse piirangute märgina ja lükkab automaatselt pakettide saatmise edasi. 3G- või WiFi-võrkudes võib see põhjustada märkimisväärset latentsusaega.

Kogenud arendaja Christoffer Lernö kaalus plusse ja miinuseid ning soovitab järgmisi kriteeriume valida, kas kasutada oma mängu jaoks TCP või UDP:

  • Kasutage TCP kaudu HTTP-d juhuslike, kliendi algatatud kodakondsuseta päringute tegemiseks, kui aeg-ajalt viivitamine on lubatud.
  • Kasutage püsivaid tavalisi TCP-pistikupesasid, kui nii klient kui ka server saadavad pakette sõltumatult, kuid aeg-ajaline viivitus on OK (nt veebipokker, paljud MMO-d).
  • Kasutage UDP-d, kui nii klient kui ka server võivad iseseisvalt pakette saata ja aeg-ajalt viivitamine pole korras (nt enamik mitme mängijaga märguandemänge, mõned MMO-d).

Viited

  • Vikipeedia: edastuse juhtimisprotokoll
  • Vikipeedia: kasutaja andmegrammi protokoll
  • UDP vs TCP mänguserverite jaoks
  • Ülekande juhtimise protokoll