Se, hvad "Tcp" er i andre ordbøger. Hvordan adskiller TCP sig fra UDP i enkle vendinger?

Under udvikling computernetværk Mange dataudvekslingsprotokoller blev foreslået og implementeret, hvoraf de mest succesrige var TCP/IP-familien af ​​protokoller (Transmission Control Protocol/ Internetprotokol– transmissionskontrolprotokol/internetprotokol).

TCP/IP er et sæt protokoller, der består af følgende komponenter:

· Internetprotokol, levering af adressering i netværk (IP-adressering);

· Internet Control Message Protocol (ICMP), som giver lav-niveau support til IP-protokollen, herunder funktioner såsom fejlmeddelelser, kvitteringer, routing assistance, etc.;

· Address Resolution Protocol (ARP), som konverterer logiske netværksadresser til hardwareadresser, samt RARP (Reverse ARP);

· User Datagram Protocol (UDP);

· Transmission Control Protocol (TCP).

UDP-protokollen tillader pakker at blive transmitteret uden leveringsbekræftelse, mens TCP protokol kræver etablering af en virtuel kanal og følgelig bekræftelse af pakkelevering med en gentagelse i tilfælde af fejl.

Dette sæt af protokoller danner den mest almindelige netværksdataudvekslingsmodel, kaldet TCP/IP. TCP/IP-modellen er hierarkisk og omfatter fire lag.

Påføringslag definerer kommunikationsmåden brugerdefinerede applikationer. I klient-server-systemer skal klientapplikationen vide, hvordan man sender en anmodning, og serverapplikationen skal vide, hvordan den skal reagere på anmodningen. Dette lag giver protokoller såsom HTTP, FTP, Telnet.

Transportlag tillader netværksapplikationer at modtage beskeder gennem strengt definerede kanaler med specifikke parametre.

netværksniveau adresserne på computere, der indgår i netværket, bestemmes, logiske netværk og undernet identificeres, og routing mellem dem implementeres.

link niveau adressering er bestemt fysiske grænseflader netværksenheder, for eksempel netværkskort. Dette niveau omfatter programmer til styring af fysiske netværksenheder, de såkaldte drivere.

Som nævnt tidligere, i pakkekoblede netværk, og TCP/IP-modellen er en af ​​disse, bliver en besked (genereret på applikationslaget) opdelt i pakker eller datagrammer for at blive transmitteret over netværket. Pakke eller datagram er en del af en besked med en pakke- eller datagramheader tilføjet.

Ved transportlaget tilføjes en header til informationen om nyttelast - serviceoplysninger. Til netværkslag brugbar information er allerede en transportlagspakke eller et datagram. Der tilføjes en netværkslagsheader til dem.

Den resulterende blok af data kaldes en IP-pakke. Nyttelasten for linklaget er allerede en IP-pakke. Her, før transmission over kanalen, tilføjes dens egen header og en trailer til den. Den resulterende blok kaldes en ramme. Det transmitteres over netværket.

Den ramme, der sendes over netværket på destinationen, konverteres til omvendt rækkefølge, der passerer gennem modellens niveauer fra bund til top.

Konklusioner om emnet

1. Netværkskommunikationsprotokol– dette er en liste over formater af transmitterede datablokke samt reglerne for deres behandling og tilsvarende handlinger.

2. Kommunikationsprotokol- Det her detaljerede instruktioner om, hvilken type information der transmitteres over netværket, i hvilken rækkefølge dataene behandles, samt et sæt regler for behandling af disse data.

3. I øjeblikket er næsten alle netværk i verden pakkekoblingsnetværk.

4. Der er to principper for organisering af dataudveksling: etablering af en virtuel forbindelse med bekræftelse af modtagelse af hver pakke og transmission af datagrammer.

5. Med en virtuel forbindelse giver informationsmodtagerpunktet afsender besked om den korrekte eller forkert modtagelse hver pakke. Det kaldes virtuel, fordi i modsætning til en telefonkoblet kanal kan udvekslingen af ​​information foregå ad forskellige fysiske veje, selv under transmissionen af ​​en besked.

6. Ved transmission af et datagram sendes korte pakker til modtageren uden at kvittere for modtagelsen af ​​hver af dem, og målprogrammet skal give besked om modtagelsen af ​​hele beskeden.

7. TCP/IP er et sæt protokoller, der består af følgende komponenter: Internet Protocol (IP), Internet Control Message Protocol (ICMP), Address Resolution Protocol (ARP), User Datagram Protocol (UDP) og Transmission Control Protocol (TCP).

Spørgsmål til selvkontrol

1. Hvad menes der med dataoverførselsprotokol?

2. Beskriv meddelelses- og pakkekoblingsnetværk.

3. Hvordan er forbindelsen anderledes? virtuel kanal fra datagramtransmission?

4. Hvilke protokoller danner TCP/IP-modellen?

5. Hvilke niveauer er inkluderet? netværksmodel TCP/IP?

6. Beskriv alle niveauer af TCP/IP-modellen og angiv de protokoller, der svarer til disse niveauer.

7. Korrelér begreberne "pakke" og "ramme" i henhold til niveauerne for TCP/IP-modellen. Hvad er forskellen?

8. Hvilken protokol giver konvertering af logiske netværksadresser til hardwareadresser?

TCP-protokollen (Transmission Control Protocol) er en transportlagsprotokol, der sikrer pålidelig datatransmission over et netværk. Dens transportadresse i IP-segmentets overskrift er 6. Dataudveksling udføres ved hjælp af "TCP-pakker". Tabellen viser formatet af TCP-pakkeheaderen.

