TCP ir UDP

Yra du interneto protokolo (IP) srauto tipai. Jie yra TCP arba Duomenų perdavimo valdymo protokolas ir UDP arba Vartotojo duomenų diagramos protokolas. TCP yra orientuotas į ryšį - užmezgus ryšį, duomenys gali būti siunčiami dviem kryptimis. UDP yra paprastesnis belaidis interneto protokolas. Keli pranešimai siunčiami paketų dalimis naudojant UDP.

Palyginimo diagrama

Skirtumai - panašumai - TCP ir UDP palyginimo lentelė
TCPUDP
Santrumpa Duomenų perdavimo valdymo protokolas Vartotojo duomenų diagramos protokolas arba universalus duomenų diagramos protokolas
Ryšys Transmission Control Protocol yra į ryšį orientuotas protokolas. Vartotojo duomenų diagramos protokolas yra bejungties protokolas.
Funkcija Žinutė internete sklinda iš vieno kompiuterio į kitą. Tai pagrįsta ryšiu. UDP taip pat yra protokolas, naudojamas pranešimams perduoti ar perduoti. Tai nėra pagrįsta ryšiu, o tai reiškia, kad viena programa gali siųsti paketą paketų į kitą, ir tai būtų santykių pabaiga.
Naudojimas TCP tinka toms programoms, kurioms reikalingas didelis patikimumas, o perdavimo laikas yra santykinai mažiau svarbus. UDP tinka programoms, kurioms reikalingas greitas ir efektyvus perdavimas, pavyzdžiui, žaidimams. UDP be pilietybės pobūdis taip pat naudingas serveriams, kurie atsakinėja į nedidelius daugybės klientų klausimus.
Naudojimas pagal kitus protokolus HTTP, HTTP, FTP, SMTP, „Telnet“ DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Duomenų paketų užsakymas TCP pertvarko duomenų paketus nurodyta tvarka. UDP neturi būdingos tvarkos, nes visi paketai yra vienas nuo kito nepriklausomi. Jei reikalingas užsakymas, jį turi valdyti programų lygmuo.
Perdavimo greitis TCP greitis yra lėtesnis nei UDP. UDP yra spartesnis, nes nemėginama atkurti klaidų. Tai yra „geriausių pastangų“ protokolas.
Patikimumas Visiškai garantuojama, kad perduoti duomenys išliks nepažeisti ir pateks ta pačia tvarka, kokia jie buvo išsiųsti. Nėra garantijos, kad išsiųsti pranešimai ar paketai išvis pasieks.
Antraštės dydis TCP antraštės dydis yra 20 baitų UDP antraštės dydis yra 8 baitai.
Dažni antraštės laukai Šaltinis, paskirties uostas, čekių suma Šaltinis, paskirties uostas, čekių suma
Duomenų srautas Duomenys skaitomi kaip baitų srautas, į signalo pranešimų (segmentų) ribas neperduodamos skiriamosios nuorodos. Paketai siunčiami atskirai ir tikrinami, ar jie nepažeisti tik tuo atveju, jei jie yra. Paketai turi aiškias ribas, kurių laikomasi gavus, tai reiškia, kad skaitymo operacija imtuvo lizde duos visą pranešimą, koks jis buvo išsiųstas iš pradžių..
Svoris TCP yra sunkus. TCP reikalauja trijų paketų, kad būtų galima nustatyti lizdo ryšį, kad būtų galima siųsti bet kokius vartotojo duomenis. TCP tvarko patikimumą ir grūsčių kontrolę. UDP yra lengvas. Nereikia užsakyti pranešimų, nėra stebėjimo jungčių ir pan. Tai yra mažas transportavimo sluoksnis, suprojektuotas IP viršuje.
Duomenų srauto valdymas TCP vykdo srauto valdymą. TCP reikalauja trijų paketų, kad būtų galima nustatyti lizdo ryšį, kad būtų galima siųsti bet kokius vartotojo duomenis. TCP tvarko patikimumą ir grūsčių kontrolę. UDP neturi srauto valdymo parinkties
Tikrinant įvyko klaida TCP tikrina klaidas ir atkuria klaidas. Klaidingi paketai yra perduodami iš šaltinio į paskirties vietą. UDP tikrina klaidas, bet paprasčiausiai atmeta klaidingus paketus. Nemėginama atkurti klaidos.
Laukai 1. Eilės numeris, 2. AcK numeris, 3. Duomenų poslinkis, 4. Rezervuotas, 5. Valdymo bitas, 6. Langas, 7. Skubus žymiklis 8. Parinktys, 9. Padding, 10. Check Sum, 11. Source port, 12. Paskirties uostas 1. Ilgis, 2. Šaltinio prievadas, 3. Paskirties prievadas, 4. Patikrinkite sumą
Pripažinimas Patvirtinimo segmentai Nėra patvirtinimo
Rankos paspaudimas SYN, SYN-ACK, ACK Nėra rankos paspaudimo (be ryšio protokolas)

