Protocolul TCP. Ce sunt porturile de rețea de calculatoare? Porturi tcp standard

porturi TCP/IP

Există două tipuri de schimb de date computer-la-computer - tunete de dateŞi sesiuni. Datagrama este un mesaj care nu necesită confirmarea primirii de la partea care primește, iar dacă o astfel de confirmare este necesară, destinatarul trebuie să trimită el însuși un mesaj special. Pentru a face schimb de date în acest fel, părțile care primesc și care transmit trebuie să respecte cu strictețe un anumit protocol pentru a evita pierderea informațiilor. Fiecare datagramă este un mesaj independent, iar dacă există mai multe datagrame pe LAN, livrarea lor către destinatar, în general, nu este garantată. În acest caz, o datagramă face de obicei parte dintr-un mesaj, iar pe majoritatea rețelelor LAN viteza de transmisie a datagramelor este mult mai mare decât a mesajelor din sesiuni.

ÎN sesiune se presupune că se creează o conexiune logică pentru schimbul de mesaje între calculatoare și se garantează primirea mesajelor. În timp ce datagramele pot fi transmise în orice moment, într-o sesiune, sesiunea se încheie înainte ca mesajul să fie transmis, iar sesiunea trebuie închisă când schimbul de date este complet.

Sistemele de operare ale majorității computerelor acceptă modul de multiprogramare, adică mai multe programe rulează simultan (mai multe procese rulează în paralel). Cu un anumit grad de acuratețe, putem spune că procesul este destinația finală a mesajului. Cu toate acestea, deoarece procesele sunt create și terminate dinamic, expeditorul are rareori suficiente informații pentru a identifica procesul pe alt computer. Prin urmare, devine necesar să se determine destinația datelor pe baza funcțiilor îndeplinite de procese, fără a ști nimic despre procesele care sunt implementate de aceste funcții.

În practică, mai degrabă decât să se gândească la un proces ca o destinație finală, se crede că fiecare computer are un set de destinații numite porturi de protocol. Fiecare port este identificat printr-un număr întreg pozitiv (de la 0 la 65535). În acest caz, sistemul de operare oferă un mecanism de comunicare utilizat de procese pentru a indica portul pe care rulează sau portul la care au nevoie de acces. De obicei, porturile sunt stocate în tampon, iar datele care ajung la un anumit port înainte ca un proces să fie gata să-l primească nu se vor pierde: vor fi puse în coadă până când procesul le preia.

Pentru a înțelege mai bine tehnologia portuară, imaginați-vă că mergeți la o bancă pentru a face un depozit. Pentru a face acest lucru, trebuie să mergeți la o anumită fereastră, unde operatorul va completa documentele și veți deschide un cont. În acest exemplu, banca reprezintă un computer, iar operatorii băncii sunt programe care efectuează lucrări specifice. Dar ferestrele sunt porturile, iar fiecare fereastră din bancă este adesea numerotată (1, 2,3 ...).

Același lucru este valabil și pentru porturi, prin urmare, pentru a comunica cu un port de pe alt computer, expeditorul trebuie să cunoască atât adresa IP a computerului destinatar, cât și numărul portului de pe computer. Fiecare mesaj conține atât numărul portului computerului către care este adresat mesajul, cât și numărul portului sursă al computerului către care trebuie trimis răspunsul. Acest lucru face posibil să se răspundă expeditorului pentru fiecare proces.

Porturile TCP/IP numerotate de la 0 la 1023 sunt privilegiate și sunt utilizate de serviciile de rețea, care, la rândul lor, rulează cu privilegii de administrator (super utilizator). De exemplu, serviciul Windows File and Folder Sharing folosește portul 139, dar dacă nu rulează pe computer, atunci când încercați să accesați acest serviciu (adică acest port), veți primi un mesaj de eroare.

Porturile TCP/IP de la 1023 la 65535 nu sunt privilegiate și sunt utilizate de programele client pentru a primi răspunsuri de la servere. De exemplu, browserul web al unui utilizator, atunci când accesează un server web, utilizează portul 44587 al computerului său, dar accesează portul 80 al serverului web. După ce a primit cererea, serverul web trimite un răspuns la portul 44587, care este utilizat de browserul web.

Despre porturile de rețea de calculatoare.

Articolul descrie clar ce este un port de sistem, de ce programele au nevoie de el, cum și ce dispozitive folosesc porturile pentru a comunica în rețea și ce porturi au de-a face cu securitatea datelor dvs. articol introductiv; Vom vorbi altă dată despre cum să monitorizăm porturile de sistem, să configurați și să scanați corect, evitând erorile și înțelegerea ce se întâmplă.

Porturile de rețea de calculatoare: care sunt acestea?

De îndată ce calculatoarele sunt pe cale să facă schimb de informații prin rețea, ele deschid imediat portaluri de informații pentru schimb. În arhitectura de rețea, comunicarea între ORICE două sisteme se bazează pe cinci principii imuabile. Astfel încât datele „zboară” de la punct O la obiect B, trebuie cunoscut:

  • Adresa IP a sursei de informații
  • Adresa IP a destinatarului
  • protocol prin care dispozitivele vor comunica
  • portul de transmisie sursă
  • și portul de destinație utilizat de protocolul de transport RFC793

Port- acesta este un fel de extensie virtuală, o completare la adresa rețelei (ca o adăugare în numere la numele străzii sau casei la adresa unde locuiești). Poștașul va veni pe strada ta, dar nu va preda scrisoarea - nu știe cui, pentru că nu știe numărul apartamentului. Deci informațiile vor ajunge la computerul dvs. prin IP, dar fără numărul de port adecvat, informațiile nu vor ajunge la computer. Computerul pur și simplu nu va înțelege cum să-l proceseze, folosind ce aplicație. Porturi de rețea de calculatoare- acestea sunt căi între servicii și care rulează în sistemul de operare instalat pe computer și procesele mamă/sora pe computerele gazdă, care se află uneori la mii de kilometri distanță de tine.

Apropo, . Aceștia sunt conectori fizici care, spre deosebire de cei descriși, pot fi atinși. Dar funcția lor este în esență aceeași: toate porturile sunt proiectate pentru a primi informații de la alte dispozitive.

Protocoalele de transport (cele mai frecvente și utilizate sunt TCP și UDP) pătrund în computer, folosind în mesaj, printre altele, numere din numărul total de porturi. Când o aplicație dorește să vorbească cu un alt dispozitiv, solicită direct sistemului de operare local să deschidă un canal pentru transmisie. Aplicațiile care pot comunica folosind ambele protocoale (UDP și TCP) pot folosi același port pentru a face acest lucru, dar această condiție nu este necesară.

Ce sunt porturile pentru computer: câte sunt?

Numărul exact de porturi de pe un computer este 65 535 . Și au propria lor gradație. Deci, porturi cu numere până la 1023 Sistemele de operare Linux și Unix-like sunt considerate sisteme „critice” pentru operațiunile de rețea, astfel încât accesul la acestea și serviciile asociate cu acestea necesită adesea rădăcină drepturi. Windows le consideră, de asemenea, cele de sistem și le monitorizează îndeaproape.

Porturi din 1024 la 49151 sunt marcate „gata pentru înregistrare”. Aceasta înseamnă că aceste porturi sunt rezervate sau pot fi rezervate pentru anumite servicii. Din fericire sau din păcate, aceștia nu sunt alocați acestor servicii prin reguli puternice, dar pot oferi o cheie pentru a recunoaște un program care rulează pe partea gazdă. Restul (începând de la 49152 ) porturile nu sunt înregistrate și sunt utilizate la latitudinea utilizatorilor sistemului de operare și sunt numite porturi „dinamice”. Așadar, să ne amintim ce port îi este dedicat și cărui serviciu este adesea pur și simplu inutil (cel puțin astăzi; totuși, situația se poate schimba). Dar există o listă de porturi care au fost folosite de anumite servicii „din timpuri imemoriale”:

20 : date FTP
21 : control FTP
22 : SSH
23 : Telnet<= незащищённый, так что не рекомендуется к использованию
25 : SMTP
43 : WHOIS
53 : servicii DNS
67 : serviciu DHCP
68 : client DHCP
80 : trafic HTTP<= обычный веб трафик
110 : poștal POP3
113 : servicii de autentificare în rețele IRC
143 : e-mail IMAP
161 : SNMP
194 : IRC
389 :LDAP
443 : HTTPS<= защищённый сетевой трафик
587 : SMTP<= добавление сообщений
631 : Port CUPS pentru imprimante virtuale.

Mai este ceva pe care trebuie să știți când aflați ce sunt porturile de computer. Sunt termeni speciali care caracterizează starea porturilor în sensul schimbului de date în momentul actual. Aşa:

  • Port– localizarea rețelei în sistemul de operare cu atribuirea unei valori numerice specifice pentru schimbul de informații prin protocoale adecvate
  • Prize de internet- sau doar prize– descriptori de fișiere care specifică adresa IP și numărul portului asociat plus un protocol special de transmisie care va funcționa cu date
  • Legare– procesul de utilizare a unei prize de Internet de către un serviciu sau serviciu la transmiterea și primirea fișierelor
  • Ascultare– o încercare de a contacta un serviciu sau un serviciu cu un port/protocol/adresă IP sau o combinație a acestor componente ale rețelei de identificare a sistemului pentru a aștepta solicitările de la clientul serviciului
  • – verificarea stării porturilor pentru a recunoaște disponibilitatea acestora pentru acțiuni ulterioare

Ce sunt porturile pentru computer? Vrei să-i admiri?

Sunteți familiarizat cu lista de porturi comune, dar unele servicii pot folosi un port care nu le este atribuit implicit. Sau, ceea ce nu este neobișnuit, porturile deschise sunt folosite ca ușă în spate pentru un atacator. Deci, dacă decideți să modificați singur setările portului, trebuie să vă asigurați că clientul și serverul care respectă legea se vor găsi unul pe celălalt. În caz contrar, ar trebui să lăsați Windows să blocheze portul, să configureze blocarea în router sau să vă bazați pe furnizor, care blochează adesea porturile la sfârșitul zilei, fără a întreba în mod specific clientela.

Puteți vedea pe computer chiar acum ce porturi fac ce. Introduceți terminalul:

mai puțin /etc/services

și derulați cu mouse-ul până la sfârșit. Iată-i în toată gloria lor.

Kali Linux este util în toate sensurile nmap poate afișa și o listă a acestora:

Mai puține /usr/share/nmap/nmap-services

Dacă citiți acest articol pe Windows, pentru a vedea porturile deschise în prezent, rulați consola de comandă ca administrator cmdși rulați comanda în ea:

Netstat -a

Cu toate acestea, porturi mai extinse care funcționează în Windows vă vor fi deschise printr-un mic program numit Analizor de proces și porturi, care poate fi descărcat cu ușurință online. Acesta va explica simplu și clar ce porturi sunt deschise în prezent și ce programe ascultă aceste porturi. Iată una dintre filele de utilitate:

Folosind programul, puteți verifica cu ușurință locația acestui proces în sistem și puteți determina cât de sigur este.

Porturi pentru computer și securitatea rețelei

