Stivă (comutatoare de rețea). Monitorizarea și reglarea stivei de rețea Linux: obținerea datelor

Cele mai multe protocoale (toate acestea cu excepția SNA) sunt aceleași pe fizic și pe cel nivelul link-ului, dar la alte niveluri folosesc de obicei protocoale diferite.

Literatură

  • V. G. Olifer, N. A. Olifer, Rețele de calculatoare. Principii, tehnologii, protocoale., Sankt Petersburg: Peter, 2002. - 672 p. ISBN 5-8046-0133-4

Fundația Wikimedia. 2010.

Vedeți ce este „Stiva de protocol” în alte dicționare:

    Un nume colectiv pentru protocoalele de rețea de diferite niveluri utilizate în rețele. Cuvântul stivă (stivă engleză, stivă) implică faptul că protocolul TCP rulează peste IP (Protocolul de control al transmisiei în engleză / Protocol Internet) Dicționar de afaceri...... Dicţionar de termeni de afaceri

    - ... Wikipedia

    Structura de date stiva cu metoda de acces la elemente LIFO. Stiva (tufa) este un baston scurt și subțire, cu o buclă la capăt. Grămadă ( jocuri de noroc) într-un cazinou, afaceri de jocuri de noroc, un teanc de 20 de jetoane. Stack (companie) mari telecomunicații rusești... ... Wikipedia

    Este necesar să verificați calitatea traducerii și să aduceți articolul în conformitate cu regulile stilistice ale Wikipedia. Puteți ajuta la îmbunătățirea acestui articol prin corectarea erorilor. Original în engleză... Wikipedia

    O reprezentare simplă a unei stive Acest termen are alte semnificații, vezi Stivă (sensuri). Stack (ing. stack stop ... Wikipedia

    Tabelul de protocoale de rețea după scop funcțional conține o listă a tuturor protocoalelor existente (și, de asemenea, existente în trecut) legate de rețelele de calculatoare (protocoale de rețea). Protocolul de rețea este un set de reguli, ... ... Wikipedia

    set de protocol- pachet protocol protocol stack pachet - [L.G. Dicționar englez-rus de tehnologii informaționale. M.: Întreprinderea de Stat TsNIIS, 2003.] Subiecte tehnologia de informațieîn general Sinonime protocol stack protocol stack suite... ... Ghidul tehnic al traducătorului

    Stiva de protocoale TCP/IP (Transmission Control Protocol/Internet Protocol) este un nume colectiv pentru protocoalele de rețea de diferite niveluri utilizate în rețele. Cuvântul „stivă” (în engleză stivă, stivă) implică faptul că protocolul IP. În modelul OSI... ... Wikipedia

    Stiva de protocoale SS7 Protocoale de nivel Utilizator INAP, MAP, IS 41, ... TCAP, CAP, ISUP, ... Rețea MTP3 + SCCP Canal MTP2 Fizic MTP1 Sistemul de semnalizare N7 (SS7) este un set de protocoale de semnalizare telefonică utilizate pentru... . ... Wikipedia

Cărți

  • Stiva de protocol SCS 7. Subsistemul SCCP: carte de referință, Goldstein B.S., Ekhriel I.M., Rerle R.D.. 320 pp. Carte de referință privind subsistemul SCCP (partea de control al conexiunii de semnalizare) a stivei de protocol de semnalizare a canalului general 7. Considerat principii generaleși concepte, proceduri, formate...
  • Subsistemul de protocol SCS 7. Director, B. S. Goldstein, I. M. Ekhriel, R. D. Rerle. Manualul subsistemului ISUP (partea utilizator ISDN) a stivei generale de protocol de semnalizare a canalului 7. Principii și concepte generale, proceduri, formate de mesaje și parametri, instrumente și...

Prelegerea nr. 3

Stiva de protocolTCP/ IP

Schema cursului

Stiva TCP/IP.

Istoricul creării stivei TCP/IP.

Modelul OSI.

Structura TCP/IP.

documente RFC.

Prezentare generală a principalelor protocoale.

Utilitare de diagnosticare TCP/IP.

Întrebări de control.

GrămadăTCP/IP

Stiva TCP/IP este un set de protocoale de rețea ordonate ierarhic. Stiva este numită după două protocoale importante – TCP (Transmission Control Protocol) și IP (Internet Protocol). Pe lângă acestea, stiva include câteva zeci de protocoale diferite. În prezent, protocoalele TCP/IP sunt principalele pentru Internet, precum și pentru majoritatea rețelelor corporative și locale.

4. Nivelul de transport rezolvă problema transmiterii fiabile a mesajelor într-o rețea compusă prin confirmarea livrării și retrimiterea pachetelor. Acest nivel și toate următoarele sunt implementate în software.

5. Stratul de sesiune vă permite să vă amintiți informații despre starea curentă a sesiunii de comunicare și, în cazul unei întreruperi de conexiune, să reluați sesiunea din această stare.

6. Stratul de prezentare asigură conversia informațiilor transmise de la o codificare la alta (de exemplu, de la ASCII la EBCDIC).

7. Stratul de aplicație implementează interfața dintre celelalte straturi ale modelului și aplicațiile utilizator.

StructuraTCP/ IP

Structura TCP/IP se bazează pe Modelul OSI, și propriul model, numit DARPA (Defense ARPA - noul nume al Agenției pentru Avansați proiecte de cercetare) sau DoD (Departamentul de Apărare - Departamentul de Apărare al SUA). Acest model are doar patru niveluri. Corespondența modelului OSI cu modelul DARPA, precum și principalele protocoale ale stivei TCP/IP, este prezentată în Fig. 2.2.

DIV_ADBLOCK264">

3) proiect de standard(Draft Standard) – documentul devine proiect standard dacă cel puțin două dezvoltatori independenți implementat și aplicat cu succes specificațiile propuse. În această etapă, sunt încă permise corecții și îmbunătățiri minore;

4) Standard de internet(Internet Standard) - cea mai înaltă etapă de aprobare a standardului, specificațiile documentelor au devenit larg răspândite și s-au dovedit în practică. O listă a standardelor de internet este dată în RFC 3700. Dintre miile de RFC, doar câteva zeci sunt documente cu statutul de „standard de internet”.

Pe lângă standarde, RFC-urile pot fi, de asemenea, descrieri ale noilor concepte și idei de rețea, linii directoare, rezultate ale studiilor experimentale prezentate pentru informare etc. Astfel de RFC-uri pot fi atribuite una dintre următoarele stări:

experimental(Experimental) – un document care conține informații despre cercetare științificăși dezvoltări care pot fi de interes pentru membrii ISOC;

informativ(Informațional) - un document publicat pentru a furniza informații și nu necesită aprobarea comunității ISOC;

cea mai bună experiență modernă(Best Current Practice) – un document menit să transmită experiența din evoluții specifice, cum ar fi implementările de protocol.

Starea este indicată în antetul documentului RFC după cuvânt Categorie(Categorie). Pentru documentele aflate în statut de standarde (Standard propus, Proiect Standard, Standard Internet), este indicată denumirea StandardeUrmări, deoarece nivelul de pregătire poate varia.

Numerele RFC sunt atribuite secvențial și nu sunt niciodată reemise. RFC original nu este niciodată actualizat. Versiunea actualizată este publicată sub un număr nou. Un RFC învechit și înlocuit devine istoric(Istoric).

Toate documentele RFC existente pot fi vizualizate, de exemplu, pe site-ul web www. rfc-editor. org . Au fost peste 5.000 în august 2007. RFC-urile la care se face referire în acest curs sunt enumerate în Anexa I.

Prezentare generală a principalelor protocoale

Protocol IP (InternetProtocol) - acesta este protocolul principal stratul de rețea, responsabil pentru adresarea în rețelele compozite și transmisia de pachete între rețele. Protocolul IP este datagrama protocol, adică nu garantează livrarea pachetelor către nodul destinație. Protocolul de nivel de transport TCP oferă garanții.

Protocoale RIP. (Dirijareinformațieprotocol - protocolul informațiilor de rutare ) ȘiOSPF (DeschisCel mai scurtcaleÎn primul rând - " Cele mai scurte rute se deschid primele" ) – protocoale de rutare în rețele IP.

Protocol ICMP (InternetControlMesajprotocol - Control Message Protocol in Composite Networks) este conceput pentru a face schimb de informații despre eroare între routerele de rețea și nodul sursă al pachetului. Folosind pachete speciale, raportează imposibilitatea livrării unui pachet, durata asamblarii unui pachet din fragmente, valorile anormale ale parametrilor, modificările rutei de expediere și tipului de serviciu, starea sistemului etc.

Protocol ARP (AbordareRezoluţieProtocol– Address Translation Protocol) convertește adresele IP în adrese hardware ale rețelelor locale. Conversia inversă se realizează folosind protocolul RAPR(ARP invers).

TCP (TransmitereControlProtocol– protocol de control al transmisiei) asigură transmiterea fiabilă a mesajelor între nodurile rețelei la distanță prin formarea de conexiuni logice. TCP vă permite să livrați un flux de octeți generat pe un computer fără erori către orice alt computer inclus în rețeaua compusă. TCP împarte fluxul de octeți în părți - segmenteși le transmite stratului de rețea. Odată ce aceste segmente sunt livrate la destinație, TCP le reasambla într-un flux continuu de octeți.

UDP (UtilizatorDatagramaProtocol– User Datagram Protocol) asigură transmiterea datelor într-o manieră datagramă.

HTTP (hipertextTransferProtocol– protocol de transfer hipertext) – protocol de livrare a documentelor web, principalul protocol al serviciului WWW.

FTP (FişierTransferProtocol– protocol de transfer de fișiere) – un protocol pentru transferul informațiilor stocate în fișiere.

POP3 (PostBirouProtocolversiunea 3– protocol poștal) și SMTP (SimpluPoștăTransferProtocol– Simple Mail Forwarding Protocol) – protocoale pentru livrarea e-mailurilor primite (POP3) și trimiterea e-mailurilor de ieșire (SMTP).

Telnet – un protocol de emulare a terminalului1 care permite utilizatorului să se conecteze la alte stații la distanță și să lucreze cu ele de pe mașina lor, ca și cum ar fi terminalul lor la distanță.

SNMP (SimpluReţeamanagementProtocol– protocol simplu de gestionare a rețelei) este conceput pentru a diagnostica performanța diferitelor dispozitive de rețea.

1 Un terminal este o combinație între un dispozitiv de intrare și un dispozitiv de ieșire, cum ar fi o tastatură și un afișaj.

Utilități de diagnosticareTCP/ IP

Sistemul de operare Windows Server 2003 include o serie de utilitare (programe mici) concepute pentru a diagnostica funcționarea stivei TCP/IP. Fiecare administrator de sistem ar trebui să cunoască aceste utilitare și să le poată folosi în practică.

Informațiile despre orice utilitar pot fi afișate tastând Linie de comanda numele utilitarului cu comutatorul „/?”, de exemplu: IPconfig /?

IPconfig

Utilitarul este destinat, în primul rând, să afișeze informații despre configurația stivei TCP/IP și, în al doilea rând, să efectueze unele acțiuni de configurare a stivei.

Când introduceți numele utilitarului pe linia de comandă fără parametri, pe ecran vor fi afișate informații despre setările de bază TCP/IP (aceste setări sunt discutate în următoarele prelegeri):

– Sufixul DNS (Sufixul DNS specific conexiunii);

- Adresa IP;

- Mască de rețea;

- Gateway implicit.

Iată principalele chei ale utilitarului:

/ toate– afișează informații complete despre configurarea stivei TCP/IP pe acest computer. Trebuie remarcat faptul că dacă sunt mai multe adaptoare de rețea Datele pentru fiecare adaptor sunt afișate separat. Cele mai importante informații, pe lângă informațiile prezentate mai sus, sunt adresa fizică (adresa MAC) a adaptorului de rețea (Adresa fizică) și prezența permisiunii DHCP (DHCP Enabled).

/ eliberare– eliberarea adresei IP (are sens dacă DHCP este activat).

/ reînnoi– actualizarea configurației TCP/IP (de obicei efectuată dacă DHCP este activat).

/ displaydns– Afișează memoria cache de nume DNS.

/ flushdns– ștergerea memoriei cache a numelor DNS.

/ înregistratdns– Reînnoirea contractului de închiriere DHCP și reînregistrarea numelui de domeniu în baza de date a serviciului DNS.

Scopul principal al acestui utilitar popular este de a determina dacă o conexiune poate fi stabilită cu o gazdă la distanță. În plus, utilitarul poate contacta computerul de la distanță după numele de domeniu pentru a verifica capacitatea de a converti un nume de domeniu simbolic într-o adresă IP.

Cum funcționează: utilitarul trimite mai multe pachete către gazda de la distanță (numărul de pachete este determinat de cheie n, implicit patru) prin protocolul ICMP. Astfel de pachete sunt numite pachete ecou, ​​adică necesită

Răspuns. Dacă nodul la distanță este accesibil, acesta răspunde fiecărui pachet ecou cu propriul pachet, iar utilitarul măsoară intervalul dintre trimiterea pachetului ecou și sosirea răspunsului.

De remarcat că lipsa unui răspuns poate nu se datorează inaccesibilității fizice a computerului de la distanță, ci faptului că are instalat software care interzice trimiterea răspunsurilor la pachetele echo (firewall).

Taste principale:

t– pachetele sunt trimise până când utilizatorul apasă CTRL+C.

A– determinarea unui nume de domeniu prin adresa IP.

l<размер> – dimensiunea maximă a pachetului (32 octeți în mod implicit).

w<таймаут> – specificarea timpului de expirare a răspunsului în milisecunde (implicit 1000 milisecunde = 1 secundă).

Numele utilitarului provine de la Trace Route - track tracking. Utilitarul vă permite să rezolvați următoarele sarcini:

– trasează calea unui pachet de la a acestui calculator către un nod la distanță (sunt afișate nodurile de router intermediare);

– identificarea zonelor de întârziere a pachetelor;

– identificați locurile în care se pierd pachetele.

Cum funcționează: utilitarul trimite pachete de eco către o gazdă la distanță specificată. Diferența dintre pachetele de ecou constă într-un parametru numit „time to live” (TTL - Time To Live). Acest parametru indică numărul de routere (se numește procesul de trecere a unui pachet printr-un router hop– jump), prin care poate trece un pachet înainte de a ajunge la un anumit nod. Fiecare router reduce durata de viață cu unul. Dacă pe un router devine TTL egal cu zero, aruncă pachetul și trimite un mesaj de serviciu către nodul sursă.

Primul pachet ecou este trimis cu o viață egal cu unu. Primul router renunță la pachetul de eco și trimite un mesaj de serviciu care conține informații despre numele și adresa routerului. Următorul pachet ecou are TTL = 2 și este aruncat pe al doilea router. Astfel, pachetele de eco sunt trimise cu un increment de timeout de unu până când se primește un răspuns de la gazda la distanță specificată sau se depășește timpul de expirare.

