Det er to typer kommunikasjon mellom datamaskiner - datagrammer og økter. Datagram- dette er en melding som ikke krever bekreftelse på aksept fra mottaker, og hvis en slik bekreftelse er nødvendig, må adressaten selv sende en spesiell melding. For å utveksle data på denne måten må mottaker- og overføringspartene strengt følge en bestemt protokoll for å unngå tap av informasjon. Hvert datagram er en uavhengig melding, og i nærvær av flere datagrammer på LAN -en er det generelt ikke garantert levering til adressaten. Imidlertid er et datagram vanligvis en del av en melding, og på de fleste LAN er datagrammer mye raskere enn meldinger i økter.
V økt det skal opprette en logisk forbindelse for utveksling av meldinger mellom datamaskiner og mottak av meldinger er garantert. Mens datagrammer kan overføres på vilkårlige tidspunkter, i en økt, før du sender en melding, blir økten logget ut, og på slutten av kommunikasjonen må sesjonen lukkes.
Operativsystemene på de fleste datamaskiner støtter flerprogrammodus, dvs. flere programmer kjøres samtidig (flere prosesser utføres parallelt). Det kan sies, med en viss grad av nøyaktighet, at prosessen er den endelige destinasjonen for meldingen. Men fordi prosesser blir dynamisk opprettet og avsluttet, har avsenderen sjelden nok informasjon til å identifisere en prosess på en annen datamaskin. Derfor blir det nødvendig å bestemme destinasjonen for data basert på funksjonene som utføres av prosessene, uten å vite noe om prosessene som er implementert av disse funksjonene.
I praksis, i stedet for å tenke på en prosess som sluttdestinasjon, antas det at hver datamaskin har et sett med noen destinasjonspunkter som kalles protokollporter. Hver port er identifisert med et positivt heltall (fra 0 til 65535). I dette tilfellet gir operativsystemet en kommunikasjonsmekanisme som prosesser kan bruke til å spesifisere porten de kjører på eller porten for tilgang. Vanligvis blir porter bufret, og data som kommer til en bestemt port før prosessen er klar til å motta, går ikke tapt: den blir satt i kø til prosessen henter den.
For å bedre forstå havneteknologi, tenk deg at du har kommet til en bank for å gjøre et innskudd. For å gjøre dette må du gå til et bestemt vindu, der operatøren vil lage dokumentene og du vil åpne en konto. I dette eksemplet er banken en datamaskin, og bankoperatørene er programmer som gjør en bestemt jobb. Men vinduene er portene, og hvert vindu i banken er ofte nummerert (1, 2,3 ...).
Det samme gjelder for porter, derfor må avsenderen kjenne både IP -adressen til den mottakende datamaskinen og portnummeret på datamaskinen for å kommunisere med en port på en annen datamaskin. Hver melding inneholder både portnummeret til datamaskinen meldingen er adressert til og portnummeret til kilden til datamaskinen som svaret skal komme til. Dette gjør det mulig å svare avsenderen for hver prosess.
TCP / IP -porter nummerert 0 til 1023 er privilegerte og brukes av nettverkstjenester, som igjen kjøres med administratorrettigheter (superbruker). For eksempel bruker Windows File and Folder Service port 139, men hvis den ikke kjører på datamaskinen din, vil du motta en feilmelding når du prøver å få tilgang til denne tjenesten (det vil si denne porten).
TCP / IP -porter 1023 til 65535 er uprivilegerte og brukes av klientprogrammer for å motta svar fra servere. For eksempel bruker en brukers nettleser, når du får tilgang til webserveren, port 44587 på datamaskinen, men adresserer port 80 på webserveren. Ved mottak av forespørselen sender webserveren et svar til port 44587, som brukes av nettleseren.
Hei alle sammen i dag. Jeg skal fortelle deg hvordan TCP -protokollen er forskjellig fra UDP. Transportlagsprotokoller som følger IP i hierarkiet brukes til å overføre data mellom applikasjonsprosesser i nettverksnoder. En datapakke mottatt fra en datamaskin til en annen via Internett må overføres til en behandlingsprosess, og nettopp for et bestemt formål. Transportlaget påtar seg ansvaret for dette. Det er to hovedprotokoller på dette laget - TCP og UDP.
Hva står TCP og UDP for
TCP- transportprotokoll for dataoverføring i TCP / IP -nettverk, som foreløpig oppretter en forbindelse til nettverket.
UDP- en transportprotokoll som sender datagrammeldinger uten at det er nødvendig å etablere en tilkobling i et IP -nettverk.
La meg minne deg på at begge protokollene opererer på transportlaget i OSI- eller TCP / IP -modellen, og det er veldig viktig å forstå hvordan de er forskjellige.
Forskjell mellom TCP og UDP protokoller
Forskjellen mellom TCP og UDP er den såkalte "leveringsgarantien". TCP krever et svar fra klienten som datapakken ble levert til, en bekreftelse på levering, og for dette trenger den en forhåndsopprettet tilkobling. Også TCP regnes som pålitelig, mens UDP til og med har mottatt navnet "upålitelig datagramprotokoll. TCP eliminerer tap av data, duplisering og blanding av pakker, forsinkelser. UDP gjør alt dette og trenger ikke tilkobling for å fungere. Prosesser som sender data over UDP må nøye seg med mottatte, til og med tapende. TCP overvåker overbelastningen av tilkoblingen, UDP kontrollerer ikke annet enn integriteten til de mottatte datagrammene.
På den annen side, på grunn av slik ikke-selektivitet og mangel på kontroll, leverer UDP datapakker (datagrammer) mye raskere, derfor kan UDP betraktes som den optimale protokollen for applikasjoner som er designet for høy båndbredde og rask utveksling. Disse inkluderer nettverks- og nettleserspill, samt streaming av videovisere og applikasjoner for videokommunikasjon (eller tale): fra pakketap, helt eller delvis, endres ingenting, du trenger ikke å gjenta forespørselen, men nedlastingen er mye raskere. TCP -protokollen, som en mer pålitelig, brukes vellykket selv i postprogrammer, slik at du ikke bare kan kontrollere trafikken, men også lengden på meldingen og hastigheten på trafikkutveksling.
La oss ta en titt på de viktigste forskjellene mellom tcp og udp.
- TCP garanterer levering av datapakker uendret, sekvens og tapsfri, UDP garanterer ikke noe.
- TCP teller pakker under transport, men UDP gjør det ikke
- TCP fungerer i full dupleksmodus, i en pakke kan du sende informasjon og bekrefte mottak av den forrige pakken.
- TCP krever en forhåndsopprettet tilkobling, UDP krever ikke en tilkobling, det er bare en datastrøm.
- UDP gir raskere dataoverføringshastigheter.
- TCP er mer pålitelig og gir kontroll over kommunikasjonsprosessen.
- UDP er å foretrekke for programmer som spiller streaming video, videotelefon og telefoni, nettverksspill.
- UPD inneholder ikke datagjenopprettingsfunksjoner
Eksempler på UDP -applikasjoner, for eksempel, er overføring av DNS -soner til Active Directory, der pålitelighet ikke er nødvendig. Svært ofte liker de å stille slike spørsmål ved intervjuer, så det er veldig viktig å kjenne tcp og udp forskjellene.
TCP- og UDP -overskrifter
La oss ta en titt på hvordan overskriftene til de to transportprotokollene ser ut, siden det også er kardinalforskjeller.
UDP -topptekst
- 16 -bits kildeport> Spesifisering av kildeporten for UDP er valgfritt. Hvis dette feltet brukes, kan mottakeren sende et svar til denne porten.
- 16 -bits destinasjonsport> Destinasjonsportnummer
- 16 bit UDP -lengde> Meldinglengde inkludert topptekst og data.
- 16 biters kontrollsum> Overskrift og data kontrollsum for verifisering
TCP -topptekst
- 16 -biters kildeport> Kildeportnummer
- 16 -bits destinasjonsport> Destinasjonsportnummer
- 32 -biters sekvensielt nummer> Sekvensnummeret genereres av kilden og brukes av destinasjonen til å omorganisere pakker for å lage den opprinnelige meldingen og sende en bekreftelse til kilden.
- 32 -bits bekreftelsesnummer> Hvis ACK -biten i kontrollfeltet er angitt, inneholder dette feltet det neste forventede sekvensnummeret.
- 4 bits topplengde> Informasjon om begynnelsen av datapakken.
- reserve> Reservert for fremtidig bruk.
- 16 biters kontrollsum> Overskrift og data kontrollsum; den avgjør om pakken har blitt ødelagt.
- 16 -bits hastighetsindikator> I dette feltet mottar målenheten hastighetsinformasjonen til dataene.
- Parametere> Valgfrie verdier som er angitt om nødvendig.
Størrelsen på vinduet lar deg spare trafikk, tenk på når verdien er 1, her sender hver avsender for hvert svar som sendes, ikke helt rasjonell.
Med en vindusstørrelse på 3 sender avsenderen allerede 3 rammer, og forventer fra 4, noe som betyr at han har alle tre bildene, +1.
Jeg håper du nå har en ide om forskjellene mellom tcp udp -protokollene.
Transportlag
Transportlagets oppgave er å overføre data mellom forskjellige applikasjoner som kjører på alle noder i nettverket. Etter at en pakke er levert med IP til den mottakende datamaskinen, må dataene sendes til en spesiell mottaksprosess. Hver datamaskin kan kjøre flere prosesser, og et program kan ha flere inngangspunkter, som fungerer som destinasjon for datapakker.
Pakker som kommer til transportlaget i operativsystemet er organisert i flere køer ved inngangspunkter til forskjellige applikasjoner. Disse inngangspunktene kalles porter i TCP / IP -terminologi.
Overføringskontrollprotokoll
Overføringskontrollprotokoll(TCP) (Transmission Control Protocol) er en obligatorisk protokollstandard TCP / IP, definert i RFC 793, "Transmission Control Protocol (TCP)".
TCP er en transportlagsprotokoll som gir transport (overføring) av en datastrøm, med behovet for først å etablere en forbindelse, og derved garantere tillit til integriteten til de mottatte dataene, og utfører også en gjentatt forespørsel om data i tilfelle datatap eller korrupsjon. I tillegg overvåker TCP duplikatpakker og, hvis det oppdages, dreper duplikatpakker.
I motsetning til UDP garanterer det integriteten til de overførte dataene og avsenderens bekreftelse på overføringsresultatene. Brukes ved overføring av filer, der tap av en pakke kan føre til ødeleggelse av hele filen.
TCP gir pålitelighet på grunn av følgende:
- Dataene fra applikasjonen er delt inn i blokker av en viss størrelse, som vil bli sendt.
- Når TCP sender et segment, setter det en tidtaker og forventer en ACK for det segmentet fra den eksterne enden. Hvis det ikke mottas noen bekreftelse etter at tiden har gått, blir segmentet sendt på nytt.
- Når TCP mottar data fra den eksterne siden av tilkoblingen, sender den en bekreftelse. Denne bekreftelsen sendes ikke umiddelbart, men blir vanligvis forsinket med en brøkdel av et sekund.
- TCP beregner en kontrollsum for topptekst og data. Dette er en kontrollsum beregnet ved enden av forbindelsen, hvis formål er å oppdage eventuelle endringer i data under overføring. Hvis et segment kommer med en ugyldig kontrollsum, slipper TCP det og ingen bekreftelse genereres. (Avsenderen forventes å ta timeout og sende på nytt.)
- Siden TCP -segmenter sendes som IP -datagrammer, og IP -datagrammer kan komme tilfeldig, kan TCP -segmenter også komme tilfeldig. Etter å ha mottatt data, kan TCP sekvensere dataene etter behov, noe som resulterer i at applikasjonen mottar dataene i riktig rekkefølge.
- Siden IP -datagrammet kan dupliseres, MÅ den mottakende TCP kaste de dupliserte dataene.
- TCP styrer dataflyten. Hver side av en TCP -tilkobling har et bestemt bufferplass. Ved å motta TCP kan fjernsiden bare sende data hvis mottakeren kan buffer dem. Dette forhindrer raske verter i å overfylle bufferne til sakte verter.
- Sekvensnummeret tjener to formål:
- Hvis SYN -flagget er angitt, er denne initialverdien til sekvensnummeret ISN (Initial Sequence Number), og den første byten med data som skal overføres i den neste pakken vil ha et sekvensnummer som er lik ISN + 1.
- Ellers, hvis SYN ikke er angitt, har den første byten med data som overføres i denne pakken dette sekvensnummeret.
- Kvitteringsnummer - hvis ACK -flagget er satt, inneholder dette feltet sekvensnummeret som forventes av mottakeren neste gang. Merker dette segmentet som mottaksbekreftelse.
- Overskriftslengde - angitt i 32 -biters ord.
- Vindusstørrelse er antall byte som mottakeren er klar til å godta uten bekreftelse.
- Kontrollsum - Inkluderer pseudooverskrift, topptekst og data.
- Urgent Pointer - angir den siste byten med hastende data som må reageres umiddelbart.
- URG - hasterflagg, inkluderer feltet "Hastighetsindikator", hvis = 0 blir feltet ignorert.
- ACK - bekreftelsesflagg, inkluderer feltet "Kvitteringsnummer, hvis = 0, ignoreres feltet.
- PSH - flagget krever en push -operasjon, TCP -modulen må raskt sende pakken til programmet.
- RST - tilkoblingsavbruddsflagg, brukes til å avvise tilkoblingen
- SYN - flagg for synkronisering av sekvensnumre, brukt når du oppretter en tilkobling.
- FIN - slutten av overføringsflagget fra avsenders side
Vurder overskriftstrukturen TCP ved hjelp av en Wireshark -nettverksanalysator:
TCP -porter
Siden flere programmer kan kjøres på samme datamaskin, brukes den unike identifikatoren for hvert program eller portnummer for å levere en TCP -pakke til et bestemt program.
Portnummer er et betinget 16-biters nummer fra 1 til 65535 som angir hvilket program pakken er beregnet på.
TCP -porter bruker en bestemt programport for å levere data som overføres ved hjelp av TCP (Transmission Control Protocol). TCP -porter er mer komplekse og fungerer annerledes enn UDP -porter. Mens en UDP -port fungerer som en enkelt meldingskø og som et inngangspunkt for en UDP -tilkobling, er det ultimate inngangspunktet for alle TCP -tilkoblinger en unik tilkobling. Hver TCP -tilkobling er unikt identifisert av to inngangspunkter.
Hver enkelt TCP -serverport kan tilby flere tilkoblinger som skal deles fordi alle TCP -tilkoblinger identifiseres med to verdier: en IP -adresse og en TCP -port (sokkel).
Alle TCP -portnumre mindre enn 1024 er reservert og registrert hos Internet Assigned Numbers Authority (IANA).
UDP- og TCP -portnumre overlapper ikke.
TCP-programmer bruker reserverte eller kjente portnumre, som vist i figuren nedenfor.
Etablere en TCP -tilkobling
La oss nå se på hvordan TCP -tilkoblinger etableres. Anta at en prosess som kjører på en vert, vil etablere en forbindelse med en annen prosess på en annen vert. Husk at verten som starter tilkoblingen kalles "klienten" mens den andre noden kalles "serveren".
Før du begynner å overføre data, i henhold til TCP -protokollen, må partene opprette en forbindelse. Tilkoblingen etableres i tre trinn (TCP "tre-time handshake" -prosess).
- Rekvirenten (vanligvis kalt klienten) sender et SYN -segment som angir portnummeret til serveren som klienten ønsker å koble seg til og det originale klientsekvensnummeret (ISN).
- Serveren svarer med SYN -segmentet som inneholder det originale serversekvensnummeret. Serveren bekrefter også ankomsten av klientens SYN ved hjelp av en ACK (ISN + 1). Ett sekvensnummer brukes per SYN.
- Klienten må bekrefte ankomsten av et SYN fra serveren med sine SYN som inneholder klientens originale sekvensnummer (ISN + 1) og bruke en ACK (ISN + 1). SYN -biten er satt til 0 fordi tilkoblingen er opprettet.
Etter å ha opprettet en TCP -tilkobling, kan disse to vertene overføre data til hverandre, siden TCP -tilkoblingen er full dupleks, kan de overføre data samtidig.
Kilder: Wikipedia, Microsoft, portscan.ru
Hvordan vet jeg hvilke porter som er åpne på datamaskinen min?
- For Windows: Start → "cmd" → Kjør som administrator → "netstat -bn"
- Antivirusprogramvare som Avast har muligheten til å se aktive porter i brannmuren: Verktøy -> Brannmur -> Nettverkstilkoblinger.
Også nyttige netstat -kommandoer:
For å vise både Ethernet -statistikken og statistikken for alle protokoller, skriver du inn følgende kommando:
netstat -e -s
For å vise statistikken for bare TCP- og UDP -protokollene, skriv inn følgende kommando:
netstat -s -p tcp udp
For å vise aktive TCP -tilkoblinger og prosess -ID -ene hvert 5. sekund, skriver du inn følgende kommando:
nbtstat -o 5
For å vise aktive TCP -tilkoblinger og prosess -ID -er ved hjelp av numerisk form, skriver du inn følgende kommando:
nbtstat -n -o
Følgende statusverdier er gyldige for TCP -sokler:
LUKKET | Lukket. Stikkontakten er ikke i bruk. |
LYTT (LYTTER) | Venter på innkommende tilkoblinger. |
SYN_SENT | Den prøver aktivt å etablere en forbindelse. |
SYN_RECEIVED | Innledende synkronisering av tilkoblingen pågår. |
ETABLERT | Tilkoblingen er etablert. |
CLOSE_WAIT | Den fjerne enden har koblet fra; venter på at kontakten stenges. |
FIN_WAIT_1 | Stikkontakten er lukket; koble fra tilkoblingen. |
LUKKING | Stikkontakten er lukket, og deretter fjernkontrollen koblet fra; Venter på bekreftelse. |
LAST_ACK | Den eksterne siden koblet fra, deretter stikkontakten stengt; Venter på bekreftelse. |
FIN_WAIT_2 | Stikkontakten er lukket; venter på at ekstern side skal koble fra. |
VENTETID | Stikkontakten er stengt, men venter på pakker som fortsatt er på nettverket for behandling |
Liste over de mest brukte portene
№ | Havn | Protokoll | Beskrivelse |
---|---|---|---|
1 | 20 | FTP -data | File Transfer Protocol - filoverføringsprotokoll. Dataport. |
2 | 21 | FTP -kontroll | File Transfer Protocol - filoverføringsprotokoll. Havn for lag. |
3 | 22 | SSH | Secure SHell er et "sikkert skall". Kontrollprotokoll for eksternt operativsystem. |
4 | 23 | telnet | TERminaL NETWORK. En protokoll for implementering av et tekstgrensesnitt over et nettverk. |
5 | 25 | SMTP | Simple Mail Transfer Protocol er en enkel postoverføringsprotokoll. |
6 | 42 | VINNER | Windows Internet Name Service. Tjeneste for kartlegging av NetBIOS -datamaskinnavn til IP -adresser. |
7 | 43 | Hvem er | "Hvem er". En protokoll for innhenting av registreringsdata om eierne av domenenavn og IP -adresser. |
8 | 53 | DNS | Domain Name System - domenenavnsystem. |
9 | 67 | DHCP | Dynamic Host Configuration Protocol - dynamisk vertskonfigurasjonsprotokoll. Få dynamisk IP. |
10 | 69 | TFTP | Trivial File Transfer Protocol er en enkel filoverføringsprotokoll. |
11 | 80 | HTTP / Web | HyperText Transfer Protocol - Hypertext transfer protocol. |
12 | 110 | POP3 | Post Office Protocol Version 3 - protokoll for mottak av e -post, versjon 3. |
13 | 115 | SFTP | SSH -filoverføringsprotokoll. Sikker dataoverføringsprotokoll. |
14 | 123 | NTP | Network Time Protocol. En protokoll for synkronisering av den interne klokken på en datamaskin. |
15 | 137 | NetBIOS | Nettverk grunnleggende inngangs- / utgangssystem. En protokoll for å levere nettverksinngangs- / utdataoperasjoner. Navnetjeneste. |
16 | 138 | NetBIOS | Nettverk grunnleggende inngangs- / utgangssystem. En protokoll for å levere nettverksinngangs- / utdataoperasjoner. Tilkoblingstjeneste. |
17 | 139 | NetBIOS | Grunnleggende inngangs- / utgangssystem for nettverk. En protokoll for å levere nettverksinngangs- / utdataoperasjoner. Øktjeneste. |
18 | 143 | IMAP | Internett -meldingstilgangsprotokoll. En applikasjonslagsprotokoll for tilgang til e-post. |
19 | 161 | SNMP | Simple Network Management Protocol er en enkel protokoll for nettverksadministrasjon. Enhetsbehandling. |
20 | 179 | BGP | Border Gateway Protocol, border gateway protocol. Dynamisk rutingprotokoll. |
21 | 443 | HTTPS | HyperText Transfer Protocol Secure) er en HTTP -protokoll som støtter kryptering. |
22 | 445 | SMB | Servermeldingsblokk. Ekstern tilgangsprotokoll for filer, skrivere og nettverksressurser. |
23 | 514 | Syslog | Systemlogg. Protokoll for sending og registrering av meldinger om pågående systemhendelser. |
24 | 515 | LPD | Line Printer Daemon. Ekstern utskriftsprotokoll på skriveren. |
25 | 993 | IMAP SSL | IMAP -protokoll som støtter SSL -kryptering. |
26 | 995 | POP3 SSL | POP3 -protokoll som støtter SSL -kryptering. |
27 | 1080 | SOKKER | SOCKet Secure. En protokoll for å få sikker anonym tilgang. |
28 | 1194 | OpenVPN | Åpen kildekode implementering av Virtual Private Network (VPN) teknologi. |
29 | 1433 | MSSQL | Microsoft SQL Server er et databasesystem. Basestilgangsport. |
30 | 1702 | L2TP (IPsec) | Støtteprotokoll for virtuelt privat nettverk. I tillegg til et sett med protokoller for å sikre databeskyttelse. |
31 | 1723 | PPTP | En tunnelprotokoll for sikker tilkobling med en punkt-til-punkt-server. |
32 | 3128 | Fullmakt | For øyeblikket brukes porten ofte av proxy -servere. |
33 | 3268 | LDAP | Lightweight Directory Access Protocol - lett katalogtilgangsprotokoll (katalogtjeneste). |
34 | 3306 | MySQL | Tilgang til MySQL -databaser. |
35 | 3389 | RDP | Remote Desktop Protocol er en ekstern desktop -protokoll for Windows. |
36 | 5432 | PostgreSQL | Tilgang til PostgreSQL -databaser. |
37 | 5060 | NIPPE | En protokoll for etablering av en økt og overføring av multimediainnhold. |
38 | 5900 | VNC | Virtual Network Computing er et system for ekstern tilgang til datamaskinens skrivebord. |
39 | 5938 | TeamViewer | TeamViewer er et system for ekstern datamaskinstyring og datautveksling. |
40 | 8080 | HTTP / Web | Alternativ port for HTTP -protokollen. Noen ganger brukt av proxy -servere. |
41 | 10000 | NDMP | Populær port: Webmin, SIP Voice, VPN IPSec over TCP. |
42 | 20000 | DNP | Kort portliste: