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