Taste principale:

/ h< maxim_hamei>– numărul maxim de hopuri (routere) la căutarea unui nod.

/ w<таймаут> – specificarea timpului de așteptare a răspunsului în milisecunde.

Utilitarul afișează informații statistice despre protocoalele IP, TCP, UDP și ICMP și, de asemenea, vă permite să monitorizați conexiunile la rețea. Taste principale:

/ A– o listă cu toate conexiunile și porturile de ascultare.

/e– statistici pentru Ethernet.

/ n– o listă cu toate conexiunile și porturile în format numeric.

/ s– statistici pentru cele patru protocoale enumerate.

< interval>– intervalul în secunde după care utilitarul afișează informațiile necesare (pentru a opri ieșirea – CTRL+C).

Acest utilitar funcționează cu protocoalele ARP și RARP pentru rezolvarea adreselor IP în adrese MAC și invers. Cu ajutorul acestuia, puteți afișa un tabel de corespondență între adresele IP și adresele MAC (cache ARP), puteți adăuga și șterge intrări în acesta.

Taste principale:

/ A– afișează tabelul ARP sau, dacă este specificată o adresă IP, o intrare numai pentru adresa respectivă.

/ s– adăugarea unei înregistrări la tabel.

/ d– ștergerea unei înregistrări din tabel.

Nume gazdă

Acesta este cel mai mult simplă utilitate– afișează numele computerului pe ecran.

rezumat

Stiva de protocoale TCP/IP este cel mai răspândit set de protocoale ordonate ierarhic astăzi, utilizate atât în ​​local, cât și în rețele globale. Cele mai importante protocoale ale stivei - IP, TCP și UDP - au apărut la începutul anilor 80 ca parte a proiectului ARPANET, care a fost predecesorul Internetului. În anii 1990, odată cu dezvoltarea internetului, rolul stivei TCP/IP a crescut foarte mult.

Stiva TCP/IP a fost dezvoltată pe baza modelului de rețea DARPA, deși poate exista corespondență între straturile modelului DARPA, modelul internațional OSI cu șapte straturi și stiva TCP/IP. Standardele de protocol TCP/IP sunt reflectate în RFC-uri disponibile gratuit.

Principalele protocoale ale stivei sunt IP, TCP, UDP, ICMP, ARP, protocoale rutare RIPși OSPF, protocoale la nivel de aplicație HTTP, FTP, POP3, SMTP, telnet, SNMP.

Pentru a diagnostica și gestiona stiva TCP/IP în sistemul de operare Microsoft Windows Server 2003 există utilitati speciale– IPconfig, ping, tracert, netstat, arp, hostname etc.

Întrebări de control

1. Explicați ce înseamnă independența și deschiderea platformei în raport cu stiva de protocoale TCP/IP.

2. Ce este ARPANET?

3. Explicați pentru ce este conceput modelul OSI? Unde este folosit?

4. Numiți funcțiile legăturii de date, rețelei și straturilor de transport ale modelului OSI.

5. Prin ce este diferit modelul DARPA (DoD) de modelul OSI? De ce crezi?

6. Ce este RFC? În ce format de fișier sunt publicate RFC-urile?

7. Pentru ce este utilizat ICMP? protocol ARP?

8. Explicați cum funcționează utilitarul ping.

9. Explicați cum funcționează utilitarul tracert.

Acest articol va acoperi elementele de bază ale modelului TCP/IP. Pentru o mai bună înțelegere, sunt descrise principalele protocoale și servicii. Principalul lucru este să vă faceți timp și să încercați să înțelegeți fiecare lucru pas cu pas. Toate sunt interconectate și fără a înțelege una, va fi greu să-l înțelegi pe celălalt. Informațiile conținute aici sunt foarte superficiale, așa că acest articol poate fi numit cu ușurință „o stivă de protocol TCP/IP pentru manechin”. Cu toate acestea, multe lucruri de aici nu sunt atât de greu de înțeles pe cât ar putea părea la prima vedere.

TCP/IP

Stiva TCP/IP este un model de rețea pentru transmisia de date într-o rețea, determină ordinea în care dispozitivele interacționează. Datele intră în stratul de legătură de date și sunt procesate pe rând de fiecare strat de mai sus. Stiva este reprezentată ca o abstractizare care explică principiile procesării și primirii datelor.

Stiva de protocoale de rețea TCP/IP are 4 niveluri:

  1. Canal (Link).
  2. Rețea (Internet).
  3. Transport.
  4. Aplicație.

Strat de aplicație

Stratul de aplicație oferă capacitatea de a interacționa între aplicație și alte straturi ale stivei de protocoale, analizează și convertește informațiile primite într-un format potrivit pentru software. Este cel mai apropiat de utilizator și interacționează direct cu acesta.

  • HTTP;
  • SMTP;

Fiecare protocol definește comanda proprieși principiile de lucru cu date.

HTTP (HyperText Transfer Protocol) este conceput pentru transferul de date. Trimite, de exemplu, documente în format HTML care servesc drept bază pentru o pagină web. Într-un mod simplificat, schema de lucru este prezentată ca „client - server”. Clientul trimite o cerere, serverul o acceptă, o procesează corect și returnează rezultatul final.

Servește ca standard pentru transferul fișierelor prin rețea. Clientul trimite o cerere pentru un anumit fișier, serverul caută acest fișier în baza sa de date și, dacă este găsit cu succes, îl trimite ca răspuns.

Folosit pentru a transmite e-mail. Operația SMTP include trei pași secvențiali:

  1. Stabilirea adresei expeditorului. Acest lucru este necesar pentru a returna scrisorile.
  2. Definiția destinatarului. Acest pas poate fi repetat de mai multe ori atunci când specificați mai mulți destinatari.
  3. Determinarea conținutului și trimiterea mesajului. Datele despre tipul de mesaj sunt transmise ca informații de serviciu. Dacă serverul confirmă disponibilitatea de a accepta pachetul, atunci tranzacția în sine este finalizată.

Antet

Antetul conține date de service. Este important să înțelegeți că acestea sunt destinate doar unui anumit nivel. Aceasta înseamnă că de îndată ce pachetul este trimis către destinatar, acesta va fi procesat acolo după același model, dar în ordine inversă. Antetul imbricat va transporta informatii speciale, care pot fi prelucrate doar într-un anumit mod.

De exemplu, un antet imbricat la stratul de transport poate fi procesat doar de stratul de transport de pe cealaltă parte. Alții pur și simplu îl vor ignora.

Stratul de transport

La nivelul de transport, informațiile primite sunt procesate ca un singur bloc, indiferent de conținut. Mesajele primite sunt împărțite în segmente, li se adaugă un antet și totul este trimis în aval.

Protocoale de transfer de date:

Cel mai comun protocol. Este responsabil pentru transferul de date garantat. La trimiterea pachetelor, suma lor de control, procesul de tranzacție, este controlată. Aceasta înseamnă că informațiile vor ajunge „în siguranță” indiferent de condiții.

UDP (User Datagram Protocol) este al doilea cel mai popular protocol. De asemenea, este responsabil pentru transferul de date. Caracteristica sa distinctivă constă în simplitatea sa. Pachetele sunt pur și simplu trimise fără a crea nicio conexiune specială.

TCP sau UDP?

Fiecare dintre aceste protocoale are propriul său domeniu de aplicare. Este determinată logic de caracteristicile lucrării.

Principalul avantaj al UDP este viteza de transmisie. TCP este un protocol complex cu multe verificări, în timp ce UDP pare a fi mai simplificat și, prin urmare, mai rapid.

Dezavantajul constă în simplitate. Din cauza lipsei de verificări, integritatea datelor nu este garantată. Astfel, informațiile sunt pur și simplu trimise, iar toate verificările și manipulările similare rămân la aplicație.

UDP este folosit, de exemplu, pentru a viziona videoclipuri. Pentru un fișier video, pierderea unui număr mic de segmente nu este critică, în timp ce viteza de încărcare este cel mai important factor.

Cu toate acestea, dacă trebuie să trimiteți parole sau detalii card bancar, atunci necesitatea de a utiliza TCP este evidentă. Pierderea chiar și a celei mai mici bucăți de date poate avea consecințe catastrofale. Viteza în acest caz nu este la fel de importantă ca siguranța.

Stratul de rețea

Stratul de rețea formează pachete din informațiile primite și adaugă un antet. Cea mai importantă parte a datelor sunt adresele IP și MAC ale expeditorilor și destinatarilor.

Adresă IP (Internet Protocol address) - adresa logică a dispozitivului. Conține informații despre locația dispozitivului în rețea. Exemplu de intrare: .

Adresă MAC (Media Access Control address) - adresa fizică a dispozitivului. Folosit pentru identificare. Atribuit echipamentelor de rețea în etapa de fabricație. Prezentat ca un număr de șase octeți. De exemplu: .

Nivelul de rețea este responsabil pentru:

  • Determinarea rutelor de livrare.
  • Transferul de pachete între rețele.
  • Atribuirea adreselor unice.

Routerele sunt dispozitive de nivel de rețea. Ele deschide calea între computer și server pe baza datelor primite.

Cel mai popular protocol la acest nivel este IP.

IP (Internet Protocol) este un protocol de Internet conceput pentru adresare în rețea. Folosit pentru a construi rute de-a lungul cărora sunt schimbate pachetele. Nu are niciun mijloc de verificare și confirmare a integrității. Pentru a oferi garanții de livrare, se folosește TCP, care folosește IP ca protocol de transport. Înțelegerea principiilor acestei tranzacții explică o mare parte din baza modului în care funcționează stiva de protocoale TCP/IP.

Tipuri de adrese IP

Există două tipuri de adrese IP utilizate în rețele:

  1. Public.
  2. Privat.

Public (Public) sunt utilizate pe Internet. Regula principală este unicitatea absolută. Un exemplu de utilizare a acestora sunt routerele, fiecare dintre ele având propria sa adresă IP pentru interacțiunea cu Internetul. Această adresă se numește publică.

Private (Private) nu sunt folosite pe Internet. În rețeaua globală, astfel de adrese nu sunt unice. Un exemplu este o rețea locală. Fiecărui dispozitiv i se atribuie o adresă IP unică într-o anumită rețea.

Interacțiunea cu Internetul se realizează printr-un router, care, după cum am menționat mai sus, are propria sa adresă IP publică. Astfel, toate computerele conectate la router apar pe Internet sub numele unei adrese IP publice.

IPv4

Cea mai comună versiune a protocolului Internet. Anterioară IPv6. Formatul de înregistrare este de patru numere de opt biți separate prin puncte. Masca de subrețea este indicată prin semnul fracțiunii. Lungimea adresei este de 32 de biți. În marea majoritate a cazurilor, când vorbim despre o adresă IP, ne referim la IPv4.

Format de înregistrare: .

IPv6

Această versiune este menită să rezolve problemele cu versiunea anterioară. Lungimea adresei este de 128 de biți.

Principala problemă pe care o rezolvă IPv6 este epuizarea adreselor IPv4. Condițiile au început să apară deja la începutul anilor 80. În ciuda faptului că această problemă a intrat într-o etapă acută deja în 2007-2009, implementarea IPv6 capătă avânt foarte încet.

Principalul avantaj al IPv6 este o conexiune la internet mai rapidă. Acest lucru se datorează faptului că această versiune a protocolului nu necesită traducerea adresei. Se realizează rutarea simplă. Acesta este mai puțin costisitor și, prin urmare, accesul la resursele de internet este oferit mai rapid decât în ​​IPv4.

Exemplu de intrare: .

Există trei tipuri de adrese IPv6:

  1. Unicast.
  2. Anycast.
  3. Multicast.

Unicast este un tip de unicast IPv6. Când este trimis, pachetul ajunge doar la interfața situată la adresa corespunzătoare.

Anycast se referă la adrese IPv6 multicast. Pachetul trimis va ajunge la cea mai apropiată interfață de rețea. Folosit doar de routere.

Multicast sunt multicast. Aceasta înseamnă că pachetul trimis va ajunge la toate interfețele care se află în grupul multicast. Spre deosebire de difuzare, care este „difuzată pentru toată lumea”, difuzarea multiplă transmite doar unui anumit grup.

Mască de rețea

Masca de subrețea determină numărul de subrețea și gazdă din adresa IP.

De exemplu, o adresă IP are o mască. În acest caz, formatul de înregistrare va arăta astfel. Numărul „24” este numărul de biți din mască. Opt biți egal cu un octet, care poate fi numit și octet.

Mai detaliat, masca de subrețea poate fi reprezentată în sistemul de numere binar astfel: . Are patru octeți, iar intrarea constă din „1” și „0”. Dacă adunăm numărul de unități, obținem un total de „24”. Din fericire, numărarea cu unu nu este necesară, deoarece există 8 valori într-un octet. Vedem că trei dintre ele sunt umplute cu unele, le adunăm și obținem „24”.

Dacă vorbim în mod specific despre masca de subrețea, atunci în reprezentare binară are fie unu, fie zero într-un octet. În acest caz, secvența este de așa natură încât octeții cu unu să fie primii și abia apoi cu zerouri.

Să ne uităm la un mic exemplu. Există o adresă IP și o mască de subrețea. Numărăm și notăm: . Acum potrivim masca cu adresa IP. Acei octeți mascați în care toate valorile sunt egale cu unul (255) își lasă octeții corespunzători în adresa IP neschimbați. Dacă valoarea este zerouri (0), atunci octeții din adresa IP devin și zero. Astfel, în valoarea adresei de subrețea obținem .

Subrețea și gazdă

Subrețeaua este responsabilă pentru separare logică. În esență, acestea sunt dispozitive care folosesc aceeași rețea locală. Determinat de o serie de adrese IP.

Gazdă este adresa interfeței de rețea (placă de rețea). Determinat din adresa IP folosind o mască. De exemplu: . Deoarece primii trei octeți sunt subrețeaua, aceasta lasă . Acesta este numărul gazdei.

Intervalul de adrese de gazdă este de la 0 la 255. Gazda numerotată „0” este, de fapt, adresa subrețelei în sine. Și numărul gazdă „255” este un radiodifuzor.

Adresarea

Există trei tipuri de adrese utilizate pentru adresare în stiva de protocoale TCP/IP:

  1. Local.
  2. Reţea.
  3. Nume de domenii.

Adresele MAC sunt numite locale. Ele sunt utilizate pentru adresare în tehnologiile de rețea locală, cum ar fi Ethernet. În contextul TCP/IP, cuvântul „local” înseamnă că aceștia operează numai într-o subrețea.

Adresa de rețea din stiva de protocoale TCP/IP este adresa IP. La trimiterea unui fișier, adresa destinatarului este citită din antetul acestuia. Cu ajutorul său, routerul învață numărul gazdei și subrețeaua și, pe baza acestor informații, creează o rută către nodul final.

