RTP și RTCP: protocoale pentru telefonie IP. Structura antetului segmentului protocolului TCP. Analiza rapoartelor expeditorului și destinatarului

05.11.2019 Știri

ÎN lumea modernă informația se răspândește în câteva secunde. Știrea tocmai a apărut, iar o secundă mai târziu este deja disponibilă pe un site de pe internet. Internetul este considerat una dintre cele mai utile dezvoltări ale minții umane. Pentru a vă bucura de toate beneficiile pe care le oferă Internetul, trebuie să vă conectați la această rețea.

Puțini oameni știu că procesul simplu de vizitare a paginilor web implică un sistem complex de acțiuni, invizibil pentru utilizator. Fiecare clic pe un link activează sute de operații de calcul diferite în inima computerului. Acestea includ trimiterea de cereri, primirea de răspunsuri și multe altele. Așa-numitele protocoale TCP/IP sunt responsabile pentru fiecare acțiune în rețea. Ce sunt ei?

Orice protocol Internet TCP/IP operează la propriul nivel. Cu alte cuvinte, fiecare își face treaba lui. Întreaga familie de protocoale TCP/IP face o cantitate enormă de muncă simultan. Și utilizatorul în acest moment vede doar imagini luminoase și linii lungi de text.

Conceptul de stivă de protocol

Stiva de protocoale TCP/IP este un set organizat de protocoale de bază de rețea, care este împărțit ierarhic în patru niveluri și este un sistem de distribuție de transport a pachetelor într-o rețea de calculatoare.

TCP/IP este cel mai faimos stivă de protocoale de rețea folosită în acest moment. Principiile stivei TCP/IP se aplică atât rețelelor locale, cât și rețelelor de zonă largă.

Principii de utilizare a adreselor în stiva de protocoale

Stiva de protocoale de rețea TCP/IP descrie căile și direcțiile în care sunt trimise pachetele. Aceasta este sarcina principală a întregii stive, realizată la patru niveluri care interacționează între ele folosind un algoritm înregistrat. Pentru a se asigura că pachetul este trimis corect și livrat exact la punctul în care a solicitat, adresarea IP a fost introdusă și standardizată. Acest lucru s-a datorat următoarelor sarcini:

  • Adrese tipuri variate, trebuie convenit. De exemplu, conversia unui domeniu de site web în adresa IP a unui server și înapoi sau conversia unui nume de gazdă într-o adresă și înapoi. În acest fel, devine posibilă accesarea punctului nu numai folosind adresa IP, ci și prin numele său intuitiv.
  • Adresele trebuie să fie unice. Acest lucru se datorează faptului că în unele cazuri speciale pachetul trebuie să ajungă doar la un punct specific.
  • Necesitatea configurarii rețelelor locale.

În rețelele mici în care sunt utilizate câteva zeci de noduri, toate aceste sarcini sunt efectuate simplu, folosind cele mai simple soluții: compilarea unui tabel care descrie proprietatea mașinii și adresa IP corespunzătoare sau puteți distribui manual adresele IP tuturor adaptoarelor de rețea. Cu toate acestea, pentru rețelele mari cu o mie sau două mii de mașini, sarcina de a emite manual adrese nu pare atât de fezabilă.

De aceea a fost inventată o abordare specială pentru rețelele TCP/IP, care a devenit trăsătură distinctivă stiva de protocoale. A fost introdus conceptul de scalabilitate.

Straturi ale stivei de protocoale TCP/IP

Există o anumită ierarhie aici. Stiva de protocoale TCP/IP are patru straturi, fiecare dintre ele gestionând propriul set de protocoale:

Strat de aplicație: creat pentru a permite utilizatorului să interacționeze cu rețeaua. La acest nivel, tot ce vede și face utilizatorul este procesat. Stratul permite utilizatorului să acceseze diverse servicii de rețea, de exemplu: acces la baze de date, posibilitatea de a citi o listă de fișiere și de a le deschide, de a trimite un mesaj de e-mail sau de a deschide o pagină web. Alături de datele și acțiunile utilizatorului, informațiile de serviciu sunt transmise la acest nivel.

Stratul de transport: Acesta este un mecanism pur de transmisie de pachete. La acest nivel, nici conținutul pachetului și nici afilierea acestuia cu vreo acțiune nu contează deloc. La acest nivel contează doar adresa nodului de la care este trimis pachetul și adresa nodului la care ar trebui să fie livrat pachetul. De regulă, dimensiunea fragmentelor transmise folosind diferite protocoale se poate modifica, prin urmare, la acest nivel, blocurile de informații pot fi împărțite la ieșire și asamblate într-un singur întreg la destinație. Acest lucru cauzează o posibilă pierdere de date dacă, în momentul transmiterii următorului fragment, are loc o întrerupere de scurtă durată a conexiunii.

Stratul de transport include multe protocoale, care sunt împărțite în clase, de la cele mai simple, care pur și simplu transmit date, la cele complexe, care sunt dotate cu funcționalitatea de confirmare a primirii sau de re-solicitare a unui bloc de date lipsă.

Acest nivel oferă nivelul superior (de aplicație) cu două tipuri de servicii:

  • Oferă livrare garantată folosind protocolul TCP.
  • Livrează prin UDP ori de câte ori este posibil .

Pentru a asigura livrarea garantată, se stabilește o conexiune conform protocolului TCP, care permite ca pachetele să fie numerotate la ieșire și confirmate la intrare. Numerotarea pachetelor și confirmarea recepției sunt așa-numitele informații de serviciu. Acest protocol acceptă transmisia în modul „Duplex”. În plus, datorită reglementărilor bine gândite ale protocolului, este considerat foarte fiabil.

Protocolul UDP este destinat momentelor în care este imposibil să configurați transmisia prin protocolul TCP sau trebuie să salvați pe segmentul de transmisie a datelor din rețea. De asemenea, protocolul UDP poate interacționa cu protocoale de nivel superior pentru a crește fiabilitatea transmisiei pachetelor.

Stratul de rețea sau „stratul de internet”: stratul de bază pentru întregul model TCP/IP. Funcționalitatea principală a acestui strat este identică cu stratul cu același nume din modelul OSI și descrie mișcarea pachetelor într-o rețea compusă formată din mai multe subrețele mai mici. Leagă straturile adiacente ale protocolului TCP/IP.

Stratul de rețea este stratul de conectare între stratul de transport superior și nivelul inferior al interfețelor de rețea. Stratul de rețea folosește protocoale care primesc o solicitare de la stratul de transport și, prin adresare reglementată, transmit cererea procesată către protocolul de interfață de rețea, indicând la ce adresă să trimită datele.

Următoarele protocoale de rețea TCP/IP sunt utilizate la acest nivel: ICMP, IP, RIP, OSPF. Principalul și cel mai popular la nivel de rețea este, desigur, IP (Internet Protocol). Sarcina sa principală este de a transmite pachete de la un router la altul până când o unitate de date ajunge la interfața de rețea a nodului destinație. Protocolul IP este implementat nu numai pe gazde, ci și pe echipamentele de rețea: routere și comutatoare gestionate. Protocolul IP funcționează pe principiul celui mai bun efort, livrare negarantată. Adică, nu este nevoie să stabiliți o conexiune în avans pentru a trimite un pachet. Această opțiune duce la economisirea de trafic și timp la deplasarea pachetelor de servicii inutile. Pachetul este direcționat către destinație și este posibil ca nodul să rămână inaccesibil. În acest caz, este returnat un mesaj de eroare.

Nivelul interfeței de rețea: este responsabil pentru asigurarea faptului că subrețelele cu tehnologii diferite pot interacționa între ele și pot transmite informații în același mod. Acest lucru se realizează în doi pași simpli:

  • Codificarea unui pachet într-o unitate intermediară de date din rețea.
  • Convertește informațiile de destinație în standardele de subrețea necesare și trimite unitatea de date.

Această abordare ne permite să extindem în mod constant numărul de tehnologii de rețea acceptate. De îndată ce apare tehnologie nouă, se încadrează imediat în stiva de protocoale TCP/IP și permite rețelelor cu tehnologii mai vechi să transfere date către rețelele construite folosind tehnologii mai avansate. standarde moderneși modalități.

Unități de date transferate

În timpul existenței unui astfel de fenomen precum protocoalele TCP/IP, s-au stabilit termeni standard pentru unitățile de date transmise. Datele în timpul transmisiei pot fi fragmentate în diferite moduri, în funcție de tehnologiile utilizate de rețeaua de destinație.

Pentru a avea o idee despre ce se întâmplă cu datele și în ce moment, a fost necesar să se vină cu următoarea terminologie:

  • Flux de date- date care ajung la nivelul de transport din protocoalele unui nivel de aplicație superior.
  • Un segment este un fragment de date în care un flux este împărțit conform standardelor de protocol TCP.
  • Datagrama(în special analfabetii îl pronunță ca „Datagramă”) - unități de date care sunt obținute prin divizarea unui flux folosind protocoale fără conexiune (UDP).
  • Punga de plastic- o unitate de date produsă prin protocolul IP.
  • Protocoalele TCP/IP împachetează pachetele IP în blocuri de date transmise prin rețele compuse, numite personal sau rame.

Tipuri de adrese de stivă de protocol TCP/IP

Orice protocol de transfer de date TCP/IP utilizează unul dintre următoarele tipuri de adrese pentru a identifica gazde:

  • Adrese locale (hardware).
  • Adrese de rețea (adrese IP).
  • Nume de domenii.

Adrese locale (adrese MAC) - utilizate în majoritatea tehnologiilor de rețele locale pentru a identifica interfețele de rețea. Când vorbim despre TCP/IP, cuvântul local înseamnă o interfață care nu funcționează într-o rețea compusă, ci într-o subrețea separată. De exemplu, subrețeaua unei interfețe conectate la Internet va fi locală, iar rețeaua de Internet va fi compusă. O rețea locală poate fi construită pe orice tehnologie și, indiferent de aceasta, din punctul de vedere al unei rețele compozite, o mașină aflată într-o subrețea separată dedicată va fi numită locală. Astfel, atunci când un pachet intră în rețeaua locală, adresa sa IP este apoi asociată cu adresa locală, iar pachetul este trimis la adresa MAC a interfeței de rețea.

Adrese de rețea (adrese IP). Tehnologia TCP/IP oferă propria sa adresare globală a nodurilor pentru a rezolva o problemă simplă - combinarea rețelelor cu tehnologii diferiteîntr-o structură mare de transmisie a datelor. Adresarea IP este complet independentă de tehnologia utilizată în rețeaua locală, dar o adresă IP permite unei interfețe de rețea să reprezinte o mașină într-o rețea compusă.

Drept urmare, a fost dezvoltat un sistem în care gazdelor li se atribuie o adresă IP și o mască de subrețea. Masca de subrețea arată câți biți sunt alocați numărului de rețea și câți numărului de gazdă. O adresă IP este formată din 32 de biți, împărțiți în blocuri de 8 biți.