Turinys: TCP vs UDP

  • 1 Duomenų perdavimo ypatumų skirtumai
    • 1.1 Patikimumas
    • 1.2 Užsakymas
    • 1.3 Prijungimas
    • 1.4 Perdavimo būdas
    • 1.5 Klaidų aptikimas
  • 2 Kaip veikia TCP ir UDP
  • 3 skirtingos TCP ir UDP programos
    • 3.1 TCP ir UDP žaidimų serveriams
  • 4 literatūros sąrašas

Duomenų perdavimo ypatumų skirtumai

TCP užtikrina patikimą ir užsakytą baitų srauto tiekimą iš vartotojo į serverį ar atvirkščiai. UDP nėra skirtas jungtims nuo galo iki galo, o ryšiai netikrina imtuvo pasirengimo.

Patikimumas

TCP yra patikimesnis, nes valdo pranešimų patvirtinimą ir retransliavimą pamestų dalių atveju. Taigi trūksta duomenų. UDP neužtikrina, kad ryšys pasiekė imtuvą, nes nėra patvirtinimo, laiko skirtumo ir pakartotinio perdavimo sąvokų.

Užsakymas

TCP siuntimai siunčiami seka ir jie gaunami ta pačia seka. Jei duomenų segmentai pateikiami neteisinga tvarka, TCP pertvarko ir pateikia programą. Jeigu UDP, išsiųstų pranešimų seka gali būti neišlaikyta, kai ji pasiekia gaunančią programą. Visiškai negalima nuspėti, kokia tvarka bus gauta žinutė.

Ryšys

TCP yra sunki jungtis, kuriai reikalingi trys paketai lizdui sujungti, ir valdoma grūsties kontrolė bei patikimumas. UDP yra lengvas transportavimo sluoksnis, sukurtas virš IP. Nėra stebėjimo jungčių ar pranešimų užsakymo.

Perdavimo būdas

TCP nuskaito duomenis kaip baitų srautą ir pranešimas perduodamas į segmentų ribas. UDP pranešimai yra paketai, kurie siunčiami atskirai, o atvykus tikrinamas jų vientisumas. Paketai apibrėžė ribas, o duomenų srautas jų neturi.

Klaidų aptikimas

UDP veikia „geriausiomis pastangomis“. Protokolas palaiko klaidų aptikimą per kontrolinę sumą, tačiau aptikus klaidą paketas išmetamas. Nebandoma perduoti paketo, skirto atkurti šią klaidą. Taip yra todėl, kad UDP paprastai yra skirtas programoms, kurios jautriai reaguoja į laiką, pavyzdžiui, žaidimams ar balso perdavimui. Atsigauti po klaidos bus beprasmiška, nes iki to laiko, kai bus gautas pakartotinai perduodamas paketas, jis nebus naudingas.