Numele de domenii sunt adrese care pot fi citite de om pentru site-urile web de pe Internet. Serverele web de pe Internet sunt accesibile printr-o adresă IP publică. Este procesat cu succes de computere, dar pare prea incomod pentru oameni. Pentru a evita astfel de complicații, se folosesc nume de domenii, care constau în zone numite „domenii”. Ele sunt aranjate într-o ierarhie strictă, de la nivelul de sus în jos.

Un domeniu de nivel superior reprezintă informații specifice. Generic (.org, .net) nu sunt limitate de limite stricte. Situația opusă este la cele locale (.us, .ru). Ele sunt de obicei localizate.

Domenii niveluri inferioare- asta e totul. Poate avea orice dimensiune și poate conține orice număr de valori.

De exemplu, „www.test.quiz.sg” este un nume de domeniu corect, unde „sg” este un domeniu local de primul nivel (superior), „quiz.sg” este un domeniu de al doilea nivel, „test.quiz.sg” este un domeniu de nivel al treilea. Numele de domenii pot fi numite și nume DNS.

DNS (Domain Name System) stabilește corespondența între nume de domeniiși adresa IP publică. Când introduceți un nume de domeniu în browser, DNS va detecta adresa IP corespunzătoare și o va raporta dispozitivului. Dispozitivul va procesa acest lucru și îl va returna ca pagină web.

Stratul de legătură de date

La nivelul de legătură, se determină relația dintre dispozitiv și mediul de transmisie fizic și se adaugă un antet. Responsabil pentru codificarea datelor și pregătirea cadrelor pentru transmisie pe mediul fizic. Comutatoarele de rețea funcționează la acest nivel.

Cele mai comune protocoale:

  1. Ethernet.
  2. WLAN.

Ethernet este cea mai comună tehnologie LAN cu fir.

WLAN - bazat pe rețea locală tehnologii fără fir. Dispozitivele interacționează fără fizic conexiuni prin cablu. Un exemplu de cea mai comună metodă este Wi-Fi.

Configurarea TCP/IP pentru a utiliza o adresă IPv4 statică

O adresă IPv4 statică este atribuită direct în setările dispozitivului sau automat la conectarea la rețea și este permanentă.

Pentru a configura stiva de protocoale TCP/IP pentru a utiliza o adresă IPv4 permanentă, introduceți comanda ipconfig/all în consolă și găsiți următoarele date.

Configurarea TCP/IP pentru a utiliza o adresă IPv4 dinamică

O adresă IPv4 dinamică este utilizată pentru o perioadă, închiriată și apoi schimbată. Atribuit automat dispozitivului atunci când este conectat la rețea.

Pentru a configura stiva de protocoale TCP/IP pentru a utiliza o adresă IP nepermanentă, trebuie să mergeți la proprietățile conexiunii dorite, să deschideți proprietățile IPv4 și să bifați casetele așa cum este indicat.

Metode de transfer de date

Datele sunt transmise prin mediul fizic în trei moduri:

  • Simplex.
  • Half-duplex.
  • Full Duplex.

Simplex este comunicare într-un singur sens. Transmisia este efectuată de un singur dispozitiv, în timp ce celălalt primește doar semnalul. Putem spune că informația se transmite într-o singură direcție.

Exemple de comunicare simplex:

  • Difuzarea televiziunii.
  • Semnal de la sateliți GPS.

Half-duplex este o comunicare bidirecțională. Cu toate acestea, doar un nod poate transmite un semnal la un moment dat. Cu acest tip de comunicare, două dispozitive nu pot folosi același canal în același timp. Este posibil ca comunicarea completă bidirecțională să nu fie posibilă din punct de vedere fizic sau poate duce la coliziuni. Se spune că acestea sunt în conflict asupra mediului de transmisie. Acest mod este utilizat când se utilizează cablu coaxial.

Un exemplu de comunicare semi-duplex este comunicarea prin walkie-talkie pe o singură frecvență.

Full Duplex - comunicare completă în două sensuri. Dispozitivele pot transmite simultan un semnal și pot primi. Ele nu intră în conflict asupra mediului de transmisie. Acest mod este utilizat atunci când utilizați tehnologia Fast Ethernetși conexiune folosind pereche răsucită.

Un exemplu este comunicarea telefonică printr-o rețea mobilă.

TCP/IP vs OSI

Modelul OSI definește principiile transmiterii datelor. Straturile stivei de protocol TCP/IP corespund direct acestui model. Spre deosebire de TCP/IP cu patru straturi, are 7 straturi:

  1. Fizic.
  2. Canal (Legătură de date).
  3. Reţea.
  4. Transport.
  5. Sesiune.
  6. Prezentare.
  7. Aplicație.

Nu este nevoie să aprofundăm prea mult în acest model în acest moment, dar este necesară cel puțin o înțelegere superficială.

Stratul de aplicație din modelul TCP/IP corespunde primelor trei straturi OSI. Toate funcționează cu aplicații, așa că puteți vedea clar logica acestei combinații. Această structură generalizată a stivei de protocoale TCP/IP face abstracția mai ușor de înțeles.

Stratul de transport rămâne neschimbat. Îndeplinește aceleași funcții.

Stratul de rețea este, de asemenea, neschimbat. Îndeplinește exact aceleași sarcini.

Stratul de legătură de date în TCP/IP corespunde ultimelor două straturi OSI. Stratul de legătură de date stabilește protocoale pentru transmiterea datelor pe mediul fizic.

Fizicul se reprezintă pe sine conexiune fizică- semnale electrice, conectori etc. În stiva de protocoale TCP/IP, s-a decis combinarea acestor două straturi într-unul singur, deoarece ambele se ocupă de mediul fizic.

Stive de protocol

O stivă de protocoale este un set organizat ierarhic de protocoale de rețea la diferite niveluri, suficient pentru a organiza și asigura interacțiunea nodurilor din rețea. În prezent, rețelele folosesc un număr mare de stive de protocoale de comunicație. Cele mai populare stive sunt: ​​TCP/IP, IPX/SPX, NetBIOS/SMB, Novell NetWare, DECnet, XNS, SNA și OSI. Toate aceste stive, cu excepția SNA, la straturile inferioare - fizică și legătura de date - folosesc aceleași protocoale Ethemet bine standardizate. Token Ring, FDDI și unele altele, care vă permit să utilizați același echipament în toate rețelele. Dar la nivelurile superioare, toate stivele funcționează conform propriilor protocoale. Aceste protocoale nu sunt adesea conforme cu stratificarea recomandată de modelul OSI. În special, funcțiile straturilor de sesiune și prezentare sunt de obicei combinate cu stratul de aplicație. Această discrepanță se datorează faptului că modelul OSI a apărut ca urmare a unei generalizări a stivelor deja existente și utilizate efectiv, și nu invers.

Toate protocoalele incluse în stivă au fost dezvoltate de un singur producător, adică sunt capabile să funcționeze cât mai rapid și eficient posibil.

Un punct importantîn funcționarea echipamentelor de rețea, în special a adaptorului de rețea, este legarea protocoalelor. Vă permite să utilizați diferite stive de protocoale atunci când deserviți un adaptor de rețea. De exemplu, puteți utiliza stivele TCP/IP și IPX/SPX simultan. Dacă dintr-o dată apare o eroare la încercarea de a stabili o conexiune cu destinatarul utilizând prima stivă, atunci va avea loc automat trecerea la utilizarea protocolului din stiva următoare. Un punct important în acest caz este ordinea obligatorie, deoarece afectează în mod clar utilizarea unuia sau altuia protocol din diferite stive.