Kildeport og destinationsport: 16-bit felter, der indeholder portnumre. Der er et sæt tjenester, der bruger TCP, som specifikke porte er tildelt: 20/21 - FTP; 22 - SSH; 23 - Telnet; 25 - SMTP; 80.8080 - HTTP, alternativ HTTP-port; 110 - POP3; 194 - IRC (Internet Relay Chat); 443 - HTTPS (Sikker HTTP); 8080 - alternativ HTTP-port

Nummer i rækkefølge: 32-bit felt, der angiver position TCP data-pakke inde i den udgående datastrøm. Sekvensnummeret tjener to formål:

1. Hvis SYN-flaget er sat, så er dette startværdien af ​​sekvensnummeret - ISN (Initial Sequence Number), og den første byte af data, der vil blive transmitteret i den næste pakke, vil have et sekvensnummer svarende til ISN + 1.

2. Ellers, hvis SYN ikke er indstillet, har den første byte af data transmitteret i en given pakke dette sekvensnummer.

Bekræftelse nummer: Et 32-bit felt indeholder mængden af ​​data modtaget fra den indgående strøm til TCP-modulet, der danner TCP-pakken. Hvis ACK-flaget er indstillet, indeholder dette felt det sekvensnummer, som modtageren forventer næste gang. Markerer dette segment som bekræftelse på modtagelsen.

Data offset: Indeholder længden af ​​TCP-pakkehovedet i 32-bit ord og bruges til at bestemme begyndelsen af ​​dataplaceringen i TCP-pakken. Dette felt angiver størrelsen af ​​TCP-pakkehovedet i 32-bit ord. Minimumsstørrelsen er 5 ord og maksimum er 15, hvilket er henholdsvis 20 og 60 bytes. Forskydningen beregnes fra begyndelsen af ​​TCP-headeren.

Reserveret(6 bit) til fremtidig brug og bør sættes til nul. Af disse er to (5. og 6.) allerede defineret:

· C.W.R.(Congestion Window Reduced) - Feltet "Congestion Window Reduced" - flaget er sat af afsenderen for at angive, at en pakke blev modtaget med ECE-flaget sat (RFC 3168)

· ECE(ECN-Echo) - ECN Echo felt - angiver, at denne node er i stand til ECN (Explicit Congestion Notification) og til at indikere over for afsenderen om netværkscongestion (RFC 3168)

Flag (kontrolbit) Dette felt indeholder 6 bit flag:

  • URG: bit=1 betyder, at pakken indeholder presserende data
  • ACK=1 betyder, at pakken indeholder korrekte data i feltet "kvitteringsnummer".
  • PSH=1 instruerer modtageren om at skubbe de data, der er akkumuleret i modtagebufferen, til brugerapplikationen
  • RST=1 Afslut forbindelser, nulstil buffer (bufferrydning)
  • SYN= 1 betyder, at TCP-pakken er en anmodning om at etablere en logisk forbindelse.
  • FIN= 1 betyder, at TCP-pakken repræsenterer en anmodning om at lukke forbindelsen.

Vindues størrelse: Indeholder antallet af bytes information, som et TCP-modul kan modtage, når der sendes en TCP-pakke til en peer. Feltet bruges af TCP-modulet, der modtager datastrømmen, til at styre intensiteten af ​​denne strøm.

Tjek sum: Et 16-bit felt, der indeholder checksummen beregnet for TCP-headeren, pakkedata og pseudo-headeren.

Signifikansindikator: Et 16-bit felt, der indeholder en pointer til den første byte i brødteksten af ​​en TCP-pakke, der starter sekvensen af ​​presserende data.

Yderligere headerdata: TCP-protokollen definerer tre typer yderligere headerdata: slutningen af ​​listen over yderligere datafelter; tom (ingen betjening); maksimal pakkestørrelse.

I modsætning til UDP protokol som straks kan begynde at transmittere pakker, etablerer TCP forbindelser før transmission af data:

  • Etablering af en forbindelse
  • Dataoverførsel
  • Afslutning af forbindelsen

Ved udveksling af data bruger modtageren sekvensnummeret i de modtagne segmenter til at genoprette deres oprindelige rækkefølge. Modtageren meddeler afsendersiden af ​​sekvensnummeret, indtil den har modtaget dataene, herunder det i feltet "kvitteringsnummer". Hvis et segment svarende til det forventede sekvensnummer efterfølgende modtages, vil rækkefølgen af ​​data automatisk blive gendannet baseret på sekvensnumrene i segmenterne.

For at sikre, at afsendersiden ikke sender flere data, end modtageren kan behandle, indeholder TCP flowkontroller. For at gøre dette skal du bruge feltet "vindue". I segmenter, der sendes fra modtageren til sendesiden, er den aktuelle størrelse af modtagebufferen angivet i feltet "vindue". Afsendersiden bevarer vinduesstørrelsen og sender ikke flere data end angivet af modtageren. Hvis modtageren indikerede nul størrelse vindue, så sker datatransmission i retning af denne node ikke, før modtageren rapporterer en større vinduesstørrelse.

Det sidste segment, der indeholder kommandoen, skal indeholde PSH-flaget, så applikationen på den modtagende side kan begynde at udføre den.

Afbrydelse af en forbindelse kan overvejes i tre trin:

  1. Sender FIN- og ACK-flag til serveren fra klienten for at fuldføre forbindelsen.
  2. Serveren sender klientens svarflag ACK, FIN, hvilket indikerer, at forbindelsen er lukket.
  3. Efter at have modtaget disse flag, lukker klienten forbindelsen og sender en ACK til serveren for at bekræfte, at forbindelsen er lukket.

