UDP protokol. Dataoverførselsprotokoller TCP og UDP

I computernetværk Porten er kommunikationens slutpunkt i operativsystemet. Udtrykket bruges også om hardwareenheder, men i software er det en logisk konstruktion, der identificerer en bestemt proces eller type tjeneste.

En port er altid knyttet til en værts-IP-adresse og -type og fuldender dermed sessionsadressetildelingen. Det identificeres for hver adresse og protokol ved hjælp af et 16-bit nummer, almindeligvis kendt som portnummeret. Specifikke portnumre bruges ofte til at identificere specifikke tjenester. Af de tusinder på listen er 1024 velkendte portnumre beskyttet af konventionen for at identificere specifikke typer tjenester på værten. Protokoller, der primært bruger porte, bruges til at styre processer (såsom Transmission Control Protocol (TCP) og User Datagram Protocol (UDP) fra internetprotokolpakken).

Betyder

TCP-porte er ikke nødvendige over direkte punkt-til-punkt-links, hvor computerne i hver ende kun kan køre et program ad gangen. De blev nødvendige, da maskiner blev i stand til at køre mere end et program ad gangen og blev forbundet til moderne pakkekoblede netværk. I modellen klient-server arkitektur applikationer, porte og netværksklienter oprette forbindelse til serviceinitiering, levere multipleksingstjenester, efter at den indledende kommunikation er knyttet til et kendt portnummer, og den frigives ved at skifte hver anmodningstjenesteinstans til en dedikeret linje. Der oprettes forbindelse til et bestemt nummer, og takket være dette yderligere kunder kan serveres uden at vente.

detaljer

Dataoverførselsprotokoller - Transmission Control Protocol (TCP) og User Datagram Protocol (UDP) - bruges til at angive destinationsportnummeret og kilden i deres segmentoverskrifter. Portnummeret er et 16-bit usigneret heltal. Så det kan være i området fra 0 til 65535.

TCP-porte kan dog ikke bruge nummer 0. Kildeporten til UDP er valgfri, og en værdi på nul betyder, at den ikke er til stede.

En proces kommunikerer sine input- eller outputkanaler gennem en internet-socket (en type filbeskrivelse) ved hjælp af en transportprotokol, portnummer og IP-adresse. Denne proces er kendt som binding, og den gør det muligt at sende og modtage data på tværs af et netværk.

Operativsystemet er ansvarlig for at overføre udgående data fra alle applikationsporte til netværket, samt videresende indgående data netværkspakker(ved at matche IP-adressen og nummeret). Kun én proces kan bindes til en specifik IP-adresse og portkombination ved brug af den samme transportprotokol. Almindelige programnedbrud, nogle gange kaldet portkonflikter, opstår, når flere programmer forsøger at kommunikere med de samme portnumre på den samme IP-adresse ved hjælp af den samme protokol.

Hvordan bruges de?

Applikationer, der implementerer delte tjenester, bruger ofte specielt reserverede og godt berømte liste TCP- og UDP-porte til modtagelse af serviceanmodninger fra klienter. Denne proces er kendt som lytning, og den involverer at modtage en anmodning fra en velkendt port og etablere en en-til-en samtale mellem serveren og klienten ved hjælp af det samme nummer. lokal havn. Andre klienter kan fortsætte med at forbinde - dette er muligt, fordi TCP-forbindelsen er identificeret som en kæde bestående af lokale og fjernadresser og havne. Standard TCP- og UDP-porte bestemmes efter aftale under kontrol af Internet Assigned Numbers Authority (IANA).

Kerne netværkstjenester(mest bemærkelsesværdigt WorldWideWeb) bruger typisk små portnumre - mindre end 1024. Mange operativsystemer kræver særlige privilegier for applikationer at binde til dem, fordi de ofte anses for at være kritiske for IP-netværks funktion. På den anden side bruger slutklienten af ​​forbindelsen normalt et stort antal af dem, allokeret til kortvarig brug, hvorfor der er såkaldte ephemeral ports.

Struktur

TCP-porte er kodet i transportprotokol-pakkeheaderen, og de kan let fortolkes ikke kun af de afsendende og modtagende computere, men også af andre komponenter i netværksinfrastrukturen. I særdeleshed firewalls, er typisk konfigureret til at skelne pakker baseret på deres kilde- eller destinationsportnumre. Omdirigering er klassisk eksempel det her.

Praksis med at forsøge at oprette forbindelse til en række porte sekventielt på en enkelt computer er kendt som portscanning. Dette skyldes normalt enten ondsindede fejlforsøg eller netværksadministratorer leder efter mulige sårbarheder for at forhindre sådanne angreb.

Aktiviteter, der fokuserer på, hvor ofte computere overvåges og optages. Denne teknik bruger en række reserveforbindelser for at sikre en uafbrudt forbindelse til serveren.

Eksempler på brug