Indiferent de câte adaptoare de rețea sunt instalate în computer, legarea poate fi efectuată fie „unu la mai multe”, fie „mai multe la unul”, adică o stivă de protocoale poate fi legată de mai multe adaptoare simultan sau mai multe stive la un adaptor .

NetWare este un sistem de operare în rețea și un set de protocoale de rețea care sunt utilizate în acest sistem pentru a interacționa cu computerele client conectate la rețea. Protocoalele de rețea ale sistemului se bazează pe stiva de protocoale XNS. NetWare acceptă în prezent protocoalele TCP/IP și IPX/SPX. Novell NetWare a fost popular în anii 80 și 90 datorită eficienței sale mai mari în comparație cu sistemele de operare de uz general. Aceasta este acum o tehnologie învechită.

Stiva de protocoale XNS (Xerox Network Services Internet Transport Protocol) a fost dezvoltat de Xerox pentru transmiterea datelor prin rețele Ethernet. Conține 5 niveluri.

Nivelul 1 - mediu de transmisie - implementează funcțiile straturilor fizice și de legătură de date în modelul OSI:

* gestionează schimbul de date între dispozitiv și rețea;

* direcționează datele între dispozitive din aceeași rețea.

Layer 2 - internetwork - corespunde stratului de rețea din modelul OSI:

* gestionează schimbul de date între dispozitivele situate în rețele diferite(oferă serviciu de datagramă în ceea ce privește modelul IEEE) ;

* descrie modul în care datele circulă prin rețea.

Stratul 3 - transport - corespunde stratului de transport din modelul OSI:

* oferă comunicare end-to-end între sursa de date și destinație.

Nivelul 4 - control - corespunde nivelurilor de sesiune și reprezentative în modelul OSI:

* controlează prezentarea datelor;

* gestionează controlul asupra resurselor dispozitivului.

Nivelul 5 - aplicație - corespunde celor mai înalte niveluri din modelul OSI:

* oferă funcții de procesare a datelor pentru sarcinile aplicației.

Stiva de protocoale TCP/IP (Transmission Control Protocol/Internet Protocol) este cea mai comună și cea mai funcțională astăzi. Funcționează în rețele locale de orice dimensiune. Această stivă este stiva principală de pe internetul global. Suportul stivei a fost implementat în computerele cu sistem de operare sistem UNIX. Ca urmare, popularitatea protocolului TCP/IP a crescut. Stiva de protocoale TCP/IP include destul de multe protocoale care operează la diferite niveluri, dar și-a primit numele datorită a două protocoale - TCP și IP.

TCP (Transmission Control Protocol) este un protocol de transport conceput pentru a controla transmisia de date în rețele folosind stiva de protocoale TCP/IP. IP (Internet Protocol) este un protocol de nivel de rețea conceput pentru a furniza date printr-o rețea compusă folosind unul dintre protocoalele de transport, cum ar fi TCP sau UDP.

Nivelul inferior al stivei TCP/IP utilizează protocoale standard de transfer de date, ceea ce face posibilă utilizarea în rețele care utilizează orice tehnologie de rețea și pe computere cu orice sistem de operare.

Protocolul TCP/IP a fost dezvoltat inițial pentru a fi utilizat în rețele globale, motiv pentru care este extrem de flexibil. În special, datorită capacității de fragmentare a pachetelor, datele, în ciuda calității canalului de comunicație, ajung în orice caz la destinatar. În plus, datorită prezenței protocolului IP, transferul de date între segmente de rețea diferite devine posibil.

Dezavantajul protocolului TCP/IP este complexitatea administrării rețelei. Astfel, pentru funcționarea normală a rețelei, sunt necesare servere suplimentare, precum DNS, DHCP etc., a căror funcționare ocupă cea mai mare parte a timpului administratorului de sistem. Limoncelli T., Hogan K., Cheylap S. - Administrarea sistemului și a rețelelor. a 2-a ed. anul 2009. 944с

Stiva de protocol IPX/SPX (Internetwork Packet Exchange/Sequenced Packet Exchange) este dezvoltată și deținută de Novell. A fost dezvoltat pentru nevoile sistemului de operare Novell NetWare, care până de curând ocupa una dintre pozițiile de lider în rândul sistemelor de operare pentru servere.

Protocoalele IPX și SPX funcționează la nivelurile de rețea și, respectiv, de transport ale modelului ISO/OSI și, prin urmare, se completează perfect.

Protocolul IPX poate transmite date folosind datagrame folosind informații de rutare a rețelei. Cu toate acestea, pentru a transmite date de-a lungul rutei găsite, trebuie mai întâi stabilită o conexiune între expeditor și destinatar. Aceasta este ceea ce face protocolul SPX sau orice alt protocol de transport care funcționează în tandem cu IPX.

Din păcate, stiva de protocoale IPX/SPX este concepută inițial pentru a servi rețelelor mici, astfel încât utilizarea sa în rețele mari este ineficientă: utilizarea excesivă a difuzării pe linii de comunicație de viteză redusă este inacceptabilă.

La nivel fizic și de legătură de date, stiva OSI acceptă protocoalele Ethernet, Token Ring, FDDI, precum și protocoalele LLC, X.25 și ISDN, adică folosește tot ce este dezvoltat în afara stivei. protocoale populare niveluri inferioare, ca majoritatea celorlalte stive. Stratul de rețea include Protocolul de rețea orientat pe conexiune (CONP) și Protocolul de rețea fără conexiune (CLNP) utilizat relativ rar. Protocoalele de rutare ale stivei OSI sunt ES-IS (End System -- Intermediate System) între sistemele finale și intermediare și IS-IS (Intermediate System -- Intermediate System) între sistemele intermediare. Stratul de transport al stivei OSI ascunde diferențele dintre serviciile de rețea orientate spre conexiune și cele fără conexiune, astfel încât utilizatorii să primească calitatea dorită a serviciului, indiferent de stratul de rețea subiacent. Pentru a oferi acest lucru, stratul de transport solicită utilizatorului să specifice calitatea dorită a serviciului. Serviciile de nivel de aplicație oferă transfer de fișiere, emulare terminale, servicii de directoare și e-mail. Dintre acestea, cele mai populare sunt serviciul de directoare (standard X.500), poșta electronică (X.400), protocolul terminal virtual (VTP), protocolul de transfer de fișiere, acces și gestionare (FTAM), protocol de redirecționare și gestionare a joburilor (JTM). .

O stivă de protocoale destul de populară dezvoltată de IBM și, respectiv, Microsoft, care vizează utilizarea în produsele acestor companii. La fel ca TCP/IP, protocoalele standard precum Ethernet, Token Ring și altele funcționează la nivelurile fizice și de legătură de date ale stivei NetBIOS/SMB, ceea ce face posibilă utilizarea acestuia împreună cu orice echipament de rețea activ. La nivelurile superioare funcționează protocoalele NetBIOS (Network Basic Input/Output System) și SMB (Server Message Block).

Protocolul NetBIOS a fost dezvoltat la mijlocul anilor 80 ai secolului trecut, dar a fost înlocuit în curând cu protocolul NetBEUI (NetBIOS Extended User Interface), mai funcțional, care permite schimbul de informații foarte eficient în rețele formate din cel mult 200 de computere.