Transportlagsprotokoller, der giver pålidelig datatransmission, kræver bekræftelse af den modtagende part af rigtigheden af ​​de modtagne data. Til dette bruges "sliding window"-princippet, hvilket betyder, at hver side maksimalt kan sende til partneren lige så mange bytes, som partneren angivet i feltet "window size" i TCP-pakkeheaderen, der bekræfter modtagelse af tidligere data. "Sliding window"-princippet sikrer, at data sendes tidligt med forsinket bekræftelse. Hvis en forsinket bekræftelse af en sendt pakke ikke modtages inden for nogen tid, vil det afsendende TCP-modul blive tvunget til at sende alle TCP-pakker igen, begyndende med den ikke-bekræftede pakke.

Selvom protokollen verificerer kontrolsummen på hvert segment, anses den anvendte algoritme for svag i pålidelighed. Generelt opfordres distribuerede netværksapplikationer til at bruge yderligere software at garantere integriteten af ​​de transmitterede oplysninger.

TCP (Transmission Control Protocol) er et pålideligt forbindelsesorienteret protokolalternativ til UDP, der er ansvarlig for de fleste brugerdataoverførsler over TCP/IP-netværk og endda har bidraget til navnet på hele suiten af ​​protokoller. TCP-protokollen, som defineret i RFC 793, giver applikationer et komplet udvalg af transporttjenester, herunder pakkebekræftelse, fejlsporing og korrektion og flowkontrol.

TCP-protokollen er designet til at transmittere relativt store mængder information, som naturligvis ikke kan pakkes ind i én pakke. Informationen har som regel form af hele filer, der skal opdeles i flere datagrammer for at kunne overføres. Informationen, der leveres til transportlaget, betragtes i TCP-protokollens terminologi som en sekvens, som protokollen opdeler i segmenter til transmission over netværket. Som med UDP pakkes segmenterne derefter ind i IP-datagrammer, der kan krydse ruten til deres destination forskellige veje. Derfor giver TCP hvert af segmenterne et sekvensnummer, så det modtagende system kan sætte dem sammen i den rigtige rækkefølge.

Før enhver transmission af brugerdata ved hjælp af TCP begynder, udveksler de to systemer beskeder for at etablere en forbindelse. Dette sikrer, at det modtagende system er operationelt og i stand til at modtage data. Når forbindelsen er etableret, og dataoverførselsprocessen begynder, sender det modtagende system med jævne mellemrum beskeder, der bekræfter modtagelsen af ​​pakker. Disse meddelelser underretter afsendersystemet om tabte pakker og giver det også information, der bruges til at overvåge transmissionshastigheden.

TCP-meddelelsesformat

Funktionerne af TCP-headerfelterne er beskrevet nedenfor.

Kildeport (SourcePort), 2 bytes. Identificerer det afsendende systemportnummer, der bruges af den proces, der skabte informationen båret af TCP-segmenter. I nogle tilfælde kan dette være et fiktivt portnummer, der er tildelt af klienten specifikt til denne transaktion.

DestinationPort, 2 bytes. Angiver portnummeret på destinationssystemet, som TCP-segmentinformationen skal sendes til. Portnumre er angivet i dokumentet "AssignedNumbers" såvel som i SERVICES-filen for hvert TCP/1P-system.

Serienummer(Sekvensnummer), 4 bytes. Bestemmer positionen af ​​et bestemt segment i forhold til hele datasekvensen.

Kvitteringsnummer, 4 bytes. Angiver det maksimale byteantal i segmentet, forøget med én, som bekræftelsessystemet forventer at modtage fra afsenderen. Anvendes i forbindelse med ACK-kontrolbitten.

Dataoffset (DataOffset), 4 bit. Angiver længden, i 4-byte-ord, af TCP-headeren (som kan indeholde indstillinger, der øger dens størrelse op til 60 bytes).

Reserveret, 6 bits. Dedikeret til senere anvendelser.

Kontrolbits, 6 bits. Indeholder seks 1-bit flag, der udfører følgende funktioner:

URG - angiver, at sekvensen indeholder hastende data og aktiverer feltet for hastende indikator;

ACK - bemærker, at meddelelsen er en bekræftelse af tidligere modtagne data og aktiverer bekræftelsesnummerfeltet;

PSH - instruerer det modtagende system til at transmittere alle aktuelle sekvensinformationer modtaget på dette øjeblik, applikationen identificeret af destinationsportfeltet uden at vente på, at de resterende fragmenter ankommer;

RST - instruerer det modtagende system om at kassere alle segmenter af den aktuelle sekvens, der er modtaget indtil videre, og begynde at etablere TCP-forbindelsen igen;

SYN - bruges under ftil at synkronisere antallet af transmitterede data mellem interagerende systemer;

FIN - meddeler det andet system, at dataoverførslen er afsluttet, og forbindelsen bør afbrydes.

Vindue, 2 bytes. Implementerer TCPs flowkontrolmekanisme (glidende vindue) ved at erklære antallet af bytes, som destinationssystemet kan acceptere fra kildesystemet.

Kontrolsum, 2 bytes. Indeholder resultatet af checksum-beregningen under hensyntagen til TCP-headeren, data samt en pseudo-header sammensat af felterne for kilde-IP-adressen, protokollen, destinations-IP-adressen fra IP-headeren plus længden af ​​hele TCP-meddelelsen .

UrgentPointer, 2 bytes. Brugt sammen med URG-bitten specificerer den sekvensdata, som skal betragtes som presserende af modtageren.

Muligheder, variabel størrelse. Kan indeholde yderligere konfigurationsparametre for TCP-forbindelsen sammen med de justeringsbits, der kræves for at bringe feltstørrelsen til det nærmeste multiplum af 4 bytes. Mulige muligheder er angivet nedenfor.

Maksimal størrelse segment (MaximumSegmentSize). Indstiller størrelsen maksimale segment, som det nuværende system kan modtage fra et andet system, der er tilsluttet det.

Vindues skalafaktor. Bruges til at øge vinduesfeltstørrelsen fra 2 til 4 bytes.