Când un pachet este transmis, i se atribuie informații despre numărul rețelei și numărul nodului către care ar trebui să fie trimis pachetul. Mai întâi, routerul redirecționează pachetul către subrețeaua dorită, apoi este selectată o gazdă care îl așteaptă. Acest proces este realizat de Address Resolution Protocol (ARP).

Adresele de domeniu din rețelele TCP/IP sunt gestionate de un sistem de nume de domeniu (DNS) special conceput. Pentru a face acest lucru, există servere care se potrivesc cu numele domeniului, prezentat ca un șir de text, cu adresa IP și trimit pachetul în conformitate cu adresarea globală. Nu există corespondență între numele unui computer și o adresă IP, așa că pentru a converti un nume de domeniu într-o adresă IP, dispozitivul expeditor trebuie să acceseze tabelul de rutare care este creat pe serverul DNS. De exemplu, scriem adresa site-ului în browser, serverul DNS o potrivește cu adresa IP a serverului pe care se află site-ul, iar browserul citește informațiile, primind un răspuns.

Pe lângă Internet, este posibil să emiti computere nume de domenii. Astfel, procesul de lucru pe o rețea locală este simplificat. Nu este nevoie să vă amintiți toate adresele IP. În schimb, poți da fiecărui computer orice nume și să-l folosești.

Adresa IP. Format. Componente. Mască de rețea

O adresă IP este un număr de 32 de biți, care în reprezentarea tradițională este scris ca numere de la 1 la 255, separate prin puncte.

Tip de adresă IP în diferite formate de înregistrare:

  • Adresă IP zecimală: 192.168.0.10.
  • Forma binară a aceleiași adrese IP: 11000000.10101000.00000000.00001010.
  • Înregistrarea unei adrese în sistem hexazecimal notatie: C0.A8.00.0A.

Nu există un separator între ID-ul rețelei și numărul punctului din intrare, dar computerul le poate separa. Există trei moduri de a face acest lucru:

  1. Chenar fix. Cu această metodă, întreaga adresă este împărțită condiționat în două părți de lungime fixă, octet cu octet. Astfel, dacă dăm un octet pentru numărul rețelei, atunci vom obține 2 8 rețele a câte 2 24 de noduri fiecare. Dacă granița este mutată cu un alt octet la dreapta, atunci vor fi mai multe rețele - 2 16 și mai puține noduri - 2 16. Astăzi, abordarea este considerată învechită și nu este utilizată.
  2. Mască de rețea. Masca este asociată cu o adresă IP. Masca are o secvență de valori „1” în acei biți care sunt alocați numărului de rețea și un anumit număr de zerouri în acele locuri ale adresei IP care sunt alocate numărului de nod. Granița dintre unu și zero din mască este granița dintre ID-ul rețelei și ID-ul gazdei din adresa IP.
  3. Metoda claselor de adrese. Metoda compromisului. Când îl utilizați, dimensiunea rețelei nu poate fi selectată de utilizator, dar există cinci clase - A, B, C, D, E. Trei clase - A, B și C - sunt destinate diferitelor rețele, iar D și E sunt rezervate pentru rețele speciale. Într-un sistem de clasă, fiecare clasă are propria sa limită de număr de rețea și ID de nod.

Clasele de adrese IP

LA clasa a Acestea includ rețele în care rețeaua este identificată prin primul octet, iar restul de trei sunt numărul nodului. Toate adresele IP care au o valoare a primului octet de la 1 la 126 în intervalul lor sunt rețele de clasă A. Există foarte puține rețele de clasă A în cantitate, dar fiecare dintre ele poate avea până la 2 24 de puncte.

Clasa B- rețele în care cei mai înalți doi biți sunt egali cu 10. În ele sunt alocați 16 biți pentru numărul de rețea și identificatorul de punct. Ca urmare, se dovedește că numărul de rețele de clasă B este diferit cantitativ de numărul de rețele de clasă A, dar au un număr mai mic de noduri - până la 65.536 (2 16) unități.

Pe rețele clasa C- sunt foarte puține noduri - 2 8 în fiecare, dar numărul de rețele este uriaș, datorită faptului că identificatorul de rețea în astfel de structuri ocupă trei octeți.

Rețele clasa D- aparțin deja unor rețele speciale. Începe cu secvența 1110 și se numește o adresă multicast. Interfețele cu adrese de clasă A, B și C pot face parte dintr-un grup și pot primi, pe lângă adresa individuală, o adresă de grup.

Adrese clasa E- în rezervă pentru viitor. Astfel de adrese încep cu secvența 11110. Cel mai probabil, aceste adrese vor fi folosite ca adrese de grup atunci când există o lipsă de adrese IP în rețeaua globală.

Configurarea protocolului TCP/IP

Configurarea protocolului TCP/IP este disponibilă pe toate sistemele de operare. Acestea sunt Linux, CentOS, Mac OS X, Free BSD, Windows 7. Protocolul TCP/IP necesită doar un adaptor de rețea. Desigur, sistemele de operare pentru server sunt capabile de mai mult. Protocolul TCP/IP este configurat pe scară largă folosind servicii de server. Adresele IP de pe computerele desktop obișnuite sunt setate în setările de conexiune la rețea. Acolo configurați adresa rețelei, gateway-ul - adresa IP a punctului care are acces la rețeaua globală și adresele punctelor în care se află serverul DNS.

Protocolul Internet TCP/IP poate fi configurat manual. Deși acest lucru nu este întotdeauna necesar. Puteți primi automat parametrii protocolului TCP/IP de la adresa de distribuție dinamică a serverului. Această metodă este utilizată în rețelele corporative mari. Pe un server DHCP, puteți mapa o adresă locală la o adresă de rețea și, de îndată ce o mașină cu o anumită adresă IP apare în rețea, serverul îi va da imediat o adresă IP pregătită în prealabil. Acest proces se numește rezervare.

Protocolul de rezoluție a adresei TCP/IP

Singura modalitate de a stabili o relație între o adresă MAC și o adresă IP este prin menținerea unui tabel. Dacă există o tabelă de rutare, fiecare interfață de rețea este conștientă de adresele sale (locale și de rețea), dar se pune întrebarea cum să se organizeze corect schimbul de pachete între noduri folosind protocolul TCP/IP 4.

De ce a fost inventat Address Resolution Protocol (ARP)? Pentru a lega familia de protocoale TCP/IP și alte sisteme de adresare. Un tabel de mapare ARP este creat pe fiecare nod și este populat prin sondajul întregii rețele. Acest lucru se întâmplă de fiecare dată când computerul este oprit.

Tabelul ARP

Așa arată un exemplu de tabel ARP compilat.

Protocolul de control al transmisiei (TCP) asigură o transmisie fiabilă a datelor într-un mediu IP. TCP aparține stratului de transport model de referinta OSI (stratul 4). TCP oferă servicii precum streaming date, fiabilitate, control eficient al fluxului, duplexare și multiplexare.

La transmiterea datelor, TCP transmite un flux nestructurat de octeți identificați prin numere de secvență. Acest serviciu este util pentru aplicații deoarece nu trebuie să despartă datele în blocuri înainte de a le transmite prin TCP. TCP grupează octeții în segmente și îi transmite stratului de protocol IP pentru redirecționare.

Fiabilitatea TCP este asigurată de transmisia de la capăt la capăt, orientată spre conexiune, a pachetelor prin internetwork. Acest lucru se realizează prin ordonarea octeților folosind numere de confirmare a transmisiei, pe care destinatarul le folosește pentru a determina ce octet ar trebui să sosească următorul. Octeții care nu primesc confirmarea într-un anumit timp sunt transmiși din nou. Mecanismul robust al TCP permite dispozitivelor să gestioneze pachetele pierdute, întârziate, duplicate și citite greșit. Mecanismul limită de timp permite dispozitivelor să recunoască pachetele pierdute și să solicite retransmiterea acestora.

TCP asigură un control eficient al fluxului. Când trimite confirmări către sursa de date, procesul TCP de primire specifică cel mai mare număr de secvență pe care îl poate accepta fără a-și depăși buffer-urile interne.

În modul full-duplex, un proces TCP poate trimite și primi simultan pachete.

În cele din urmă, multiplexarea TCP înseamnă transmiterea simultană a mai multor conversații de nivel superior printr-o singură conexiune.

Stabilirea unei conexiuni TCP

Pentru a utiliza servicii de transport fiabile, gazdele TCP trebuie să stabilească între ele sesiuni orientate spre conexiune. Conexiunea se stabilește folosind un mecanism numit strângere de mână în trei căi.

Acest mecanism sincronizează ambele părți ale conexiunii, permițându-le să cadă de acord asupra numerelor de secvență de pornire. De asemenea, asigură că ambele părți sunt pregătite să transfere date și că fiecare parte este conștientă de pregătirea celeilalte. Acest lucru este necesar pentru a evita transmiterea sau retransmiterea pachetelor în timpul configurării sesiunii sau după terminarea sesiunii.

Fiecare nod selectează aleatoriu un număr de secvență pentru a ține evidența octeților fluxului primiți și transmisi. Mecanismul de sincronizare în trei etape funcționează apoi după cum urmează.

Primul nod (Nodul A) inițiază conexiunea prin trimiterea unui pachet cu un număr de secvență inițial și un bit SYN pentru a indica o solicitare de conexiune. Al doilea nod (Nodul B) primește SYN-ul, notează numărul de ordine X și răspunde cu o confirmare SYN (împreună cu ACK = X + 1). Nodul B specifică propriul său număr de secvență (SEQ = Y). Apoi, dacă ACK este 20, atunci aceasta înseamnă că nodul a primit octeții de la 0 la 19 și așteaptă următorul octet 20. Această tehnologie se numește confirmare de transmisie. Nodul A confirmă apoi primirea tuturor octeților trimiși de Nodul B cu o confirmare de transmisie, indicând următorul octet pe care Nodul A se așteaptă să îl primească (ACK = Y + 1). După aceasta, transferul de date poate începe.

Recunoaștere și retransmitere

Un protocol de transport simplu poate oferi fiabilitate și tehnologie de control al fluxului în care nodul sursă trimite un pachet, pornește un temporizator și așteaptă o confirmare înainte de a trimite un nou pachet. Dacă confirmarea nu este primită după expirarea timpului, nodul transmite din nou pachetul. Această tehnologie se numește recunoaștere și retransmisie pozitivă (PAR).

Prin atribuirea unui număr de secvență fiecărui pachet, PAR permite nodurilor să urmărească pachetele care sunt pierdute sau duplicate din cauza întârzierilor în rețea și a retransmisiilor premature. Numerele de secvență sunt trimise înapoi ca notificări către capacitatea de urmărire a confirmării.

Cu toate acestea, PAR este o utilizare ineficientă a lățimii de bandă, deoarece nodul trebuie să aștepte o confirmare înainte de a trimite un nou pachet și, prin urmare, pachetul poate fi transmis doar unul după altul.

Fereastra glisantă TCP

Fereastra glisantă a TCP utilizează lățimea de bandă a rețelei mai eficient decât PAR, deoarece permite gazdelor să trimită mai mulți octeți sau pachete fără a aștepta o confirmare.