Det vigtigste eksempel, hvor TCP/UDP-porte bruges aktivt, er postsystemet Internet. Serveren bruges til at arbejde med e-mail (afsendelse og modtagelse), og kræver generelt to tjenester. Den første service bruges til transport via e-mail og andre servere. Dette opnås ved at bruge Typisk lytter SMTP-tjenesteapplikationen på TCP-port nummer 25 med det formål at behandle indgående anmodninger. En anden tjeneste er POP (helt Post Office Protocol) eller IMAP (eller Internet Message Access Protocol), som er påkrævet for klientapplikationer i e-mail på brugernes maskiner for at modtage beskeder fra serveren E-mail. POP-tjenester lytter efter numre på TCP-port 110. Ovenstående tjenester kan begge køre på den samme værtscomputer. Når dette sker, adskiller portnummeret den anmodede tjeneste ekstern enhed- Brugerens pc eller enhver anden mailserver.

Mens serverens lytteportnummer er korrekt defineret (IANA kalder dem velkendte porte), denne parameter klienten er ofte valgt fra et dynamisk område. I nogle tilfælde bruger klienter og server separat specifikke TCP-porte, der er tildelt i IANA. Et godt eksempel er DHCP, hvor klienten bruger UDP 68 i alle tilfælde, og serveren bruger UDP 67.

Brug i URL'er

Portnumre er nogle gange tydeligt synlige på internettet eller andre ensartede indekser informationsressourcer(URL). Som standard bruger HTTP, og HTTPS bruger 443. Der er dog andre variationer. For eksempel angiver URL'en http://www.example.com:8080/sti/, at webbrowseren opretter forbindelse til 8080 i stedet for HTTP-serveren.

Liste over TCP- og UDP-porte

Som nævnt er Internet Assigned Numbers Authority (IANA) ansvarlig for den globale koordinering af DNS-rod, IP-adressering og andre internetprotokolressourcer. Dette inkluderer logning af ofte brugte portnumre for velkendte internettjenester.

Portnumre er opdelt i tre områder: velkendte, registrerede og dynamiske eller private. Velkendte (også kendt som system) er dem, der er nummereret fra 0 til 1023. Kravene til nye ansættelser i dette interval er strengere end for andre tilmeldinger.

Velkendte eksempler

Eksempler fundet i denne liste, omfatter:

  • TCP 443-port: HTTP Secure (HTTPS).
  • 22: Secure Shell (SSH).
  • 25: Simple Mail Transfer Protocol (SMTP).
  • 53: Domain Name System (DNS).
  • 80: Hypertext Transfer Protocol (HTTP).
  • 119: Network News Transfer Protocol (NNTP).
  • 123: Network Time Protocol (NTP)..
  • 143: Internet Message Access Protocol (IMAP)
  • 161: Simple Network Management Protocol (SNMP)1.
  • 94: Internet Relay Chat (IRC).

Registrerede porte spænder fra 1024 til 49151. IANA understøtter officiel liste kendte og registrerede intervaller. Dynamisk eller privat - 49152 til 65535. En anvendelse af dette område er til midlertidige porte.

skabelseshistorie

Portnummerkonceptet blev skabt af tidlige ARPANET-udviklere gennem uformelt samarbejde mellem forfatterne. software og systemadministratorer.

Udtrykket "portnummer" blev endnu ikke brugt på det tidspunkt. Nummersekvensen for fjernværten var et 40-bit nummer. De første 32 bits lignede nutidens IPv4-adresse, men de første 8 bits var de mest betydningsfulde. Den mindste del af tallet (bit 33 til 40) repræsenterede et andet objekt kaldet AEN. Dette er prototypen på det moderne portnummer.

Den 26. marts 1972 blev oprettelsen af ​​en socketnummerliste først foreslået i RFC 322, som opfordrede til, at hvert vedvarende nummer blev beskrevet med hensyn til dets funktioner og netværkstjenester. Denne mappe blev efterfølgende offentliggjort i RFC 433 i december 1972 og indeholdt en liste over værter, deres portnumre og den tilsvarende funktion, der blev brugt på hver node på netværket. I maj 1972 blev officielle tildelinger af portnumre, netværkstjenester og en særlig administrativ funktion til vedligeholdelse af dette register først dokumenteret.

Den første TCP-portliste havde 256 AEN-værdier, som var opdelt i følgende områder:

  • Fra 0 til 63: standard funktioner hele netværket
  • 64 til 127: Værtsspecifikke funktioner
  • 128 til 239: Reserveret til fremtidig brug
  • 240 til 255: Enhver eksperimentel funktion.

Telnet-tjenesten modtog den første officielle tildeling af værdien 1. I de tidlige dage af ARPANET refererede udtrykket AEN også til navnet på den socket, der blev brugt med den originale forbindelsesprotokol (MSP) og netværkskontrolprogrammet (NCP) ) komponent. Desuden var NCP forløberen for moderne internetprotokoller, der brugte TCP/IP-porte.

UDP (User Datagram Protocol) er en transportprotokol til forbindelsesfri dataoverførsel over IP-netværk. Det er en af ​​de enkleste transportlagsprotokoller i OSI-modellen. Dens IP-id er 0x11.

UDP er almindeligt anvendt i applikationer som videostreaming og computer spil, hvor pakketab er acceptabelt, og gentagne anmodninger er vanskelige eller ikke berettigede, eller i challenge-response-applikationer (f.eks. DNS-forespørgsler), hvor oprettelse af en forbindelse kræver flere ressourcer end Gensende. Faktisk koger UDP-funktioner ned til multipleksing og demultiplexing operationer, såvel som simpel fejlkontrol i data. Når du bruger U DP, interagerer applikationen således næsten direkte med protokollen netværkslag IP.