Tidsstempel. Bruges til at gemme tidsstempler for datapakker, som det modtagende system returnerer til afsenderen til bekræftelsesformål. Dette giver afsenderen mulighed for at måle dataenes rejsetid tur-retur.

Data, variabel størrelse. Kan inkludere datasegmenter, der kommer fra toppen af ​​protokolstakken, fra Application Layer-protokoller. I SYN-, ACK- og FIN-pakker efterlades dette felt tomt.

IPX/SPX: For at levere transporttjenester til NovellNetWare-operativsystemet skabte Novell sin egen protokolstak, samlet opkaldt efter netværkslagsprotokollen - IPX (InternetworkPacketExchange). I analogi med TCP/IP kaldes denne stak nogle gange også IPX/SPX. Den anden del af denne betegnelse refererer til SPX (SequencedPacketeXchange), en protokol, der opererer på transportlaget. Men i modsætning til kombinationen af ​​TCP og IP, som er allestedsnærværende på TCP/IP-netværk og primært er beregnet til at levere store mængder trafik, er IPX/SPX-kombinationen relativt sjælden på NetWare-netværk.

IPX-protokoller ligner TCP/IP i flere aspekter. Begge protokolstakke bruger upålidelige forbindelsesløse protokoller (henholdsvis IPX og IP) på netværkslaget til at transportere datagrammer, der indeholder data fra flere protokoller. øverste niveauer, som leverer en bred vifte af tjenester til forskellige applikationer. Ligesom IP er IPX ansvarlig for at adressere datagrammer og dirigere dem til en destination på et andet netværk.

Men i modsætning til TCP/IP er IPX-protokoller designet til brug på lokale netværk og understøtter ikke den næsten ubegrænsede skalerbarhed af internetprotokoller. IPX har ikke det samme uafhængige adresseringssystem, som IP-protokollen har. Systemer på et NetWare-netværk identificerer andre systemer gennem hardwareadresser, der er tilsluttet kortene. netværksadaptere i kombination med netværksadressen tildelt af administratoren (eller OS) under installationen af ​​operativsystemet.

IPX-datagrammer føres inden for standardprotokolrammer Linklag ligesom IP-datagrammer. IPX-protokoller har ikke deres egne Link Layer-protokoller. Men på de fleste netværk er dataene IPX-indkapslet Ethernet rammer eller TokenRing.

IPX er baseret på IDP (InternetworkDatagramPacket) protokollen, designet til netværkstjenester Xerox (XNS, XeroxNetworkServices). IPX leverer grundlæggende forbindelsesløse transporttjenester mellem internetsystemer ved hjælp af broadcast og ensrettet transmission. Det meste af normal trafik mellem NetWare-servere eller mellem klienter og servere føres over IPX-datagrammer.

IPX-datagram-headeren er 30 bytes lang (til sammenligning er IP-headeren 20 bytes). Formålet med overskriftsfelterne er angivet nedenfor.

Kontrolsum, 2 bytes. I den originale IDP-header indeholder dette felt CRC-værdien for datagrammet. Da Link Layer-protokollerne selv udfører kontrollen kontrolsummer, så bruges denne funktion ikke ved behandling af IPX-datagrammer, og feltet indeholder altid den hexadecimale værdi ffff.

Længde, 2 bytes. Angiver størrelsen af ​​datagrammet i bytes, inklusive IPX-headeren og datafeltet.

Leveringskontrol (TransportControl), 1 byte. Dette felt er også kendt som hopcount. Den registrerer antallet af routere et datagram passerede igennem på vej til sin destination. Transmissionssystemet nulstiller den til 0, og hver af routerne øger, når datagrammet behandles, tællerværdien med 1. Så snart antallet af transit-routere når 16, kasserer den sidste datagrammet.

Pakketype (Packet Type), 1 byte. Identificerer den øverste lag-tjeneste eller protokol, der skabte de data, der blev båret af datagrammet. Følgende værdier bruges:

0 - ikke defineret;

1 - RoutingInformationProtocol (RIP, routinginformationsprotokol);

4 - ServiceAdvertisingProtocol (SAP, service notification protocol);

5 - SequencedPacketExchange (SPX, sekventiel pakkeudveksling);

17 - NetWare Core Protocol (NCP, den primære NetWare-protokol).

Destinationsnetværksadresse, 4 bytes. Angiver det netværk, som destinationssystemet er placeret på, indeholder en værdi, der er tildelt af administratoren eller operativsystemet under installationen af ​​NetWare.

DestinationNodeAddress, 6 bytes. Definerer netværksgrænsefladen på den computer, som dataene skal leveres til; det er hardwareadressen for Link Layer-protokollen. Udsend beskeder sendes med hexadecimal adresse ffffffffffff.

DestinationSocket, 2 bytes. Ansvarlig for at identificere den proces, der kører på det modtagende system, som dataene inde i datagrammet faktisk er beregnet til. En af følgende værdier bruges:

0451 - NetWare Core Protocol;

0452 - Tjenesteannonceringsprotokol;

0453 - Ruteinformationsprotokol;

0456 - diagnostisk pakke;

0457 - serialiseringspakke;

4000-6000 - sockets allokeret til serverprocesser;

9004 - IPXWAN-protokol.

Kildenetværksadresse (SourceNetworkAddress), 4 bytes. Identificerer det netværk, som systemet, der sendte datagrammet, er placeret på. Bruger den værdi, der er tildelt af administratoren eller operativsystemet under installationen af ​​NetWare.

Kildeknudeadresse (SourceNodeAddress), 6 bytes. Indeholder hardware link layer protokoladressen for netværksgrænseflade computeren, der sendte datagrammet.