În TCP, nodul receptor determină dimensiunea ferestrei curente a fiecărui pachet. Deoarece datele sunt transmise ca un flux de octeți printr-o conexiune TCP, dimensiunile ferestrelor sunt, de asemenea, exprimate în octeți. Astfel, fereastra reprezintă numărul de octeți de date pe care expeditorul îi poate trimite înainte de a aștepta o confirmare. Dimensiunile inițiale ale ferestrei sunt determinate atunci când conexiunea este configurată, dar se pot schimba pe măsură ce datele de control al fluxului sunt transferate. De exemplu, o dimensiune a ferestrei de zero înseamnă că nu există transfer de date.

Să presupunem că un expeditor TCP trebuie să trimită unei ferestre glisante o secvență de octeți (numerotați de la 1 la 10) unui receptor cu dimensiunea ferestrei de 5. Expeditorul plasează primii 5 octeți în fereastră, îi transmite pe toți odată și așteaptă pentru o recunoaștere.

Receptorul răspunde cu un ACK de 6, indicând că a primit octeții de la 1 la 5 și așteaptă octetul 6. În același pachet, receptorul indică faptul că dimensiunea ferestrei sale este de 5. Expeditorul mută fereastra glisantă cu 5 octeți la dreapta și transmite octeții de la 6 la 10. Receptorul răspunde cu un ACK de 11, indicând că așteaptă octetul 11. În acest pachet, receptorul poate indica faptul că dimensiunea ferestrei sale este 0 (deoarece, de exemplu, tampoanele sale interne sunt pline ). Apoi, expeditorul nu va mai putea trimite alți octeți până când receptorul nu trimite un alt pachet cu o dimensiune de fereastră diferită de zero.

Format de pachet TCP

Câmpurile și formatul complet al unui pachet TCP sunt prezentate în Fig. 35.10.

Orez. 35.10. Format de pachet TCP

Descrierea câmpurilor pachetului TCP

În continuare sunt descrise câmpurile pachetului TCP prezentate în Fig. 35.10.

Port sursă și port destinație. Punctele în care procesele de nivel superior sursă și destinație acceptă serviciile TCP.

Număr de serie. De obicei, acesta este numărul atribuit primului octet de date din mesajul curent. Când se stabilește o conexiune, poate fi folosit și pentru a indica numărul de ordine inițial într-o transmisie viitoare.

Număr de confirmare. Numărul de secvență al următorului octet de date pe care destinatarul se așteaptă să îl primească.

Schimbarea datelor. Numărul de cuvinte pe 32 de biți din antetul TCP.

Rezervă. O zonă rezervată pentru utilizare ulterioară.

Steaguri. Diverse informații de control, inclusiv biții SYN și ACK utilizați pentru a stabili o conexiune și bitul FIN pentru a termina o conexiune.

Fereastră. Dimensiunea ferestrei de primire a receptorului (dimensiunea tamponului pentru datele primite).

Verificați suma. Indică dacă antetul a fost corupt în timpul transmisiei.

Indicator de urgență. Indică primul octet de date urgente din pachet.

Opțiuni. Variat Opțiuni suplimentare TCP.

Date. Informații de nivel superior.

Literatură:

Manual de tehnologie de internetworking, ediția a 4-a. : Per. din engleza - M.: Editura „William”, 2005. - 1040 p.: ill. - Paral. tit. Engleză

1. Protocolul TCP al familiei TCP/IP

TCP este unul dintre cele mai utilizate protocoale de nivel de transport. IP-ul este fără conexiune. Pur și simplu transmite datagrama de la nod la nod și, dacă are loc vreo încălcare, este pur și simplu aruncată, iar expeditorul este notificat despre aceasta printr-un mesaj ICMP. Este responsabilitatea TCP să verifice datele primite și să retransmite datele care nu ajung la destinatar. Monitorizează livrarea datelor prin protocolul IP.
Functie principala TCP este despre livrarea mesajelor fără pierderi. Pentru a face acest lucru, se stabilește mai întâi o conexiune între aplicația care trimite și aplicația care primește, asigurând livrarea fiabilă a datagramelor. Este TCP care retransmite un pachet corupt sau pierdut.
TCP reglementează transferul de date de la nivelul aplicației la stratul de internetworking și înapoi. TCP trebuie să fie responsabil pentru respectarea priorităților și protecția datelor, pentru terminarea aplicației pentru mai mult nivel inalt, așteptând o datagramă, pentru gestionarea erorilor la niveluri inferioare. pentru menținerea tabelelor de stare pentru toate fluxurile atât în ​​TCP în sine, cât și la alte niveluri. Separarea tuturor acestor funcții într-un strat separat eliberează dezvoltatorii de aplicații de a rezolva problemele de control al fluxului și de a asigura fiabilitatea transferului de date. Fără TCP, funcțiile enumerate mai sus ar trebui implementate în fiecare program de aplicație.
TCP este un protocol orientat spre conexiune, care asigură transmiterea de la un capăt la altul a datelor de la o mașină care trimite la o mașină care primește. Deoarece folosește o conexiune, destinatarul care primește datagrama trebuie să notifice expeditorul despre aceasta. Termenul de canal virtual este folosit în mod obișnuit pentru a indica faptul că mașina care trimite și mașina care primește schimbă mesaje, majoritatea fiind confirmări de primire sau coduri de eroare.
TCP primește un flux de octeți și îl asambla în pachete, numite și segmente, adăugând anteturi la începutul segmentelor. Antetul conține suma de control și numărul de secvență al pachetului de date. Lungimea segmentului este de obicei determinată de TCP sau aleasă de administratorul de sistem. (În majoritatea cazurilor, lungimile segmentelor TCP și lungimile datagramelor IP nu au nimic de-a face una cu cealaltă.)
Procesul de stabilire a conexiunii începe cu transmiterea unei cereri de conectare de la aparatul expeditor la aparatul receptor. Solicitarea conține un număr numit număr socket. Ca răspuns, aplicația care primește trimite numărul de socket. Numerele prizei expeditorului și receptorului identifică în mod unic conexiunea dintre aplicații.
Odată stabilită conexiunea, TCP începe să transmită segmente de mesaj către modulul IP, care le convertește pe fiecare în una sau mai multe datagrame. Aceste operațiuni sunt efectuate fără nicio implicare TCP. După trecerea prin rețea de la mașina expeditoare la mașina receptor, datagramele ajung la nivelul IP al acesteia din urmă. Acesta colectează segmentul trimis de la ei și îl transmite către TCP. La rândul său, mesajul de la TCP ajunge la aplicația destinatară prin intermediul protocolului de strat de aplicație utilizat.
Dacă un mesaj constă din mai multe segmente TCP (a nu se confunda cu datagramele IP), TCP de pe mașina de recepție îl asambla pe baza numerelor de secvență ale segmentelor stocate în antet. Dacă un segment este pierdut sau corupt (detectat de o sumă de control în antetul segmentului), expeditorului este trimis un mesaj care conține numărul de secvență al segmentului eronat sau pierdut. În acest caz, expeditorul retransmite segmentul.
Dacă mesajul constă dintr-un singur segment TCP, atunci după compararea sumelor de control primite și calculate, software-ul TCP de pe mașina de primire trimite expeditorului o confirmare de primire (ACK). Emiterea unei chitanțe ca răspuns la un segment primit se numește confirmare.
Ca și în cazul majorității protocoalelor orientate spre conexiune, temporizatoarele joacă un rol important în TCP. Mesajul este considerat incomplet dacă chitanța nu este primită în perioada de așteptare specificată. Acest lucru reduce timpul petrecut în așteptarea confirmării în cazul pierderii datelor. În acest caz, segmentele corespunzătoare sunt de obicei retransmise.
TCP nu oferă o confirmare dacă un segment ajunge malformat. Pierderea unui segment este detectată folosind un temporizator de retransmisie: dacă o chitanță pentru un segment nu este primită la timp, este considerată pierdută și este retransmisă.
Cu toate acestea, utilizarea temporizatoarelor ridică o serie de probleme. Conform protocolului TCP, o chitanță pentru un segment primit este emisă numai după primirea tuturor segmentelor trimise anterior ale aceluiași mesaj. Cu alte cuvinte, primirea confirmă primirea tuturor segmentelor de mesaj trimise anterior. Deoarece segmentele sunt livrate către mașina de recepție într-o ordine aleatorie, emiterea unei chitanțe poate fi întârziată până la primirea întregului mesaj, ceea ce, la rândul său, poate duce la retransmiterea segmentelor recepționate corect.
Copiile re-livrate ale segmentelor trimise din cauza expirării timpului de primire sunt eliminate software aparat destinatar. În acest caz, o notificare nu este trimisă expeditorului, deoarece este important doar ca acesta să știe că segmentul a fost primit.
În mașina de expediere, datele primite de software-ul TCP de la nivelul aplicației sunt acumulate într-un buffer. Momentul în care sunt împachetate într-un segment este de obicei determinat la nivel TCP. Datele din buffer pot fi trimise urgent și la solicitarea procesului de strat de aplicație deservit. Această operație se numește împingere. Utilizarea sa este cauzată de setarea unui steag special în antetul protocolului de la nivelul aplicației.

2. Porturi și prize

O aplicație care utilizează TCP (sau UDP) este identificată în mod unic printr-un număr numit număr de port. În principiu, numerele de port pot fi alese în mod arbitrar, dar pentru a facilita interoperabilitatea între diferite implementări software TCP, au fost adoptate convenții pentru numerele de porturi atribuite unor servicii specifice.
De obicei, sunt alocate porturi între 0 și 255 procesele sistemului, iar porturile de peste 255 sunt personalizate. Pe Internet, alocarea portului este gestionată de Internet Assigned Numbers Authority (IANA). O listă de numere de porturi pentru serviciile de Internet poate fi găsită în propunerea operațională (RFC) corespunzătoare. Extrase din acesta sunt date în tabel. Porturile 0 și 255 sunt rezervate.

Orice canal de comunicare din stratul TCP este identificat în mod unic prin două numere, această combinație se numește socket. Priza este determinată de adresa IP a mașinii și de numărul portului utilizat de software-ul TCP. Într-o conexiune, fiecare mașină este identificată în mod unic printr-o adresă IP, iar fiecare proces care rulează este identificat printr-un port, astfel încât conexiunea dintre două / procese este identificată în mod unic printr-un socket.

3. Temporizatoare TCP