Pentru a face schimb de date între computere, sunt folosite nume logice care sunt atribuite computerelor în mod dinamic atunci când sunt conectate la rețea. În acest caz, tabelul de nume este distribuit fiecărui computer din rețea. De asemenea, acceptă lucrul cu nume de grup, ceea ce vă permite să transferați date către mai mulți destinatari simultan.

Principalele avantaje ale protocolului NetBEUI sunt viteza și cerințele foarte reduse de resurse. Daca trebuie sa te organizezi schimb rapid date în rețea mică, constând dintr-un singur segment, nu există un protocol mai bun pentru asta. În plus, pentru livrarea mesajelor, conexiunea stabilită nu este cerinta obligatorie: Dacă nu există conexiune, protocolul folosește metoda datagramei, unde mesajul este echipat cu adresa destinatarului și a expeditorului și „pleacă la drum”, trecând de la un computer la altul.

Cu toate acestea, NetBEUI are și un dezavantaj semnificativ: este complet lipsit de conceptul de rutare a pachetelor, astfel încât utilizarea sa în rețele compozite complexe nu are sens. Pyatibratov A.P., Gudyno L.P., Kirichenko A.A. Calculatoare, rețele și sisteme de telecomunicații Moscova 2009. 292s

În ceea ce privește protocolul SMB (Server Message Block), acesta este folosit pentru a organiza funcționarea rețelei la cele mai înalte trei niveluri - sesiune, prezentare și nivelul de aplicare. Când îl utilizați, devine posibil accesul la fișiere, imprimante și alte resurse de rețea. Acest protocol a fost îmbunătățit de mai multe ori (au fost lansate trei versiuni), ceea ce face posibilă utilizarea acestuia chiar și în sisteme de operare moderne precum Microsoft Vista și Windows 7. Protocolul SMB este universal și poate funcționa în tandem cu aproape orice protocol de transport, cum ar fi ca TCP/IP și SPX.

Stiva de protocole DECnet (Digital Equipment Corporation net) conține 7 straturi. În ciuda diferenței de terminologie, straturile DECnet sunt foarte asemănătoare cu straturile modelului OSI. DECnet implementează conceptul DNA (Digital Network Architecture) de arhitectură de rețea, dezvoltat de DEC, conform căruia eterogene sisteme de calcul(Calculatoare de diferite clase), care funcționează sub diferite sisteme de operare, pot fi combinate în rețele de informații și de calcul distribuite geografic.

protocol SNA ( Rețea de sistem Architecture) de la IBM este proiectat pentru comunicarea de la distanță cu calculatoare mariși conține 7 niveluri. SNA se bazează pe conceptul de mașină gazdă și oferă acces la terminale de la distanță la mainframe-urile IBM. Principala caracteristică distinctivă a SNA este capacitatea fiecărui terminal de a accesa oricare program de aplicare calculatorul principal. Sistem arhitectura de retea implementat pe baza unei metode de acces la telecomunicații virtuale (VTAM) în computerul gazdă. VTAM gestionează toate legăturile și terminalele de comunicații, fiecare terminal având acces la toate programele aplicației.

O stivă de protocoale de rețea care oferă pipeline și transfer de date între gazde, concepută pentru cea mai bună interacțiuneîntre diferite straturi de rețea. În acest articol, vom încerca să descriem mișcarea datelor prin straturile situate în stivă și vom încerca să implementăm un modul kernel Linux care ne ajută să captăm și să afișam datele care trec prin stratul TCP. Mai jos este un program care arată cum să instalați un element nou în Sistemul de fișiere proc. Și cel mai important, acest program pirata protocolul TCP, monitorizează toate datele care trec prin stratul tcp și le afișează în /proc/TCPdata.

Shyamikh, traducere de Alexey Antipov

Stiva de protocoale de rețea, care formează conducta și transferul de date între gazde, este proiectată pentru cea mai bună interacțiune posibilă între diferitele straturi de rețea. În acest articol, vom încerca să descriem mișcarea datelor prin straturile situate în stivă și vom încerca să implementăm un modul kernel Linux care ne ajută să captăm și să afișam datele care trec prin stratul TCP. Deoarece o discuție despre toate tipurile de conexiuni de rețea depășește scopul acestui articol, ne vom concentra pe conexiunile TCP/IP.

Stiva de protocoale de rețea

Se formează dispozitive de rețea un nivel de bază al stiva de protocoale. Pentru a comunica cu alte dispozitive și pentru a transmite și primi trafic, aceștia folosesc un protocol de legătură de date (de obicei Ethernet). Interfață organizată de șoferi dispozitive de rețea, copiază pachetele de pe mediul fizic, efectuând o verificare a erorilor și apoi pune pachetele în stratul de rețea. Interfețele de ieșire primesc pachete din stratul de rețea, efectuează o verificare a erorilor și le transmit către mediul fizic. Vom discuta despre IP (Internet Protocol), care este un protocol standard de nivel de rețea. Principalele funcții ale IP sunt rutarea, verificarea pachetelor de intrare pentru a determina dacă aceste pachete sunt direcționate către o anumită gazdă sau dacă au nevoie de o redirecționare suplimentară. În același timp, dacă este necesar, pachetele sunt defragmentate și livrate către protocoalele de transport. Astfel de protocoale au o bază de date dinamică de rute pentru pachetele de ieșire, le adresează și fragmentează înainte de a le trimite la nivelul de comunicare.

TCP și UDP sunt cele mai utilizate protocoale de nivel de transport. UDP oferă un cadru pentru adresarea pachetelor dintr-o gazdă, în timp ce TCP acceptă operațiuni de conexiune mai complexe, cum ar fi recuperarea pachetelor pierdute și controlul traficului.

Deplasându-ne prin stratul de transport, putem găsi stratul INET, care formează un strat intermediar între stratul de transport și soclurile de aplicație. Stratul INET acceptă socket-uri deținute de aplicație. Toate operațiunile specifice socket-ului sunt efectuate în acest strat.

BSD este o structură de date abstractă care conține socluri INET. Cererea de conectare a unei aplicații, citirea sau scrierea printr-un socket, este convertită în operațiuni INET folosind BSD.

Structura generală a pachetului. Datele sunt structura generala date numite sk_buff. Toate straturile folosesc această structură de date. Imediat după ce datele sunt copiate din spațiul utilizatorului în spațiul kernel, acestea sunt plasate în sk_buff și mutate la diferite niveluri. La rândul său, nivelul adaugă propriile anteturi acestei structuri. Sk_buff conține link-uri către toate informațiile despre pachet, soclul acestuia, dispozitivul, ruta, locația datelor etc.

Caracteristici de rețea Linux

Pentru programatorul obișnuit de rețea, front-end-ul serviciilor de rețea este accesibil prin următoarele rutine de bibliotecă C.

socket(), bind(), listen(), connect(), accept(), send(), sendto(), recv(), recvfrom(), getsockopt() și setsockopt().

Funcția socket() este folosită pentru a crea un nou socket. Toate operațiunile cu diferite protocoale au loc folosind socket-uri. Deoarece funcția socket() returnează valoarea unui descriptor de fișier, aceasta poate fi accesată prin operațiuni standard de fișiere, cum ar fi read(), write().

Funcția bind() este folosită pentru a lega socket-ul creat la un port. Portul, împreună cu adresa IP a interfeței de rețea, este utilizat pentru a identifica în mod unic soclul.

Funcția listen() este folosită pentru a programa serverul. După crearea unui soclu și conectarea acestuia la un port, funcția listen() setează soclul în starea de ascultare. Aceasta înseamnă că socket-ul așteaptă conexiuni de la alte gazde.

