TCP vs UDP: Demystifying the betroubaarheid teenoor doeltreffendheidsdebat

Vandag gaan ons begin met die fokus op TCP. Vroeër in die hoofstuk oor lae het ons 'n belangrike punt genoem. By die netwerklaag en hieronder gaan dit meer oor gasheer -aan -gasheerverbindings, wat beteken dat u rekenaar moet weet waar 'n ander rekenaar is om daarmee aan te sluit. Kommunikasie in 'n netwerk is egter dikwels interprokessekommunikasie eerder as intermachine -kommunikasie. Daarom stel TCP -protokol die konsep van hawe bekend. 'N Poort kan slegs deur een proses beset word, wat direkte kommunikasie bied tussen toepassingsprosesse wat op verskillende leërskare loop.

Die taak van die vervoerlaag is hoe om direkte kommunikasiedienste te lewer tussen toepassingsprosesse wat op verskillende leërskare loop, en dit staan ​​ook bekend as 'n einde-tot-einde-protokol. Die vervoerlaag verberg die kernbesonderhede van die netwerk, waardeur die aansoekproses kan sien asof daar 'n logiese end-tot-einde-kommunikasiekanaal tussen die twee vervoerlaag-entiteite is.

TCP staan ​​vir transmissiebeheerprotokol en staan ​​bekend as 'n verbindingsgerigte protokol. Dit beteken dat voordat die een toepassing data na die ander kan stuur, die twee prosesse 'n handdruk moet doen. Handdruk is 'n logies gekoppelde proses wat betroubare transmissie en ordelike ontvangs van data verseker. Tydens die handdruk word 'n verbinding tussen die bron- en bestemmingsgasheer gevestig deur 'n reeks kontrolepakkies uit te ruil en oor sommige parameters en reëls saam te stem om suksesvolle data -oordrag te verseker.

Wat is TCP? (MyLinking'sNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP -pakkies verwerk)
TCP (transmissiebeheerprotokol) is 'n verbindingsgerigte, betroubare, byte-stroom-gebaseerde vervoerlaag-kommunikasieprotokol.

Verbinding-georiënteerd: Verbindingsgerig beteken dat TCP-kommunikasie een-tot-een is, dit wil sê punt-tot-punt-end-tot-einde-kommunikasie, in teenstelling met UDP, wat terselfdertyd boodskappe aan verskeie leërskare kan stuur, sodat een-tot-baie kommunikasie nie bereik kan word nie.
Betroubaar: Die betroubaarheid van TCP verseker dat pakkies betroubaar aan die ontvanger gelewer word, ongeag die veranderinge in die netwerkskakel, wat die protokolpakketformaat van TCP meer ingewikkeld maak as dié van UDP.
Byte-stream gebaseer: Die byte-stroom-gebaseerde aard van TCP maak voorsiening vir die oordrag van boodskappe van enige grootte en waarborg boodskapbestelling: selfs al is die vorige boodskap nie volledig ontvang nie, en selfs al is die daaropvolgende grepe ontvang, sal TCP dit nie by die toepassingslaag aflewer vir verwerking nie en sal dit outomaties duplikaatpakkies laat val.
Sodra Host A en Host B 'n verbinding gevestig het, hoef die toepassing slegs die virtuele kommunikasielyn te gebruik om data te stuur en te ontvang, wat die oordrag van data verseker. Die TCP -protokol is verantwoordelik vir die beheer van take soos verbindingsinstelling, ontkoppeling en hou. Daar moet op gelet word dat ons hier sê dat die virtuele lyn slegs beteken om 'n verbinding te vestig, TCP -protokolverbinding slegs aandui dat die twee sye die data -oordrag kan begin, en om die betroubaarheid van die data te verseker. Die routing- en vervoerknope word deur die netwerktoestelle hanteer; Die TCP -protokol self handel nie oor hierdie besonderhede nie.

'N TCP-verbinding is 'n volledige dupleksdiens, wat beteken dat gasheer A en gasheer B data in beide rigtings in 'n TCP-verbinding kan oordra. Dit wil sê, data kan oorgedra word tussen gasheer A en gasheer B in 'n tweerigtingstroom.

TCP stoor tydelik data in die stuurbuffer van die verbinding. Hierdie stuurbuffer is een van die cache wat tydens die drie-rigting handdruk opgestel is. Vervolgens sal TCP die data in die stuur -kas na die ontvangskas van die bestemmingsgasheer op die toepaslike tydstip stuur. In die praktyk sal elke portuurgroep 'n kas en 'n ontvangsgeheue hê, soos hier aangedui:

TCP-UDP

Die stuurbuffer is 'n geheue wat deur die TCP -implementering aan die senderkant gehandhaaf word, wat gebruik word om tydelik data te stoor wat gestuur moet word. As die drie-rigting handdruk uitgevoer word om 'n verbinding te vestig, word die stuur-kas opgestel en gebruik om data te stoor. Die stuurbuffer word dinamies aangepas volgens netwerkopeenhopings en terugvoer van die ontvanger.

'N Ontvangsbuffer is 'n geheue wat deur die TCP -implementering onderhou word aan die ontvangskant wat gebruik word om ontvangde data tydelik te stoor. TCP stoor die ontvangde data in die ontvangskas en wag vir die boonste toepassing om dit te lees.

Let daarop dat die grootte van die kas en die ontvangs van die kas beperk is, wanneer die kas vol is, TCP 'n paar strategieë kan aanneem, soos opeenhopingsbeheer, vloeibeheer, ens., Om betroubare data -oordrag en netwerkstabiliteit te verseker.

In rekenaarnetwerke word data -oordrag tussen gashere deur middel van segmente uitgevoer. So, wat is 'n pakkiesegment?

TCP skep 'n TCP -segment, of pakkiesegment, deur die inkomende stroom in stukke te verdeel en TCP -kopstukke by elke deel te voeg. Elke segment kan slegs vir 'n beperkte tyd oorgedra word en kan nie die maksimum segmentgrootte (MSS) oorskry nie. Op pad af gaan 'n pakkiesegment deur die skakellaag. Die skakellaag het 'n maksimum transmissie -eenheid (MTU), wat die maksimum pakketgrootte is wat deur die datakakellaag kan gaan. Die maksimum transmissie -eenheid hou gewoonlik verband met die kommunikasie -koppelvlak.

Wat is die verskil tussen MSS en MTU?

In rekenaarnetwerke is die hiërargiese argitektuur baie belangrik omdat dit die verskille tussen die verskillende vlakke in ag neem. Elke laag het 'n ander naam; In die vervoerlaag word die data 'n segment genoem, en in die netwerklaag word die data 'n IP -pakket genoem. Daarom kan die maksimum transmissie -eenheid (MTU) beskou word as die maksimum IP -pakketgrootte wat deur die netwerklaag oorgedra kan word, terwyl die maksimum segmentgrootte (MSS) 'n vervoerlaagbegrip is wat verwys na die maksimum hoeveelheid data wat op 'n slag deur 'n TCP -pakkie oorgedra kan word.

Let daarop dat wanneer die maksimum segmentgrootte (MSS) groter is as die maksimum transmissie -eenheid (MTU), IP -fragmentasie by die netwerklaag uitgevoer sal word, en TCP sal nie die groter data verdeel in segmente wat geskik is vir MTU -grootte nie. Daar is 'n gedeelte oor die netwerklaag wat aan die IP -laag gewy is.

TCP -pakkiesegmentstruktuur
Kom ons ondersoek die formaat en inhoud van TCP -kopkaarte.

TCP -segment

Volgorde nommer: 'N ewekansige nommer wat deur die rekenaar gegenereer word wanneer die verbinding as die aanvanklike waarde daarvan vasgestel word wanneer die TCP -verbinding gevestig word, en die volgorde -nommer deur die Syn -pakket na die ontvanger gestuur word. Tydens data -oordrag neem die sender die volgorde -nommer in volgens die hoeveelheid data wat gestuur is. Die ontvanger beoordeel die volgorde van die data volgens die ontvangde volgorde -nommer. As die data van buite gevind word, sal die ontvanger die data herbestel om die volgorde van die data te verseker.

Erkenning nommer: Dit is 'n volgorde -nommer wat in TCP gebruik word om die ontvangs van data te erken. Dit dui op die volgorde -nommer van die volgende gegewens wat die sender verwag om te ontvang. In 'n TCP -verbinding bepaal die ontvanger watter data suksesvol ontvang is op grond van die volgorde -nommer van die ontvangde datapakketegment. As die ontvanger die data suksesvol ontvang, stuur dit 'n ACK -pakkie na die sender, wat die erkenningsnommer bevat. Nadat hy die ACK -pakket ontvang het, kan die sender bevestig dat die data voordat hy die antwoordnommer erken het, suksesvol ontvang is.

Die kontrolestukke van 'n TCP -segment sluit die volgende in:

Akker bietjie: As hierdie bis 1 is, beteken dit dat die erkennings se antwoordveld geldig is. TCP spesifiseer dat hierdie bis op 1 gestel moet word, behalwe vir Syn -pakkies wanneer die verbinding aanvanklik gevestig is.
RST Bit: As hierdie bis 1 is, dui dit aan dat daar 'n uitsondering in die TCP -verbinding is en dat die verbinding gedwing moet word om ontkoppel te word.
Syn bietjie: As hierdie bis op 1 gestel is, beteken dit dat die verbinding gevestig moet word en dat die aanvanklike waarde van die volgorde -nommer in die veld van die volgorde -nommer gestel word.
Vin bietjie: As hierdie bietjie 1 is, beteken dit dat daar nie meer data in die toekoms gestuur sal word nie en dat die verbinding verlang word.
Die verskillende funksies en kenmerke van TCP word vergestalt deur die struktuur van TCP -pakketegmente.

Wat is UDP? (MyLinking'sNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP -pakkies verwerk)
Gebruiker Datagram Protocol (UDP) is 'n verbindingslose kommunikasieprotokol. In vergelyking met TCP, bied UDP nie ingewikkelde beheermeganismes nie. Met die UDP -protokol kan aansoeke direk ingekapselde IP -pakkies stuur sonder om 'n verbinding te vestig. As die ontwikkelaar kies om UDP in plaas van TCP te gebruik, kommunikeer die toepassing direk met die IP.

Die volle naam van die UDP -protokol is gebruikersdatagramprotokol, en sy kop is slegs agt grepe (64 bisse), wat baie bondig is. Die formaat van die UDP -kop is soos volg:

UDP -segment

Bestemming en bronhawe: Hulle hoofdoel is om aan te dui watter proses UDP pakkies moet stuur.
Pakketgrootte: Die veldpakketgrootte bevat die grootte van die UDP -kop plus die grootte van die data
Kontrole: Ontwerp om betroubare aflewering van UDP -opskrifte en data te verseker. Die rol van die kontrolesom is om op te spoor of 'n fout of korrupsie tydens die oordrag van 'n UDP -pakkie plaasgevind het om die integriteit van die data te verseker.

Verskille tussen TCP en UDP in MyLinking'sNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP -pakkies verwerk
TCP en UDP verskil in die volgende aspekte:

TCP VS UDP

Konneksie: TCP is 'n verbindingsgerigte vervoerprotokol wat vereis dat 'n verbinding bepaal moet word voordat data oorgedra kan word. UDP, daarenteen, het nie 'n verbinding nodig nie en kan data onmiddellik oordra.

Diensvoorwerp: TCP is 'n een-tot-een tweepuntdiens, dit wil sê 'n verbinding het slegs twee eindpunte om met mekaar te kommunikeer. UDP ondersteun egter een-tot-een, een-tot-baie en baie-tot-baie interaktiewe kommunikasie, wat terselfdertyd met verskeie leërskare kan kommunikeer.

Betroubaarheid: TCP lewer die diens om data betroubaar te lewer, om te verseker dat data foutvry, verliesvry, nie-duplaat en op aanvraag is. UDP, daarenteen, doen sy beste moeite en waarborg nie betroubare aflewering nie. UDP kan tydens oordrag aan dataverlies en ander situasies ly.

Opeenhopingsbeheer, vloeibeheer: TCP het opeenhopingsbeheer- en vloei -beheermeganismes, wat die datastransmissietempo volgens die netwerktoestande kan aanpas om die sekuriteit en stabiliteit van data -oordrag te verseker. UDP het nie opeenhopingsbeheer- en vloeibeheermeganismes nie, selfs al is die netwerk baie oorvol, sal dit nie aanpassings aan die UDP -stuurtempo maak nie.

Kop bo -oorhoof: TCP het 'n lang koplengte, tipies 20 grepe, wat toeneem wanneer opsievelde gebruik word. UDP, daarenteen, het 'n vaste kop van slegs 8 grepe, dus UDP het 'n onderkop bo -op.

TCP VS UDP

TCP en UDP -toepassingscenario's:
TCP en UDP is twee verskillende vervoerlaagprotokolle, en hulle het 'n paar verskille in toepassingscenario's.

Aangesien TCP 'n verbindingsgerigte protokol is, word dit hoofsaaklik gebruik in scenario's waar betroubare data-aflewering benodig word. Sommige gevalle vir algemene gebruik sluit in:

FTP -lêeroordrag: TCP kan verseker dat lêers nie verlore gaan en beskadig word tydens oordrag nie.
Http/https: TCP verseker die integriteit en korrektheid van webinhoud.
Aangesien UDP 'n verbindingslose protokol is, bied dit nie betroubaarheidswaarborg nie, maar het dit die kenmerke van doeltreffendheid en real-time. UDP is geskik vir die volgende scenario's:

Verkeer met 'n lae pakket, soos DNS (domeinnaamstelsel): DNS -navrae is gewoonlik kort pakkies, en UDP kan dit vinniger voltooi.
Multimedia -kommunikasie soos video en klank: Vir multimedia-oordrag met hoë intydse vereistes, kan UDP laer latency bied om te verseker dat data betyds oorgedra kan word.
UITSTELLING Kommunikasie: UDP ondersteun een-tot-baie en baie-tot-baie-kommunikasie en kan gebruik word vir die oordrag van uitsaaiboodskappe.

Opsomming
Vandag het ons van TCP geleer. TCP is 'n verbindingsgerigte, betroubare, byte-stroom-gebaseerde vervoerlaag-kommunikasieprotokol. Dit verseker die betroubare transmissie en ordelike ontvangs van data deur verbinding, handdruk en erkenning te vestig. TCP -protokol gebruik hawens om die kommunikasie tussen prosesse te verwesenlik, en bied direkte kommunikasiedienste vir toepassingsprosesse wat op verskillende leërskare loop. TCP-verbindings is vol-dupleks, waardeur gelyktydige tweerigting-data-oordragte moontlik gemaak word. In teenstelling hiermee is UDP 'n verbindingslose georiënteerde kommunikasieprotokol, wat nie betroubaarheidswaarborge bied nie en geskik is vir sommige scenario's met 'n hoë intydse vereistes. TCP en UDP verskil in verbindingsmodus, diensobjek, betroubaarheid, opeenhopingsbeheer, vloeibeheer en ander aspekte, en hul toepassingscenario's verskil ook.


Postyd: Desember-03-2024