TCP vs UDP: Afmystificering af pålideligheden vs. effektivitetsdebat

I dag vil vi starte med at fokusere på TCP. Tidligere i kapitlet om lagdeling nævnte vi et vigtigt punkt. På netværkslaget og derunder handler det mere om vært at være vært for forbindelser, hvilket betyder, at din computer skal vide, hvor en anden computer er for at oprette forbindelse til det. Imidlertid er kommunikation i et netværk ofte interprocess -kommunikation snarere end intermachine -kommunikation. Derfor introducerer TCP -protokol begrebet port. En havn kan kun besættes af en proces, der giver direkte kommunikation mellem ansøgningsprocesser, der kører på forskellige værter.

Transportlagets opgave er, hvordan man leverer direkte kommunikationstjenester mellem ansøgningsprocesser, der kører på forskellige værter, så det er også kendt som en ende-til-ende-protokol. Transportlaget skjuler kerneoplysningerne i netværket, hvilket gør det muligt for ansøgningsprocessen at se, som om der er en logisk ende-til-ende-kommunikationskanal mellem de to transportlagsenheder.

TCP står for transmissionskontrolprotokol og er kendt som en forbindelsesorienteret protokol. Dette betyder, at inden den ene applikation kan begynde at sende data til den anden, skal de to processer gøre et håndtryk. Handshake er en logisk tilsluttet proces, der sikrer pålidelig transmission og ordnet modtagelse af data. Under håndtrykket etableres en forbindelse mellem kilde- og destinationsværterne ved at udveksle en række kontrolpakker og blive enige om nogle parametre og regler for at sikre en vellykket datatransmission.