Când funcția accept() este apelată pe server, are loc o interogare continuă a soclului până când este primită o cerere de conexiune de la o altă gazdă. După stabilirea conexiunii program server se trezește și oferă procesului capacitatea de a procesa o solicitare de la o gazdă străină. Pe partea clientului, funcția connect() este utilizată pentru a indica serverului că clientul dorește să deschidă o conexiune pe socket și să trimită o solicitare.

Structuri de date necesare

Această structură este baza pentru implementarea interfeței socket BSD. Această structură este instalată și inițializată folosind apelul de sistem socket().

sk_buff:

Această structură gestionează pachetele individuale de conexiune care vin și pleacă de la gazdă. Acest lucru cauzează tamponarea I/O.

Această structură gestionează diverse părți ale socket-urilor specifice rețelei. Este necesar pentru socket-urile TCP, UDP și RAW.

Această structură conține un număr de operațiuni care sunt aceleași pentru toate protocoalele.

Sockaddr (sockaddr_in):

Această structură este necesară pentru a susține diverse formate adrese.

modulele nucleului Linux

Nucleele Linux sunt formate din module. Unele părți ale nucleului se află în memorie permanent (cum ar fi planificatorul), iar unele sunt încărcate atunci când este necesar. De exemplu, sistemul de fișiere VFAT pentru citirea discurilor este încărcat numai atunci când este necesar. Această caracteristică a nucleului Linux permite spațiului nucleului să ocupe puțin spațiu.

Deci, lucrul esențial este să vă proiectați protocolul, driverele și orice fel de software de kernel ca module de kernel și să le introduceți în nucleu din spațiul utilizatorului. Odată introdus, un modul devine inamovibil până când este eliminat din spațiul kernel. Trebuie doar să fiți un utilizator privilegiat pentru a introduce sau a elimina module. Acesta este formatul obișnuit de notație pentru modulul nucleului.

#define MODULE #include /* ... alte fișiere de antet necesare ... */ /* * ... declarații și funcții ale modulelor ... */ int init_module() ( /* nucleul de cod va apela la instalarea modulului */ ) void cleanup_module() ( /* nucleul de cod va apela la eliminarea modulului */)

Proiectul unui modul hacker pentru protocolul TCP.

Modulul nostru de kernel este foarte simplu, este plasat practic între interfața de operațiuni socket pentru redirecționarea pachetelor TCP și stratul TCP. Acum toate pachetele de date care trec prin socket-ul înregistrat Protocolul TCP ohm va fi interceptat de modulul nostru kernel. Aceste date vor fi transferate pe /proc/TCPdata.

Structuri de date utilizate

tcp_prot -> Conține pointeri către toate operațiunile TCP efectuate

struct msghdr -> Conține date trimise de aplicație, precum și alte câmpuri pentru a identifica adresa socket-ului

Struct msg_iov -> se află în msghdr, conține pointeri către date

Înainte de a începe codificarea, să înțelegem semnificația sistemului de fișiere /proc. Sistemul de fișiere proc este numit astfel deoarece se află în directorul /proc pe majoritatea mașini Linux. Sistemul este Unealtă puternică folosit frecvent de aplicatii. Aceasta face parte din mecanismul prin care nucleul comunică cu spațiul utilizatorului și invers. Deși este conceput ca un sistem de fișiere cu o structură de directoare și inoduri, este de fapt o componentă a funcțiilor înregistrate care oferă informații variabilelor importante.

Când un fișier este creat în /proc, acesta este imediat înregistrat cu un set de funcții care spun nucleului ce să facă când deschide sau scrie în fișier. Majoritatea fișierelor sunt doar pentru citire și doar câteva sunt doar pentru scriere.

Acum vom începe să codificăm

/* tcpdata.c. Mai jos este un program care arată cum să instalați o nouă intrare în sistemul de fișiere proc. Și cel mai important, acest program pirata protocolul TCP, monitorizează toate datele care trec prin stratul tcp și le afișează în /proc/TCPdata. */ #define MODULE #define __KERNEL__ /*facem lucru la kernel*/ #include #include #include /*pentru înregistrarea intrării proc*/ #include #include #include #include #include #include #include struct static proc_dir_entry *test_entry ; struct msghdr *msg_moniter; struct iovec *iovec_moniter; static char *tcp="Date monitorizate Tcp"; int (*originalSend)(struct sock *, struct msghdr *,int); /* show_tcp_stats Această funcție este ceea ce /proc FS va apela când ceva încearcă să citească /proc/TCPstat, puteți vedea ultimii 200 de octeți mutați din socketuri prin conexiuni tcp */ static int show_tcp_stats(char *buf,char **start ,off_t offset,int len,int neutilizat) ( len += sprintf(buf+len,"%s\n",tcp); return len; ) /* Aceasta este o funcție de gestionare care captează solicitările tcp sendmsg */ int moniter_tcp (struct sock *sk, struct msghdr *msg,int len) ( int size; char *temp; printk(„Îți monitorizez periculos datele tcp \n”); msg_moniter=(struct msghdr *)kmalloc(sizeof(struct msghdr) ), GFP_KERNEL); memcpy(msg_moniter,msg,sizeof(struct msghdr)); date monitorizate"); kfree(msg_moniter); return len; ) /* init_module Această funcție instalează modulul; ea doar se înregistrează catalog nou la /proc și creează un pointer. */ int init_module() ( test_entry=create_proc_entry("TCPdata",S_IRUGO,NULL); test_entry->read_proc=show_tcp_stats; originalSend=tcp_prot.sendmsg; /* printk("adresa trimiterii mesajului este %x \n" ,tcp_prot.sendmsg); printk("adresa hack mes-ului este %x \n", originalSend */ tcp_prot.sendmsg=moniter_tcp("adresa send send mes după piratare %x); ,tcp_prot.sendmsg); printk("adresa send mes after hacking %x \n",moniter_tcp */ return 0 ) /* init_module */ /* cleanup_module; Elimină înregistrarea intrării în director din /proc FS */ void cleanup_module() ( /* pune indicatorul înapoi la expeditorul mesajului original al tcp */ tcp_prot.sendmsg=orginalSend; /* anulează înregistrarea funcției din proc FS */ remove_proc_entry ( "TCPdata",NULL ) /* cleanup_module */ MODULE_AUTHOR("shyamjithe.c.s "); /*macros*/ MODULE_DESCRIPTION("monitor tcp data");

Acest program a fost testat pe nucleul 2.4, așa că îl puteți compila folosind:

Gcc -O6 -Wall -c tcpdata.c -I /usr/src/linux-2.4.20-8/include/ acest lucru va produce tcpdata.o acum insmod tcpdata.o deschide unele aplicații tcp cat /proc/TCPdata pentru a elimina module use rmmod tcpdata Acum, pentru a înțelege acest cod, voi da câteva explicații. Întregul program este doar o modalitate inteligentă de a folosi indicatorii de funcție. Dar trebuie să fiți atenți când utilizați propriile manere, deoarece plasarea incorectă a indicatorului de funcție poate cauza blocarea sistemului. După cum sa spus, aceasta este modalitatea minimă de a sparge TCP. Puteți forma un nou strat deasupra stratului TCP ca acesta, care va interfera cu toate tipurile de lucrări efectuate de TCP. Același lucru se poate face cu UDP.

Concluzie

Cea mai importantă concluzie obținută din programul descris mai sus este că nu este întotdeauna necesară schimbarea sursă kernel atunci când facem orice modificare legată de protocol. Este o implementare orientată pe obiecte a nucleului Linux care ne permite să manipulăm obiecte de date din nucleu.