TCP naudoja ir klaidų aptikimą, ir klaidų atkūrimą. Klaidos aptinkamos naudojant kontrolinę sumą, o jei paketas yra klaidingas, imtuvas to nepatvirtina, o tai sukelia siuntėjo pakartotinį perdavimą. Šis veikimo mechanizmas vadinamas teigiamu patvirtinimu su pakartotiniu perdavimu (PAR)..

Kaip veikia TCP ir UDP

TCP ryšys užmezgamas per trijų krypčių paspaudimą, kuris yra ryšio inicijavimo ir patvirtinimo procesas. Kai ryšys užmegztas, duomenų perdavimas gali prasidėti. Po perdavimo ryšys nutraukiamas uždarant visas nustatytas virtualias grandines.

UDP naudoja paprastą perdavimo modelį be numanomų ranka drebančių dialogų, kad užtikrintų patikimumą, užsakymą ar duomenų vientisumą. Taigi UDP teikia nepatikimas paslaugas ir duomenų schemos gali būti netinkamos, pasirodyti kopijuotos arba dingti be išankstinio įspėjimo. UDP daro prielaidą, kad klaidų tikrinimas ir taisymas nėra būtinas arba atliekamas programoje, išvengiant tokio apdorojimo pridėtinės vertės tinklo sąsajos lygyje. Skirtingai nei TCP, UDP yra suderinamas su paketų transliacijomis (siuntimas visiems vietiniame tinkle) ir daugialypėmis transliacijomis (siųsti visiems abonentams)..

Skirtingos TCP ir UDP programos

Naršymas internete, el. Pašto ir failų perdavimas yra įprastos programos, kurios naudoja TCP. TCP naudojamas segmentų dydžiui, keitimosi duomenimis greičiui, srauto valdymui ir tinklo perkrovai valdyti. TCP yra teikiama pirmenybė ten, kur reikia tinklo klaidų taisymo priemonių. UDP dažniausiai naudojamos laiko atžvilgiu jautriose programose, taip pat serveriuose, kurie atsakinėja į nedideles daugybės klientų užklausas. UDP yra suderinamas su paketiniu transliavimu - siuntimas visiems tinkle ir daugialypės terpės siuntimas - visiems abonentams. UDP dažniausiai naudojamas domenų vardų sistemoje, „Voice over IP“, „Trivial File Transfer Protocol“ ir internetiniuose žaidimuose.

TCP ir UDP žaidimų serveriams

Masiškai kelių žaidėjų internetiniams (MMO) žaidimams kūrėjai dažnai turi pasirinkti architektūrinį variantą - naudoti nuolatines UDP ar TCP jungtis. TCP pranašumai yra nuolatiniai ryšiai, patikimumas ir galimybė naudoti savavališkų dydžių paketus. Didžiausia TCP problema šiame scenarijuje yra jo perkrovos valdymo algoritmas, kuris traktuoja paketų praradimą kaip pralaidumo apribojimų ženklą ir automatiškai sustabdo paketų siuntimą. 3G ar „Wi-Fi“ tinkluose tai gali sukelti didelę delsą.

Patyręs kūrėjas Christofferis Lernö pasvertas privalumus ir trūkumus bei rekomenduojantis šiuos kriterijus pasirinkti, ar žaidimui naudoti TCP, ar UDP:

  • Naudokite HTTP per TCP, jei norite atlikti retkarčiais kliento inicijuotas užklausas be pilietybės, kai retkarčiais vėluojama.
  • Naudokite nuolatinius paprastus TCP lizdus, ​​jei ir klientas, ir serveris atskirai siunčia paketus, tačiau retkarčiais vėluojama (pvz., Internetinis pokeris, daugybė MMO).
  • Naudokite UDP, jei tiek klientas, tiek serveris gali atskirai siųsti paketus, o retkarčiais vėluoti netinka (pvz., Dauguma žaidimų, keletas MMO).

Nuorodos

  • Vikipedija: perdavimo kontrolės protokolas
  • Vikipedija: vartotojo duomenų diagramos protokolas
  • UDP vs TCP žaidimų serveriams
  • Transmisijos kontrolės protokolas