TCP vs UDP: Demystifying påliteligheten mot effektivitetsdebatt

I dag skal vi begynne med å fokusere på TCP. Tidligere i kapittelet om lagdeling nevnte vi et viktig poeng. På nettverkslaget og nedenfor handler det mer om vert for hostforbindelser, noe som betyr at datamaskinen din trenger å vite hvor en annen datamaskin er for å koble til den. Imidlertid er kommunikasjon i et nettverk ofte interprosess kommunikasjon snarere enn intermachine -kommunikasjon. Derfor introduserer TCP -protokoll begrepet port. En port kan bare okkuperes av en prosess, som gir direkte kommunikasjon mellom søknadsprosesser som kjører på forskjellige verter.

Transportlagets oppgave er hvordan du kan tilby direkte kommunikasjonstjenester mellom applikasjonsprosesser som kjører på forskjellige verter, så det er også kjent som en ende-til-ende-protokoll. Transportlaget skjuler kjernedetaljene i nettverket, slik at søknadsprosessen kan se som om det er en logisk ende-til-ende kommunikasjonskanal mellom de to transportlagsenhetene.

TCP står for overføringskontrollprotokoll og er kjent som en tilkoblingsorientert protokoll. Dette betyr at før den ene applikasjonen kan begynne å sende data til den andre, må de to prosessene gjøre et håndtrykk. Håndtrykk er en logisk tilkoblet prosess som sikrer pålitelig overføring og ordnet mottak av data. Under håndtrykk er det etablert en forbindelse mellom kilde- og destinasjonsvertene ved å utveksle en serie kontrollpakker og bli enige om noen parametere og regler for å sikre vellykket dataoverføring.