UDP modtager beskeder fra applikationslaget, tilføjer kilde- og destinationsportfelter til demultiplexing af modtageren, samt to andre specialfelter og sender det resulterende segment til netværkslaget. Netværkslaget pakker segmentet ind i et datagram og videresender det "hvis muligt" til destinationsværten. Hvis sidstnævnte med succes modtager segmentet, videresender UDP segmentdataene til den ønskede proces ved hjælp af destinationsportnummerfeltet. Derfor siges UDP at bære forbindelsesfri dataoverførsel.

Et eksempel på en applikationslagsprotokol, der bruger UDP-protokoltjenester, er DNS. Når en DNS-applikation genererer en forespørgsel, opretter den en DNS-meddelelse og sender den til UDP-protokollen.


Sammenligning af UDP- og TCP-protokoller.

Hvis en applikation kræver bekræftelse af meddelelseslevering, bruger den protokollen TCP. TCP opdeler beskeden i mindre stykker kaldet segmenter. Disse segmenter nummereres sekventielt og sendes til IP-protokollen, som derefter samler pakkerne. TCP holder styr på antallet af segmenter, der sendes til en bestemt vært af en bestemt applikation. Hvis afsender ikke modtager bekræftelse indenfor bestemt periode tid, betragter TCP disse segmenter som tabte og sender dem igen. Kun den tabte del af beskeden sendes igen, ikke hele beskeden.

TCP protokol ved den modtagende node er ansvarlig for at samle meddelelsessegmenterne igen og sende dem til den relevante applikation.

FTP og HTTP er eksempler på applikationer, der bruger TCP til at levere data.

Protokol UDP udfører ikke-garanteret datalevering og anmoder ikke om bekræftelse fra modtageren. UDP er den foretrukne protokol til streaming af lyd, video og Voice over Internet Protocol (VoIP). Bekræftelse af levering vil kun sænke dataoverførselsprocessen, og omlevering er ikke tilrådeligt. Et eksempel på brugen af ​​UDP-protokollen er internetradio.


ARP protokol. Ansøgning.

ARP(Engelsk) Adresseopløsningsprotokol- adressebestemmelsesprotokol) - en protokol, der bruges i computernetværk lavt niveau, designet til at bestemme linklagets adresse fra en kendt netværkslagsadresse. Denne protokol er blevet mest udbredt på grund af de allestedsnærværende IP-netværk bygget oven på Ethernet, da ARP i næsten 100 % af tilfældene bruges med denne kombination. Protokolbeskrivelsen blev offentliggjort i november 1982 i RFC 826. ARP blev designet til at transmittere IP-pakker over et Ethernet-segment. Hvori generelt princip, foreslået til ARP, kan og er blevet brugt til andre typer netværk.

Eksisterer følgende typer ARP-meddelelser: ARP-anmodning og ARP-svar. Afsendersystemet bruger en ARP-anmodning til at anmode om den fysiske adresse på det modtagende system. Svaret (den fysiske adresse på destinationsværten) kommer i form af et ARP-svar.

Før du sender en netværkslagspakke over et Ethernet-segment, netværksstak kontrollerer ARP-cachen for at se, om de nødvendige oplysninger om modtagerværten allerede er registreret i den. Hvis der ikke er en sådan indtastning i ARP-cachen, foretages en ARP-udsendelsesanmodning. Denne forespørgsel efter enheder på netværket har følgende betydning: "Kender nogen den fysiske adresse på den enhed, der har følgende IP-adresse?" Når modtageren med denne IP-adresse modtager denne pakke, skal han svare: "Ja, det er min IP-adresse. Min fysiske adresse er: …” Afsenderen vil derefter opdatere sin ARP-cache og være i stand til at sende informationen til modtageren.

ARP-cacheposter kan være statiske eller dynamiske. Eksemplet ovenfor beskriver en dynamisk cache-indgang. Du kan også oprette statiske poster i ARP-tabellen.

ARP blev oprindeligt udviklet ikke kun til IP-protokollen, men bruges nu primært til at kortlægge IP- og MAC-adresser.

Funktionsprincip

Den node, der skal tilknyttes IP-adressen til lokal adresse, genererer en ARP-anmodning, indsætter den i en link-layer-protokolramme, der angiver en kendt IP-adresse i den, og udsender anmodningen.

Alle noder lokalt netværk modtage en ARP-anmodning og sammenligne den IP-adresse, der er angivet der, med deres egen.

Hvis de matcher, genererer noden et ARP-svar, hvori den angiver sin IP-adresse og dens lokale adresse og sender den allerede rettet, da afsenderen i ARP-anmodningen angiver sin lokale adresse.

User Datagram Protocol - UDP

UDP protokol er en af ​​to transportlagsprotokoller, der bruges i TCP/IP-protokolstakken. UDP tillader et applikationsprogram at transmittere sine meddelelser over et netværk med minimal overhead forbundet med konvertering af applikationslagsprotokoller til IP. Men samtidig ansøgningsprogram selv skal sørge for at bekræfte, at beskeden blev leveret til sin destination. UDP-datagram-headeren (meddelelse) ser ud som vist i figur 2.10.