Temporizatoarele sunt necesare pentru a evita întârzierile excesive și stările de așteptare. Ele ușurează ocolirea unora roci subacvatice la transferul de date. Rolul diferitelor cronometre utilizate de TCP în transmiterea datelor este discutat în secțiunile ulterioare.
Temporizator de retransmisie. Temporizatorul de retransmisie măsoară timpul de așteptare pentru o chitanță pentru un segment trimis (timeout retransmisie, RTO). Acest parametru este setat pe baza tipului de rețea și a vitezei de livrare a mesajelor. Dacă chitanța nu ajunge la timp, segmentul este trimis din nou, iar perioada de retransmisie crește exponențial. Acest lucru se repetă de mai multe ori până când perioada de retransmisie atinge o anumită limită specificată, după care este emis un mesaj de eroare procesului care este servit.
Timpul de așteptare inițial al primirii este stabilit prin măsurarea timpului dintre trimiterea unui segment și primirea unei chitanțe pentru acesta. Această valoare se numește timp dublu de trecere. Valoarea așteptată (adică media) a valorilor măsurate se numește timp de trecere dublu netezit. Se calculează folosind o formulă și poate fi mărită pentru a ține cont de întârzierile neașteptate.
Temporizator de întârziere. Destinatarul poate primi segmente chiar și după ce conexiunea a fost închisă. Temporizatorul silențios previne redeschiderea porturilor nou închise de către segmentele care sosesc. Durata de întârziere este de obicei setată la două ori durata maximă de viață a segmentului (aceasta este aceeași cu valoarea câmpului de viață din antetul datagramei IP). Întârzierea poate fi de până la 30 de secunde. Ca răspuns la fiecare segment care sosește în această perioadă, este trimis un mesaj de eroare.
Solicitați temporizator. Temporizatorul de persistență este furnizat pentru cazul destul de rar în care un destinatar, având suspendat transmisia de date prin trimiterea unui segment cu dimensiunea ferestrei de zero, trimite un mesaj către egalul său pentru a relua funcționarea, dar nu îl primește. Pentru a continua transmisia, expeditorul trimite cereri cu un octet de date la un interval de timp. Ca răspuns la acestea, primește segmente în care este indicată dimensiunea ferestrei. Dacă dimensiunea ferestrei este zero, destinația este încă ocupată, iar dacă nu, atunci este gata să primească informații utile, după care transmisia datelor se reia. Perioada de repetare a cererii este determinată de temporizatorul cererii.
Temporizator de monitorizare și temporizator de deconectare. Aceste cronometre sunt concepute pentru a verifica conexiunea. Temporizatorul de menținere în viață face ca segmentele să fie emise periodic fără un câmp de date, iar temporizatorul inactiv specifică timpul maxim de așteptare pentru un răspuns. După această perioadă, conexiunea se consideră încheiată.
În mod obișnuit, perioada de temporizare de monitorizare este setată la nivelul aplicației, valorile sale sunt cuprinse între 5 și 45 de secunde. Timpul maxim de așteptare este de obicei setat la 360 de secunde.

4. Segmente de date TCP

TCP comunică cu stratul de bază prin protocolul IP și cu stratul de aplicație de mai sus utilizând primitive de serviciu. În plus, trebuie să comunice cu software-ul TCP de pe alte mașini. Pentru ultima sarcină, sunt folosite blocuri de date de protocol, care în limbajul TCP sunt numite segmente. Antetul segmentului este format din următoarele câmpuri:
Port sursă, un câmp de 16 biți care identifică portul sursă local (de obicei, un proces de utilizator al nivelului de aplicație).
Port de destinație, câmp pe 16 biți care indică numărul portului de destinație
Poziția segmentului (Numărul de secvență). Câmpul conține numărul de secvență j al primului octet de date de segment din mesaj.
Primul octet așteptat (numărul de confirmare). 1 este folosit când segmentul servește ca chitanță (steagul ACK = 1). Conține secvența/numărul de secvență al primului octet așteptat. Toți octeții de mesaj cu numere de secvență mai mici sunt considerați confirmați.
Compensarea datelor. Lungimea titlului, măsurată în 32 de cuvinte. Servește ca indicator la începutul câmpului de date.
Rezervat. Nu este încă utilizat și trebuie resetat. Dimensiunea câmpului este de 6 biți.
Steaguri. În starea 1 ele înseamnă următoarele.
Steagul URG. Câmpul de urgență a datelor este supus prelucrării. Steagul ACK. Segmentul servește ca chitanță.
Steagul PSH. Segmentul trebuie să fie „împins” - trimis mai întâi.
Steagul RST. Segmentul servește ca o solicitare pentru a seta parametrii inițiali de conectare.
steag SYN. Segmentul servește la sincronizarea contoarelor datelor transmise la stabilirea unei conexiuni.
steag FIN. Indică faptul că ultimul octet al mesajului a fost trimis. Echivalentul ASCII al markerului de sfârșit de transmisie (EOT).
Dimensiunea ferestrei. Indică câți octeți este dispus să accepte destinatarul.
Sumă de control, o sumă de control de 16 biți definită pentru un bloc de date constând dintr-un pseudo-antet și segmentul în sine, un pseudo-antet de 96 de biți, precede antetul TCP și este creat în procedura de calcul al sumei de control. Pseudo-antetul conține adresa IP a expeditorului, adresa IP a destinatarului, identificatorul de protocol și lungimea segmentului. Acești parametri sunt transferați către IP atunci când segmentul este trimis și sunt utilizați de protocolul IP când este primit. Procedura de calculare a sumei de control durează destul de mult.
Indicator urgent. Folosit când marca URG=1. Reprezintă decalajul relativ la numărul de secvență din antet. Prelucrarea specială a datelor urgente se face la nivelul aplicației, nu la nivelul TCP.
Opțiuni. La fel ca și câmpul cu același nume din antetul IP, fiecare opțiune conține propriul său număr (un octet), lungimea sa în octeți și valoarea sa. În prezent, există doar trei opțiuni:
O - Sfârșitul listei de opțiuni;
1 - Fără operațiuni;
2 - Dimensiunea maximă a segmentului.
Captuseala. Extinde antetul la un număr întreg de cuvinte pe 32 de biți.
Antetul este urmat de un câmp de date a cărui lungime nu este fixă. Cu opțiunea Dimensiune maximă a segmentului, software-ul TCP al destinatarului poate selecta o dimensiune adecvată a memoriei tampon de date.

5. Conexiune TCP

Comunicarea prin protocolul TCP este guvernată de numeroase reguli. Stabilirea conexiunii și procedurile de transfer Informatii utile iar terminațiile de conexiune sunt de obicei reprezentate de mașini cu stări finite. (TCP este un protocol controlat de stat și, prin urmare, operațiunile sale depind de stările steagurilor sau structuri similare.) In schimb voi folosi circuite simple interacțiuni.
Există două opțiuni pentru stabilirea conexiunilor: conectarea efectivă și acceptarea unei conexiuni. Înainte de a începe conexiunea, trebuie să inițializați și să rulați WSA - Windows Socket Architecture. Să executăm funcția pentru aceasta
1. WSAStartup(wVersionRequested, lpWSAData): Integer;

Unde:
wVersionRequested - numărul de versiune necesar pentru a rula aplicația. În cazul nostru, acest parametru ar trebui să fie egal cu $0101.
lpWSAData - structură în care se întoarce conectorul WSA: numărul versiunii, descrierea, starea, suma maxima conectori prize, informații despre dezvoltatori etc. Această structură nu contează pentru noi.
Codul de eroare care a apărut în cazul executării nereușite a oricărei funcții legate de conectorii socket poate fi obținut folosind funcția WSAGetLastError. Decriptarea acestor coduri se află în fișierul sock.hlp inclus în distribuția Delphi.

Opțiune de conectare
Înainte de a conecta conectori, prize, trebuie să creați o funcție de soclu pentru conector
2. Priză (af, tip, protocol) : Întreg;

Unde:
af este o familie de adrese, în cazul nostru af:= PF_INET.
tip - tip de conector socket (SOCK_STREAM, bazat pe familia de adrese TCP și orientat spre conexiuni, și SOCK_DGRAM, bazat pe familia de adrese UDP și care funcționează fără conexiuni (folosim SOCK_STREAM, deoarece este mai fiabil)).
protocol - un parametru care definește unele caracteristici ale protocolului, în cazul nostru - 0.
După execuție, funcția returnează o valoare întreagă, care este un pointer către noul socket. În continuare, ar trebui să setați opțiunile structurii TSockAddrIn, care conține informații despre conexiune. Această structură are multe domenii, dar ne interesează doar trei dintre ele:
sin_family - conține numele familiei de adrese. Această opțiune este similară cu af.
sin_port - numărul de adresă al portului prin care are loc comunicarea cu conectorul priză. Adresa portului trebuie să fie mai mare decât 1024, deoarece valorile mai mici sunt rezervate aplicațiilor existente. Numărul portului trebuie specificat în așa-numitul format de rețea, când octeții mari merg la adresele joase. Aceasta diferă de stocarea adoptată în arhitectura x86 (Intel), deci este necesară conversia folosind funcția htons() din formatul acestei arhitecturi în cel de rețea (htons înseamnă Host To Network, Short (adică 16-bit). )). Translația inversă se poate face folosind funcția ntohs().
sin_addr - acest câmp are un subcâmp s_addr: integer, căruia trebuie să îi atribuim valoarea funcției inet_addr(iAddr). Această funcție convertește o adresă IP șir într-un număr de 4 octeți, adică iAddr este adresa computerului pe care vrem să-l contactăm. Puteți obține adresa rulând pe computerul dorit Comanda NETSTAT-r. Adresa trebuie să fie și în format de rețea, dar funcția inet_addr() returnează deja un rezultat în format de rețea și nu este necesară nicio conversie în acest caz. Dacă acest lucru trebuie făcut, atunci funcțiile htonl() și ntohl() pot fi utilizate. Notă: Când transmiteți date în format binar printr-o rețea, fiți conștienți de interpretarea diferită a ordinii octeților de cuvinte pe diferite arhitecturi și convertiți datele în formatul de rețea.
Acum că am completat structura adresei, executăm funcția
3. Connect(Sock, SA, SASize): Integer;

Unde:


SASize - dimensiune SA.
Dacă SOCKET_ERROR este returnat ca rezultat al executării Connect, atunci funcția a fost executată incorect (vezi exemplul). În caz contrar, este returnat 0.
După stabilirea unei conexiuni, puteți utiliza funcții pentru primirea și trimiterea datelor, cum ar fi recv, send.
Funcția de conectare prin API trimite un mesaj către driverul de protocol TCP, care, la rândul său, trimite un pachet de inițializare către computerul de destinație prin protocoale de nivel inferior pentru a stabili o conexiune. Funcția se încheie când conexiunea este stabilită.
4. Recv(Sock, Buf, BufSize, Flags): Integer;

Unde:
Sock este rezultatul executării funcției Socket.
Buf - tamponul în care vor merge datele primite.
BufSize - dimensiunea tamponului.
Steaguri - steaguri. Poate fi MSG_PEEK sau MSG_OOB. Să setăm acest câmp la 0.

5. Trimite (Sock, Buf, BufSize, Flags) : Întreger;

Unde:
Sock este rezultatul executării funcției Socket.
Buf - buffer de date trimise.
BufSize - dimensiunea tamponului.
Steaguri - steaguri. Este egal cu 0.
Dacă nu a apărut nicio eroare, se returnează numărul de octeți primiți; dacă conexiunea a fost închisă corect, 0; în caz contrar, dacă conexiunea este închisă, este returnat un număr negativ.
Pentru a termina conexiunea, utilizați funcția
6. CloseSocket(Sock): Integer;

Unde:
Sock este rezultatul executării funcției Socket.

Opțiunea „Acceptați conexiunea”
O altă opțiune pentru stabilirea unei conexiuni este acceptarea acesteia. În general, în orice conexiune trebuie să existe ambele opțiuni - conectarea și primirea unei conexiuni (un computer este un server, efectuează recepția, celălalt este client, inițiază recepția). Procedura de inițializare a serverului este aceeași ca și pentru client, cu diferența că:
În loc de adresa altui computer, introducem adresa noastră sau „0.0.0.0” în structura TSockAddrIn pentru a accepta toate conexiunile de intrare.
în loc de Connect "a executăm funcțiile:
7. Bind(Sock, SA, SASize): Integer;

Unde:
Sock este rezultatul executării funcției Socket.
SA este structura TSockAddrIn pe care am completat-o.
SASize - dimensiunea sa.
Dacă nu au apărut erori, se returnează 0, în caz contrar SOCKET_ERROR.
Această funcție leagă conectorul nostru socket la adresa pe care o specificăm.
8. Ascultă (Sock, Backlog): Întregul;

Unde:
Sock este rezultatul executării funcției Socket.
Backlog - dimensiunea maximă a cozii de conexiuni în așteptare.
Dacă nu au apărut erori, se returnează 0, în caz contrar SOCKET_ERROR.
Această funcție setează conectorul priză în modul de ascultare a canalului.
9. Accept (Sock, SA, SASize) : Integer;

Unde:
Sock este rezultatul executării funcției Socket.
SA este structura TSockAddrIn pe care am completat-o.
SASize - dimensiune SA.
Dacă SOCKET_ERROR este returnat ca rezultat al executării Accept, atunci funcția a fost executată incorect (vezi exemplul) În caz contrar, este returnat 0.
După stabilirea unei conexiuni, puteți utiliza funcții pentru primirea și trimiterea datelor, cum ar fi recv, send. Funcția se încheie când conexiunea este stabilită.

După conectare
Odată conectat, puteți începe să faceți schimb de informații folosind funcțiile de mai sus recv și trimitere. De asemenea, puteți adăuga că conectorii prize sunt clasificate ca blocante și neblocante. Primii asteapta terminarea operatiei, cei din urma nu asteapta.
Pentru a seta conectorii prize într-o stare de non-blocare, utilizați funcția:
ioctlsocket(Sock, CMD, Value): Integer;

Unde:
Sock este rezultatul executării funcției Socket.
CMD este o comandă pentru controlul unui conector priză (în exemplul nostru, este constanta FIONBIO).
Valoare - valoarea sa 0 - pornit, 1 - oprit.
Dacă nu au apărut erori, se returnează 0, în caz contrar SOCKET_ERROR.
Când lucrați direct cu conectorii socket, nu veți primi întotdeauna la receptor exact numărul de octeți pe care i-ați trimis și, după un timp, trebuie să „citiți” octeții de la conectorul priză. Acest lucru se explică prin principiul organizării socket-urilor de streaming, care în acest caz sunt percepute ca fișiere. Este posibil, totuși, să dezactivați algoritmul NAGLE, care controlează împărțirea mesajelor în datagrame, folosind următoarea funcție:
setsockopt(Sock, Level, Parameter, PChar(Value), ValueSize) : Integer;

Unde:
Sock este rezultatul executării funcției Socket.
Nivel - nivel de echipă.
Parametrul este o comandă pentru controlul unui conector cu o priză (în exemplul nostru, constanta TCP_NODELAY).
Valoare - valoarea acesteia (0 - activat, 1 - oprit).
ValueSize - dimensiunea valorii.
Dacă nu au apărut erori, se returnează 0, în caz contrar SOCKET_ERROR.
Puteți determina adresa corespondentului din structura TSockAddrIn după executarea comenzii accept (vezi mai sus) sau folosind funcția getpeername (vezi Delphi sock.hlp).
Puteți determina numele computerului după adresă folosind funcția GetHostByAddr (consultați Delphi sock.hlp).

TCP (Transmission Control Protocol) – protocol de control al transmisiei. Pentru a asigura livrarea fiabilă a datelor la nivel de protocol de transport, aplicațiile folosesc protocolul TCP, care verifică dacă datele au fost livrate prin rețea în ordinea necesară. TCP este un protocol de streaming de încredere, care necesită crearea de conexiuni logice. Fiabilitatea TCP este asigurată de mecanismul său de recunoaștere și retransmitere. Când se utilizează acest mecanism, datele vor fi retrimise până când primește confirmarea de la sistemul destinatar că datele au fost transmise cu succes.

Fiecare pachet contine suma de control, prin care destinatarul determină integritatea datelor. Dacă pachetul este primit intact, destinatarul trimite o confirmare la sursă. Pachetele deteriorate sunt pur și simplu ignorate de către destinatar. După ce a trecut o anumită perioadă de timp, expeditorul transmite din nou pachete pentru care nu au fost primite confirmări.

Să luăm în considerare procesul așa-numitei „strângere de mână” - stabilirea unei conexiuni TCP. Din partea clientului, un pachet este trimis cu steag-ul SYN setat - aceasta înseamnă inițializarea unei sesiuni TCP. În această etapă, gazda va genera un port sursă și un port destinație (portul sursă este selectat aleatoriu din intervalul 1024 - 655535). Portul de destinație depinde de serviciul specific (http – 80, ftp – 21, pop3 – 110).

Când se primește un pachet, serverul, dacă nu îi deranjează conexiunea, trimite un pachet de răspuns cu biții SYN și ACK. ACK – înseamnă bit de confirmare. De asemenea, în antetul TCP, serverul generează un număr de secvență arbitrar și adaugă unul la numărul de confirmare.

În cele din urmă, gazda trimite un pachet care confirmă primirea datelor de la server, precum și primul bloc de date în sine.

Antetul protocolului TCP conține un câmp numit Număr de secvență, care conține numărul unei anumite secvențe. Există și un câmp Număr de confirmare, care indică confirmarea coletului cu acest număr. Numărul de secvență și numărul de confirmare sunt utilizate pentru a păstra ordinea datelor. Dar mai precis, numărul de secvență este punctul de raportare pentru sistemul de numerotare a octeților. Din motive de securitate, ISN-ul ar trebui să fie un număr aleatoriu. Numărul de confirmare este utilizat pentru a confirma recepția și fluxul de control. Confirmarea spune sursei câte date au fost primite și câte date mai multe este capabilă să accepte destinația. Numărul de confirmare este numărul de secvență al următorului octet așteptat de destinatar.

Câmpul de dimensiune Windows conține numărul de octeți pe care destinația îi poate accepta. Fereastra este o indicație către sursă că poate continua să transmită segmente dacă numărul total de octeți transmiși este mai mic decât fereastra octet de destinație. Destinația controlează fluxul de octeți sursă prin modificarea dimensiunii ferestrei. O fereastră zero îi indică expeditorului să oprească transmiterea până când este primită o valoare de fereastră diferită de zero.

Câmpuri Port sursă, Port destinație – port sursă, port destinație. UGR,

Câmpurile UGR, ACK, PSH, RST, SYN. FIN – biți de control:

  • UGR – indicator de urgență, arată prioritatea pachetelor TCP
  • ACK – confirmare, marchează acest pachet ca confirmare de primire
  • PSH – push, împinge datele aflate în coadă din buffere
  • RST – resetează, resetează conexiunea TCP la finalizare sau după o pauză
  • SYN – sincronizare, sincronizează conexiunea
  • FIN – finalizare, se încheie transferul de date

Figura de mai jos arată un flux de date TCP cu un număr de secvență inițial zero. Destinația a primit și a confirmat primirea a 2000 de octeți, deci numărul ACK actual este 2001. În plus, destinația are capacitatea de a accepta încă 6000 de octeți și, prin urmare, prezintă o fereastră cu o valoare de 6000. Sursa trimite un octet de 2000. segment cu numărul de secvență SN = 4001. Pentru octeții 2001 și confirmările ulterioare nu au fost încă primite, dar sursa continuă să transmită date până când resursele ferestrei sunt epuizate. Dacă nu au fost primite confirmări de către sursă pentru datele deja trimise când fereastra este umplută, sursa retransmite datele după un anumit interval de timp, începând de la primul octet neconfirmat.

Această metodă garantează livrarea fiabilă a datelor către destinatar. În plus, TCP este responsabil pentru livrarea datelor primite de la IP către aplicația corespunzătoare. Aplicația căreia îi sunt destinate datele este identificată printr-un număr de 16 biți, numărul portului. Portul sursă și portul de destinație se găsesc în antetul TCP. Comunicarea corectă cu stratul de aplicație este o componentă importantă a funcționalității serviciilor de nivel de transport.

Închiderea unei conexiuni TCP implică eliberarea memoriei alocate pentru buffer-uri și variabile și poate fi inițiată de oricare dintre părți. Procesul client emite o comandă de închidere a conexiunii, care determină clientul TCP să trimită un segment special. În antetul acestui segment, indicatorul FIN este setat la 1. După ce a primit acest segment, serverul confirmă acest lucru. Serverul trimite apoi clientului un segment final în care bitul FIN este de asemenea setat la 1; la randul sau, primirea acestui segment este confirmata de catre client. După aceasta, toate resursele de conectare de pe ambele părți sunt eliberate.


Abonează-te la nostru

Capitolul 6

Trecut, prezent

și viitorul protocolului TCP/IP

După citirea acestui capitol și finalizarea exercițiilor practice, veți fi capabil să:

· spune povestea apariției TCP/IP;

· să explice principiile de funcționare a protocoalelor TCP și IP, precum și metodele de utilizare a protocoalelor UDP în locul TCP;

· vorbiți despre adresarea IP și înțelegeți cum să o implementați în rețelele locale și globale;

· vorbim despre noul protocol IP versiunea 6 și despre scopul acestuia;

· discutați modalități de utilizare a protocoalelor de aplicație incluse în stiva TCP/IP;

· înțelegerea scopului protocoalelor de aplicare ale stivei TCP/IP;

· corelați implementarea TCP/IP cu modelul de referință OSI.

Atunci când computerele comunică prin Internet, ele folosesc Transmission Control Protocol/Internet Protocol (TCP/IP) ca limbă de comunicare. De asemenea, protocoalele TCP/IP sunt utilizate pe scară largă în majoritatea rețelelor medii și mari. Aceste protocoale acceptă rețele bazate pe platformele Novell NetWare, UNIX și Windows, în special rețele și rețele emergente care utilizează aplicații client-server sau web. Adopția pe scară largă, tehnologiile dovedite și extensibilitatea fac din TCP/IP o alegere bună pentru majoritatea proiectelor care interoperează între local și rețele globale. Chiar și în rețele mici implementarea TCP/IP poate fi vitală pentru dezvoltarea viitoare a rețelei.

