TCP proti UDP: Demistifikacija razprave o zanesljivosti in učinkovitosti

Danes se bomo najprej osredotočili na TCP. Prej v poglavju o razvrščanju smo omenili pomembno točko. Na omrežni plasti in nižje gre bolj za povezave med gostitelji, kar pomeni, da mora vaš računalnik vedeti, kje je drug računalnik, da se lahko poveže z njim. Vendar pa je komunikacija v omrežju pogosto medprocesna komunikacija in ne medstrojna komunikacija. Zato protokol TCP uvaja koncept vrat. Vrata lahko zaseda samo en proces, kar zagotavlja neposredno komunikacijo med aplikacijskimi procesi, ki se izvajajo na različnih gostiteljih.

Naloga transportne plasti je zagotavljanje neposrednih komunikacijskih storitev med aplikacijskimi procesi, ki se izvajajo na različnih gostiteljih, zato je znana tudi kot protokol od konca do konca. Transportna plast skriva ključne podrobnosti omrežja, kar aplikacijskemu procesu omogoča, da vidi, kot da obstaja logičen komunikacijski kanal od konca do konca med obema entitetama transportne plasti.

TCP je kratica za Transmission Control Protocol (protokol za nadzor prenosa) in je znan kot protokol, usmerjen na povezavo. To pomeni, da se morata procesa, preden lahko ena aplikacija začne pošiljati podatke drugi, rokovati. Rokovanje je logično povezan proces, ki zagotavlja zanesljiv prenos in urejen sprejem podatkov. Med rokovanjem se vzpostavi povezava med izvornim in ciljnim gostiteljem z izmenjavo vrste kontrolnih paketov in dogovorom o nekaterih parametrih in pravilih za zagotovitev uspešnega prenosa podatkov.

Kaj je TCP? (Moje povezovanjeOmrežni priklopinPosrednik omrežnih paketovlahko obdeluje tako TCP kot UDP pakete)
TCP (Transmission Control Protocol) je na povezavo usmerjen, zanesljiv, na bajtnem toku temelječ komunikacijski protokol transportne plasti.

Povezovalno usmerjenoPovezavno usmerjena komunikacija pomeni, da je komunikacija TCP ena na ena, torej komunikacija od točke do točke od konca do konca, za razliko od UDP, ki lahko pošilja sporočila več gostiteljem hkrati, zato komunikacije ena na mnoge ni mogoče doseči.
ZanesljivZanesljivost TCP zagotavlja, da so paketi zanesljivo dostavljeni prejemniku ne glede na spremembe v omrežni povezavi, zaradi česar je format paketov protokola TCP bolj zapleten kot pri UDP.
Na osnovi bajtnega tokaNa bajtnem toku temelji narava TCP-ja, ki omogoča prenos sporočil poljubne velikosti in zagotavlja vrstni red sporočil: tudi če prejšnje sporočilo ni bilo v celoti prejeto in tudi če so bili prejeti naslednji bajti, jih TCP ne bo dostavil aplikacijski plasti za obdelavo in bo samodejno zavrgel podvojene pakete.
Ko gostitelj A in gostitelj B vzpostavita povezavo, mora aplikacija za pošiljanje in prejemanje podatkov uporabiti le še virtualno komunikacijsko linijo, s čimer zagotovi prenos podatkov. Protokol TCP je odgovoren za nadzor nalog, kot so vzpostavljanje, prekinitev in zadrževanje povezave. Treba je opozoriti, da tukaj virtualna linija pomeni le vzpostavitev povezave, medtem ko povezava protokola TCP pomeni le, da lahko obe strani začneta prenos podatkov in zagotovi zanesljivost podatkov. Usmerjevalna in transportna vozlišča obravnavajo omrežne naprave; protokol TCP sam se s temi podrobnostmi ne ukvarja.

TCP povezava je storitev s polnim dupleksom, kar pomeni, da lahko gostitelj A in gostitelj B v TCP povezavi prenašata podatke v obe smeri. To pomeni, da se podatki med gostiteljem A in gostiteljem B lahko prenašajo v dvosmernem toku.

TCP začasno shrani podatke v predpomnilnik za pošiljanje povezave. Ta predpomnilnik za pošiljanje je eden od predpomnilnikov, nastavljenih med tristranskim rokovanjem. Nato bo TCP ob ustreznem času poslal podatke iz predpomnilnika za pošiljanje v predpomnilnik za prejemanje ciljnega gostitelja. V praksi bo imel vsak vrstnik predpomnilnik za pošiljanje in predpomnilnik za prejemanje, kot je prikazano tukaj:

TCP-UDP

Pošiljalni medpomnilnik je območje pomnilnika, ki ga vzdržuje implementacija TCP na strani pošiljatelja in se uporablja za začasno shranjevanje podatkov, ki jih je treba poslati. Ko se izvede tristransko rokovanje za vzpostavitev povezave, se nastavi pošiljalni predpomnilnik, ki se uporablja za shranjevanje podatkov. Pošiljalni medpomnilnik se dinamično prilagaja glede na preobremenjenost omrežja in povratne informacije sprejemnika.

Sprejemni medpomnilnik je območje pomnilnika, ki ga vzdržuje implementacija TCP na sprejemni strani in se uporablja za začasno shranjevanje prejetih podatkov. TCP shrani prejete podatke v sprejemni predpomnilnik in čaka, da jih prebere nadrejena aplikacija.

Upoštevajte, da je velikost predpomnilnika za pošiljanje in prejemanje omejena. Ko je predpomnilnik poln, lahko TCP sprejme nekatere strategije, kot so nadzor preobremenjenosti, nadzor pretoka itd., da zagotovi zanesljiv prenos podatkov in stabilnost omrežja.

V računalniških omrežjih se prenos podatkov med gostitelji izvaja s pomočjo segmentov. Kaj je torej paketni segment?

TCP ustvari segment TCP ali paketni segment tako, da dohodni tok razdeli na dele in vsakemu delu doda glave TCP. Vsak segment se lahko prenaša le omejen čas in ne sme preseči največje velikosti segmenta (MSS). Na poti navzdol segment paketa prehaja skozi povezovalno plast. Povezovalna plast ima največjo prenosno enoto (MTU), ki je največja velikost paketa, ki lahko prehaja skozi podatkovno povezovalno plast. Največja prenosna enota je običajno povezana s komunikacijskim vmesnikom.

Kakšna je torej razlika med MSS in MTU?

V računalniških omrežjih je hierarhična arhitektura zelo pomembna, ker upošteva razlike med različnimi nivoji. Vsak nivo ima drugačno ime; v transportnem nivoju se podatki imenujejo segment, v omrežnem nivoju pa IP-paket. Zato si lahko največjo prenosno enoto (MTU) predstavljamo kot največjo velikost IP-paketa, ki ga lahko prenese omrežni nivo, medtem ko je največja velikost segmenta (MSS) koncept transportnega nivoja, ki se nanaša na največjo količino podatkov, ki jih lahko hkrati prenese TCP-paket.

Upoštevajte, da ko je največja velikost segmenta (MSS) večja od največje prenosne enote (MTU), se fragmentacija IP izvede na omrežni plasti in TCP ne bo razdelil večjih podatkov na segmente, primerne za velikost MTU. Na omrežni plasti bo poseben razdelek, namenjen plasti IP.

Struktura segmentov TCP paketa
Oglejmo si obliko in vsebino glav TCP.

Segment TCP

Zaporedna številka: Naključno število, ki ga računalnik ustvari ob vzpostavitvi povezave kot svojo začetno vrednost, ko je vzpostavljena TCP povezava, zaporedna številka pa se pošlje sprejemniku prek paketa SYN. ​​Med prenosom podatkov pošiljatelj poveča zaporedno številko glede na količino poslanih podatkov. Sprejemnik presodi vrstni red podatkov glede na prejeto zaporedno številko. Če se ugotovi, da podatki niso v pravilnem vrstnem redu, jih bo sprejemnik prerazporedil, da zagotovi pravilen vrstni red podatkov.

Številka potrditve: To je zaporedna številka, ki se uporablja v TCP za potrditev prejema podatkov. Označuje zaporedno številko naslednjih podatkov, ki jih pošiljatelj pričakuje. V povezavi TCP sprejemnik na podlagi zaporedne številke segmenta prejetega podatkovnega paketa določi, kateri podatki so bili uspešno prejeti. Ko sprejemnik uspešno prejme podatke, pošlje pošiljatelju paket ACK, ki vsebuje potrditveno številko. Po prejemu paketa ACK lahko pošiljatelj pred potrditvijo odgovorne številke potrdi, da so bili podatki uspešno prejeti.

Kontrolni biti segmenta TCP vključujejo naslednje:

ACK bitKo je ta bit nastavljen na 1, pomeni, da je polje za potrditveni odgovor veljavno. TCP določa, da mora biti ta bit nastavljen na 1, razen za SYN pakete, ko je povezava prvotno vzpostavljena.
RST bitKo je ta bit 1, pomeni, da je v povezavi TCP prišlo do izjeme in da je treba povezavo prisilno prekiniti.
SYN bitKo je ta bit nastavljen na 1, to pomeni, da je treba vzpostaviti povezavo in da je v polje zaporedne številke nastavljena začetna vrednost zaporedne številke.
FIN bitKo je ta bit enak 1, to pomeni, da v prihodnje ne bodo poslani nobeni podatki in da je povezava zaželena.
Različne funkcije in značilnosti TCP so utelešene v strukturi segmentov paketov TCP.

Kaj je UDP? (MylinkingovOmrežni priklopinPosrednik omrežnih paketovlahko obdeluje tako TCP kot UDP pakete)
Protokol uporabniških datagramov (UDP) je komunikacijski protokol brez povezave. V primerjavi s TCP UDP ne ponuja zapletenih nadzornih mehanizmov. Protokol UDP omogoča aplikacijam, da neposredno pošiljajo enkapsulirane IP-pakete brez vzpostavitve povezave. Ko se razvijalec odloči za uporabo UDP namesto TCP, aplikacija komunicira neposredno z IP-jem.