Ris. 2.10. UDP-meddelelseshovedstruktur

UDP-protokoldataenheden kaldes en UDP-pakke eller et brugerdatagram. En UDP-pakke består af en header og et datafelt, der indeholder applikationslagspakken. Headeren har et simpelt format og består af fire to-byte felter:

    UDP-kildeport - portnummer på afsendelsesprocessen,

    UDP-destinationsport - portnummer på modtagerprocessen,

    UDP-meddelelseslængde - længden af ​​UDP-pakken i bytes,

    UDP checksum - checksum af UDP-pakken

Ikke alle felter i en UDP-pakke skal udfyldes. Hvis det sendte datagram ikke forventer et svar, kan der blive sat nuller i stedet for afsenderens adresse. Du kan også nægte at beregne kontrolsummen, men bemærk venligst, at IP-protokollen kun beregner kontrolsummen for IP-pakkeheaderen, idet datafeltet ignoreres

Portene i headeren definerer UDP-protokollen som en multiplexer, der gør det muligt at indsamle beskeder fra applikationer og sende dem til protokollaget. I dette tilfælde bruger applikationen en bestemt port. Applikationer, der kommunikerer over netværket, kan bruge forskellige porte, hvilket afspejles i pakkehovedet. I alt kan 216 forskellige porte defineres. De første 256 porte er tildelt de såkaldte "velkendte tjenester", som for eksempel omfatter UDP-port 53, som er tildelt DNS-tjenesten.

Mark Længde bestemmer meddelelsens samlede længde. Mark Kontrolsum tjener til at kontrollere dataintegriteten. En applikation, der bruger UDP-protokollen, skal tage sig af dataintegriteten ved at analysere felterne Checksum og Length. Derudover skal applikationsprogrammet ved udveksling af data via UDP selv sørge for at overvåge leveringen af ​​data til modtageren. Dette opnås typisk ved at udveksle leveringsbekræftelser mellem applikationsprogrammer.

De mest kendte UDP-baserede tjenester er BIND Domain Name Service og det distribuerede NFS-filsystem. For at vende tilbage til traceroute-eksemplet bruger dette program også UDP-transport. Faktisk er det UDP-meddelelsen, der sendes til netværket, men den bruger en port, der ikke har service, hvorfor der genereres en ICMP-pakke, som registrerer manglen på service på den modtagende maskine, når pakken endelig når destinationsmaskine.

Transfer Control Protocol - TCP

Hvis overvågning af kvaliteten af ​​datatransmission over netværket er vigtig for en applikation, anvendes i dette tilfælde TCP-protokollen. Denne protokol kaldes også en pålidelig, forbindelsesorienteret og floworienteret protokol. Før vi diskuterer disse egenskaber af protokollen, lad os overveje formatet af datagrammet, der sendes over netværket (figur 2.11). Ifølge denne struktur har TCP, ligesom UDP, porte. De første 256 porte er tildelt til WKS, porte fra 256 til 1024 er tildelt til Unix-tjenester, og resten kan bruges efter eget skøn. I marken Sekvensnummer pakkenummeret er defineret i rækkefølgen af ​​pakker, der udgør hele beskeden, efterfulgt af et bekræftelsesfelt Vidensnummer og andre kontroloplysninger.

Ris. 2.11. TCP-pakkestruktur

    Kildeport (SOURS PORT) optager 2 bytes, identificerer afsendelsesprocessen;

    Destinationsporten (DESTINATION PORT) optager 2 bytes, identificerer modtagerprocessen;

    Sekvensnummer (SEKVENSNUMMER) optager 4 bytes, angiver bytenummeret, som bestemmer forskydningen af ​​segmentet i forhold til strømmen af ​​sendte data;

    Det bekræftede tal (BEKRÆFTELSE NUMMER) optager 4 bytes, indeholder det maksimale byte antal i det modtagne segment, forøget med én; det er denne værdi, der bruges som kvittering;

    Header Length (HLEN) er 4 bit lang og angiver længden af ​​TCP-segmentheaderen, målt i 32-bit ord. Længden af ​​overskriften er ikke fast og kan variere afhængigt af de værdier, der er angivet i feltet Indstillinger;

    Reserve (RESERVERET) optager 6 bit, feltet er reserveret til senere brug;

    Kodebit (CODE BITS) optager 6 bit, indeholder officielle oplysninger om typen af ​​dette segment, specificeret ved at sætte de tilsvarende bits i dette felt til én:

    URG - presserende besked;

    ACK - kvittering for det modtagne segment;

    PSH - anmodning om at sende en besked uden at vente på, at bufferen bliver fyldt;

    RST - anmodning om at genoprette forbindelsen;

    SYN - besked, der bruges til at synkronisere tællere for transmitterede data, når der etableres en forbindelse;

    FIN er et tegn på, at den transmitterende side har nået den sidste byte i den transmitterede datastrøm.

    Et vindue (WINDOW) optager 2 bytes, indeholder den deklarerede værdi af vinduesstørrelsen i bytes;

    Tjek sum(CHECKSUM) tager 2 bytes, beregnet pr. segment;

    Den presserende pointer (URGENT POINTER) optager 2 bytes, bruges sammen med URG-kodebitten, angiver slutningen af ​​data, der skal modtages akut, på trods af bufferoverløbet;

    VALGMULIGHEDER - dette felt har en variabel længde og kan være fraværende helt, den maksimale feltstørrelse er 3 bytes; bruges til at løse hjælpeproblemer, for eksempel ved valg af den maksimale segmentstørrelse;

    PADDING, en polstring med variabel længde, er et dummy-felt, der bruges til at bringe headerstørrelsen til et helt tal på 32-bit ord.