Acest capitol va acoperi în detaliu protocoalele TCP/IP, inclusiv descrierile pachetelor TCP și IP și metodele de adresare IP. Veți afla, de asemenea, despre o alternativă la TCP - User Datagram Protocol (UDP), care este utilizat atunci când confirmarea datelor transmise nu este la fel de importantă ca viteza și încărcarea redusă a rețelei. Capitolul discută cea mai nouă versiune Protocolul IP, numit IPv6, și este comparat cu predecesorul său, IPv4. În plus, descrie protocoalele de aplicație incluse în stiva TCP/IP și destinate emulării terminalelor de transfer de fișiere și a mesajelor de e-mail, conversia și atribuirea de adrese IP, precum și pentru gestionarea rețelei. În cele din urmă, veți afla cum se leagă arhitectura TCP/IP cu modelul de referință OSI.

O scurtă istorie a stivei TCP/IP

La sfârșitul anilor 1960, ARPA a lucrat pentru a pune la dispoziție ARPANET-ul uz comun, permițând computerelor din universități, instituții de cercetare și Departamentului de Apărare să comunice printr-o rețea globală. Unul dintre obstacolele notabile în calea atingerii acestui obiectiv a fost faptul că producătorii de computere aveau propriile standarde, iar producătorii protejau informațiile despre principiile sistemelor lor ca secret comercial.

Prima încercare de a crea un mijloc de interacțiune între diferite computere a fost făcută de mai multe universități, care au dezvoltat un protocol de rețea numit Reţea Control Protocol (NCP) și a permis computerelor gazdă de la diferite companii, inclusiv DEC și IBM, să facă schimb de informații. NCP era un protocol simplu care permitea diferitelor tipuri de computere DEC și IBM să intre în rețea și să ruleze aplicații într-o rețea în care gazdele erau îndepărtate geografic unele de altele. De exemplu, una dintre aplicațiile protocolului NCP a fost transferul de fișiere între computere. Acesta a fost un început bun, dar protocolul NCP nu a putut oferi o transmisie de date suficient de fiabilă, așa că ARPA a lansat un proiect de modernizare. Protocolul dezvoltat a fost de fapt o combinație a două protocoale - Transmitere Control Protocol (TCP) Și Internet Protocol (IP) ale căror nume sunt de obicei prescurtate în TCP/IP.

Notă

NCP este încă folosit pe rețelele mai vechi DEC și IBM, deși este foarte dificil de configurat. Acest protocol creează o încărcare mare a CPU, deoarece conține un anumit nivel de comunicare în rețea care nu este utilizat de TCP.

Atenţie

IBM folosește acronimul NCP pentru a se referi la Programul său de control al rețelei. Acest program este o aplicație care rulează pe un procesor edge (calculator mic) sau gateway SNA care este conectat la mainframe, oferind ultima oportunitate interacțiuni în rețea.

Noțiuni de bază ale stivei TCP/IP

Protocolul TCP, descris în RFC 793, a fost conceput inițial pentru comunicații punct-la-punct între computere din aceeași rețea, în timp ce protocolul IP (RFC 791) a fost destinat să furnizeze comunicații între computere conectate la rețele diferite sau la rețele extinse. . La scurt timp după introducerea lor, ambele protocoale au fost combinate ca o stivă TCP/IP pentru a fi utilizate în popularele sisteme de operare Berkeley UNIX și au fost încorporate în Sistemul de memorie virtuală (VMS, acum OpenVMS) și Multiple Virtual Storage (MVS, acum OpenMVS) IBM DEC.

De la introducerea sa la începutul anilor 1970, stiva TCP/IP a fost utilizată pe scară largă în rețele din tari diferite pace. Este implementat pentru computere compatibile cu PC, stații de lucru UNIX, minicalculatoare, computere Macintosh și dispozitive de rețea care conectează clienți și gazde. TCP/IP oferă mii de rețele publice și comerciale cu conexiune la Internet care poate fi utilizată de milioane de oameni.

TCP/IP este o stivă de protocoale stratificată care este similară, dar nu echivalentă cu straturile de protocol OSI. Stiva TCP/IP conține aproximativ o sută de protocoale standardizate pentru a asigura un transfer de date fiabil și eficient între sisteme. Protocoalele de bază din stiva TCP/IP sunt următoarele:

· Protocolul de control al transmisiei (TCP);

· User Datagram Protocol (UDP);

· Protocol Internet (IP).

Fiecare dintre aceste protocoale este discutat în detaliu în secțiunile următoare.

Operarea protocoluluiTCP

TCP este un protocol de transport care este utilizat pentru a stabili sesiuni de date între procesele de aplicație lansate de clienții rețelei. TCP este conceput pentru a furniza date în mod fiabil, asigurându-se că cadrele sunt recepționate corect și controlând fluxul de date. Pentru a rezolva aceste probleme, protocolul prevede comandarea cadrelor și confirmarea primirii acestora.

Cele două dispozitive comunicante specifică un număr de secvență pentru fiecare cadru transmis, iar acest număr este scris în antetul cadrului TCP.Numărul de secvență nu indică doar locația cadrului în cadrele ulterioare, dar indică și lungimea datelor conținute în acel cadru. La primirea unui cadru, nodul receptor verifică numărul de secvență pentru a se asigura că a primit cadrul corect în ordinea corectă. Dacă nodul destinație primește cadrul, acesta trimite o confirmare către nodul expeditor. Pachetul de confirmare nu numai că indică recepția cu succes a cadrului, dar conține și numărul de secvență al următorului cadru pe care nodul receptor îl așteaptă transmisie.

Este apelat numărul de octeți de date transferați într-un cadru alunecare fereastră (fereastră glisante), deoarece acest număr poate crește sau descrește în procesul de schimb de informații prin acord reciproc între nodurile care interacționează. Mărimea ferestrei glisante este determinată dinamic de noduri, luând în considerare doi factori:

· trafic curent de rețea;

Cooperative cu scop lucrativ (deținute de angajați)

Educational

Guvern

Organizații de înregistrare a numelor de domeniu

Organizații create în baza tratatelor internaționale

Muzeu

Domenii pentru uz personal

Furnizorii de servicii de rețea

Nonprofit

Profesional (de exemplu, asociații de medici, contabili sau avocați)

Tabelul 6.4. nume de domenii DMS

Tabelul 6.5. Nume de domenii globale de nivel superior propuse (TLD)

Rezolvatori de numeDNSși spații de nume

Serviciul DNS necesită soluții de nume de domeniu pe fiecare client, precum și un server de nume de domeniu instalat pe una sau mai multe gazde. Suport servere DNS spatiu de nume(spațiu de nume) pentru o întreprindere și să implementeze un mecanism pentru rezolvarea numelor și domeniilor computerelor în adrese IP, precum și conversia inversă. Un spațiu de nume este o zonă logică a unei rețele care conține o listă de obiecte numite (cum ar fi computere) și permite rezoluția numelui.

Utilizarea zonelor

Serverele DNS mențin tabele de informații care asociază nume de computer sau de domenii cu adrese IP. Aceste tabele sunt asociate cu partițiile de server DNS numite zoneși care conțin înregistrări de resurse. Fiecare zonă este un tabel (fișier de zonă sau bază de date de zonă) de înregistrări de resurse de diferite tipuri (de exemplu, înregistrări care asociază servere de domeniu cu servicii care rulează pe acele servere). Alte înregistrări de resurse asociază nume de computer și adrese IP.