Kildestik (SourceSocket), 2 bytes. Definerer en proces, der kører på lokale system, som genererede pakkedataene. De samme værdier som for destinationsstikfeltet gælder.

TCP/IP-protokoller er grundlaget for det globale internet. For at være mere præcis er TCP/IP en liste eller en stak af protokoller, og faktisk et sæt regler, som information udveksles efter (pakkekoblingsmodellen er implementeret).

I denne artikel vil vi analysere principperne for driften af ​​TCP/IP-protokolstakken og forsøge at forstå principperne for deres drift.

Bemærk: Ofte refererer TCP/IP-forkortelsen til hele netværket, der opererer på basis af disse to protokoller, TCP og IP.

I modellen af ​​et sådant netværk, ud over de vigtigste protokoller TCP (Transport Layer) og IP (Network Layer Protocol) omfatter applikations- og netværkslagsprotokoller (se billede). Men lad os vende tilbage direkte til TCP- og IP-protokollerne.

Hvad er TCP/IP-protokoller

TCP - Transfer Control Protocol. Transmissionskontrolprotokol. Det tjener til at sikre og etablere en pålidelig forbindelse mellem to enheder og pålidelig dataoverførsel. I dette tilfælde styrer TCP-protokollen optimal størrelse transmitteret datapakke, sender en ny, hvis transmissionen mislykkes.

IP - Internetprotokol. Internetprotokollen eller adresseprotokollen er grundlaget for hele datatransmissionsarkitekturen. IP-protokollen bruges til at levere netværkspakke data på til den rigtige adresse. I dette tilfælde er informationen opdelt i pakker, som uafhængigt bevæger sig gennem netværket til den ønskede destination.

TCP/IP-protokolformater

IP-protokol format

Der er to formater for IP-protokol IP-adresser.

IPv4-format. Dette er et 32-bit binært tal. Praktisk form IP-adresseindtastninger (IPv4) er indtastninger i som fire grupper af decimaltal (fra 0 til 255), adskilt af punktum. For eksempel: 193.178.0.1.

IPv6-format. Dette er et 128-bit binært tal. Som regel skrives IPv6-adresser i form af otte grupper. Hver gruppe indeholder fire hexadecimale cifre adskilt af et kolon. Eksempel IPv6-adresse 2001:0db8:85a3:08d3:1319:8a2e:0370:7889.

Sådan fungerer TCP/IP-protokoller

Hvis det er praktisk, så tænk på at sende datapakker på netværket som at sende et brev med posten.

Hvis det er ubelejligt, så forestil dig to computere forbundet via et netværk. Desuden kan forbindelsesnetværket være et hvilket som helst, både lokalt og globalt. Der er ingen forskel i princippet om dataoverførsel. En computer på et netværk kan også betragtes som en vært eller node.

IP protokol

Hver computer på netværket har sin egen unik adresse. På det globale internet har en computer denne adresse, som kaldes en IP-adresse (Internet Protocol Address).

I analogi med post, IP-adresse dette er husnummeret. Men husnummeret er ikke nok til at modtage et brev.

Information transmitteret over netværket transmitteres ikke af computeren selv, men af ​​applikationer installeret på den. Sådanne applikationer er mailserver, webserver, FTP osv. For at identificere pakken med transmitterede oplysninger er hver applikation knyttet til en specifik port. For eksempel: webserver lytter på port 80, FTP lytter på port 21, mail SMTP-server lytter på port 25, POP3-server læser postkasser på port 110.

I adressepakken i TCP/IP-protokollen vises en anden linje i adressaterne: port. Analog med post - porten er afsenderens og modtagers lejlighedsnummer.

Eksempel:

Kildeadresse:

IP: 82.146.47.66

Destinationsadresse:

IP: 195.34.31.236

Det er værd at huske: IP-adresse + portnummer kaldes en "socket". I eksemplet ovenfor: fra socket 82.146.47.66:2049 sendes en pakke til socket 195.34.31.236:53.

TCP protokol

TCP-protokollen er den næste lag-protokol efter IP-protokollen. Denne protokol er beregnet til at kontrollere overførslen af ​​information og dens integritet.

For eksempel, Overførte oplysninger er opdelt i separate pakker. Pakkerne vil blive leveret til modtageren selvstændigt. Under transmissionsprocessen blev en af ​​pakkerne ikke transmitteret. TCP-protokollen giver retransmissioner, indtil modtageren modtager pakken.

Transportprotokol TCP skjuler sig for protokoller højeste niveau(fysisk, kanal, netværks-IP, alle problemer og detaljer om dataoverførsel).

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 ved 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 for applikationer, der er designet til høj gennemstrømning og hurtig udveksling, kan UDP 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 e-mail-programmer, hvilket giver dig mulighed for at kontrollere ikke kun trafik, men også længden af ​​meddelelsen 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 på forhånd etableret forbindelse, UDP kræver ikke en forbindelse, 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 transportprotokoller ser ud, da forskellene også her er fundamentale.

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 skabe 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 Urgency Indicator > Dette felt giver målenheden oplysninger 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.

TCP/IP-protokollen blev først oprettet i begyndelsen af ​​1970'erne og blev brugt til at skabe ARPANET. Teknologien er udviklet indenfor forskningsprojekt, som havde til formål at undersøge den potentielle mulighed for at kombinere computere i et lokalt eller virtuelt internetnetværk.

Etablering af en forbindelse i TCP udføres ved hjælp af et særligt klientprogram, for eksempel en browser, mail program eller en beskedklient.

TCP struktur

TCP/IP-strukturen giver dig mulighed for at oprette adgang til fjerncomputere, og også kombinere individuelle enheder at skabe lokale netværk, der fungerer adskilt fra generelle. TCP er en pålidelig dataoverførselsprotokol. Således er alle oplysninger, der vil blive sendt på netværket, garanteret modtaget af adressaten, dvs. den bruger, som dataene blev givet til.