TCP's pålidelighed ligger i det faktum, at datakilden gentager at sende den, medmindre den modtager bekræftelse fra modtageren inden for en bestemt periode, at den blev modtaget. Denne mekanisme kaldes Positiv bevidsthed med retransmission (PAR). Som vi tidligere definerede, kaldes transmissionsenheden (datapakke, besked osv.) i TCP-termer et segment. Der er et kontrolsumfelt i TCP-headeren. Hvis dataene beskadiges under transmissionen, kan modulet, der adskiller TCP-segmenter fra IP-pakker, bestemme dette ved hjælp af kontrolsummen. Den beskadigede pakke bliver ødelagt, og intet sendes til kilden. Hvis dataene ikke er beskadiget, sendes de gennem, og der sendes en bekræftelse til kilden.

Forbindelsesorientering bestemmes af det faktum, at før afsendelse af et datasegment, udveksler kilde- og destinations-TCP-modulerne kontrolinformation. Denne udveksling kaldes håndtryk(bogstaveligt "håndtryk"). TCP bruger et tre-faset håndtryk:

    Kilden etablerer en forbindelse med destinationen ved at sende den en pakke med flaget Synchronize Sequence Numbers (SYN). Nummeret i sekvensen identificerer pakkenummeret i applikationsmeddelelsen. Det behøver ikke at være 0 eller en. Men alle andre numre vil bruge det som en base, som gør det muligt at indsamle pakkerne i den rigtige rækkefølge;

    Modtageren svarer med et nummer i feltet SYN modtagelsesbekræftelse, der svarer til etableret af kilden nummer. Derudover kan feltet "nummer i rækkefølge" også angive det nummer, der blev anmodet om af kilden;

    Kilden bekræfter, at den har accepteret destinationssegmentet og sender det første stykke data.

Grafisk er denne proces præsenteret i figur 2.12.

Ris. 2.12. Etablering af en TCP-forbindelse

Efter at forbindelsen er etableret, sender kilden data til modtageren og venter på bekræftelse fra ham om, at den er modtaget, sender derefter dataene igen osv., indtil beskeden slutter. Meddelelsen slutter, når FIN-bitten er sat i flagfeltet, hvilket betyder "ikke flere data".

Protokollens streaming karakter bestemmes af det faktum, at SYN bestemmer startnummeret for at tælle transmitterede bytes, ikke pakker. Dette betyder, at hvis SYN blev sat til 0 og 200 bytes blev transmitteret, så vil nummeret i den næste pakke være 201, ikke 2.

Det er klart, at protokollens streamingkarakter og kravet om at bekræfte modtagelsen af ​​data giver anledning til problemet med dataoverførselshastigheden. For at løse dette problem skal du bruge et "vindue" - et felt - vindue. Ideen med at bruge vinduet er ret simpel: overfør data uden at vente på bekræftelse af modtagelsen. Det betyder, at kilden sender en vis mængde data svarende til vinduet uden at vente på bekræftelse af sin modtagelse, og derefter stopper transmissionen og venter på bekræftelse. Hvis den kun modtager bekræftelse for en del af de transmitterede data, begynder den at sende en ny del fra nummeret efter det bekræftede. Dette er vist grafisk i figur 2.13.

Ris. 2.13. TCP-datatransmissionsmekanisme

I i dette eksempel vinduet er indstillet til 250 bytes bredt. Det betyder, at det aktuelle segment er et segment med en SYN-offset på 250 bytes. Efter at have transmitteret hele vinduet modtog kilde-TCP-modulet imidlertid en bekræftelse på kun at modtage de første 100 bytes. Derfor vil overførslen starte fra 101 bytes og ikke fra 251.

Vi har således undersøgt alle de grundlæggende egenskaber ved TCP-protokollen. Det er kun tilbage at nævne de mest berømte applikationer, som TCP bruger til dataudveksling. Dette er primært TELNET og FTP, samt HTTP protokol som er hjertet I hele verden Web.

Lad os afbryde samtalen om protokoller lidt og rette opmærksomheden mod en så vigtig komponent i hele TCP/IP-systemet som IP-adresser.

UDP protokol

User Datagram Protocol (UDP) er en enkel, forbindelsesløs, datagram-orienteret protokol, der giver hurtig, men ikke nødvendigvis pålidelig, transportservice. Det understøtter en-til-mange-interaktioner og bruges derfor ofte til udsendelse og multicast-datagramtransmission.