Zona care asociază nume de computer cu adrese JH corespunzătoare se numește zonă de căutare directă. Această zonă conține înregistrări de nume de gazdă numite înregistrări de adrese. Fiecare server și client dintr-o rețea IP trebuie să aibă o înregistrare a adresei care să le permită să fie găsite de către folosind DNS. De exemplu, dacă serverul DNS se numește NetAdmin și are o adresă 129.70.10.1, atunci zona de căutare directă asociază numele NetAdmin cu adresa 129.70.10.1. Pentru IPv4, înregistrarea gazdei este numită înregistrare de resurse adresa gazdei (A). Pentru protocolul IPv6, o astfel de înregistrare se numește înregistrare de resurse pentru adresă de gazdă (tip AAAA) (înregistrare de resurse pentru adresa de gazdă IPv6 (AAAA).

Notă

Când instalați un serviciu de director (de exemplu, Director activ) trebuie să aveți cel puțin un server DNS în rețea, deoarece acest serviciu face parte din spațiul de nume utilizat pentru a stoca informații despre obiectele din rețea (cum ar fi computere, imprimante și partajări). Pentru a actualiza aceste informații, serviciul de director trebuie să comunice cu serverul DNS.

Într-o altă zonă numită zona de căutare inversă(zona de căutare inversă) sunt stocate înregistrările de resurse pointer (cum ar fiPTR) (înregistrare de resurse pointer (PTR), care asociază adrese IP cu nume de gazdă. Zonele de căutare inversă nu sunt utilizate la fel de des ca zonele de căutare directă, dar nu ar trebui create în cazurile în care comunicațiile în rețea necesită ca o adresă IP să fie asociată cu un nume de computer (de exemplu, pentru a monitoriza o rețea folosind IP). -adrese).

RoluriDNS-servere

De obicei, un server DNS dintr-o rețea joacă unul dintre cele două roluri: poate acționa fie ca server DNS primar, fie ca server DNS secundar. PrincipalDNS-Server(server DNS primar) este considerat a fi un server care este responsabil pentru o anumită zonă și, prin urmare, este numit un server autorizat pentru această zonă. De exemplu, dacă o zonă de căutare directă pentru un domeniu DD este creată pentru prima dată pe un anumit server DNS, atunci înregistrarea resurselor de pornire a zonei (SOA) (începutul înregistrării resurselor de autoritate (SOA)), identificarea acest server ca server DNS autorizat pentru domeniu.Aceasta înseamnă că toate modificările zonei (cum ar fi crearea înregistrărilor de resurse pentru adresele gazdei (Tip A)) trebuie efectuate pe acest server.

La mijloc și rețele mari instalați de obicei unul sau mai multe servere DNS de rezervă, numite (în raport cu DNS-ul principal) adiţional, sau secundar DNS-servere(server DNS secundar). Serverul DNS secundar conține o copie a fișierului de zonă stocat pe serverul DNS primar, în timp ce această copie nu poate fi folosit pentru sarcini administrative. Pentru a actualiza copia, zona este transferată prin rețea. În timpul redirecționării zonei, conținutul zonei este transferat de la serverul DNS principal la serverul DNS secundar.

Serverele DNS suplimentare îndeplinesc trei sarcini importante. În primul rând, vă permit să obțineți o copie a datelor principale ale serverului DNS în cazul unei defecțiuni a serverului. În al doilea rând, vă permit să distribuiți încărcarea serviciului DNS (permițând accesul la înregistrările de resurse partajate) între serverele DNS primare și secundare. Echilibrarea încărcăturii înseamnă că, dacă serverul DNS primar nu poate rezolva un nume din cauza congestiei, o cerere de rezoluție a unui al doilea nume poate fi procesată de un server DNS secundar, rezultând răspunsuri mai rapide la solicitările clientului. În al treilea rând, serverele DNS suplimentare pot fi plasate în diferite zone ale rețelei (de exemplu, în diferite subrețele sau la locații îndepărtate geografic), rezultând o sarcină redusă pe secțiuni individuale ale rețelei.

Sfat

Pentru a asigura toleranța la erori în rețelele medii și mari, se recomandă crearea a cel puțin un server ONS suplimentar în fiecare subrețea care să fie diferit de subrețeaua în care se află serverul DNS principal.

Pentru a vă familiariza cu zonele, înregistrările de resurse de start-of-zone (SOA) și alte informații stocate pe un server DNS, parcurgeți Practica 6-8.

StandardeDNS

Serverele autorizate acceptă de obicei două standarde DNS: înregistrările resurselor de servicii și Protocolul de actualizare dinamică DNS. Înregistrarea resurselorservicii (tipSVR) O înregistrare a resurselor de serviciu (SVR RR) este descrisă în RFC 2052 și este un tip de înregistrare DNS care permite DNS să recunoască diferite servere și să determine locația serviciilor TCP/IP utilizate în mod obișnuit care rulează pe anumite servere. Înregistrările SRV permit serverului DNS să genereze o listă de servere de rețea care furnizează servicii TCP/IP. Aceste intrări raportează, de asemenea, protocoalele acceptate de aceste servere și vă permit să determinați serverul preferat pentru un anumit serviciu. Formatul de înregistrare SRV conține informații despre tipul de serviciu care rulează pe un server, numele domeniului care este deservit de acel server și protocolul utilizat de server.

Protocol de actualizare dinamicăDNS(Protocolul de actualizare dinamică DNS) este descris în RFC 2136, cu ajutorul acestuia puteți actualiza automat informațiile pe 1 server DNS. Un exemplu ar fi o stație de lucru sub Control Windows XP Professional actualizându-și adresa IP obținută de la Server DHCP. Protocolul de actualizare dinamică DNS poate economisi mult timp unui administrator de rețea, deoarece nu va trebui să înregistreze manual fiecare stație de lucru nouă sau să înregistreze un computer de fiecare dată când adresa IP închiriată expiră la primirea unei noi adrese.

Sfat

Într-o rețea care rulează Microsoft Active Directory, înregistrările SRV permit stațiilor de lucru să găsească rapid cel mai apropiat server pentru a autentifica cererile de conectare la rețea. Acest lucru vă permite să reduceți traficul inutil de rețea.

Protocol de configurare dinamică a gazdei (DHCP)

Protocol Dinamic Gazdă Configurare Protocol (DHCP) (Dynamic Host Configuration Protocol) vă permite să atribuiți automat adrese 1P în rețea folosind un server DHCP. Când computer nou Când un computer configurat să funcționeze cu DHCP se conectează la rețea, acesta contactează un server DHCP, care alocă (închiriază) o adresă IP computerului, transferându-l prin protocolul DHCP. Durata de închiriere este setată pe serverul DHCP de către administratorul de rețea. De exemplu, perioada de închiriere pt calculator desktop poate varia de la câteva zile la câteva săptămâni (deoarece computerul este conectat în mod constant la rețea). Perioada de închiriere a unui laptop poate varia de la câteva ore până la o zi (de la laptop adesea se deconectează de la rețea sau se mută în alte părți ale rețelei). În cele din urmă, computerul gazdă sau serverul poate închiria adresa pe perpetuitate, deoarece adresa sa nu se schimbă niciodată.

Sfat

Pentru a simplifica administrarea rețelei, instalați compatibil reciproc servere DNSși DHCP, care acceptă protocolul de actualizare dinamică DNS. Acest lucru garantează actualizare automata Zonele DNS cu un server DHCP sau clienți DHCP și eliberează administratorul de a fi nevoit să facă acest lucru manual.

Protocolul de rezoluție a adresei(ARP)

În cele mai multe cazuri, pentru a trimite un pachet către gazda receptor, expeditorul trebuie să cunoască atât adresa IP, cât și adresa MAC. De exemplu, la multicasting, sunt folosite ambele adrese (IP și MAC). Aceste adrese nu se potrivesc cu ale mele și au diferite formate(zecimală punctată și respectiv hexazecimală).

Abordare Rezoluţie Protocol (ARP) (Address Resolution Protocol) permite nodului expeditor să obțină adresele MAC ale nodului receptor selectat înainte de a trimite pachete. Dacă nodul sursă are nevoie de o anumită adresă MAC, atunci trimite un cadru de difuzare ARP care conține propria sa adresă MAC și adresa IP a nodului receptor dorit. Nodul receptor trimite înapoi un pachet de răspuns ARP care conține adresa sa MAC.

Protocolul de sprijin este Verso Abordare Rezoluţie Protocol (RARP) (Reverse Name Resolution Protocol) prin care o gazdă de rețea își poate determina propria adresă IP. De exemplu, RARP este utilizat de stațiile de lucru fără disc, care nu pot afla adresele lor decât prin efectuarea unei cereri RARP către serverul lor gazdă. În plus, RARP este folosit de unele aplicații pentru a determina adresa IP a computerului pe care rulează.

Protocol simplu de gestionare a rețelei (SNMP)

Simplu Reţea management Protocol (SNMP) (Simple Network Management Protocol) permite administratorilor de rețea să monitorizeze continuu activitatea rețelei. SNMP a fost dezvoltat în anii 1980 pentru a oferi stivei TCP/IP un mecanism alternativ la standardul de management al rețelei OSI. Uzual management Interfață Protocol (CMIP) (Common Control Information Protocol).

Deși SNMP a fost creat pentru stiva TCP/IP, acesta urmează modelul de referință OSI. Majoritatea producătorilor au ales să folosească SNMP mai degrabă decât CMIP, datorită popularității mari a protocoalelor TCP/IP, precum și simplității SNMP. Protocolul SNMP este acceptat de multe sute de dispozitive de rețea, inclusiv servere de fișiere, carduri adaptoare de rețea, routere, repetoare, poduri, comutatoare și hub-uri. În comparație, CMIP este utilizat de IBM în unele rețele token ring, dar nu se găsește în multe alte rețele.

AvantajeSNMP

Un avantaj important al SNMP este că funcționează independent de rețea, adică nu are nevoie de o conexiune bidirecțională cu alte obiecte de rețea la nivel de protocol. Acest lucru permite SNMP să analizeze activitatea rețelei, cum ar fi detectarea pachetelor incomplete și monitorizarea transmisiilor, fără a fi afectat de informații eronate care ar putea proveni de la un Nod defect. În comparație, CMIP se conectează la nodurile de rețea la nivel de protocol, ceea ce înseamnă că capacitatea sa de a detecta probleme depinde de sănătatea unui nod care ar putea fi defect.

Un alt avantaj al SNMP este că funcțiile de monitorizare sunt efectuate la o stație de administrare a rețelei. Prin aceasta, SNMP diferă de protocolul CMIP, pentru care funcțiile de management sunt distribuite între noduri de rețea individuale, care sunt, de asemenea, obiecte de monitorizare. În plus, SN. MP necesită mai puțin memorie cu acces aleator decât CMIP. CMIP necesită până la 1,5 MB de memorie pe fiecare nod examinat, în timp ce SNMP necesită doar 64 KB.

Tipuri de noduri utilizate de protocolSNMP

Protocolul SNMP oferă două tipuri de noduri: stația de gestionare a rețelei (NMS) și agenții de rețea. Stația de gestionare a rețelei monitorizează dispozitivele de rețea care acceptă SNMP. Aceste dispozitive rulează software agent care interacționează cu stația. Cele mai multe dispozitive conectate la rețele moderne, sunt agenți. Acestea includ routere, repetoare, hub-uri, comutatoare, poduri, calculatoare personale(prin adaptoarele lor de rețea), servere de imprimare, servere de acces și surse de alimentare neîntreruptibile.

Folosind consola de la stația de gestionare a rețelei, puteți trimite comenzi către dispozitivele din rețea și puteți obține date de performanță (statistici). Stația de gestionare a rețelei poate construi o diagramă bloc a întregii rețele. Dacă apare un nou dispozitiv în rețea, stația îl poate detecta imediat. Software stațiile de gestionare a rețelei pot detecta când agentul este oprit sau nu funcționează corect. Pictograma agentului poate apărea într-o culoare diferită pe diagramă sau poate suna o alarmă. De obicei, programele stației de gestionare a rețelei au un grafic interfața cu utilizatorulși sunt foarte ușor de lucrat cu ele.

Multe pachete software pentru stația de management al rețelei pot oferi citiri grafice ale contorului care afișează utilizarea rețelei, fluxul de pachete și alte statistici. Când apare o eroare, simbolurile grafice vă ajută să înțelegeți gravitatea problemei și să identificați tipul de agent care a eșuat. Unele pachete au interfețe de programare a aplicațiilor (API) care vă permit să interacționați cu software-ul și să programați sarcini specifice folosind limbaj simplu(de ex. Visual Basic).

Fiecare agent de rețea stochează baza de informatii, care conține numărul de pachete trimise sau primite, numărul de erori de pachet și alte date. Această bază de date se numește Management Information Base (MIB). Stația de gestionare a rețelei are multe comenzi care vă permit să accesați și să gestionați datele din această bază de date. Asemenea comenzi sunt trimise folosind unități de date de protocol (PDU) compatibile cu OSI și conțin un tip de mesaj (de exemplu, obțineți cererea, obțineți următoarea cerere, solicitați răspunsul, setați cererea și capcana sistemului). Datele rezultate vă permit să determinați dacă dispozitivul este pornit și dacă există probleme de rețea. Stația de gestionare a rețelei vă permite chiar să reporniți dispozitivul de la distanță. Mesajele dintre stație și agent sunt transmise prin protocolul UDP, antetul SNMP este adăugat la pachete. Sarcina utilă SNMP conține numele Grupului(numele comunității), care este o parolă comună stației de gestionare a rețelei și agentului.

Baza de date cu informații de management stochează informații despre obiectele de rețea (cum ar fi stațiile de lucru, serverele, podurile, routerele, hub-urile și repetitoarele). Setul principal de variabile conținute în această bază de date este prezentat în tabel. 6.6. Tabelul MIB a fost descris inițial în standardul Management Information Base-I. Acest standard definește informațiile despre dispozitiv și multe variabile asociate. Standardele MIB sunt dezvoltate de Internet Engineering Task Force (IETF).

Tabelul 6.6. Controlați variabilele bazei de informații (MlÎN)

VariabileMIB

Scop

Adresa grupului de traduceri

Convertește adresele de rețea în adrese de subrețea sau adrese fizice

Grup de protocol gateway electronic dispozitive electronice)

Oferă informații despre gazde de pe același segment cu agentul de rețea

Grupul de interfețe

Monitorizează numărul de adaptoare de rețea și numărul de subrețele

Grup de protocol de mesaje de control Internet

Colectează date privind cantitatea. mesajele trimise și primite de agent

grup de protocoale Internet

Urmărește numărul de datagrame de intrare acceptate și numărul de datagrame respinse

grup SNMP