Hva er TCP? (MyLinking'sNettverkskranogNettverkspakkemeglerkunne behandle både TCP- eller UDP -pakker)
TCP (Transmission Control Protocol) er en tilkoblingsorientert, pålitelig, byte-streambasert transportlag kommunikasjonsprotokoll.

Tilkoblingsorientert: Tilkoblingsorientert betyr at TCP-kommunikasjon er en-til-en, det vil si punkt-til-punkt ende-til-ende-kommunikasjon, i motsetning til UDP, som kan sende meldinger til flere verter samtidig, så en-til-mange kommunikasjon ikke kan oppnås.
Pålitelig: Påliteligheten til TCP sikrer at pakker blir levert pålitelig til mottakeren uavhengig av endringer i nettverkskoblingen, noe som gjør protokollpakkeformatet til TCP mer kompleks enn UDP.
Byte-stream-basert: Den byte-streambaserte naturen til TCP muliggjør overføring av meldinger av hvilken som helst størrelse og garanterer melding om melding: Selv om den forrige meldingen ikke er fullstendig mottatt, og selv om de påfølgende byteene er mottatt, vil TCP ikke levere dem til applikasjonslaget for behandling og automatisk slippe dupliserte pakker.
Når vert A og vert B har opprettet en forbindelse, trenger applikasjonen bare å bruke den virtuelle kommunikasjonslinjen for å sende og motta data, og dermed sikre dataoverføring. TCP -protokollen er ansvarlig for å kontrollere oppgaver som tilkoblingsetablering, frakobling og holding. Det skal bemerkes at her sier vi at den virtuelle linjen bare betyr å etablere en forbindelse, TCP -protokollforbindelse indikerer bare at de to sidene kan starte dataoverføring, og for å sikre påliteligheten til dataene. Ruting og transportnoder håndteres av nettverksenhetene; Selve TCP -protokollen er ikke opptatt av disse detaljene.

En TCP-tilkobling er en full-dupleks-tjeneste, som betyr at vert A og vert B kan overføre data i begge retninger i en TCP-tilkobling. Det vil si at data kan overføres mellom vert A og vert B i en toveis flyt.

TCP lagrer midlertidig data i tilkoblingens sendbuffer. Denne sendbufferen er en av hurtigbufrene som er satt opp under treveis håndtrykk. Deretter vil TCP sende dataene i Send Cache til Motta -hurtigbufferen til destinasjonsverten til riktig tidspunkt. I praksis vil hver jevnaldrende ha en send cache og en mottaksbuffer, som vist her:

TCP-UDP

Send -bufferen er et minneområde vedlikeholdt av TCP -implementeringen på avsendersiden som brukes til å lagre data midlertidig som skal sendes. Når treveis håndtrykk utføres for å etablere en tilkobling, er Send-cachen satt opp og brukes til å lagre data. Sendbufferen justeres dynamisk i henhold til nettverkstetting og tilbakemelding fra mottakeren.

En mottaksbuffer er et minneområde vedlikeholdt av TCP -implementeringen på mottakersiden som brukes til å lagre mottatte data midlertidig. TCP lagrer mottatte data i mottaksbufferen og venter på at den øvre applikasjonen skal lese den.

Merk at størrelsen på Send Cache og Motta hurtigbuffer er begrenset, når hurtigbufferen er full, kan TCP ta i bruk noen strategier, for eksempel overbelastningskontroll, flytkontroll osv. For å sikre pålitelig dataoverføring og nettverksstabilitet.

I datanettverk utføres dataoverføring mellom vertene ved hjelp av segmenter. Så hva er et pakkesegment?

TCP oppretter et TCP -segment, eller pakkesegment, ved å dele den innkommende strømmen i biter og legge til TCP -overskrifter til hver del. Hvert segment kan bare overføres i en begrenset periode og kan ikke overstige den maksimale segmentstørrelsen (MSS). På vei ned passerer et pakkesegment gjennom koblingslaget. Koblingslaget har en maksimal transmisjonsenhet (MTU), som er den maksimale pakkestørrelsen som kan passere gjennom datalinklaget. Den maksimale transmisjonsenheten er vanligvis relatert til kommunikasjonsgrensesnittet.

Så hva er forskjellen mellom MSS og MTU?

I datanettverk er den hierarkiske arkitekturen veldig viktig fordi den tar hensyn til forskjellene mellom de forskjellige nivåene. Hvert lag har et annet navn; I transportlaget kalles dataene et segment, og i nettverkslaget kalles dataene en IP -pakke. Derfor kan den maksimale transmisjonsenheten (MTU) tenkes som den maksimale IP -pakkestørrelsen som kan overføres av nettverkslaget, mens den maksimale segmentstørrelsen (MSS) er et transportlagskonsept som refererer til den maksimale datamengden som kan overføres av en TCP -pakke på et tidspunkt.

Merk at når den maksimale segmentstørrelsen (MSS) er større enn den maksimale transmisjonsenheten (MTU), vil IP -fragmentering bli utført på nettverkslaget, og TCP vil ikke dele de større dataene i segmenter som er egnet for MTU -størrelse. Det vil være en seksjon på nettverkslaget dedikert til IP -laget.

TCP -pakkesegmentstruktur
La oss utforske formatet og innholdet i TCP -overskrifter.

TCP -segment

Sekvensnummer: Et tilfeldig tall generert av datamaskinen når tilkoblingen er etablert som dens opprinnelige verdi når TCP -tilkoblingen er etablert, og sekvensnummeret sendes til mottakeren gjennom SYN -pakken. Under dataoverføring øker avsenderen sekvensnummeret i henhold til mengden data som er sendt. Mottakeren dømmer rekkefølgen på dataene i henhold til mottatt sekvensnummer. Hvis dataene blir funnet ut av orden, vil mottakeren omorganisere dataene for å sikre rekkefølgen på dataene.

Anerkjennelsesnummer: Dette er et sekvensnummer som brukes i TCP for å bekrefte mottak av data. Det indikerer sekvensnummeret til de neste dataene som avsenderen forventer å motta. I en TCP -tilkobling bestemmer mottakeren hvilke data som har blitt mottatt vellykket basert på sekvensnummeret til det mottatte datapakkesegmentet. Når mottakeren vellykket mottar dataene, sender den en ACK -pakke til avsenderen, som inneholder kvitteringsnummeret. Etter å ha mottatt ACK -pakken, kan avsenderen bekrefte at dataene før du anerkjenner svarnummeret er mottatt med hell.

Kontrollbitene i et TCP -segment inkluderer følgende:

Ack bit: Når denne biten er 1, betyr det at bekreftelsesfeltet er gyldig. TCP spesifiserer at denne biten må settes til 1 bortsett fra SYN -pakker når tilkoblingen opprinnelig er etablert.
Første bit: Når denne biten er 1, indikerer det at det er et unntak i TCP -tilkoblingen og tilkoblingen må tvinges til å kobles fra.
Syn bit: Når denne biten er satt til 1, betyr det at tilkoblingen skal etableres og den opprinnelige verdien av sekvensnummeret er satt i sekvensnummerfeltet.
Fin bit: Når denne biten er 1, betyr det at ikke flere data vil bli sendt i fremtiden og tilkoblingen er ønsket.
De forskjellige funksjonene og egenskapene til TCP er nedfelt av strukturen til TCP -pakkesegmenter.

Hva er UDP? (MyLinking'sNettverkskranogNettverkspakkemeglerkunne behandle både TCP- eller UDP -pakker)
Brukerdatagram -protokoll (UDP) er en tilkoblingsfri kommunikasjonsprotokoll. Sammenlignet med TCP gir UDP ikke komplekse kontrollmekanismer. UDP -protokollen lar applikasjoner direkte sende innkapslede IP -pakker uten å etablere en tilkobling. Når utvikleren velger å bruke UDP i stedet for TCP, kommuniserer applikasjonen direkte med IP.

Det fulle navnet på UDP -protokollen er brukerdatagram -protokoll, og overskriften er bare åtte byte (64 biter), noe som er veldig kortfattet. Formatet til UDP -overskriften er som følger:

UDP -segment

Destinasjons- og kildeporter: Hovedformålet deres er å indikere hvilken prosess UDP som skal sende pakker.
Pakkestørrelse: Pakkestørrelsesfeltet har størrelsen på UDP -overskriften pluss størrelsen på dataene
Sjekksum: Designet for å sikre pålitelig levering av UDP -overskrifter og data Rollen til kontrollsummen er å oppdage om det har skjedd en feil eller korrupsjon under overføringen av en UDP -pakke for å sikre integriteten til dataene.

Forskjeller mellom TCP og UDP i MyLinking'sNettverkskranogNettverkspakkemeglerkunne behandle både TCP- eller UDP -pakker
TCP og UDP er forskjellige i følgende aspekter:

TCP VS UDP

Forbindelse: TCP er en tilkoblingsorientert transportprotokoll som krever at en tilkobling skal etableres før data kan overføres. UDP, derimot, krever ikke en tilkobling og kan overføre data umiddelbart.

Serviceobjekt: TCP er en en-til-en-to-punkts tjeneste, det vil si at en forbindelse bare har to endepunkter for å kommunisere med hverandre. UDP støtter imidlertid en-til-en, en-til-mange og mange-til-mange interaktiv kommunikasjon, som kan kommunisere med flere verter samtidig.

Pålitelighet: TCP leverer tjenesten til å levere data pålitelig, og sikrer at data er feilfri, tapsfri, ikke-duplikat og kommer på forespørsel. UDP, derimot, gjør sin beste innsats og garanterer ikke pålitelig levering. UDP kan lide av tap av data og andre situasjoner under overføring.

Overbelastningskontroll, strømningskontroll: TCP har overbelastningskontroll og strømningskontrollmekanismer, som kan justere dataoverføringshastigheten i henhold til nettverksforholdene for å sikre sikkerhet og stabilitet i dataoverføring. UDP har ikke overbelastningskontroll- og strømningskontrollmekanismer, selv om nettverket er veldig overbelastet, vil det ikke gjøre justeringer av UDP -sendingsfrekvensen.

Heading overhead: TCP har en lang overskriftslengde, typisk 20 byte, noe som øker når opsjonsfelt brukes. UDP har derimot en fast heading på bare 8 byte, så UDP har en lavere overhead.

TCP VS UDP

TCP- og UDP -applikasjonsscenarier:
TCP og UDP er to forskjellige transportlagsprotokoller, og de har noen forskjeller i applikasjonsscenarier.

Siden TCP er en tilkoblingsorientert protokoll, brukes den først og fremst i scenarier der det kreves pålitelig datalevering. Noen vanlige brukssaker inkluderer:

FTP -filoverføring: TCP kan sikre at filer ikke går tapt og ødelagt under overføring.
Http/https: TCP sikrer integriteten og korrektheten til nettinnholdet.
Fordi UDP er en tilkoblingsfri protokoll, gir den ikke pålitelighetsgaranti, men den har egenskapene til effektivitet og sanntid. UDP er egnet for følgende scenarier:

Lavpakke-trafikk, for eksempel DNS (Domain Name System): DNS -spørsmål er vanligvis korte pakker, og UDP kan fullføre dem raskere.
Multimedia -kommunikasjon som video og lyd: For multimediaoverføring med høye sanntidskrav, kan UDP gi lavere latens for å sikre at data kan overføres på en riktig måte.
Kringkastingskommunikasjon: UDP støtter en-til-mange og mange-til-mange kommunikasjon og kan brukes til overføring av kringkastingsmeldinger.

Sammendrag
I dag lærte vi om TCP. TCP er en tilkoblingsorientert, pålitelig, byte-streambasert transportlag kommunikasjonsprotokoll. Det sikrer pålitelig overføring og ordnet mottak av data ved å etablere tilkobling, håndtrykk og anerkjennelse. TCP -protokoll bruker porter for å realisere kommunikasjonen mellom prosesser, og gir direkte kommunikasjonstjenester for applikasjonsprosesser som kjører på forskjellige verter. TCP-tilkoblinger er full-dupleks, noe som tillater samtidig toveis dataoverføringer. Derimot er UDP en tilkoblingsfri orientert kommunikasjonsprotokoll, som ikke gir pålitelighetsgarantier og er egnet for noen scenarier med høye sanntidskrav. TCP og UDP er forskjellige i tilkoblingsmodus, serviceobjekt, pålitelighet, overbelastningskontroll, flytkontroll og andre aspekter, og applikasjonsscenariene deres er også forskjellige.


Post Time: DEC-03-2024