Internetprotokol(IP) er den primære protokol på internettet. Transmission Control Protocol (TCP) og UDP er transportlagsprotokoller bygget oven på en underliggende protokol.

TCP/IP er et sæt protokoller, også kaldet Internet Protocol Suite, bestående af fire lag. Husk, at TCP/IP ikke kun er én protokol, men en familie eller et sæt af protokoller, der består af andre protokoller på lavere niveau, såsom IP, TCP og UDP. UDP sidder på transportlaget oven på IP (netværkslagsprotokol). Transportlaget sørger for kommunikation mellem netværk gennem gateways. Den bruger IP-adresser til at sende datapakker over internettet eller et andet netværk ved hjælp af en række enhedsdrivere.

Før vi begynder at lære, hvordan UDP virker, lad os se på nogle grundlæggende terminologier, som du skal kende godt. Nedenfor vil vi kort definere de vigtigste udtryk forbundet med UDP:

Pakker

I datakommunikation er en pakke en sekvens af binære cifre, der repræsenterer data og styresignaler, der transmitteres og skiftes gennem værten. Inde i pakken er disse oplysninger placeret i overensstemmelse med et særligt format.

Datagrammer

Et datagram er en enkelt, uafhængig pakke af data, der bærer nok information til at rejse fra kilde til destination, så der kræves ingen yderligere trafik mellem kilden, destinationen og transportnetværket.

MTU (maksimum Transmissionsenhed)

MTU karakteriserer linklaget og svarer til det maksimale antal bytes, der kan transmitteres i én pakke. Med andre ord er MTU den mest stor pakke, som kan bæres af et givet netværksmiljø. For eksempel har Ethernet fast MTU, svarende til 1500 bytes. I UDP, hvis datagramstørrelsen er større end MTU'en, udfører IP-protokollen fragmentering ved at opdele datagrammet i mindre stykker (fragmenter), så hvert fragment er mindre end MTU'en.

Havne

For at matche indgående data til en bestemt proces, der kører på en computer, bruger UDP porte. UDP videresender pakken til den passende placering ved hjælp af portnummeret angivet i UDP-headeren på datagrammet. Porte er repræsenteret af 16-bit tal og antager derfor værdier fra 0 til 65.535 Porte, som også kaldes logiske forbindelsesendepunkter, er opdelt i tre kategorier:

    Velkendte porte - fra 0 til 1023

    Registrerede havne - fra 1024 til 49151

    Dynamiske/private porte - 49152 til 65535

Bemærk, at UDP-porte kan modtage mere end én besked på et givet tidspunkt. I nogle tilfælde kan TCP- og UDP-tjenester bruge de samme portnumre, såsom 7 (Echo) eller 23 (Telnet).

UDP bruger følgende kendte porte:

Listen over UDP- og TCP-porte vedligeholdes af IANA (Internet Assigned Numbers Authority).

IP-adresser

Et IP-datagram består af 32-bit kilde- og destinations-IP-adresser. Destinations-IP-adressen angiver slutpunkt for et UDP-datagram, og kildens IP-adresse bruges til at få oplysninger om, hvem der har sendt beskeden. På destinationen filtreres pakker, og dem, hvis kildeadresser ikke er inkluderet i det gyldige sæt adresser, kasseres uden meddelelse til afsenderen.

En unicast IP-adresse identificerer entydigt en vært på et netværk, hvorimod en multicast-IP-adresse identificerer en specifik gruppe af adresser på et netværk. Broadcast-IP-adresser modtages og behandles af alle værter på et lokalt netværk eller et specifikt undernet.

TTL

Time-to-live eller TTL (time-to-live) værdien giver dig mulighed for at sætte en øvre grænse for antallet af routere, som et datagram kan passere igennem. TTL-værdien forhindrer pakker i at nå endeløse sløjfer. Det initialiseres af afsenderen og dekrementeres med én af hver router, der behandler datagrammet. Når TTL-værdien bliver nul, kasseres datagrammet.

Gruppeudsendelse

Multicast er en åben, standardbaseret metode til at distribuere identisk information til flere brugere samtidigt. Multicast er hovedfunktionen i UDP-protokollen, det er ikke muligt med TCP-protokollen. Multicast giver mulighed for en-til-mange-interaktion, for eksempel at muliggøre anvendelser såsom at sende nyheder og mail til flere modtagere, internetradio eller realtidsdemoprogrammer. Gruppeafsendelse belaster ikke netværket så meget som udsende, da dataene sendes til flere brugere på én gang:

Sådan fungerer UDP

Når en UDP-baseret applikation sender data til en anden vært på netværket, tilføjer UDP dem med en otte-bit header, der indeholder destinations- og kildeportnumrene, den samlede længde af dataene og en kontrolsum. IP tilføjer sin header oven på UDP-datagrammet og danner et IP-datagram:

Den foregående figur angiver, at den samlede længde af UDP-headeren er otte bytes. Den teoretiske maksimale størrelse af et IP-datagram er 65.535 bytes. Med 20 bytes IP-header og 8 bytes UDP-header kan brugerdatalængden være op til 65.507 bytes. De fleste programmer arbejder dog med mindre datastørrelser. For de fleste applikationer er standardlængden således cirka 8192 bytes, da dette er mængden af ​​data, der læses og skrives af netværket filsystem(NFS). Du kan indstille størrelserne på input- og outputbuffere.