Et alternativ til TCP er UDP. En vigtig forskel mellem disse netværk er, at TCP først skal etablere en betroet forbindelse mellem afsender og modtager af informationen. Når forbindelsen er etableret, overføres data, og derefter begynder proceduren for afbrydelse af forbindelsen. UDP etablerer straks transmission nødvendige pakker information til brugeren uden først at oprette en kanal.

Sender data via TCP

Efter installation TCP-forbindelser sender data ad oprettede ruter i overensstemmelse med IP-adresserne på afsenderen og modtageren af ​​informationen. IP-adressen er unik identifikator hver netværksenhed på internettet, og derfor kan en pakke sendt gennem den oprettede tunnel ikke gå tabt eller ved en fejl sendes til en anden bruger.

På det fysiske niveau af datatransmission er informationen i form af frekvenser, amplituder og andre signalformer, som allerede behandles af modtagerens netværkskort.

Kanalprotokoller er ansvarlige for at behandle information af en computer og overføre den til andre komponenter, blandt andet Ethernet, ATM, SLIP, IEEE 802.11. Disse kanaler giver ikke kun datatransmission, men også en form for levering til modtageren. I IEEE 802.11-netværk transmitteres information således ved hjælp af et trådløst radiosignal. I dette tilfælde sendes signalet fra netværkskort computer, som også har egen kode MAC. Ved Ethernet foregår al dataoverførsel ved hjælp af en kabelforbindelse.

Video om emnet

Under moderne forhold er samfundets og civilisationens aktiviteter umulige uden brug af midler hurtig udveksling Information. Dette problem opfordret til at løse globale computernetværk.

Et globalt netværk (GCN) er et netværk, der består af computere, der dækker store territorier med et ubegrænset antal inkluderet i dette netværk computersystemer. Hovedbetingelsen for, at sådanne netværk fungerer, er den øjeblikkelige transmission af information over netværket, uanset afstanden til den transmitterende og modtagende computer.

Det globale netværk adskiller sig fra det lokale, for det første ved lavere dataoverførselshastigheder. Globale netværk fungerer via TCP/IP, MPLS, ATM og nogle andre protokoller. Den mest berømte af disse er TCP/IP-protokollen, som inkluderer underprotokoller forskellige niveauer: applikation, transport, netværk, fysisk og kanal.

På applikationsniveau opererer de fleste programmer, der har deres egne protokoller, som er almindeligt kendte almindelige brugere PC (HTTP, WWW, FTP osv.). Disse protokoller giver visualisering og visning af information, der kræves af brugeren.

Transportprotokollen er ansvarlig for at levere data til præcis den applikation, der kan behandle dem. Det kaldes TCP.

Netværkslaget er faktisk det modtagende lag, når der transmitteres information og sendes anmodninger til lavere lag for at opnå al information. Det kaldes IP-protokollen.

Det fysiske lag og linklaget er ansvarlige for at definere betingelserne og metoderne til transmission af information.

Mest berømte globalt netværk er WWW (verden Wide Web), som er en samling af servere, hvor information, der er nødvendig for brugerne, er gemt, og computere, der både kan modtage information fra servere og uploade den til dem. WWW er kendetegnet ved dets bekvemmelighed og brugervenlighed samt lave krav til dataoverførselshastighed. Dette gjorde det muligt for dette netværk at udvikle sig over en periode på lidt over et årti.

Video om emnet

Det er sædvanligt at henvise til en symbolsk betegnelse, der erstatter numerisk adressering baseret på IP-adresser på internettet. Numerisk adressering, der bruges i routingtabelbehandling, er ideel til computerbrug, men giver betydelige vanskeligheder for brugeren at huske. Mnemonisk meningsfulde domænenavne kommer til undsætning.

Forbindelser på internettet etableres ved hjælp af numeriske grupper med 4 værdier, adskilt af symbolet "." og kaldet IP-adresser. De symbolske navne på domænenavnekomplekset er en tjeneste designet til at gøre det nemmere at finde den nødvendige IP-adresse på netværket. Den tekniske indikator for et domænenavn er "." V email adresse bruger. Så i google.com-adressen vil domænenavnet være com. Selve domænenavnet Navn er ikke i stand til at give adgang til den nødvendige internetressource. Proceduren for at bruge et mnemonisk navn består af to trin: - IP-adresser efter navn i hosts-fil, indeholdende tabeller over korrespondance mellem IP-adressen og computernavnet - etablering af en forbindelse med en ekstern webressource på en specifik IP-adresse Hovedopgaven DNS-tjeneste er at få en IP-adresse for at etablere en forbindelse, hvilket gør denne tjeneste hjælpefunktion til TCP/IP-protokollen. er en domænenavnseparator, selvom det af praktiske årsager normalt tages for at henvise til et roddomæne, der ikke har sin egen betegnelse. Roden - hele sættet af internetværter - er opdelt i: - første niveau - gov, edu, com, net; - nationale domæner - uk, jp, ch, osv.; - regionale domæner - msk; - virksomhedsdomæner- organisationers domæner Bevarelse af den velkendte træstruktur af domænenavne førte til brugen af ​​etableret terminologi - rod, træknuder, blade. Udtrykket "vært" i dette hierarki er tildelt et blad, der ikke har en enkelt node under sig. Det fulde værtsnavn bliver en sekventiel liste over alle mellemliggende knudepunkter mellem rod og blad, adskilt af tegnet "." fra venstre mod højre: ivan.net.abcd.ru, hvor ru er roden af ​​træet, abcd er navnet på organisationen, ivan er træets blad (vært).

Video om emnet

Kilder:

  • Internet Domain Name System i 2018

TCP (Transmission Control Protocol) er et pålideligt forbindelsesorienteret protokolalternativ til UDP, der er ansvarlig for de fleste brugerdataoverførsler over TCP/IP-netværk og endda har bidraget til navnet på hele suiten af ​​protokoller. TCP-protokollen, som defineret i RFC 793, giver applikationer et komplet udvalg af transporttjenester, herunder pakkebekræftelse, fejlsporing og korrektion og flowkontrol.

TCP-protokollen er designet til at transmittere relativt store mængder information, som naturligvis ikke kan pakkes ind i én pakke. Informationen har som regel form af hele filer, der skal opdeles i flere datagrammer for at kunne overføres. Informationen, der leveres til transportlaget, betragtes i TCP-protokollens terminologi som en sekvens, som protokollen opdeler i segmenter til transmission over netværket. Som med UDP pakkes segmenterne derefter ind i IP-datagrammer, der kan krydse ruten til deres destination på en række forskellige måder. Derfor giver TCP hvert af segmenterne et sekvensnummer, så det modtagende system kan sætte dem sammen i den rigtige rækkefølge.

Før enhver transmission af brugerdata ved hjælp af TCP begynder, udveksler de to systemer beskeder for at etablere en forbindelse. Dette sikrer, at det modtagende system er operationelt og i stand til at modtage data. Når forbindelsen er etableret, og dataoverførselsprocessen begynder, sender det modtagende system med jævne mellemrum beskeder, der bekræfter modtagelsen af ​​pakker. Disse meddelelser underretter afsendersystemet om tabte pakker og giver det også information, der bruges til at overvåge transmissionshastigheden.

TCP-meddelelsesformat

Funktionerne af TCP-headerfelterne er beskrevet nedenfor.

Kildeport (SourcePort), 2 bytes. Identificerer det afsendende systemportnummer, der bruges af den proces, der skabte informationen båret af TCP-segmenter. I nogle tilfælde kan dette være et fiktivt portnummer, der er tildelt af klienten specifikt til denne transaktion.

DestinationPort, 2 bytes. Angiver portnummeret på destinationssystemet, som TCP-segmentinformationen skal sendes til. Portnumre er angivet i dokumentet "AssignedNumbers" såvel som i SERVICES-filen for hvert TCP/1P-system.

Sekvensnummer, 4 bytes. Bestemmer positionen af ​​et bestemt segment i forhold til hele datasekvensen.

Kvitteringsnummer, 4 bytes. Angiver det maksimale byteantal i segmentet, forøget med én, som bekræftelsessystemet forventer at modtage fra afsenderen. Anvendes i forbindelse med ACK-kontrolbitten.


Dataoffset (DataOffset), 4 bit. Angiver længden, i 4-byte-ord, af TCP-headeren (som kan indeholde indstillinger, der øger dens størrelse op til 60 bytes).

Reserveret, 6 bits. Dedikeret til senere anvendelser.

Kontrolbits, 6 bits. Indeholder seks 1-bit flag, der udfører følgende funktioner:

URG - angiver, at sekvensen indeholder hastende data og aktiverer feltet for hastende indikator;

ACK - bemærker, at meddelelsen er en bekræftelse af tidligere modtagne data og aktiverer bekræftelsesnummerfeltet;

PSH - instruerer det modtagende system til at transmittere alle aktuelle sekvensinformationer modtaget indtil videre til applikationen identificeret af destinationsportfeltet uden at vente på, at de resterende fragmenter ankommer;

RST - instruerer det modtagende system om at kassere alle segmenter af den aktuelle sekvens, der er modtaget indtil videre, og begynde at etablere TCP-forbindelsen igen;

SYN - bruges under ftil at synkronisere antallet af transmitterede data mellem interagerende systemer;

FIN - meddeler det andet system, at dataoverførslen er afsluttet, og forbindelsen bør afbrydes.

Vindue, 2 bytes. Implementerer TCPs flowkontrolmekanisme (glidende vindue) ved at erklære antallet af bytes, som destinationssystemet kan acceptere fra kildesystemet.

Kontrolsum, 2 bytes. Indeholder resultatet af checksum-beregningen under hensyntagen til TCP-headeren, data samt en pseudo-header sammensat af felterne for kilde-IP-adressen, protokollen, destinations-IP-adressen fra IP-headeren plus længden af ​​hele TCP-meddelelsen .

UrgentPointer, 2 bytes. Brugt sammen med URG-bitten specificerer den sekvensdata, som skal betragtes som presserende af modtageren.

Muligheder, variabel størrelse. Kan indeholde yderligere konfigurationsparametre for TCP-forbindelsen sammen med de justeringsbits, der kræves for at bringe feltstørrelsen til det nærmeste multiplum af 4 bytes. Mulige muligheder er angivet nedenfor.

Maksimal segmentstørrelse (MaximumSegmentSize). Angiver størrelsen af ​​det maksimale segment, som det aktuelle system kan modtage fra et andet system, der er tilsluttet det.

Vindues skalafaktor. Bruges til at øge vinduesfeltstørrelsen fra 2 til 4 bytes.

Tidsstempel. Bruges til at gemme tidsstempler for datapakker, som det modtagende system returnerer til afsenderen til bekræftelsesformål. Dette giver afsenderen mulighed for at måle dataenes rejsetid tur-retur.

Data, variabel størrelse. Kan inkludere datasegmenter, der kommer fra toppen af ​​protokolstakken, fra Application Layer-protokoller. I SYN-, ACK- og FIN-pakker efterlades dette felt tomt.

IPX/SPX: For at levere transporttjenester til NovellNetWare-operativsystemet skabte Novell sin egen protokolstak, samlet opkaldt efter netværkslagsprotokollen - IPX (InternetworkPacketExchange). I analogi med TCP/IP kaldes denne stak nogle gange også IPX/SPX. Den anden del af denne betegnelse refererer til SPX (SequencedPacketeXchange), en protokol, der opererer på transportlaget. Men i modsætning til kombinationen af ​​TCP og IP, som er allestedsnærværende på TCP/IP-netværk og primært er beregnet til at levere store mængder trafik, er IPX/SPX-kombinationen relativt sjælden på NetWare-netværk.

IPX-protokoller ligner TCP/IP i flere aspekter. Begge protokolstakke bruger upålidelige forbindelsesløse protokoller (henholdsvis IPX og IP) på netværkslaget til at transportere datagrammer, der indeholder data fra en række øvre lag-protokoller, hvilket giver en bred vifte af tjenester til forskellige applikationer. Ligesom IP er IPX ansvarlig for at adressere datagrammer og dirigere dem til en destination på et andet netværk.

Men i modsætning til TCP/IP er IPX-protokoller designet til brug på lokale netværk og understøtter ikke den næsten ubegrænsede skalerbarhed af internetprotokoller. IPX har ikke det samme uafhængige adresseringssystem, som IP-protokollen har. Systemer på et NetWare-netværk identificerer andre systemer gennem hardwareadresser, der er hårdkodet i netværksadapterkort i kombination med en netværksadresse tildelt af administratoren (eller operativsystemet) under installationen af ​​operativsystemet.

IPX-datagrammer bæres inde i standard Link Layer-protokolrammer på samme måde som IP-datagrammer. IPX-protokoller har ikke deres egne Link Layer-protokoller. På de fleste netværk er IPX-data imidlertid indkapslet i Ethernet- eller TokenRing-rammer.

IPX protokol

IPX er baseret på InternetworkDatagramPacket (IDP)-protokollen udviklet til Xerox Network Services (XNS, XeroxNetworkServices). IPX leverer grundlæggende forbindelsesløse transporttjenester mellem internetsystemer ved hjælp af broadcast og ensrettet transmission. Det meste af normal trafik mellem NetWare-servere eller mellem klienter og servere føres over IPX-datagrammer.

IPX-datagram-headeren er 30 bytes lang (til sammenligning er IP-headeren 20 bytes). Formålet med overskriftsfelterne er angivet nedenfor.

Kontrolsum, 2 bytes. I den originale IDP-header indeholder dette felt CRC-værdien for datagrammet. Da Link Layer-protokoller selv udfører kontrolsumverifikation, bruges denne funktion ikke ved behandling af IPX-datagrammer, og feltet indeholder altid den hexadecimale værdi ffff.

Længde, 2 bytes. Angiver størrelsen af ​​datagrammet i bytes, inklusive IPX-headeren og datafeltet.

Leveringskontrol (TransportControl), 1 byte. Dette felt er også kendt som hopcount. Den registrerer antallet af routere et datagram passerede igennem på vej til sin destination. Transmissionssystemet nulstiller den til 0, og hver af routerne øger, når datagrammet behandles, tællerværdien med 1. Så snart antallet af transit-routere når 16, kasserer den sidste datagrammet.

Pakketype (Packet Type), 1 byte. Identificerer den øverste lag-tjeneste eller protokol, der skabte de data, der blev båret af datagrammet. Følgende værdier bruges:

0 - ikke defineret;

1 - RoutingInformationProtocol (RIP, routinginformationsprotokol);

4 - ServiceAdvertisingProtocol (SAP, service notification protocol);

5 - SequencedPacketExchange (SPX, sekventiel pakkeudveksling);

17 - NetWare Core Protocol (NCP, den primære NetWare-protokol).

Destinationsnetværksadresse, 4 bytes. Angiver det netværk, som destinationssystemet er placeret på, indeholder en værdi, der er tildelt af administratoren eller operativsystemet under installationen af ​​NetWare.

DestinationNodeAddress, 6 bytes. Definerer netværksgrænsefladen på den computer, som dataene skal leveres til; det er hardwareadressen for Link Layer-protokollen. Broadcast-meddelelser sendes med den hexadecimale adresse ffffffffffff.

DestinationSocket, 2 bytes. Ansvarlig for at identificere den proces, der kører på det modtagende system, som dataene inde i datagrammet faktisk er beregnet til. En af følgende værdier bruges:

0451 - NetWare Core Protocol;

0452 - Tjenesteannonceringsprotokol;

0453 - Ruteinformationsprotokol;

0455 - NetBIOS;

0456 - diagnostisk pakke;

0457 - serialiseringspakke;

4000-6000 - sockets allokeret til serverprocesser;

9000 - NetWareLinkServicesProtocol;

9004 - IPXWAN-protokol.

Kildenetværksadresse (SourceNetworkAddress), 4 bytes. Identificerer det netværk, som systemet, der sendte datagrammet, er placeret på. Bruger den værdi, der er tildelt af administratoren eller operativsystemet under installationen af ​​NetWare.

Kildeknudeadresse (SourceNodeAddress), 6 bytes. Indeholder Link Layer-protokol-hardwareadressen til netværksgrænsefladen på den computer, der sendte datagrammet.

Kildestik (SourceSocket), 2 bytes. Identificerer den proces, der kører på det lokale system, der genererede pakkedataene. De samme værdier som for destinationsstikfeltet gælder.

Data, variabel længde. Information genereret af en højere lag protokol.

Fordi IPX er en forbindelsesfri protokol, er den afhængig af øvre lags protokoller for at verificere, at dataene er blevet leveret korrekt. NetWare-klienter aktiverer imidlertid et systemanmodnings-timeout-ur, hvorefter timeren tvinger dem til at sende IPX-datagrammet igen, hvis der ikke modtages et svar inden for en specificeret tidsperiode.