Polno ime protokola UDP je User Datagram Protocol, njegova glava pa je dolga le osem bajtov (64 bitov), ​​kar je zelo jedrnato. Oblika glave UDP je naslednja:

Segment UDP

Ciljna in izvorna vrataNjihov glavni namen je nakazati, kateremu procesu naj UDP pošlje pakete.
Velikost paketaPolje za velikost paketa vsebuje velikost glave UDP in velikost podatkov.
Kontrolna vsotaZasnovan za zagotavljanje zanesljive dostave glav in podatkov UDP. Vloga kontrolne vsote je zaznati, ali je med prenosom paketa UDP prišlo do napake ali poškodbe, da se zagotovi celovitost podatkov.

Razlike med TCP in UDP v MylinkinguOmrežni priklopinPosrednik omrežnih paketovlahko obdeluje tako TCP kot UDP pakete
TCP in UDP se razlikujeta v naslednjih vidikih:

TCP proti UDP

PovezavaTCP je transportni protokol, usmerjen na povezavo, ki zahteva vzpostavitev povezave, preden se lahko podatki prenesejo. UDP pa povezave ne zahteva in lahko podatke prenese takoj.

Storitveni objektTCP je storitev ena-na-ena z dvema točkama, kar pomeni, da ima povezava le dve končni točki za komunikacijo med seboj. Vendar UDP podpira interaktivno komunikacijo ena-na-ena, ena-na-mnoge in mnogo-na-mnoge, ki lahko komunicira z več gostitelji hkrati.

ZanesljivostTCP zagotavlja zanesljivo dostavo podatkov, pri čemer zagotavlja, da so podatki brez napak, izgub, podvojeni in prispejo na zahtevo. UDP pa se po svojih najboljših močeh trudi in ne zagotavlja zanesljive dostave. Pri UDP lahko med prenosom pride do izgube podatkov in drugih težav.

Nadzor zastojev, nadzor pretokaTCP ima mehanizme za nadzor preobremenjenosti in pretoka, ki lahko prilagodijo hitrost prenosa podatkov glede na omrežne pogoje, da se zagotovi varnost in stabilnost prenosa podatkov. UDP nima mehanizmov za nadzor preobremenjenosti in pretoka, zato tudi če je omrežje zelo preobremenjeno, ne bo prilagodil hitrosti pošiljanja UDP.

Nadzemna vrednost glaveTCP ima dolgo dolžino glave, običajno 20 bajtov, ki se poveča, ko se uporabljajo polja z možnostmi. UDP pa ima fiksno glavo, ki znaša le 8 bajtov, zato ima UDP nižje stroške glave.

TCP proti UDP

Scenariji aplikacij TCP in UDP:
TCP in UDP sta dva različna protokola transportne plasti in imata nekaj razlik v scenarijih uporabe.

Ker je TCP protokol, usmerjen na povezavo, se uporablja predvsem v primerih, kjer je potrebna zanesljiva dostava podatkov. Nekateri pogosti primeri uporabe vključujejo:

Prenos datotek prek FTP-jaTCP lahko zagotovi, da se datoteke med prenosom ne izgubijo ali poškodujejo.
HTTP/HTTPSTCP zagotavlja celovitost in pravilnost spletne vsebine.
Ker je UDP protokol brez povezave, ne zagotavlja zanesljivosti, vendar ima značilnosti učinkovitosti in delovanja v realnem času. UDP je primeren za naslednje scenarije:

Promet z nizkimi paketi, kot je DNS (sistem domenskih imen)DNS poizvedbe so običajno kratki paketi, UDP pa jih lahko obdela hitreje.
Multimedijska komunikacija, kot sta video in zvokZa prenos večpredstavnostnih vsebin z visokimi zahtevami v realnem času lahko UDP zagotovi manjšo zakasnitev, da se podatki lahko prenesejo pravočasno.
Oddajna komunikacijaUDP podpira komunikacijo ena proti mnogim in mnogo proti mnogim ter se lahko uporablja za prenos oddajnih sporočil.

Povzetek
Danes smo se učili o TCP. TCP je povezovalno usmerjen, zanesljiv komunikacijski protokol transportne plasti, ki temelji na toku bajtov. Zagotavlja zanesljiv prenos in urejen sprejem podatkov z vzpostavitvijo povezave, rokovanjem in potrditvijo. Protokol TCP uporablja vrata za komunikacijo med procesi in zagotavlja neposredne komunikacijske storitve za aplikacijske procese, ki se izvajajo na različnih gostiteljih. Povezave TCP so polni dupleks, kar omogoča sočasen dvosmerni prenos podatkov. Nasprotno pa je UDP komunikacijski protokol brez povezave, ki ne zagotavlja zanesljivosti in je primeren za nekatere scenarije z visokimi zahtevami v realnem času. TCP in UDP se razlikujeta po načinu povezave, storitvenem objektu, zanesljivosti, nadzoru preobremenjenosti, nadzoru pretoka in drugih vidikih, prav tako pa se razlikujeta tudi po njunih scenarijih uporabe.


Čas objave: 3. dec. 2024