Kontrolsummen er nødvendig for at kontrollere, om dataene blev leveret til sin destination korrekt eller var korrupte. Det dækker både UDP-headeren og dataene. En filler-byte bruges if samlet antal Datagram-oktetterne er ulige. Hvis den modtagne kontrolsum er nul, registrerer modtageren en kontrolsumfejl og kasserer datagrammet. Selvom en kontrolsum er en valgfri funktion, anbefales det altid at inkludere den.

I det næste trin tilføjer IP-laget 20 bytes header, der inkluderer TTL, kilde- og destinations-IP-adresser og andre oplysninger. Denne handling kaldes IP-indkapsling.

Som tidligere nævnt er den maksimale pakkestørrelse 65.507 bytes. Hvis pakken er større end standarden MTU størrelse, så opdeler IP-laget pakken i segmenter. Disse segmenter kaldes fragmenter, og processen med at opdele data i segmenter er fragmentering. IP-headeren indeholder alle fragmentoplysninger.

Når den afsendende applikation "kaster" et datagram på netværket, bliver det dirigeret til destinations-IP-adressen angivet i IP-headeren. Når du passerer gennem en router, reduceres TTL-værdien (Time to Live) i IP-headeren med én.

Når et datagram ankommer til en given destination og port, tjekker IP-laget sin header for at se, om datagrammet er fragmenteret. Hvis det er tilfældet, samles datagrammet i henhold til oplysningerne i overskriften. Endelig påføringslag henter de filtrerede data ved at fjerne overskriften.

Ulemper ved UDP

Sammenlignet med TCP har UDP følgende ulemper:

    Ingen kvitteringssignaler. Før du sender en UDP-pakke, udveksler afsendersiden ikke håndtryksignaler med den modtagende side. Derfor har afsenderen ingen mulighed for at vide, om datagrammet har nået destinationssystemet. Som følge heraf kan UDP ikke garantere, at dataene rent faktisk bliver leveret til destinationen (f.eks. hvis slutsystemet eller netværket er nede).

    I modsætning hertil er TCP forbindelsesorienteret og muliggør kommunikation mellem netværkstilsluttede værter ved hjælp af pakker. TCP bruger handshaking-signaler til at bekræfte, at data er blevet transporteret med succes.

    Brug af sessioner. TCPs forbindelsesorienterede karakter understøttes af sessioner mellem værter. TCP bruger en sessionsidentifikator til at holde styr på forbindelser mellem to værter. UDP har ikke sessionsunderstøttelse på grund af dets forbindelsesløse natur.

    Pålidelighed. UDP garanterer ikke, at kun én kopi af dataene bliver leveret til modtageren. At sende endeligt system store mængder data, opdeler UDP det i små dele. UDP garanterer ikke, at disse dele vil blive leveret til deres destination i samme rækkefølge, som de blev oprettet ved kilden. TCP bruger tværtimod portnumre sammen med serienumre og bekræftelser sendes regelmæssigt for at sikre ordnet levering af data.

    Sikkerhed. TCP er mere sikkert end UDP. I mange organisationer tillader firewalls og routere ikke UDP-pakker igennem. Dette skyldes, at hackere kan drage fordel UDP-porte uden at skabe eksplicitte forbindelser.

    Flow kontrol. UDP har ingen flowkontrol, og som et resultat kan en dårligt designet UDP-applikation forbruge en betydelig del af netværksbåndbredden.

Fordele ved UDP

Sammenlignet med TCP har UDP følgende fordele:

    Ingen forbindelse etableret. UDP er en forbindelsesfri protokol, så den eliminerer de overhead, der er forbundet med etablering af forbindelser. Da UDP ikke bruger håndtryk, undgås også forbindelsesforsinkelser. Det er derfor, DNS favoriserer UDP frem for TCP - DNS ville være meget langsommere, hvis det kørte over TCP.

    Fart. UDP er hurtigere end TCP. Af denne grund foretrækker mange applikationer UDP frem for TCP. De samme ting, der gør TCP mere robust (såsom håndtrykssignaler), bremser det også.

    Topologisk mangfoldighed. UDP understøtter én-til-en- og én-til-mange-kommunikation, mens TCP kun understøtter én-til-én-kommunikation.

    Overhead. At arbejde med TCP betyder øgede overhead, de overhead, der pålægges af UDP, er væsentligt lavere. TCP bruger væsentligt flere operativsystemressourcer end UDP, og som følge heraf er UDP meget brugt i miljøer, hvor servere betjener mange klienter samtidigt.

    Header størrelse. For hver pakke er UDP-headeren kun otte byte lang, mens TCP har 20-byte-headere, og derfor bruger UDP mindre netværksbåndbredde.

Hej alle sammen, i dag vil jeg fortælle jer, hvordan TCP-protokollen adskiller sig fra UDP. Transportlagsprotokoller, der er næste i hierarkiet til IP, bruges til at overføre data mellem applikationsprocesser, der kører på netværksknuder. En datapakke, der modtages fra en computer til en anden via internettet, skal overføres til en behandlerproces, og netop til et bestemt formål. Transportlaget tager ansvar for dette. På dette niveau er der to hovedprotokoller - TCP og UDP.