Programele și serviciile descrise aici vă permit să vedeți porturile care sunt deschise în mod specific în sistemul dvs. de operare(Windows și Linux) pentru unele programe care rulează deja pe computer. Totuși, rețineți că în sistemul de transfer de informații dintre computerul dvs. și un server web îndepărtat de undeva în Olanda, există încă multe dispozitive care filtrează traficul mai serios, inclusiv porturile de monitorizare (apropo, inclusiv cel din routerul camerei dvs.). Nu a ta, desigur. Dar depinde de aceste servere să decidă dacă orice date intră în Windows. De asemenea, are o mână de lucru și furnizorul dvs., căruia îi plătiți bani pentru accesul la rețea, blocând porturi din motive de securitate sau pentru a preveni activitatea inutilă în rețea (ce se întâmplă dacă doriți să vă configurați propriul server web acasă? - va fi" t funcționează).

De ce se face asta? Permiteți-mi să continui analogia cu casele și străzile. Imaginați-vă că v-ați decis să cumpărați un garaj pentru mașina dvs. (calculator) la o cooperativă din apropiere. Primul lucru de făcut este să protejați și să întăriți incapacitatea de a intra în incintă: instalați uși bune și instalați încuietori fiabile (închideți porturile). Dar ce altceva poți face? Cineva setează o alarmă (scanere speciale de rețea pentru a verifica starea porturilor). Economisiți bani și instalați un gard suplimentar cu o poartă (router cuîncorporat firewall) pentru a putea parca o motocicletă înăuntru (comprimat). Și pentru ca gazonul să nu fie stricat de camioane, la rândul ei, placa (furnizor) a instalat o barieră automată (reţea anti- filtre): totul pare a fi deschis, dar un străin nu va trece. Și așa mai departe…

Cu toate acestea, dacă încă urmează să aflați cum este vizibil computerul dvs. din rețeaua globală (de exemplu, pentru atacatorii care încearcă să vă testeze puterea), metodele descrise aici sunt complet nepotrivite. Vom dezvolta acest subiect în articolele viitoare.

Citiți: 2.419

Porturile de rețea pot oferi informații vitale despre aplicațiile care accesează computerele prin rețea. Cunoscând aplicațiile care folosesc rețeaua și porturile de rețea corespunzătoare, puteți crea reguli de firewall precise și puteți configura computerele gazdă pentru a permite doar trafic util. Prin construirea unui profil de rețea și implementarea instrumentelor pentru a recunoaște traficul de rețea, puteți detecta mai eficient intrușii - uneori pur și simplu analizând traficul de rețea pe care îl generează. Am început să luăm în considerare acest subiect în prima parte a articolului publicat în numărul precedent al revistei. Acesta a furnizat informații de bază despre porturile TCP/IP ca bază pentru securitatea rețelei. Partea 2 va descrie câteva metode de rețea și gazdă care pot fi utilizate pentru a identifica aplicațiile care ascultă într-o rețea. Mai târziu în articol vom vorbi despre cum să evaluăm traficul care trece prin rețea.

Blocarea aplicațiilor de rețea

Suprafața de atac al rețelei este un termen comun pentru a descrie vulnerabilitatea rețelei. Multe atacuri de rețea au loc prin aplicații vulnerabile, iar suprafața de atac poate fi redusă semnificativ prin reducerea numărului de aplicații active în rețea. Cu alte cuvinte, ar trebui să dezactivați serviciile neutilizate, să instalați un firewall pe sistemul dedicat pentru a verifica legitimitatea traficului și să creați o listă cuprinzătoare de control al accesului (ACL) pentru firewall-ul din perimetrul rețelei.

Fiecare port de rețea deschis reprezintă o aplicație care ascultă în rețea. Suprafața de atac a fiecărui server conectat la rețea poate fi redusă prin dezactivarea tuturor serviciilor și aplicațiilor de rețea neesențiale. Windows Server 2003 este superior versiunilor anterioare ale sistemului de operare deoarece permite mai puține servicii de rețea în mod implicit. Cu toate acestea, auditarea este încă necesară pentru a detecta aplicațiile nou instalate și modificările de configurare care deschid porturi de rețea inutile.

Fiecare port deschis este o ușă în spate potențială pentru atacatorii care exploatează spații din aplicația gazdă sau accesează în mod secret aplicația cu numele și parola altui utilizator (sau folosesc o altă metodă de autentificare legitimă). Oricum, un prim pas important pentru a vă proteja rețeaua este să dezactivați pur și simplu aplicațiile de rețea neutilizate.

Scanare porturi

Scanarea portului este procesul de detectare a aplicațiilor care ascultă prin sondarea activă a porturilor de rețea ale unui computer sau alt dispozitiv de rețea. Posibilitatea de a citi rezultatele scanării și de a compara rapoartele de rețea cu rezultatele sondajului portului gazdă vă permite să obțineți o imagine clară a traficului care circulă prin rețea. Cunoașterea topologiei rețelei este importantă în pregătirea unui plan strategic pentru scanarea unor zone specifice. De exemplu, scanând o serie de adrese IP externe, puteți aduna date valoroase despre un atacator de pe Internet. Prin urmare, ar trebui să vă scanați rețeaua mai des și să închideți toate porturile de rețea inutile.

Scanarea portului firewall extern poate detecta toate serviciile care răspund (cum ar fi web sau e-mail) găzduite pe serverele interne. Aceste servere ar trebui, de asemenea, protejate. Configurați un scanner de porturi familiar (de exemplu, Network Mapper - Nmap) pentru a scana grupul dorit de porturi UDP sau TCP. De obicei, scanarea portului TCP este mai fiabilă decât scanarea UDP datorită feedback-ului mai profund din protocoalele TCP orientate spre conexiune. Există versiuni de Nmap atât pentru Windows, cât și pentru Unix. Pornirea unei scanări de bază este ușoară, deși programul oferă funcții mult mai avansate. Pentru a găsi porturi deschise pe computerul de testare, am rulat comanda

Nmap 192.168.0.161

Ecranul 1 arată rezultatele unei sesiuni de scanare - în acest caz, un computer Windows 2003 într-o configurație standard. Datele colectate din scanarea portului arată că există șase porturi TCP deschise.

Ecranul 1: Sesiune de scanare Nmap de bază
  • Portul 135 este utilizat de caracteristica de mapare a punctelor terminale RPC găsită în multe tehnologii Windows - cum ar fi aplicațiile COM/DCOM, DFS, înregistrarea evenimentelor, replicarea fișierelor, așteptarea mesajelor și Microsoft Outlook. Acest port ar trebui să fie blocat de firewall-ul perimetrului rețelei, dar este dificil să îl blocați și să mențineți în continuare funcționalitatea Windows.
  • Portul 139 este utilizat de serviciul de sesiune NetBIOS, care activează Browserul Găsește alte computere, Serviciile de partajare a fișierelor, Conectarea la rețea și serviciul Server. Este greu de închis, la fel ca portul 135.
  • Portul 445 este folosit de Windows pentru partajarea fișierelor. Pentru a închide acest port, trebuie să blocați Partajarea fișierelor și a imprimantei pentru rețelele Microsoft. Închiderea acestui port nu împiedică computerul să se conecteze la alte resurse de la distanță; cu toate acestea, alte computere nu se vor putea conecta la acest sistem.
  • Porturile 1025 și 1026 sunt deschise dinamic și sunt utilizate de alte procese de sistem Windows, în special de diverse servicii.
  • Portul 3389 este folosit de Desktop la distanță, care nu este activat implicit, dar este activ pe computerul meu de testare. Pentru a închide portul, accesați fila La distanță din caseta de dialog Proprietăți sistem și debifați caseta de selectare Permite utilizatorilor să se conecteze de la distanță la acest computer.

Asigurați-vă că căutați porturi UDP deschise și închideți pe cele inutile. Programul de scanare arată porturile deschise ale computerului care sunt vizibile din rețea. Rezultate similare pot fi obținute folosind instrumente situate pe sistemul gazdă.

Scanare gazdă

Pe lângă utilizarea unui scanner de porturi de rețea, porturile deschise de pe sistemul gazdă pot fi detectate folosind următoarea comandă (rulate pe sistemul gazdă):

Netstat -an

Această comandă funcționează atât pe Windows, cât și pe UNIX. Netstat oferă o listă de porturi active pe un computer. Pe Windows 2003 Windows XP, trebuie să adăugați opțiunea -o pentru a obține identificatorul de program (PID) corespunzător. Figura 2 arată ieșirea Netstat pentru același computer care a fost scanat anterior. Vă rugăm să rețineți că mai multe porturi care erau active anterior sunt închise.

Audit jurnal de firewall

O altă modalitate utilă de a detecta aplicațiile de rețea care trimit sau primesc date prin rețea este colectarea și analizarea mai multor date în jurnalul de firewall. Este puțin probabil ca intrările de respingere care furnizează informații de la front-end-ul firewall-ului să fie utile din cauza „traficului de zgomot” (de exemplu, de la viermi, scanere, testări ping) care blochează internetul. Dar dacă înregistrați pachetele permise din interfața internă, puteți vedea tot traficul de rețea de intrare și de ieșire.

Pentru a vedea datele brute de trafic din rețeaua dvs., puteți instala un analizor de rețea care se conectează la rețea și înregistrează toate pachetele de rețea detectate. Cel mai utilizat analizor de rețea gratuit este Tcpdump pentru UNIX (versiunea Windows se numește Windump), care este ușor de instalat pe computer. După instalarea programului, ar trebui să îl configurați să funcționeze în modul de primire a tuturor pachetelor de rețea pentru a înregistra tot traficul, apoi conectați-l la un monitor de port de pe comutatorul de rețea și monitorizați tot traficul care trece prin rețea. Configurarea unui monitor de port va fi discutată mai jos. Tcpdump este un program extrem de flexibil care poate fi folosit pentru a vizualiza traficul de rețea folosind filtre specializate și pentru a afișa doar informații despre adresele IP și porturile sau toate pachetele. Este dificil să vizualizați depozitele de rețea pe rețele mari fără ajutorul filtrelor adecvate, dar trebuie avut grijă să nu pierdeți date importante.

Combinarea componentelor

Până acum, am analizat diverse metode și instrumente care pot fi utilizate pentru a detecta aplicațiile care utilizează rețeaua. Este timpul să le combinați și să arătați cum să determinați porturile de rețea deschise. Este uimitor cât de vorbăreț sunt computerele în rețea! În primul rând, este recomandat să citiți documentul Microsoft „Prezentare generală a serviciilor și cerințele portului de rețea pentru sistemul Windows Server” ( http://support.microsoft.com/default.aspx?scid=kb;en-us;832017), care listează protocoalele (TCP și UDP) și numerele de porturi utilizate de aplicații și de majoritatea serviciilor principale Windows Server. Acest document descrie aceste servicii și porturile de rețea asociate pe care le utilizează. Vă recomandăm să descărcați și să imprimați acest ghid de referință util pentru administratorii de rețea Windows.

Configurarea unui analizor de rețea

S-a remarcat anterior că o modalitate de a determina porturile utilizate de aplicații este de a monitoriza traficul dintre computere folosind un analizor de rețea. Pentru a vedea tot traficul, trebuie să conectați un analizor de rețea la un hub sau un monitor de port de pe switch. Fiecare port de pe un hub vede tot traficul de la fiecare computer conectat la acel hub, dar hub-urile sunt o tehnologie învechită și majoritatea companiilor le înlocuiesc cu switch-uri, care oferă performanțe bune, dar sunt greu de analizat: fiecare port de switch acceptă doar traficul destinat un computer conectat la hub la acest port. Pentru a analiza întreaga rețea, trebuie să monitorizați traficul trimis către fiecare port de comutare.

Acest lucru necesită configurarea unui monitor de port (diferiți furnizori îl numesc port span sau port în oglindă) pe comutator. Instalarea unui monitor de port pe un switch Cisco Catalyst de la Cisco Systems este ușoară. Trebuie să vă înregistrați pe switch și să activați modul Enable, apoi să mergeți la configurarea modului terminal și să introduceți numărul de interfață al portului switch-ului către care ar trebui să fie trimis tot traficul monitorizat. În cele din urmă, trebuie să specificați toate porturile monitorizate. De exemplu, următoarele comenzi monitorizează trei porturi Fast Ethernet și redirecționează o copie a traficului către portul 24.

Interfață FastEthernet0/24 porturi monitor FastEthernet0/1 port FastEthernet0/2 monitor porturi FastEthernet0/3 end

În acest exemplu, un analizor de rețea conectat la portul 24 va vizualiza tot traficul de ieșire și de intrare de la computerele conectate la primele trei porturi ale comutatorului. Pentru a vizualiza configurația creată, introduceți comanda

Scrieți memoria

Analiza inițială

Să ne uităm la un exemplu de analiză a datelor care trec printr-o rețea. Dacă utilizați un computer Linux pentru analiza rețelei, puteți obține o înțelegere cuprinzătoare a tipului și frecvenței pachetelor din rețea folosind un program precum IPTraf în modul Statistic. Detaliile de trafic pot fi găsite folosind programul Tcpdump.

Stratul de transport

Sarcina stratului de transport este de a transfera date între diverse aplicații care rulează pe toate nodurile rețelei. Odată ce pachetul este livrat prin protocol IP către computerul receptor, datele trebuie trimise către un proces special destinatar. Fiecare computer poate rula mai multe procese, iar o aplicație poate avea mai multe puncte de intrare, acționând ca destinație pentru pachetele de date.

Pachetele care ajung la nivelul de transport al sistemului de operare sunt organizate în mai multe cozi la punctele de intrare ale diferitelor aplicații. În terminologia TCP/IP, aceste puncte de intrare sunt numite porturi.

Protocolul de control al transmisiei

Protocolul de control al transmisiei(TCP) (Transmission Control Protocol) - este un standard de protocol obligatoriu TCP/IP, definit în standardul RFC 793, „Transmission Control Protocol (TCP)”.

TCP este un protocol de nivel de transport care asigură transportul (transmiterea) unui flux de date, cu necesitatea stabilirii mai întâi a unei conexiuni, garantând astfel încrederea în integritatea datelor primite și, de asemenea, efectuează o solicitare repetată de date în cazul pierderii datelor. sau corupție. În plus, protocolul TCP monitorizează pachetele duplicate și, dacă este detectat, distruge pachetele duplicate.

Spre deosebire de protocol UDP garantează integritatea datelor transmise și confirmarea de către expeditor a rezultatelor transferului. Folosit în transferurile de fișiere în care pierderea unui pachet poate deteriora întregul fișier.

TCP își atinge fiabilitatea prin:

  • Datele din aplicație sunt împărțite în blocuri de o anumită dimensiune care vor fi trimise.
  • Când TCP trimite un segment, setează un cronometru, așteptând o confirmare a acelui segment să sosească de la capătul de la distanță. Dacă nu se primește o confirmare după o perioadă de timp, segmentul este retransmis.
  • Când TCP primește date de la capătul de la distanță al conexiunii, trimite o confirmare. Această confirmare nu este trimisă imediat, dar este de obicei amânată cu o fracțiune de secundă.
  • TCP calculează o sumă de control pentru antetul și datele sale. Aceasta este o sumă de control calculată la capetele conexiunii, al cărei scop este de a detecta orice modificare a datelor în timpul transmisiei. Dacă un segment ajunge cu o sumă de control incorectă, TCP îl renunță și nu este generată nicio confirmare. (Se așteaptă ca expeditorul să expire și să retransmită.)
  • Deoarece segmentele TCP sunt transmise ca datagrame IP, iar datagramele IP pot ajunge aleatoriu, segmentele TCP pot ajunge, de asemenea, aleatoriu. După primirea datelor, TCP le poate resecvența după cum este necesar, astfel încât aplicația să primească datele în ordinea corectă.
  • Deoarece o datagramă IP poate fi duplicată, TCP-ul receptor TREBUIE să renunțe la datele duplicate.
  • TCP asigură controlul fluxului. Fiecare parte a unei conexiuni TCP are un spațiu tampon specific. TCP la capătul de recepție permite capătului de la distanță să trimită date numai dacă destinatarul le poate încadra într-un buffer. Acest lucru împiedică gazdele lente să-și debordeze tampoanele cu gazde rapide.

  • Numărul de ordine are două scopuri:
    • Dacă steag-ul SYN este setat, atunci aceasta este valoarea inițială a numărului de secvență - ISN (Initial Sequence Number), iar primul octet de date care va fi transmis în următorul pachet va avea un număr de secvență egal cu ISN + 1.
    • În caz contrar, dacă SYN nu este setat, primul octet de date transmis într-un anumit pachet are acest număr de secvență.
  • Număr de confirmare - Dacă indicatorul ACK este setat, atunci acest câmp conține numărul de secvență așteptat de destinatar data viitoare. Marchează acest segment ca confirmare de primire.
  • Lungimea antetului este specificată în cuvinte de 32 de biți.
  • Dimensiunea ferestrei este numărul de octeți pe care destinatarul este gata să îi primească fără confirmare.
  • Sumă de control - include pseudo antet, antet și date.
  • Indicator de urgență - indică ultimul octet de date urgente la care trebuie răspuns imediat.
  • URG - flag de urgență, include câmpul „Indicator de urgență” dacă =0, atunci câmpul este ignorat;
  • ACK - flag de confirmare, include câmpul „Număr de confirmare”, dacă =0 atunci câmpul este ignorat.
  • PSH - flag-ul necesită o operație push, modulul TCP trebuie să transfere urgent pachetul în program.
  • RST - flag de întrerupere a conexiunii, folosit pentru a refuza o conexiune
  • SYN - steag de sincronizare a numărului de secvență, utilizat la stabilirea unei conexiuni.
  • FIN - steag de sfârșit de transmisie din partea expeditorului

Să ne uităm la structura antetului TCP folosind analizatorul de rețea Wireshark:


porturi TCP

Deoarece pe același computer pot rula mai multe programe, pentru a livra un pachet TCP unui anumit program, se folosește identificatorul unic sau numărul de port al fiecărui program.

Numărul portului este un număr condiționat de 16 biți de la 1 la 65535 care indică programul pentru care este destinat pachetul.

Porturile TCP folosesc un port de program specific pentru a livra datele transmise folosind protocolul de control al transmisiei (TCP). Porturile TCP sunt mai complexe și funcționează diferit decât porturile UDP. În timp ce un port UDP acționează ca o singură coadă de mesaje și ca punct de intrare pentru o conexiune UDP, punctul final de intrare pentru toate conexiunile TCP este o conexiune unică. Fiecare conexiune TCP este identificată în mod unic prin două puncte de intrare.

Fiecare port de server TCP individual poate oferi acces partajat la mai multe conexiuni, deoarece toate conexiunile TCP sunt identificate prin două valori: o adresă IP și un port TCP (socket).

Toate numerele de porturi TCP care sunt mai mici de 1024 sunt rezervate și înregistrate la Internet Assigned Numbers Authority (IANA).

Numerele porturilor UDP și TCP nu se suprapun.

Programele TCP folosesc numere de porturi rezervate sau binecunoscute, așa cum se arată în figura următoare.

Stabilirea unei conexiuni TCP

Să vedem acum cum sunt stabilite conexiunile TCP. Să presupunem că un proces care rulează pe o gazdă dorește să stabilească o conexiune cu un alt proces pe o altă gazdă. Amintiți-vă că gazda care inițiază conexiunea se numește „client”, în timp ce cealaltă gazdă este numită „server”.

Înainte de a transmite orice date, conform protocolului TCP, părțile trebuie să stabilească o conexiune. Conexiunea se stabilește în trei etape (procesul TCP „triple handshake”).

  • Solicitantul (denumit de obicei client) trimite un segment SYN care indică numărul portului serverului la care clientul dorește să se conecteze și numărul de secvență original (ISN) al clientului.
  • Serverul răspunde cu segmentul său SYN care conține numărul de ordine inițial al serverului. Serverul recunoaște, de asemenea, sosirea SYN-ului clientului folosind ACK (ISN + 1). Un număr de secvență este utilizat pentru fiecare SYN.
  • Clientul trebuie să confirme sosirea unui SYN de pe server cu segmentele sale SYN care conțin numărul de secvență original al clientului (ISN+1) și folosind un ACK (ISN+1). Bitul SYN este setat la 0 deoarece conexiunea este stabilită.

Odată ce conexiunea TCP este stabilită, aceste două gazde pot transmite date între ele, deoarece conexiunea TCP este full duplex, pot transmite date simultan.