Det finns två typer av kommunikation mellan datorer - datagram och sessioner. Datagram- detta är ett meddelande som inte kräver bekräftelse av mottagande från den mottagande parten, och om en sådan bekräftelse är nödvändig måste adressaten själv skicka ett särskilt meddelande. För att utbyta data på detta sätt måste de mottagande och överförande parterna strikt följa ett visst protokoll för att undvika förlust av information. Varje datagram är ett oberoende meddelande, och i närvaro av flera datagram på nätverket är deras leverans till adressaten i allmänhet inte garanterad. Ett datagram är dock vanligtvis en del av ett meddelande, och på de flesta LAN är datagram mycket snabbare än meddelanden i sessioner.
V session det är tänkt att skapa en logisk anslutning för utbyte av meddelanden mellan datorer och mottagandet av meddelanden är garanterat. Medan datagram kan överföras vid godtyckliga tidpunkter, i en session, innan ett meddelande skickas, loggas sessionen ut och i slutet av kommunikationen måste sessionen stängas.
Operativsystemen på de flesta datorer stöder flerprogramsläge, d.v.s. flera program körs samtidigt (flera processer körs parallellt). Det kan med viss grad av noggrannhet sägas att processen är den slutliga destinationen för meddelandet. Eftersom processer skapas och avslutas dynamiskt har avsändaren dock sällan tillräckligt med information för att identifiera en process på en annan dator. Därför blir det nödvändigt att bestämma destinationen för data baserat på de funktioner som utförs av processerna, utan att veta något om de processer som implementeras av dessa funktioner.
I praktiken, i stället för att tänka på en process som en slutdestination, antas varje dator ha en uppsättning målpunkter som kallas protokollportar. Varje port identifieras med ett positivt heltal (från 0 till 65535). I det här fallet tillhandahåller operativsystemet en kommunikationsmekanism som processer kan använda för att specificera porten som de körs på eller porten för åtkomst. Vanligtvis buffras portar och data som kommer till en specifik port innan processen är klar att ta emot kommer inte att gå förlorad: den kommer att stå i kö tills processen hämtar den.
För att bättre förstå portteknik, tänk dig att du har kommit till en bank för att göra en insättning. För att göra detta måste du gå till ett visst fönster, där operatören kommer att skapa dokumenten och du öppnar ett konto. I det här exemplet är banken en dator och bankoperatörerna är program som gör ett visst jobb, men fönstren är portarna och varje fönster i banken är ofta numrerat (1, 2,3 ...).
Detsamma gäller för portar, därför måste avsändaren känna till både den mottagande datorns IP -adress och portnumret på datorn för att kunna kommunicera med en port på en annan dator. Varje meddelande innehåller både portnumret på den dator som meddelandet är adresserat till och portnumret på källan till datorn som svaret ska komma till. Detta gör det möjligt att svara till avsändaren för varje process.
TCP / IP -portar numrerade 0 till 1023 är priviligerade och används av nätverkstjänster, som i sin tur körs med administratörsrättigheter (superanvändare). Till exempel använder Windows File and Folder Service port 139, men om den inte körs på din dator får du ett felmeddelande när du försöker komma åt den här tjänsten (det vill säga den här porten).
TCP / IP -portar 1023 till 65535 är oprivilegerade och används av klientprogram för att ta emot svar från servrar. Till exempel använder en användares webbläsare, vid åtkomst till webbservern, port 44587 på sin dator, men adresserar port 80 på webbservern. Vid mottagandet av begäran skickar webbservern ett svar till port 44587, som används av webbläsaren.
Hej alla idag jag ska berätta hur TCP -protokollet skiljer sig från UDP. Transportlagerprotokoll som följer IP i hierarkin används för att överföra data mellan applikationsprocesser i nätverksnoder. Ett datapaket som tas emot från en dator till en annan via Internet måste överföras till en bearbetningsprocess, och just för ett specifikt ändamål. Transportlagret tar ansvar för detta. Det finns två huvudprotokoll på detta lager - TCP och UDP.
Vad står TCP och UDP för
TCP- transportprotokoll för dataöverföring i TCP / IP -nätverk, som preliminärt upprättar en anslutning till nätverket.
UDP- ett transportprotokoll som överför datagrammeddelanden utan att behöva upprätta en anslutning i ett IP -nätverk.
Låt mig påminna dig om att båda protokollen fungerar vid transportlagret i OSI- eller TCP / IP -modellen, och det är mycket viktigt att förstå hur de skiljer sig åt.
Skillnad mellan TCP- och UDP -protokoll
Skillnaden mellan TCP och UDP är den så kallade "leveransgarantin". TCP kräver ett svar från klienten till vilket datapaketet levererades, en bekräftelse på leveransen och för detta behöver det en förutbestämd anslutning. TCP anses också vara tillförlitligt, medan UDP till och med har fått namnet "otillförlitligt datagramprotokoll. TCP eliminerar dataförlust, dubbelarbete och blandning av paket, förseningar. UDP gör allt detta och behöver ingen anslutning för att fungera. Processer som skickar data över UDP måste nöja sig med mottagna, även förlorande. TCP övervakar överbelastningen av anslutningen, UDP kontrollerar inget annat än integriteten hos de mottagna datagrammen.
Å andra sidan, på grund av sådan icke-selektivitet och bristande kontroll, levererar UDP datapaket (datagram) mycket snabbare, därför kan UDP betraktas som det optimala protokollet för applikationer som är utformade för hög bandbredd och snabbt utbyte. Dessa inkluderar nätverks- och webbläsarspel, samt strömmande videovisare och applikationer för videokommunikation (eller röst): från paketförlust, helt eller delvis, ändras ingenting, du behöver inte upprepa begäran, men nedladdningen går mycket snabbare. TCP -protokollet, som är mer tillförlitligt, används framgångsrikt även i e -postprogram, så att du inte bara kan styra trafik utan också längden på meddelandet och hastigheten på trafikutbyte.
Låt oss ta en titt på de viktigaste skillnaderna mellan tcp och udp.
- TCP garanterar leverans av datapaket oförändrat, sekvensfritt och förlustfritt, UDP garanterar ingenting.
- TCP räknar upp paket under transport, men UDP gör det inte
- TCP fungerar i full duplex -läge, i ett paket kan du skicka information och bekräfta mottagandet av det tidigare paketet.
- TCP kräver en på förhand upprättad anslutning, UDP kräver ingen anslutning, det är bara en dataström.
- UDP ger snabbare dataöverföringshastigheter.
- TCP är mer tillförlitlig och ger kontroll över kommunikationsprocessen.
- UDP är att föredra för program som spelar strömmande video, videotelefon och telefoni, nätverksspel.
- UPD innehåller inte dataåterställningsfunktioner
Exempel på UDP -applikationer, till exempel, överför DNS -zoner till Active Directory, där tillförlitlighet inte krävs. Mycket ofta ställer de gärna sådana frågor vid intervjuer, så det är mycket viktigt att känna till tcp- och udp -skillnaderna.
TCP- och UDP -rubriker
Låt oss ta en titt på hur rubrikerna i de två transportprotokollen ser ut, eftersom det också finns kardinala skillnader.
UDP -rubrik
- 16 bitars källport> Att ange källporten för UDP är valfritt. Om detta fält används kan mottagaren skicka ett svar till den här porten.
- 16 -bitars destinationsport> Destinationsportnummer
- 16 bitars UDP -längd> Meddelandelängd inklusive rubrik och data.
- 16 bitars kontrollsumma> Rubrik och datakontrollsum för verifiering
TCP -rubrik
- 16 -bitars källport> Källportnummer
- 16 -bitars destinationsport> Destinationsportnummer
- 32 bitars sekventiellt nummer> Det sekventiella numret genereras av källan och används av destinationen för att ordna om paket för att skapa det ursprungliga meddelandet och skicka ett kvitto till källan.
- 32 -bitars kvitteringsnummer> Om ACK -biten i kontrollfältet är inställd innehåller detta fält nästa förväntade sekvensnummer.
- 4 bitar headerlängd> Information om början av datapaketet.
- reserv> Reserverad för framtida bruk.
- 16 bitars kontrollsumma> Rubrik och data kontrollsumma; det avgör om paketet har skadats.
- 16 -bitars brådskande indikator> I detta fält tar målenheten emot information om brådskande data.
- Parametrar> Valfria värden som specificeras vid behov.
Fönsterns storlek gör att du kan spara trafik, överväga när dess värde är 1, här för varje svar som skickas väntar avsändaren på bekräftelse, inte helt rationellt.
Med en fönsterstorlek på 3 skickar avsändaren redan 3 ramar och förväntar sig från 4, vilket innebär att han har alla tre ramarna, +1.
Jag hoppas att du nu har en uppfattning om skillnaderna mellan tcp udp -protokollen.
Transportskikt
Transportlagrets uppgift är att överföra data mellan olika applikationer som körs på alla noder i nätverket. Efter att paketet har levererats med hjälp av IP -protokollet till den mottagande datorn måste data skickas till en särskild mottagningsprocess. Varje dator kan köra flera processer, och en applikation kan ha flera ingångspunkter som fungerar som destination för datapaket.
Paket som anländer till transportlagret i operativsystemet är organiserade i flera köer vid ingångarna till olika applikationer. Dessa ingångspunkter kallas portar i TCP / IP -terminologi.
Överföringskontrollprotokoll
Överföringskontrollprotokoll(TCP) (Transmission Control Protocol) är en obligatorisk protokollstandard TCP / IP, definierad i RFC 793, "Transmission Control Protocol (TCP)".
TCPär ett transportlagerprotokoll som tillhandahåller transport (överföring) av en dataström, med behovet att först upprätta en anslutning, och därigenom garantera förtroende för integriteten hos de mottagna data, och utför också en upprepad begäran om data vid dataförlust eller korruption. Dessutom övervakar TCP dubblettpaket och, om det upptäcks, dödar duplikatpaket.
Till skillnad från UDP garanterar det integriteten hos de överförda data och avsändarens bekräftelse av överföringsresultaten. Används vid överföring av filer, där förlusten av ett paket kan leda till att hela filen skadas.
TCP ger sin tillförlitlighet på grund av följande:
- Data från applikationen delas upp i block av en viss storlek, som kommer att skickas.
- När TCP skickar ett segment, ställer det in en timer och förväntar sig en ACK för det segmentet från fjärränden. Om ingen bekräftelse tas emot efter att tiden har gått, sänds segmentet om.
- När TCP tar emot data från fjärrsidan av anslutningen skickar den en bekräftelse. Denna bekräftelse skickas inte omedelbart utan försenas vanligtvis med en bråkdel av en sekund.
- TCP beräknar en kontrollsumma för dess rubrik och data. Detta är en kontrollsumma som beräknas vid anslutningens ändar, vars syfte är att upptäcka eventuella förändringar i data under överföringen. Om ett segment kommer med en ogiltig kontrollsumma tappar TCP den och ingen kvittering genereras. (Avsändaren förväntas ta timeout och skicka om.)
- Eftersom TCP -segment skickas som IP -datagram och IP -datagram kan komma slumpmässigt kan TCP -segment också komma slumpmässigt. Efter att ha mottagit data kan TCP ordna om det efter behov, vilket resulterar i att applikationen får data i rätt ordning.
- Eftersom IP -datagrammet kan kopieras, MÅSTE den mottagande TCP kasta den dubblerade datan.
- TCP styr flödet av data. Varje sida av en TCP -anslutning har ett specifikt buffertutrymme. Mottagande av TCP gör att fjärrsidan endast kan skicka data om mottagaren kan buffra den. Detta förhindrar att snabba värdar överflödar buffertarna för långsamma värdar.
- Sekvensnumret tjänar två syften:
- Om SYN -flaggan är inställd, är detta initialvärde för sekvensnumret ISN (Initial Sequence Number), och den första byte med data som kommer att överföras i nästa paket kommer att ha ett sekvensnummer lika med ISN + 1.
- Annars, om SYN inte är inställt, har den första byte med data som överförs i detta paket detta sekvensnummer.
- Kvittensnummer - om ACK -flaggan är inställd innehåller detta fält det sekvensnummer som förväntas av mottagaren nästa gång. Märker detta segment som mottagningsbevis.
- Rubriklängd - anges i 32 -bitars ord.
- Fönsterstorlek är antalet byte som mottagaren är redo att acceptera utan bekräftelse.
- Checksum - Innehåller pseudohuvud, rubrik och data.
- Urgent Pointer - indikerar den sista byten av brådskande data som måste besvaras omedelbart.
- URG - brådskande flagga, inkluderar fältet "Brådskande indikator", om = 0 ignoreras fältet.
- ACK - bekräftelseflagga, inkluderar fältet "Kvittensnummer, om = 0 ignoreras fältet.
- PSH - flaggan kräver en push -operation, TCP -modulen måste skicka paketet omedelbart till programmet.
- RST - anslutningsavbrottsflagga, används för att avvisa anslutningen
- SYN - flagga för synkronisering av sekvensnummer, som används vid upprättande av en anslutning.
- FIN - slutet av överföringsflaggan från avsändarens sida
Tänk på rubrikstrukturen TCP med en Wireshark -nätverksanalysator:
TCP -portar
Eftersom flera program kan köras på samma dator används den unika identifieraren för varje program eller portnummer för att leverera ett TCP -paket till ett specifikt program.
Portnummerär ett villkorat 16-bitars tal från 1 till 65535 som anger vilket program paketet är avsett för.
TCP -portar använder en specifik programport för att leverera data som överförs med hjälp av TCP (Transmission Control Protocol). TCP -portar är mer komplexa och fungerar annorlunda än UDP -portar. Medan en UDP -port fungerar som en enda meddelandekö och som en ingångspunkt för en UDP -anslutning, är den ultimata ingångspunkten för alla TCP -anslutningar en unik anslutning. Varje TCP -anslutning identifieras unikt med två ingångspunkter.
Varje enskild TCP -serverport kan erbjuda flera anslutningar som ska delas eftersom alla TCP -anslutningar identifieras med två värden: en IP -adress och en TCP -port (uttag).
Alla TCP -portnummer mindre än 1024 är reserverade och registrerade hos Internet Assigned Numbers Authority (IANA).
UDP- och TCP -portnummer överlappar inte.
TCP-program använder reserverade eller välkända portnummer, som visas i följande bild.
Upprätta en TCP -anslutning
Låt oss nu ta en titt på hur TCP -anslutningar upprättas. Anta att en process som körs på en värd vill upprätta en anslutning till en annan process på en annan värd. Kom ihåg att värden som initierar anslutningen kallas "klienten" medan den andra noden kallas "servern".
Innan man börjar överföra data, enligt TCP -protokollet, måste parterna upprätta en anslutning. Anslutningen upprättas i tre steg (TCP "tre gånger handslag" -process).
- Begäraren (vanligtvis kallad klienten) skickar ett SYN -segment som anger portnumret på servern som klienten vill ansluta till och klientens ursprungliga sekvensnummer (ISN).
- Servern svarar med sitt SYN -segment som innehåller det ursprungliga serversekvensnumret. Servern bekräftar också ankomsten av klientens SYN med hjälp av en ACK (ISN + 1). Ett sekvensnummer används per SYN.
- Klienten måste bekräfta ankomsten av en SYN från servern med dess SYN som innehåller klientens ursprungliga sekvensnummer (ISN + 1) och använda en ACK (ISN + 1). SYN -biten är inställd på 0 eftersom anslutningen är upprättad.
Efter att ha upprättat en TCP -anslutning kan dessa två värdar överföra data till varandra, eftersom TCP -anslutningen är full duplex kan de överföra data samtidigt.
Källor: Wikipedia, Microsoft, portscan.ru
Hur vet jag vilka portar som är öppna på min dator?
- För Windows: Start → "cmd" → Kör som administratör → "netstat -bn"
- Antivirusprogram som Avast har möjlighet att visa aktiva portar i brandväggen: Verktyg -> Brandvägg -> Nätverksanslutningar.
Även användbara netstat -kommandon:
Om du vill visa både Ethernet -statistiken och statistiken för alla protokoll skriver du följande kommando:
netstat -e -s
Om du vill visa statistiken för endast TCP- och UDP -protokollen skriver du följande kommando:
netstat -s -p tcp udp
Om du vill visa aktiva TCP -anslutningar och process -ID: n var 5: e sekund skriver du följande kommando:
nbtstat -o 5
Om du vill visa aktiva TCP -anslutningar och process -ID: n med hjälp av numerisk form skriver du följande kommando:
nbtstat -n -o
Följande statusvärden är giltiga för TCP -uttag:
STÄNGD | Stängd. Uttaget används inte. |
LYSSNA (LYSSNA) | Väntar på inkommande anslutningar. |
SYN_SENT | Det försöker aktivt upprätta en anslutning. |
SYN_RECEIVED | Initial anslutningssynkronisering pågår. |
ETABLERADE | Anslutningen har upprättats. |
STÄNG VÄNTA | Den bortre änden har kopplats bort; väntar på att uttaget stängs. |
FIN_WAIT_1 | Uttaget är stängt; koppla bort anslutningen. |
STÄNGNING | Uttaget stängs, sedan kopplas fjärrsidan bort; Väntar på bekräftelse. |
LAST_ACK | Fjärrsidan kopplad från, sedan stängs uttaget; Väntar på bekräftelse. |
FIN_WAIT_2 | Uttaget är stängt; väntar på att fjärrsidan ska kopplas bort. |
TID VÄNTA | Socket är stängt, men väntar på att paket fortfarande finns på nätverket för bearbetning |
Lista över de mest använda portarna
№ | Hamn | Protokoll | Beskrivning |
---|---|---|---|
1 | 20 | FTP -data | File Transfer Protocol - filöverföringsprotokoll. Dataport. |
2 | 21 | FTP -kontroll | File Transfer Protocol - filöverföringsprotokoll. Hamn för lag. |
3 | 22 | SSH | Secure SHell är ett "säkert skal". Fjärrstyrningsprotokoll för operativsystem. |
4 | 23 | telnet | TErminaL -nätverk. Ett protokoll för att implementera ett textgränssnitt över ett nätverk. |
5 | 25 | SMTP | Simple Mail Transfer Protocol är ett enkelt e -postöverföringsprotokoll. |
6 | 42 | VINNAR | Windows Internet Name Service. Tjänst för att mappa NetBIOS -datornamn till värd -IP -adresser. |
7 | 43 | Vem är | "Vem är". Ett protokoll för att få registreringsdata om ägare till domännamn och IP -adresser. |
8 | 53 | DNS | Domain Name System - domännamnssystem. |
9 | 67 | DHCP | Dynamic Host Configuration Protocol - dynamiskt värdkonfigurationsprotokoll. Skaffa dynamisk IP. |
10 | 69 | TFTP | Trivial File Transfer Protocol är ett enkelt protokoll för filöverföring. |
11 | 80 | HTTP / webb | HyperText Transfer Protocol - Hypertext transfer protocol. |
12 | 110 | POP3 | Post Office Protocol Version 3 - Protokoll för att ta emot e -post, version 3. |
13 | 115 | SFTP | SSH -filöverföringsprotokoll. Säkert dataöverföringsprotokoll. |
14 | 123 | NTP | Network Time Protocol. Ett protokoll för synkronisering av en dators interna klocka. |
15 | 137 | NetBIOS | Basic Basic Input / Output System. Ett protokoll för att tillhandahålla nätverksinmatning / utdata. Namntjänst. |
16 | 138 | NetBIOS | Basic Basic Input / Output System. Ett protokoll för att tillhandahålla nätverksinmatning / utdata. Anslutningstjänst. |
17 | 139 | NetBIOS | Basic Basic Input / Output System. Ett protokoll för att tillhandahålla nätverksinmatning / utdata. Sessionstjänst. |
18 | 143 | IMAP | Internetmeddelandeåtkomstprotokoll. Ett applikationslagerprotokoll för åtkomst till e-post. |
19 | 161 | SNMP | Simple Network Management Protocol är ett enkelt nätverkshanteringsprotokoll. Enhetshantering. |
20 | 179 | BGP | Border Gateway Protocol, border gateway protocol. Dynamiskt routingsprotokoll. |
21 | 443 | HTTPS | HyperText Transfer Protocol Secure) är ett HTTP -protokoll som stöder kryptering. |
22 | 445 | SMB | Servermeddelandeblock. Fjärråtkomstprotokoll för filer, skrivare och nätverksresurser. |
23 | 514 | Syslog | System-logg. Protokoll för att skicka och registrera meddelanden om pågående systemhändelser. |
24 | 515 | LPD | Line Printer Daemon. Fjärrutskriftsprotokoll på skrivaren. |
25 | 993 | IMAP SSL | IMAP -protokoll som stöder SSL -kryptering. |
26 | 995 | POP3 SSL | POP3 -protokoll som stöder SSL -kryptering. |
27 | 1080 | STRUMPOR | SOCKet Secure. Ett protokoll för att få säker anonym åtkomst. |
28 | 1194 | OpenVPN | Open source -implementering av Virtual Private Network (VPN) -teknologi. |
29 | 1433 | MSSQL | Microsoft SQL Server är ett databashanteringssystem. Basåtkomstport. |
30 | 1702 | L2TP (IPsec) | Supportprotokoll för virtuellt privat nätverk. Samt en uppsättning protokoll för att säkerställa dataskydd. |
31 | 1723 | PPTP | Ett tunnelprotokoll för säker anslutning med en punkt-till-punkt-server. |
32 | 3128 | Ombud | För närvarande används porten ofta av proxyservrar. |
33 | 3268 | LDAP | Lightweight Directory Access Protocol - lätt katalogåtkomstprotokoll (katalogtjänst). |
34 | 3306 | MySQL | Tillgång till MySQL -databaser. |
35 | 3389 | RDP | Remote Desktop Protocol är ett fjärrskrivbordsprotokoll för Windows. |
36 | 5432 | PostgreSQL | Tillgång till PostgreSQL -databaser. |
37 | 5060 | SMUTTA | Ett protokoll för att etablera en session och överföra multimediainnehåll. |
38 | 5900 | VNC | Virtual Network Computing är ett system för fjärråtkomst till ett datorbord. |
39 | 5938 | TeamViewer | TeamViewer är ett system för fjärrstyrd datorstyrning och datautbyte. |
40 | 8080 | HTTP / webb | Alternativ port för HTTP -protokollet. Ibland används av proxyservrar. |
41 | 10000 | NDMP | Populär port: Webmin, SIP Voice, VPN IPSec över TCP. |
42 | 20000 | DNP | Kort portlista: