Vandag gaan ons begin deur op TCP te fokus. Vroeër in die hoofstuk oor lae het ons 'n belangrike punt genoem. By die netwerklaag en hieronder gaan dit meer oor gasheer-tot-gasheer-verbindings, wat beteken dat jou rekenaar moet weet waar 'n ander rekenaar is om daarmee te kan koppel. Kommunikasie in 'n netwerk is egter dikwels interproseskommunikasie eerder as intermasjienkommunikasie. Daarom stel die TCP-protokol die konsep van poort bekend. 'n Poort kan slegs deur een proses beset word, wat direkte kommunikasie tussen toepassingsprosesse wat op verskillende gashere loop, bied.
Die taak van die transportlaag is hoe om direkte kommunikasiedienste te verskaf tussen toepassingsprosesse wat op verskillende gashere loop, daarom staan dit ook bekend as 'n end-tot-end protokol. Die transportlaag versteek die kernbesonderhede van die netwerk, wat die toepassingsproses toelaat om te sien asof daar 'n logiese end-tot-end kommunikasiekanaal tussen die twee transportlaag-entiteite is.
TCP staan vir Transmission Control Protocol en staan bekend as 'n verbindingsgeoriënteerde protokol. Dit beteken dat voordat een toepassing data na die ander kan begin stuur, die twee prosesse 'n handskud moet doen. 'n Handskud is 'n logies gekoppelde proses wat betroubare oordrag en ordelike ontvangs van data verseker. Tydens die handskud word 'n verbinding tussen die bron- en bestemmingsgashere tot stand gebring deur 'n reeks beheerpakkette uit te ruil en ooreen te kom oor sekere parameters en reëls om suksesvolle data-oordrag te verseker.
Wat is TCP? (Mylinking seNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP-pakkette verwerk)
TCP (Transmission Control Protocol) is 'n verbindingsgeoriënteerde, betroubare, byte-stroom-gebaseerde transportlaagkommunikasieprotokol.
VerbindingsgerigVerbindingsgeoriënteerd beteken dat TCP-kommunikasie een-tot-een is, dit wil sê punt-tot-punt end-tot-end-kommunikasie, anders as UDP, wat boodskappe na verskeie gashere gelyktydig kan stuur, dus kan een-tot-baie-kommunikasie nie bereik word nie.
BetroubaarDie betroubaarheid van TCP verseker dat pakkette betroubaar aan die ontvanger afgelewer word ongeag veranderinge in die netwerkverbinding, wat die protokolpakketformaat van TCP meer kompleks maak as dié van UDP.
Byte-stroom-gebaseerdDie greepstroom-gebaseerde aard van TCP maak die oordrag van boodskappe van enige grootte moontlik en waarborg boodskapvolgorde: selfs al is die vorige boodskap nie volledig ontvang nie, en selfs al is die daaropvolgende grepe ontvang, sal TCP dit nie aan die toepassingslaag vir verwerking lewer nie en sal outomaties duplikaatpakkette laat val.
Sodra gasheer A en gasheer B 'n verbinding tot stand gebring het, hoef die toepassing slegs die virtuele kommunikasielyn te gebruik om data te stuur en te ontvang, wat data-oordrag verseker. Die TCP-protokol is verantwoordelik vir die beheer van take soos verbindingstigting, ontkoppeling en hou. Daar moet kennis geneem word dat ons hier sê die virtuele lyn beteken slegs om 'n verbinding tot stand te bring, TCP-protokolverbinding dui slegs aan dat die twee kante data-oordrag kan begin, en om die betroubaarheid van die data te verseker. Die roetering- en vervoerknope word deur die netwerktoestelle hanteer; die TCP-protokol self is nie bekommerd oor hierdie besonderhede nie.
'n TCP-verbinding is 'n voldupleksdiens, wat beteken dat gasheer A en gasheer B data in beide rigtings in 'n TCP-verbinding kan oordra. Dit wil sê, data kan tussen gasheer A en gasheer B in 'n tweerigtingvloei oorgedra word.
TCP stoor tydelik data in die verbinding se stuurbuffer. Hierdie stuurbuffer is een van die kasgeheue wat tydens die drierigting-handskud opgestel word. Vervolgens sal TCP die data in die stuurkasgeheue na die ontvangskasgeheue van die bestemmingsgasheer op die gepaste tyd stuur. In die praktyk sal elke eweknie 'n stuurkasgeheue en 'n ontvangskasgeheue hê, soos hier getoon:
Die stuurbuffer is 'n geheuearea wat deur die TCP-implementering aan die senderkant onderhou word en wat gebruik word om tydelik data wat gestuur moet word, te stoor. Wanneer die drierigting-handskud uitgevoer word om 'n verbinding te vestig, word die stuurkas opgestel en gebruik om data te stoor. Die stuurbuffer word dinamies aangepas volgens netwerkopeenhoping en terugvoer van die ontvanger.
'n Ontvangsbuffer is 'n geheuearea wat deur die TCP-implementering aan die ontvangkant onderhou word en 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 stuurkas en ontvangkas beperk is. Wanneer die kas vol is, kan TCP sekere strategieë 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-koptekste by elke stuk 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 oordrageenheid (MTU), wat die maksimum pakkiegrootte is wat deur die dataskakellaag kan gaan. Die maksimum oordrageenheid hou gewoonlik verband met die kommunikasie-koppelvlak.
So 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 transportlaag 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 transportlaagkonsep is wat verwys na die maksimum hoeveelheid data wat deur 'n TCP-pakket op 'n slag oorgedra kan word.
Let daarop dat wanneer die Maksimum Segmentgrootte (MSS) groter is as die Maksimum Transmissie-eenheid (MTU), IP-fragmentering by die netwerklaag uitgevoer sal word, en TCP sal nie die groter data in segmente verdeel wat geskik is vir MTU-grootte nie. Daar sal 'n afdeling op die netwerklaag wees wat aan die IP-laag toegewy is.
TCP-pakketsegmentstruktuur
Kom ons ondersoek die formaat en inhoud van TCP-opskrifte.
Volgordenommer'n Willekeurige getal wat deur die rekenaar gegenereer word wanneer die verbinding tot stand kom as die aanvanklike waarde wanneer die TCP-verbinding tot stand kom, en die volgordenommer word deur die SYN-pakket na die ontvanger gestuur. Tydens data-oordrag verhoog die sender die volgordenommer volgens die hoeveelheid data wat gestuur is. Die ontvanger beoordeel die volgorde van die data volgens die ontvangde volgordenommer. Indien die data buite volgorde gevind word, sal die ontvanger die data herrangskik om die volgorde van die data te verseker.
ErkenningsnommerDit is 'n volgordenommer wat in TCP gebruik word om die ontvangs van data te erken. Dit dui die volgordenommer aan van die volgende data wat die sender verwag om te ontvang. In 'n TCP-verbinding bepaal die ontvanger watter data suksesvol ontvang is gebaseer op die volgordenommer van die ontvangde datapakketsegment. Wanneer die ontvanger die data suksesvol ontvang, stuur dit 'n ACK-pakket na die sender, wat die erkenningserkenningsnommer bevat. Nadat die sender die ACK-pakket ontvang het, kan hy bevestig dat die data suksesvol ontvang is voordat hy die antwoordnommer erken.
Die beheerbitte van 'n TCP-segment sluit die volgende in:
ACK-bitWanneer hierdie bit 1 is, beteken dit dat die erkenningsantwoordveld geldig is. TCP spesifiseer dat hierdie bit op 1 gestel moet word, behalwe vir SYN-pakkette wanneer die verbinding aanvanklik tot stand gebring word.
RST-bietjieWanneer hierdie bit 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-bitWanneer hierdie bit op 1 gestel is, beteken dit dat die verbinding tot stand gebring moet word en die aanvanklike waarde van die volgordenommer in die volgordenommerveld gestel word.
FIN-bitWanneer hierdie bit 1 is, beteken dit dat geen verdere data in die toekoms gestuur sal word nie en die verbinding verlang word.
Die verskillende funksies en eienskappe van TCP word beliggaam deur die struktuur van TCP-pakketsegmente.
Wat is UDP? (Mylinking seNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP-pakkette verwerk)
Gebruikersdatagramprotokol (UDP) is 'n verbindingslose kommunikasieprotokol. In vergelyking met TCP, bied UDP nie komplekse beheermeganismes nie. Die UDP-protokol laat toepassings toe om ingekapselde IP-pakkette direk te stuur sonder om 'n verbinding te vestig. Wanneer 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 die opskrif daarvan is slegs agt grepe (64 bisse), wat baie bondig is. Die formaat van die UDP-opskrif is soos volg:
Bestemmings- en bronpoorteHul hoofdoel is om aan te dui na watter proses UDP pakkies moet stuur.
PakkiegrootteDie pakketgrootte-veld bevat die grootte van die UDP-koptekst plus die grootte van die data.
KontrolesomOntwerp om betroubare aflewering van UDP-koptekste 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-pakket plaasgevind het om die integriteit van die data te verseker.
Verskille tussen TCP en UDP in MylinkingNetwerk TikenNetwerkpakketmakelaarkon beide TCP- of UDP-pakkette verwerk
TCP en UDP verskil in die volgende aspekte:
VerbindingTCP is 'n verbindingsgeoriënteerde vervoerprotokol wat vereis dat 'n verbinding tot stand gebring word voordat data oorgedra kan word. UDP, aan die ander kant, benodig nie 'n verbinding nie en kan data onmiddellik oordra.
DiensvoorwerpTCP 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 met verskeie gashere gelyktydig kan kommunikeer.
BetroubaarheidTCP bied die diens om data betroubaar te lewer, en verseker dat data foutloos, verliesvry, nie-duplikaat is en op aanvraag aankom. UDP, aan die ander kant, doen sy beste poging en waarborg nie betroubare aflewering nie. UDP kan ly aan dataverlies en ander situasies tydens oordrag.
Opeenhopingsbeheer, vloeibeheerTCP het opeenhopingsbeheer- en vloeibeheermeganismes wat die data-oordragspoed 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 oorlaai, sal dit nie aanpassings aan die UDP-stuurspoed maak nie.
Kopstuk oorhoofseTCP het 'n lang koptekstlengte, tipies 20 grepe, wat toeneem wanneer opsievelde gebruik word. UDP, aan die ander kant, het 'n vaste koptekst van slegs 8 grepe, dus het UDP 'n laer koptekstoorhoofse koste.
TCP- en UDP-toepassingscenario's:
TCP en UDP is twee verskillende transportlaagprotokolle, en hulle het 'n paar verskille in toepassingscenario's.
Aangesien TCP 'n verbindingsgeoriënteerde protokol is, word dit hoofsaaklik gebruik in scenario's waar betroubare data-lewering vereis word. Enkele algemene gebruiksgevalle sluit in:
FTP-lêeroordragTCP kan verseker dat lêers nie verlore gaan en beskadig word tydens oordrag nie.
HTTP/HTTPSTCP verseker die integriteit en korrektheid van webinhoud.
Omdat UDP 'n verbindinglose protokol is, bied dit nie 'n betroubaarheidswaarborg nie, maar dit het die eienskappe van doeltreffendheid en intydse werking. UDP is geskik vir die volgende scenario's:
Lae-pakkie verkeer, soos DNS (Domain Name System)DNS-navrae is gewoonlik kort pakkies, en UDP kan hulle vinniger voltooi.
Multimedia-kommunikasie soos video en oudioVir multimedia-oordrag met hoë intydse vereistes, kan UDP laer latensie bied om te verseker dat data betyds oorgedra kan word.
UitsaaikommunikasieUDP ondersteun een-tot-baie en baie-tot-baie kommunikasie en kan gebruik word vir die oordrag van uitsaaiboodskappe.
Opsomming
Vandag het ons oor TCP geleer. TCP is 'n verbindingsgeoriënteerde, betroubare, byte-stroom-gebaseerde vervoerlaagkommunikasieprotokol. Dit verseker die betroubare oordrag en ordelike ontvangs van data deur verbinding, handdruk en erkenning te vestig. Die TCP-protokol gebruik poorte om die kommunikasie tussen prosesse te bewerkstellig en bied direkte kommunikasiedienste vir toepassingsprosesse wat op verskillende gashere loop. TCP-verbindings is voldupleks, wat gelyktydige tweerigting-data-oordragte moontlik maak. In teenstelling hiermee is UDP 'n verbindinglose georiënteerde kommunikasieprotokol wat nie betroubaarheidswaarborge bied nie en geskik is vir sommige scenario's met hoë intydse vereistes. TCP en UDP verskil in verbindingsmodus, diensobjek, betroubaarheid, opeenhopingsbeheer, vloeibeheer en ander aspekte, en hul toepassingscenario's verskil ook.
Plasingstyd: 3 Desember 2024