Hvad er TCP? (MyLinking'sNetværksknapogNetværkspakke mæglerkunne behandle både TCP- eller UDP -pakker)
TCP (transmissionskontrolprotokol) er en forbindelse orienteret, pålidelig, byte-stream-baseret transportlag kommunikationsprotokol.

Forbindelsesorienteret: Forbindelsesorienteret betyder, at TCP-kommunikation er en-til-en, det vil sige punkt-til-punkt-end-til-ende-kommunikation, i modsætning til UDP, som kan sende beskeder til flere værter på samme tid, så en-til-mange-kommunikation kan ikke opnås.
Pålidelig: Pålideligheden af ​​TCP sikrer, at pakker leveres pålideligt til modtageren uanset ændringer i netværkslinket, hvilket gør protokolpakken formatet for TCP mere kompliceret end UDP.
Byte-stream-baseret: Den byte-stream-baserede karakter af TCP giver mulighed for transmission af meddelelser af enhver størrelse og garanterer meddelelsesordre: selvom den forrige meddelelse ikke er blevet modtaget fuldt ud, og selvom de efterfølgende bytes er modtaget, vil TCP ikke levere dem til applikationslaget til behandling og automatisk droppe duplikatpakker.
Når vært A og vært B har oprettet en forbindelse, behøver applikationen kun at bruge den virtuelle kommunikationslinje til at sende og modtage data og således sikre dataoverførsel. TCP -protokollen er ansvarlig for at kontrollere opgaver såsom forbindelse til etablering, afbrydelse og opbevaring. Det skal bemærkes, at vi her siger, at den virtuelle linje kun betyder at etablere en forbindelse, TCP -protokolforbindelse indikerer kun, at de to sider kan starte datatransmission og for at sikre pålideligheden af ​​dataene. Routing- og transportknudepunkterne håndteres af netværksenhederne; Selve TCP -protokollen er ikke optaget af disse detaljer.

En TCP-forbindelse er en fuld-duplex-service, hvilket betyder, at vært A og vært B kan transmittere data i begge retninger i en TCP-forbindelse. Det vil sige, data kan overføres mellem vært A og vært B i en tovejsstrøm.

TCP gemmer midlertidigt data i forbindelsens sendbuffer. Denne sendbuffer er en af ​​de cacher, der er oprettet under trevejs håndtryk. Derefter sender TCP dataene i Send Cache til Modtagelsescachen af ​​destinationsværten på det passende tidspunkt. I praksis vil hver peer have en sendcache og en modtag cache, som vist her:

TCP-UDP

Sendbufferen er et hukommelsesområde, der vedligeholdes af TCP -implementeringen på afsendersiden, der bruges til midlertidigt at gemme data, der skal sendes. Når tre-vejs håndtryk udføres for at etablere en forbindelse, indstilles Send-cachen og bruges til at gemme data. Sendbufferen justeres dynamisk i henhold til netværksoverbelastning og feedback fra modtageren.

En modtagelsesbuffer er et hukommelsesområde, der vedligeholdes af TCP -implementeringen på den modtagende side, der bruges til midlertidigt at gemme modtagne data. TCP gemmer de modtagne data i modtagelsescachen og venter på, at den øverste applikation læser dem.

Bemærk, at størrelsen på sendcache og modtage cache er begrænset, når cachen er fuld, kan TCP vedtage nogle strategier, såsom overbelastningskontrol, flowkontrol osv., For at sikre pålidelig datatransmission og netværksstabilitet.

I computernetværk udføres datatransmission mellem værter ved hjælp af segmenter. Så hvad er et pakkesegment?

TCP opretter et TCP -segment eller pakkesegment ved at opdele den indkommende strøm i bidder og tilføje TCP -overskrifter til hver del. Hvert segment kan kun overføres i en begrænset periode og kan ikke overstige den maksimale segmentstørrelse (MSS). På vej ned passerer et pakkesegment gennem linklaget. Linklaget har en maksimal transmissionsenhed (MTU), som er den maksimale pakkestørrelse, der kan passere gennem datalinklaget. Den maksimale transmissionsenhed er normalt relateret til kommunikationsgrænsefladen.

Så hvad er forskellen mellem MSS og MTU?

I computernetværk er den hierarkiske arkitektur meget vigtig, fordi den tager højde for forskellene mellem de forskellige niveauer. Hvert lag har et andet navn; I transportlaget kaldes dataene et segment, og i netværkslaget kaldes dataene en IP -pakke. Derfor kan den maksimale transmissionsenhed (MTU) betragtes som den maksimale IP -pakkestørrelse, der kan overføres af netværkslaget, mens den maksimale segmentstørrelse (MSS) er et transportlagskoncept, der henviser til den maksimale mængde data, der kan transmitteres af en TCP -pakke på et tidspunkt.

Bemærk, at når den maksimale segmentstørrelse (MSS) er større end den maksimale transmissionsenhed (MTU), udføres IP -fragmentering ved netværkslaget, og TCP opdeler ikke de større data i segmenter, der er egnede til MTU -størrelse. Der vil være et afsnit på netværkslaget dedikeret til IP -laget.

TCP -pakkesegmentstruktur
Lad os udforske formatet og indholdet af TCP -overskrifter.

TCP -segment

Sekvensnummer: Et tilfældigt tal genereret af computeren, når forbindelsen etableres som dens oprindelige værdi, når TCP -forbindelsen er etableret, og sekvensnummeret sendes til modtageren gennem SYN -pakken. Under datatransmission øger afsenderen sekvensnummeret i henhold til mængden af ​​data, der er sendt. Modtageren bedømmer rækkefølgen af ​​dataene i henhold til det modtagne sekvensnummer. Hvis dataene findes i drift, vil modtageren ombestille dataene for at sikre rækkefølgen af ​​dataene.

Anerkendelsesnummer: Dette er et sekvensnummer, der bruges i TCP til at anerkende modtagelsen af ​​data. Det angiver sekvensnummeret for de næste data, som afsenderen forventer at modtage. I en TCP -forbindelse bestemmer modtageren, hvilke data der er blevet modtaget med succes baseret på sekvensnummeret for det modtagne datapakke -segment. Når modtageren med succes modtager dataene, sender den en ACK -pakke til afsenderen, der indeholder anerkendelsesgenkendelsesnummeret. Efter at have modtaget ACK -pakken, kan afsenderen bekræfte, at dataene, før det erkender, at svarnummeret er blevet modtaget med succes.

Kontrolbitene i et TCP -segment inkluderer følgende:

Ack bit: Når denne bit er 1, betyder det, at anerkendelsesfeltet er gyldigt. TCP specificerer, at denne bit skal indstilles til 1 undtagen SYN -pakker, når forbindelsen oprindeligt er etableret.
Første bit: Når denne bit er 1, indikerer den, at der er en undtagelse i TCP -forbindelsen, og forbindelsen skal tvinges til at blive frakoblet.
Syn bit: Når denne bit er indstillet til 1, betyder det, at forbindelsen skal fastlægges, og den oprindelige værdi af sekvensnummeret er indstillet i feltet Sekvensnummer.
Fin bit: Når denne bit er 1, betyder det, at der ikke vil blive sendt flere data i fremtiden, og forbindelsen ønskes.
De forskellige funktioner og egenskaber ved TCP er legemliggjort af strukturen af ​​TCP -pakkesegmenter.

Hvad er UDP? (MyLinking'sNetværksknapogNetværkspakke mæglerkunne behandle både TCP- eller UDP -pakker)
Bruger Datagram Protocol (UDP) er en forbindelsesløs kommunikationsprotokol. Sammenlignet med TCP leverer UDP ikke komplekse kontrolmekanismer. UDP -protokollen giver applikationer mulighed for direkte at sende indkapslede IP -pakker uden at etablere en forbindelse. Når udvikleren vælger at bruge UDP i stedet for TCP, kommunikerer applikationen direkte med IP.

Det fulde navn på UDP -protokollen er brugerdatagram -protokol, og dens header er kun otte byte (64 bit), hvilket er meget kortfattet. Formatet for UDP -overskriften er som følger:

UDP -segment

Destination og kildeporte: Deres hovedformål er at indikere, til hvilken proces UDP skal sende pakker.
Pakkestørrelse: Pakkestørrelsesfeltet indeholder størrelsen på UDP -overskriften plus størrelsen på dataene
Kontrolsum: Designet til at sikre pålidelig levering af UDP -overskrifter og data Kontrolsummet er at registrere, om der er sket en fejl eller korruption under transmission af en UDP -pakke for at sikre dataets integritet.

Forskelle mellem TCP og UDP i MyLinking'sNetværksknapogNetværkspakke mæglerkunne behandle både TCP- eller UDP -pakker
TCP og UDP er forskellige i følgende aspekter:

TCP vs UDP

Forbindelse: TCP er en forbindelsesorienteret transportprotokol, der kræver en forbindelse, der skal etableres, før data kan overføres. UDP kræver på den anden side ikke en forbindelse og kan overføre data med det samme.

Serviceobjekt: TCP er en en-til-en-to-punkts service, det vil sige en forbindelse har kun to slutpunkter til at kommunikere med hinanden. UDP understøtter imidlertid en-til-en, en-til-mange og mange-til-mange interaktiv kommunikation, som kan kommunikere med flere værter på samme tid.

Pålidelighed: TCP leverer tjenesten med at levere data pålideligt, hvilket sikrer, at data er fejlfri, tabsfri, ikke-duplikat og ankommer efter behov. UDP gør på den anden side sin bedste indsats og garanterer ikke pålidelig levering. UDP kan lide af datatab og andre situationer under transmission.

Overbelastningskontrol, flowkontrol: TCP har overbelastningskontrol- og flowkontrolmekanismer, som kan justere datatransmissionshastigheden i henhold til netværksbetingelserne for at sikre sikkerheden og stabiliteten af ​​datatransmission. UDP har ikke overbelastningskontrol- og flowkontrolmekanismer, selvom netværket er meget overbelastet, vil det ikke foretage justeringer af UDP -afsendelseshastigheden.

Overskrift over hovedet: TCP har en lang overskriftslængde, typisk 20 byte, der øges, når optionsfelter bruges. UDP har på den anden side kun en fast overskrift på kun 8 byte, så UDP har et lavere overskrift over hovedet.

TCP vs UDP

TCP- og UDP -applikationsscenarier:
TCP og UDP er to forskellige transportlagsprotokoller, og de har nogle forskelle i applikationsscenarier.

Da TCP er en forbindelsesorienteret protokol, bruges den primært i scenarier, hvor der kræves pålidelig datalevering. Nogle tilfælde af almindelige brug inkluderer:

FTP -filoverførsel: TCP kan sikre, at filer ikke går tabt og ødelægges under overførslen.
Http/https: TCP sikrer integriteten og korrektheden af ​​webindhold.
Fordi UDP er en forbindelsesløs protokol, giver den ikke pålidelighedsgaranti, men den har egenskaberne ved effektivitet og realtid. UDP er velegnet til følgende scenarier:

Trafik med lav pakke, såsom DNS (domænenavnssystem): DNS -forespørgsler er normalt korte pakker, og UDP kan afslutte dem hurtigere.
Multimediekommunikation såsom video og lyd: Til multimedieoverførsel med høje realtidskrav kan UDP give lavere latenstid for at sikre, at data kan overføres rettidigt.
Broadcast Communication: UDP understøtter en-til-mange og mange-til-mange kommunikation og kan bruges til transmission af udsendelsesmeddelelser.

Oversigt
I dag lærte vi om TCP. TCP er en forbindelsesorienteret, pålidelig, byte-stream-baseret transportlagskommunikationsprotokol. Det sikrer den pålidelige transmission og ordnede modtagelse af data ved at etablere forbindelse, håndtryk og anerkendelse. TCP -protokol bruger porte til at realisere kommunikationen mellem processer og leverer direkte kommunikationstjenester til ansøgningsprocesser, der kører på forskellige værter. TCP-forbindelser er fuld-duplex, hvilket tillader samtidige tovejsdataoverførsler. I modsætning hertil er UDP en forbindelsesfri orienteret kommunikationsprotokol, der ikke giver pålidelighedsgarantier og er velegnet til nogle scenarier med høje realtidskrav. TCP og UDP er forskellige i forbindelsestilstand, serviceobjekt, pålidelighed, overbelastningskontrol, flowkontrol og andre aspekter, og deres applikationsscenarier er også forskellige.


Posttid: DEC-03-2024