Colectează date despre apelurile către baza de date MIB

Grup de sistem

Conține informații despre agentul de rețea

Grup de protocol de control al transmisiei

Oferă informații despre conexiunile TCP din rețea, inclusiv informații despre adresă și timeout

Grup de protocol de datagramă utilizator

Oferă informații despre agentul de ascultare cu care stația de gestionare a rețelei comunică în prezent

Noul standard îmbunătățit MIB-II descrie caracteristici de securitate suplimentare, suport pentru rețelele token ring și interfețe de mare viteză și suport pentru interfețele de telecomunicații. Standardul MIB-II a fost adoptat de mulți producători de echipamente de rețea.

Noi funcții de protocolSNMPv2

Prima versiune a protocolului SNMP a avut unele deficiențe, care au fost corectate în a doua versiune, numită SNMPv2. Poate cel mai mare dezavantaj al SNMP este lipsa mecanismelor de securitate. Când utilizați SNMP, numele grupului este trimis necriptat de către stația de gestionare a rețelei și, dacă este interceptată, această parolă poate fi utilizată pentru a obține acces la comenzile importante de gestionare a rețelei. Ca urmare a unei astfel de scurgeri, un atacator poate modifica de la distanță setările unui router sau hub și discreditează securitatea rețelei.

SNMPv2 permite criptarea numelor de grup, gestionarea îmbunătățită a erorilor și interoperabilitatea cu multe protocoale. De asemenea, acceptă IPX și AppleTalk. În plus, SNMPv2 oferă un transfer mai rapid de informații și permite preluarea mai multor date din MIB-II în același timp.

Monitorizare folosind protocoaleSNMPȘiSNMPv2

Protocoalele SNMP și SNMPv2 pot fi utilizate pentru a gestiona orice rețea: locală, globală și mixtă. Există multe instrumente și pachete software pentru monitorizarea rețelei care utilizează SNMP și SNMPv2. Acestea includ programele Network Associates Sniffer (vezi www. adulmecă. com) și Network Monitor de la Microsoft (vezi www.).

Un instrument important compatibil SNMP utilizat pentru monitorizare rețele locale, conectat prin rețele globale, este un standard dezvoltat la începutul anilor 1990 la distanta Reţea Monitorizarea (RMON) (monitorizarea rețelei de la distanță). RMON nu numai că folosește protocolul SNMP, dar folosește și o bază de date specială pentru monitorizare de la distanță numită RMON MIB-II. Această bază de date permite nodurilor de rețea la distanță să colecteze statistici de rețea aproape oriunde într-o rețea locală sau globală. Aceste noduri la distanță sunt agenți sau sonde. Informațiile primite de agenți pot fi transmise unei stații de control, care le introduce într-o bază de date. În prezent, standardele RMON MIB-II sunt adaptate rețelelor FDDI, Ethernet și Token Ring.

Alte protocoale de aplicație ale stivei TCP/IP

Există alte protocoale sau programe de aplicație, incluse în stiva TCP/IP - Ele simplifică operarea serviciilor de Internet, transferul de date al aplicațiilor multimedia, gestionarea rețelei și depanarea. Aceste protocoale și aplicații suplimentare sunt enumerate în tabel. 6.7.

Tabelul 6.7. Aplicații și protocoale TCP/IP Stack

Protocol sauaplicarea

Descriere

O aplicație care permite utilizatorului unei stive TCP/IP să găsească site-uri FTP care conțin informații despre un anumit subiect

Protocolul Bootstrap (BOOTP)

Un protocol folosit de stațiile de lucru fără disc pentru a determina adresa lor IP și pentru a comunica cu serverul de pe care sunt copiate fișierele sistem de operare necesare pentru a descărca aceste posturi

Protocolul de rutare multicast vector la distanță (DVMRP)

Un protocol de rutare multicast utilizat împreună cu RIP pentru a determina ce gazde sunt abonate la transmisii multiple de aplicații multimedia specifice (vezi capitolul 10)

Folosind acest utilitar, un utilizator de rețea poate determina ce alți utilizatori și gazde sunt active în rețea

O aplicație care oferă o listă de subiecte din care utilizatorii pot accesa un alt meniu sau fișiere text(de exemplu, la un fișier care conține o listă de telefoane). Serviciile Gopher sunt rare în zilele noastre, deoarece au fost înlocuite în principal de servere web

Protocolul de transfer hipertext (HTTP)

Protocol pentru transmitere documente HTML(Hypertext Markup Language) prin internet pe baza solicitărilor din browserele web; aceste documente pot include fișiere audio și video, precum și imagini și grafice

Internet Group Management Protocol (IGMP)

Un protocol care permite transmiterea pachetelor multicast către destinatarii și routerele lor. Determină care stații de lucru aparțin unui anumit grup multicast (cm.capitolul 10)

Multicast Open cea mai scurtă cale primul protocol (MOSPF)

Protocol de rutare multicast pentru a determina cea mai scurtă rută de la sursă la destinație pentru transmisiile multicast

Deschideți primul protocol cu ​​calea cea mai scurtă (OSPF)

Un protocol utilizat de rutere pentru a schimba date din tabelul de rutare și pentru a evalua rutele de rețea atunci când transmit date pe baza anumitor criterii (cum ar fi costul rutei)

Un utilitar care permite unui nod de rețea să comunice cu un alt nod din aceeași rețea sau de la distanță și să determine dacă nodul specificat comunică și răspunde la solicitări. Un administrator de rețea poate folosi utilitarul ping pentru a verifica rapid conexiunile la rețeaua globală, contactând o gazdă de la distanță

Protocol în timp real (RIP)

Acest protocol este utilizat pentru a gestiona eficient transmisiile multicast în timp real utilizate pentru conferințe video sau aplicații multimedia similare. (vezi capitolul 10)

Protocol de control al transportului în timp real (RTCP)

Vă permite să gestionați traficul de rețea, facilitând utilizarea aplicațiilor multimedia în timp real (vezi capitolul 10)

Protocolul de rezervare a resurselor (RSVP)

Un protocol care permite alocarea resurselor de rețea unor aplicații specifice (de exemplu, rezervarea lățimii de bandă pentru aplicații multimedia) (vezi capitolul 10)

Protocolul de informații de rutare (RIP)

Prin utilizarea a acestui protocol routerele transmit între ele conținutul tabelelor de rutare și determină cel mai mic număr de relee de la un nod de rețea la altul

Protocol simplu de gestionare a rețelei (SNMP)

Protocolul care colectează statistici de rețea stochează aceste informații într-o bază de date

Traceroute (tracert)

O aplicație care permite utilizatorului să determine numărul de relee dintre două noduri de rețea

În exercițiile de exersare 6-9 și 6-10 puteți exersa utilizarea comenzii ping, iar în exercițiile 6-11 și 6-12 veți învăța cum să utilizați comenzile tracert și ping pentru a determina numărul de relee dintr-un punct pe un punct. rețea la alta.

Comparație între arhitectura stivei TCP/IP și modelul de referințăOSI

După cum se arată în Fig. 6.11, componentele stivei TCP/IP discutate în acest capitol corespund straturilor modelului de referință OSI. Pe măsură ce stiva TCP/IP evoluează, componentele sale urmează din ce în ce mai mult modelul OSI. De exemplu, la straturile Physical și Data Link, stiva TCP/IP este compatibilă cu Rețele Ethernet, Token Ring, FDDI și ATM, precum și rețele de token bus. Pe Nivelul fizic Stiva TCP/IP acceptă coaxial, pereche răsucităși fibră optică, precum și comunicații fără fir. În plus, la nivelul Legăturii de date, stiva este compatibilă cu standardul IEEE 802.2 pentru controlul legăturii logice și adresarea MAC.

Echivalentul stratului de rețea din stiva TCP/IP este protocolul IP. Următorul nivel de compatibilitate este nivelul Transport; ambele protocoale – TCP și UDP – pot funcționa la acest nivel. Straturile superioare ale modelului OSI sunt reprezentate de protocoale de aplicație TCP/IP. De exemplu, protocolul Telnet operează la un nivel echivalent cu stratul Session, în timp ce protocoalele SMTP și FTP funcționează la niveluri similare cu straturile OSI Reprezentant și Aplicație.

rezumat

· TCP/IP este cel mai utilizat protocol de rețea din lume. Este baza pentru Internet și permite milioanelor de computere și servere situate pe întreaga planetă să interacționeze între ele. Protocolul TCP a fost conceput pentru a transmite date în mod fiabil prin stabilirea de conexiuni între noduri și folosind semnale pentru a confirma că pachetele au fost primite.

· Protocolul UDP este o alternativă la TCP. Datorită faptului că conexiunile între noduri nu sunt stabilite, generează mai puține informații generale, dar este mai puțin fiabilă decât TCP. Protocolul IP este utilizat pentru a transmite pachete către nodurile receptoare din rețelele locale și globale. Are metode de adresare pentru a identifica un nod și rețeaua în care se află. Ultima versiune IP este un protocol IPv6 care are un format de adresă extins care îi permite să acopere un număr mare de noi adrese de rețea și noduri care apar datorită creșterii rapide a Internetului și a diferitelor rețele.

· Pentru o livrare fiabilă a pachetelor, fiecare adresă IP trebuie să fie unică. Metodele de adresare IP sunt folosite pentru a identifica o anumită gazdă și rețeaua căreia îi aparține.

· Este important să înțelegem că scopul principal al protocolului IPv6 este de a oferi o tranziție logică de la IPv4, astfel încât aplicațiile și dispozitive de rețea capabil să facă față noilor cerințe pe măsură ce acestea apar

· De fapt, TCP/IP este un teanc de protocoale și aplicații care oferă capabilități importante. Protocolul Telnet este utilizat pentru a conecta stațiile de lucru la computere gazdă (cu stațiile de lucru acționând ca terminale). FTP este un protocol pe care milioane de clienți îl folosesc în fiecare zi pentru a descărca fișiere de pe Internet. protocol SMTP oferă servicii de e-mail, iar DNS rezolvă numele computerelor în adresele lor IP. Protocolul DHCP atribuie automat adrese IP computerelor din rețea. SNMP este important pentru rețele, deoarece poate colecta informații despre performanța rețelei și poate fi utilizat pentru depanare. ARP permite computerelor sau dispozitivelor să determine adresa MAC a altui computer sau dispozitiv.

· Numărul de programe de Internet, aplicații de rețea locale și globale, precum și capacitățile acestora continuă să crească. TCP/IP a jucat un rol important în dezvoltarea rețelelor și va continua să fie important în viitor. Pe măsură ce numărul utilizatorilor de rețea și al aplicațiilor de rețea crește, iar lățimea de bandă a rețelei crește, este probabil ca protocolul TCP/IP să sufere modificări semnificative, mai ales pe măsură ce tot mai mulți clienți folosesc televiziunea pe Internet, tehnologiile de voce și rețelele IP și multimedia.

· Trebuie remarcat faptul că, pe măsură ce protocolul TCP/IP a evoluat, unele dintre componentele sale au devenit mai consistente cu modelul de referință OSI.