Hvad betyder TCP og UDP?

TCP– transportprotokol til dataoverførsel i TCP/IP-netværk, som foreløbigt etablerer forbindelse til netværket.

UDP– en transportprotokol, der transmitterer datagrammeddelelser uden behov for at etablere en forbindelse på et IP-netværk.

Lad mig minde dig om, at begge protokoller fungerer på transportlaget i OSI- eller TCP/IP-modellen, og det er meget vigtigt at forstå, hvordan de adskiller sig.

Forskellen mellem TCP- og UDP-protokoller

Forskellen mellem TCP- og UDP-protokollerne er den såkaldte "leveringsgaranti". TCP kræver et svar fra den klient, som datapakken blev leveret til, bekræftelse af levering, og til dette har den brug for en forudetableret forbindelse. TCP-protokollen anses også for at være pålidelig, mens UDP endda har modtaget navnet "upålidelig datagramprotokol." TCP eliminerer datatab, duplikering og blanding af pakker og forsinkelser. UDP tillader alt dette og kræver ikke en forbindelse for at fungere. Processer, der modtager data via UDP, må nøjes med det, de modtager, selv med tab. TCP kontrollerer overbelastningen af ​​forbindelsen, UDP kontrollerer ikke andet end integriteten af ​​de modtagne datagrammer.

På den anden side, på grund af en sådan ikke-selektivitet og mangel på kontrol, leverer UDP datapakker (datagrammer) meget hurtigere, derfor til applikationer, der er designet til et bredt gennemløb Og hurtig udveksling,UDP kan betragtes som den optimale protokol. Disse omfatter netværks- og browserspil samt streaming af videovisningsprogrammer og applikationer til videokommunikation (eller stemme): tab af en pakke, hel eller delvis, ændrer ikke noget, det er ikke nødvendigt at gentage anmodningen, men download er meget hurtigere. TCP-protokollen, der er mere pålidelig, bruges med succes selv i mail programmer, så du kan kontrollere ikke kun trafikken, men også længden af ​​beskeden og hastigheden af ​​trafikudveksling.

Lad os se på de vigtigste forskelle mellem tcp og udp.

  1. TCP garanterer levering af datapakker i uændret form, rækkefølge og uden tab, UDP garanterer ikke noget.
  2. TCP nummererer pakker, når de transmitteres, men det gør UDP ikke.
  3. TCP virker i duplekstilstand, i én pakke kan du sende information og bekræfte modtagelse af den forrige pakke.
  4. TCP kræver en på forhånd etableret forbindelse, UDP-forbindelser kræver det ikke, det er bare en datastrøm.
  5. UDP giver mere høj hastighed datatransmission.
  6. TCP er mere pålideligt og styrer dataudvekslingsprocessen.
  7. UDP er at foretrække til programmer, der afspiller streaming video, videofoni og telefoni og netværksspil.
  8. UPD indeholder ikke datagendannelsesfunktioner

Eksempler på UDP-applikationer omfatter for eksempel overførsel af DNS-zoner, Active Directory, er der ingen krav til pålidelighed. Meget ofte kan de godt lide at stille sådanne spørgsmål under interviews, så det er meget vigtigt at kende forskellene mellem tcp og udp.

TCP- og UDP-headere

Lad os se på, hvordan overskrifterne på de to ser ud transportprotokoller, da forskellene her er kardinale.

UDP-header

  • 16-bit kildeport > Angivelse af kildeporten for UDP er valgfri. Hvis dette felt bruges, kan modtageren sende et svar til denne port.
  • 16 bit destinationsport > Destinationsportnummer
  • 16-bit UDP-længde > Længde på meddelelsen, inklusive overskrift og data.
  • 16 bit checksum > Header og data checksum til verifikation

TCP-header

  • 16 bit kildeport > Kildeportnummer
  • 16 bit destinationsport > Destinationsportnummer
  • 32 bit sekvensnummer > Sekvensnummeret genereres af kilden og bruges af destinationen til at omarrangere pakker for at oprette den originale besked og sende en bekræftelse til kilden.
  • 32-bit bekræftelsesnummer > Hvis ACK-bitten i kontrolfeltet er indstillet, indeholder dette felt det næste forventede sekvensnummer.
  • 4 bit header længde > Information om starten af ​​datapakken.
  • reserve > Reserveret til fremtidig brug.
  • 16-bit checksum > Header og data checksum; det afgør, om pakken var beskadiget.
  • 16-bit hasteindikator > I dette felt modtager målenheden information om, hvor meget dataene haster.
  • Indstillinger > Valgfri værdier, der kan specificeres efter behov.

Vinduesstørrelsen giver dig mulighed for at spare trafik, lad os overveje, hvornår dens værdi er 1, så for hvert svar, der sendes, venter afsenderen på bekræftelse, ikke helt rationelt.

Med en vinduesstørrelse på 3 sender afsenderen allerede 3 rammer, og venter fra 4, hvilket betyder, at han har alle tre rammer, +1.

Jeg håber, at du nu har en idé om forskellene mellem tcp- og udp-protokoller.