Protocolul de internet IP protocolul de rutare oferă. Ce oferă protocolul de rutare (IP)? 

/ Protocoale / Conexiune


Familia de protocoale TCP/IP

Denumirea TCP/IP provine de la cele două protocoale principale care alcătuiesc această familie - TCP (Transmission Control Protocol) și IP (Internet Protocol). Ei sunt responsabili pentru transferul fiabil de date între computere. Protocolul IP este strâns legat de conceptul de adresă IP, adresa unică a unui computer dintr-o rețea.

TCP - protocol de transport

Conform acestui protocol, orice mesaj este tăiat în pachete (pachete IP) de aproximativ aceeași dimensiune și format, aceste pachete sunt numerotate și transmise independent unul de celălalt, iar mesajul original este asamblat din pachetele primite la destinație. În cazul pierderii unui pachet, puteți trimite o solicitare pentru retransmiterea acestuia (sau cere să repetați toate pachetele). În unele cazuri, retransmisia nu are sens, de exemplu, atunci când transmiteți sunet și video în timp real.

Protocol IP - protocol de rutare

Conform acestui protocol, fiecare pachet, pe lângă datele atașate acestuia, are un antet care are doar 20 de octeți. Conține adresa computerului expeditorului (adresa IP) și adresa destinatarului, precum și alte informații necesare pentru asamblarea corectă a pachetelor la destinație.
În rețelele locale, calea de-a lungul căreia este transmis un pachet este determinată de structura geometrică a rețelei și modalități posibile conexiuni de noduri. Știind acest lucru, puteți specifica cu exactitate calea pe care o parcurg datele atunci când transmiteți un mesaj de la un computer din rețeaua locală la altul.
În rețelele de zonă extinsă și pe Internet, ruta fiecărui pachet este determinată dinamic în timpul transmisiei. Acest lucru garantează încărcarea optimă a nodurilor și stabilitatea sistemului împotriva deteriorării secțiunilor individuale. Dispozitive speciale - routere - aleg calea pachetului și îl trimit la următorul nod de rețea. Principiul determinării dinamice a rutei se numește rutare flexibilă.

Pentru prima dată, principiile comutării de pachete și rutării flexibile au fost aplicate în SUA în timpul dezvoltării rețelei ARPANET în 1969. De aceea, ARPANET este considerat prototipul Internetului TCP / IP - baza Internetului
Utilizatorul se ocupă cel mai adesea cu protocoale de aplicație.Fiecare protocol de aplicație are propriul serviciu sau serviciu de Internet.
De exemplu, Protocolul HTTP se ocupă de documente WWW - Pagini Web, utilizatorii lucrează folosind protocolul HTTP.
protocol FTP vă permite să transferați informații prin rețea sub formă de fișiere.
Poştal Protocoale POP și SMTP asigurarea conexiunii la serverele de mail, trimiterea si livrarea scrisorilor.
Protocolul NNTP vă permite să lucrați cu serviciul de știri.

Protocol de comunicare TCP/IP

Internetul, care este o rețea de rețele și reunește un număr mare de diferite localuri, regionale și rețele corporative, funcționează și se dezvoltă datorită utilizării unui singur protocol de transfer de date TCP/IP. Termenul TCP/IP include numele a două protocoale:

  • Transmission Control Protocol (TCP) - protocol de transport;
  • Internet Protocol (IP) este un protocol de rutare.

Protocol de rutare. Protocolul IP prevede transferul de informații între computere dintr-o rețea. Luați în considerare funcționarea acestui protocol prin analogie cu transferul de informații folosind mail regulat. Pentru ca scrisoarea să ajungă la destinație, pe plic sunt indicate adresa destinatarului (căreia îi este scrisoarea) și adresa expeditorului (de la care este scrisoarea).

În mod similar, informațiile transmise prin rețea sunt „împachetate într-un plic” pe care sunt „scrise” adresele IP ale computerelor destinatarului și ale expeditorului, de exemplu, „Către: 198.78.213.185”, „De la: 193.124.5.33”. Conținutul plicului în limbaj informatic este numit prin pachet IPși este un set de octeți.

În procesul de trimitere a scrisorilor obișnuite, acestea sunt mai întâi livrate la oficiul poștal cel mai apropiat de expeditor și apoi transferate de-a lungul lanțului de oficii poștale la oficiul poștal cel mai apropiat de destinatar. La oficiile poștale intermediare, scrisorile sunt sortate, adică se stabilește la ce oficiu poștal următor trebuie trimisă o anumită scrisoare.

Pachetele IP în drum spre computerul destinatar trec și prin numeroase servere intermediare de Internet pe care se efectuează operația. rutare. Ca urmare a rutarii, pachetele IP sunt trimise de la un server de Internet la altul, apropiindu-se treptat de computerul destinatar.

Protocol Internet (IP) asigură rutarea pachetelor IP, adică livrarea informațiilor de la computerul expeditor către computerul receptor.

Determinarea rutei de trecere a informaţiei.„Geografia” Internetului diferă semnificativ de geografia cu care suntem obișnuiți. Viteza de obținere a informațiilor nu depinde de distanța serverului Web, ci de numărul de servere intermediare și de calitatea liniilor de comunicație (ale acestora). lățimea de bandă) prin care se transmit informații de la nod la nod.

Vă puteți familiariza cu traseul informațiilor de pe Internet destul de simplu. Program special tracert.exe, care face parte din Windows, vă permite să urmăriți prin ce servere și cu ce întârziere informațiile sunt transmise de la serverul de Internet selectat către computer.

Să vedem cum se accesează informațiile în partea „Moscova” a internetului către unul dintre cele mai populare servere de căutare Internet rusesc www.rambler.ru

Determinarea traseului fluxului de informații

2. În fereastră sesiune MS-DOS ca răspuns la solicitarea sistemului de a introduce comanda .

3. După ceva timp, va apărea o urmă de transmitere a informațiilor, adică o listă de noduri prin care informațiile sunt transmise computerului dvs. și timpul de transmitere între noduri.


Urmărirea rutei de transfer de informații arată că serverul www.rambler.ru se află la o „distanță” de 7 hop de noi, adică informațiile sunt transmise prin șase servere intermediare de internet (prin serverele furnizorilor moscoviți MTU-Inform și Demos). ). Viteza de transfer de informații între noduri este destul de mare, o „tranziție” durează de la 126 la 138 ms.

protocol de transport. Acum imaginați-vă că trebuie să trimitem un manuscris de mai multe pagini prin poștă, dar oficiul poștal nu acceptă colete și colete. Ideea este simplă: dacă manuscrisul nu se încadrează într-un plic poștal obișnuit, acesta trebuie sortat în foi și trimis în mai multe plicuri. Totodată, foile manuscrisului trebuie să fie numerotate, pentru ca destinatarul să știe în ce succesiune aceste foi trebuie îmbinate ulterior.

Pe Internet, o situație similară apare adesea atunci când computerele fac schimb de fișiere mari. Dacă trimiteți un astfel de fișier în întregime, atunci acesta poate „înfunda” canalul de comunicare pentru o lungă perioadă de timp, făcându-l inaccesibil pentru trimiterea altor mesaje.

Pentru a preveni acest lucru, pe computerul expeditor, este necesar să împărțiți un fișier mare în părți mici, să le numerotați și să le transportați în pachete IP separate la computerul destinatar. Pe computerul receptor, trebuie să asamblați fișierul sursă din părțile individuale în ordinea corectă.

Protocolul de control al transmisiei (TCP), adică protocolul de transport, prevede împărțirea fișierelor în pachete IP în timpul transmiterii și asamblarea fișierelor în timpul primirii.

Interesant este că pentru protocolul IP responsabil de rutare, aceste pachete nu au nicio legătură între ele. Prin urmare, ultimul pachet IP poate depăși primul pachet IP pe parcurs. Se poate întâmpla ca chiar și rutele de livrare ale acestor pachete să fie complet diferite. Cu toate acestea, TCP va aștepta primul pachet IP și va reasambla fișierul sursă în ordinea corectă.

Determinarea timpului de schimb de pachete IP. Momentul schimbului de pachete IP între calculator local iar serverul de Internet poate fi determinat folosind utilitarul ping, care este inclus cu sistem de operare Windows. Utilitarul trimite patru pachete IP către adresa specificatăși arată timpul total de transmisie și recepție pentru fiecare pachet.

Determinarea timpului de schimb de pachete IP

1. Conectați-vă la Internet, introduceți comanda [Programs-MS-DOS Session].

2. În fereastră sesiune MS-DOS ca răspuns la solicitarea sistemului de a introduce comanda .

3. În fereastră sesiune MS-DOS va fi afișat rezultatul trecerii de test a semnalului în patru încercări. Timpul de răspuns caracterizează parametrii de viteză ai întregului lanț de linii de comunicație de la server la computerul local.


Întrebări pentru reflecție

1. Ce asigură funcționarea holistică a globalului rețea de calculatoare Internet?

Sarcini practice

4.5. Urmăriți traseul informațiilor de la unul dintre cele mai populare servere de căutare pe Internet www.yahoo.com, situat în segmentul „american” al Internetului.

4.6. Determinați timpul de schimb al pachetelor IP cu serverul www.yahoo.com.

Internetul, care este o rețea de rețele și reunește un număr mare de rețele locale, regionale și corporative diferite, funcționează și se dezvoltă datorită utilizării unui singur protocol de transfer de date TCP / IP. Termenul TCP/IP include numele a două protocoale:

Protocolul de control al transmisiei (TCP)) - protocol de transport;

Protocol Internet (IP)- protocol de rutare.

Protocol de rutare. Protocolul IP prevede transferul de informații între computere dintr-o rețea. Să luăm în considerare funcționarea acestui protocol prin analogie cu transferul de informații folosind poșta obișnuită. Pentru ca scrisoarea să ajungă la destinație, pe plic sunt indicate adresa destinatarului (căreia îi este scrisoarea) și adresa expeditorului (de la care este scrisoarea).

În mod similar, informațiile transmise prin rețea sunt „împachetate într-un plic” pe care sunt „scrise” adresele IP ale computerelor destinatarului și expeditorului, de exemplu, „Către: 198.78.213.185”, „De la: 193.124.5.33”. Conținutul plicului în limbaj informatic este numit prin pachet IP și este un set de octeți.

În procesul de trimitere a scrisorilor obișnuite, acestea sunt mai întâi livrate la oficiul poștal cel mai apropiat de expeditor și apoi transferate de-a lungul lanțului de oficii poștale la oficiul poștal cel mai apropiat de destinatar. La oficiile poștale intermediare, scrisorile sunt sortate, adică se stabilește la ce oficiu poștal următor trebuie trimisă o anumită scrisoare.

Pachetele IP în drum spre computerul destinatar trec și prin numeroase servere intermediare de Internet pe care se efectuează operația. rutare. Ca urmare a rutarii, pachetele IP sunt trimise de la un server de Internet la altul, apropiindu-se treptat de computerul destinatar.

Determinarea rutei de trecere a informaţiei. „Geografia” Internetului diferă semnificativ de geografia cu care suntem obișnuiți. Viteza de obținere a informațiilor nu depinde de distanța serverului Web, ci de numărul de servere intermediare și de calitatea liniilor de comunicație (lățimea de bandă a acestora) prin care se transmite informațiile de la nod la nod.

Vă puteți familiariza cu traseul informațiilor de pe Internet destul de simplu. Program special tracert.exe, care este inclus cu Windows, vă permite să urmăriți prin ce servere și cu ce întârziere informațiile sunt transmise de la serverul de Internet selectat către computer.

Protocolul de transport. Acum imaginați-vă că trebuie să trimitem un manuscris de mai multe pagini prin poștă, dar oficiul poștal nu acceptă colete și colete. Ideea este simplă: dacă manuscrisul nu se încadrează într-un plic poștal obișnuit, acesta trebuie sortat în foi și trimis în mai multe plicuri. Totodată, foile manuscrisului trebuie să fie numerotate, pentru ca destinatarul să știe în ce succesiune aceste foi trebuie îmbinate ulterior.


Pe Internet, o situație similară apare adesea atunci când computerele fac schimb de fișiere mari. Dacă trimiteți un astfel de fișier în întregime, atunci acesta poate „înfunda” canalul de comunicare pentru o lungă perioadă de timp, făcându-l inaccesibil pentru trimiterea altor mesaje.

Pentru a preveni acest lucru, pe computerul expeditor, este necesar să împărțiți un fișier mare în părți mici, să le numerotați și să le transportați în pachete IP separate la computerul destinatar. Pe computerul receptor, trebuie să asamblați fișierul sursă din părțile individuale în ordinea corectă.

Interesant este că pentru protocolul IP responsabil de rutare, aceste pachete nu au nicio legătură între ele. Prin urmare, ultimul pachet IP poate depăși primul pachet IP pe parcurs. Se poate întâmpla ca chiar și rutele de livrare ale acestor pachete să fie complet diferite. Cu toate acestea, TCP va aștepta primul pachet IP și va reasambla fișierul sursă în ordinea corectă.

Protocolul de control al transmisiei (TCP), adică protocolul de transport, prevede împărțirea fișierelor în pachete IP în timpul transmiterii și reasamblarea fișierelor în timpul primirii.

Timpul de schimb de pachete IP între computerul local și serverul de Internet poate fi determinat cu ajutorul utilitarului ping, care face parte din operațiune sisteme Windows. „Utilitatea trimite patru pachete IP la adresa specificată și afișează timpul total de transmisie și recepție pentru fiecare pachet.

Un computer dintr-o rețea TCP/IP poate avea trei niveluri de adrese (dar cel puțin două):

  • Adresa locală a computerului. Pentru nodurile din rețele locale este adresa MAC adaptor de retea. Aceste adrese sunt atribuite de producătorii de hardware și sunt adrese unice.
  • O adresă IP constând din 4 octeți, de exemplu, 109.26.17.100. Această adresă este utilizată la nivelul rețelei. Este atribuit de administrator în timpul configurării computerelor și routerelor.
  • Nume de identificare simbolică (DNS), de exemplu, www.site-ul web

Protocoale de rețea

Un protocol de rețea este un set de reguli care permite schimbul de date între dispozitivele care alcătuiesc o rețea, de exemplu, între două plăci de rețea(Fig. 1).

Orez. 1. Ilustrație pentru conceptul de protocol de rețea

O stivă este un set de protocoale pe mai multe niveluri combinate într-un grup.

Stiva de protocoale TCP/IP este cele două protocoale care formează baza comunicării pe Internet. Protocolul TCP împarte informațiile transmise în porțiuni (pachete) și le enumerează. Folosind protocolul IP, toate pachetele sunt transmise destinatarului. Apoi, folosind protocolul TCP, verifică dacă toate pachetele au fost primite. Când toate bucățile sunt primite, TCP le aranjează în ordinea corectă și le adună într-un singur întreg. Internetul folosește două versiuni ale acestui protocol:

  • Protocol de rețea IPv4 rutat. În această versiune a protocolului, fiecărei gazde din rețea i se atribuie o adresă IP de 32 de biți (adică 4 octeți sau 4 octeți).
  • IPv6 permite adresarea în mod semnificativ cantitate mare noduri decât IPv4. Internet Protocol versiunea 6 folosește adrese pe 128 de biți și poate defini mai multe adrese.

Adresele IP din versiunea v6 sunt scrise ca:X:X:X:X:X:X:X:X, unde X este număr hexazecimal, format din 4 caractere (16 biți), iar fiecare număr are o dimensiune de 4 biți. Fiecare număr variază de la 0 la F. Iată un exemplu de adresă IP a celei de-a șasea versiuni: 1080:0:0:0:7:800:300C:427A. Într-o astfel de înregistrare, zerouri nesemnificative pot fi omise, astfel încât fragmentul de adresă: 0800: este scris ca 800:.

Este obișnuit să scrieți adrese IP prin împărțirea întregii adrese în octeți (8), fiecare octet este scris ca numar decimal, numerele sunt separate prin puncte. De exemplu, adresa

10100000010100010000010110000011
scris ca

10100000.01010001.00000101.10000011 = 160.81.5.131

Orez. 2 Conversie de adrese din binar în zecimal

Adresa IP a unei gazde constă din numărul rețelei IP, care ocupă regiunea superioară a adresei, și numărul gazdei din acea rețea, care ocupă regiunea inferioară.
160.81.5.131 – adresa IP
160.81.5. – numărul de rețea
131 - numărul gazdei

Protocoale de bază (IP, TCP, UDP)


TCP/IP este un nume colectiv pentru un set (stivă) protocoale de rețea diferite niveluri utilizate pe Internet. Caracteristici TCP/IP:

  • Standarde de protocol deschis dezvoltate independent de software și hardware;
  • Independență față de mediul fizic de transmisie;
  • Sistem unic de adresare;
  • Protocoale standardizate la nivel înalt pentru serviciile comune pentru utilizatori.

Orez. 3 stivă de protocoale TCP/IP

Stiva de protocoale TCP/IP este împărțită în 4 straturi:

  • Aplicat
  • Transport
  • Internetwork
  • Fizic și canal.

Datele sunt transmise în pachete. Pachetele au un antet și o sfârșit care conțin informații de serviciu. Datele de la nivelurile superioare sunt introduse în pachetele de la nivelurile inferioare.

Orez. 4 Exemplu de încapsulare a pachetelor în stiva TCP/IP

Stratul fizic și de legătură.
Stiva TCP/IP nu implică utilizarea unor protocoale specifice stratului de acces media și medii fizice. Stratul de acces media este necesar să aibă o interfață cu modulul IP pentru a permite transmiterea pachetelor IP. De asemenea, este necesar să se asigure conversia adresei IP a nodului de rețea către care este transmis pachetul IP la adresa MAC. Adesea, stivele întregi de protocoale pot acționa ca un nivel de acces la mediul de transmisie, apoi vorbesc despre IP peste ATM, IP peste IPX, IP peste X.25 etc.

Stratul de interconectare și protocolul IP.

Baza acestui nivel este protocolul IP.

IP (Internet Protocol) - protocol de internet.

Primul standard IPv4 este definit în RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

Cea mai recentă versiune de IPv4 este RFC-791 (Internet Protocol J. Postel Sep-01-1981).

Primul standard IPv6 este definit în RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden decembrie 1995)

Cea mai recentă versiune a IPv6 este RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden decembrie 1998).

Scopuri principale:

  • Adresarea
  • Dirijare
  • Fragmentarea datagramei
  • Transfer de date

Protocolul IP furnizează blocuri de date de la o adresă IP la alta.

Un program care implementează funcțiile unui anumit protocol este adesea numit modul, de exemplu, „modul IP”, „modul TCP”.

Când modulul IP primește un pachet IP de la nivelul inferior, verifică adresa IP de destinație.

  • Dacă pachetul IP este adresat acest calculator, apoi datele din acesta sunt transferate pentru procesare către modulul de nivel superior (care este specificat în antetul pachetului IP).
  • Dacă adresa de destinație a pachetului IP este a altcuiva, atunci modulul IP poate lua două decizii: prima este de a distruge pachetul IP, a doua este de a-l trimite mai departe la destinație, după ce a determinat ruta - aceasta este ceea ce ruterele. do.

Poate fi necesar și, la marginea rețelelor cu caracteristici diferite, împărțiți pachetul IP în fragmente (fragmentare), apoi asamblați-l într-un singur întreg pe computerul destinatar.

Dacă modulul IP nu reușește să livreze pachetul IP din orice motiv, acesta este distrus. În acest caz, modulul IP poate trimite o notificare de eroare către computerul sursă a acestui pachet IP; astfel de notificări sunt trimise folosind protocolul ICMP, care este parte integrantă a modulului IP. Protocolul IP nu mai are mijloace de a controla corectitudinea datelor, de a confirma livrarea acestora, de a asigura succesiunea corectă a pachetelor IP sau de a prestabili o conexiune între calculatoare. Această sarcină este atribuită stratului de transport.

Orez. 5 Structura datagramei IP. cuvinte pe 32 de biți.

Versiune - versiunea protocolului IP (de exemplu, 4 sau 6)

Lungimea buclei – Lungimea antetului pachetului IP.

Tip de serviciu (TOS - tip de serviciu) - Tip de serviciu ().

TOS joacă un rol important în rutarea pachetelor. Internetul nu garantează TOS solicitat, dar multe routere iau în considerare aceste solicitări atunci când aleg o rută (protocoale OSPF și IGRP).

Identificator de datagramă, steaguri (3 biți) și indicator de fragment - utilizate pentru a recunoaște pachetele formate prin fragmentarea pachetului original.

Time to live (TTL - time to live) - fiecare router îl reduce cu 1, astfel încât pachetele să nu rătăcească pentru totdeauna.

Protocol - ID protocol nivel superior indică cărui protocol de nivel superior îi aparține pachetul (de exemplu: TCP, UDP).

Dirijare

Protocolul IP este rutabil și are nevoie de informații de rutare pentru a-l ruta.

Informațiile despre rută pot fi:

  • Static (tabelele de rutare sunt scrise manual)
  • Dinamic (informațiile de rutare sunt distribuite prin protocoale speciale)

Protocoale de rutare dinamică:

  • RIP (Routing Information Protocol) este un protocol pentru transmiterea informațiilor de rutare, routerele creează dinamic tabele de rutare.
  • OSPF (Open Shortest Path First) este un protocol intern de rutare.
  • IGP (Interior Gateway Protocols) - protocoale interne de rutare, distribuie informațiile de rutare într-un singur sistem autonom.
  • EGP (Exterior Gateway Protocols) - protocoale de rutare externe, distribuie informațiile de rutare între sistemele autonome.
  • BGP (Border Gateway Protocol) este un protocol pentru routerele de frontieră.
    Protocolul ICMP
  • ICMP (Internet Control Message Protocol) - o extensie a protocolului IP, vă permite să trimiteți mesaje de eroare sau mesaje de testare.
    Alte protocoale IP de serviciu
  • IGMP (Internet Group Management Protocol) - vă permite să organizați multicast folosind IP.
  • RSVP (Resource Reservation Protocol) este un protocol de rezervare a resurselor.
    ARP (Address Resolution Protocol) este un protocol pentru conversia unei adrese IP și a unei adrese de nivel de legătură.

strat de transport

Protocoalele stratului de transport asigură livrarea transparentă a datelor între două procese de aplicație. Un proces care primește sau trimite date folosind stratul de transport este identificat la acel nivel printr-un număr numit număr de port. Astfel, rolul adresei expeditorului și destinatarului la nivel de transport este îndeplinit de numărul portului (sau, mai simplu, portul).

Prin analizarea antetului pachetului său primit de la gateway, modulul de transport determină prin numărul portului de destinație către care dintre procesele de aplicație sunt direcționate datele și transmite aceste date procesului de aplicație corespunzător. Numerele portului de destinație și sursă sunt scrise în antet de către modulul de transport care trimite datele; antetul stratului de transport conține și alte informații de serviciu; formatul antetului depinde de protocolul de transport utilizat.

Două protocoale principale funcționează la nivelul transportului: UDP și TCP.

Protocol fiabil de livrare a mesajelor (TCP)

TCP (Transfer Control Protocol) este un protocol de control al transferului, protocolul TCP este utilizat în cazurile în care este necesară livrarea garantată a mesajelor.

În primul rând și ultima versiune TCP - RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Caracteristici cheie:


Dimensiunea ferestrei este numărul de octeți pe care receptorul este gata să îi accepte fără confirmare.

Verificați suma– include pseudo antet, antet și date.

Pointer urgent - indică ultimul octet de date urgente la care este necesar să se răspundă imediat.

URG – steag de urgență, include câmpul „Urgency pointer”, dacă =0 atunci câmpul este ignorat.

ACK – flag de confirmare, include câmpul „Număr de confirmare”, dacă =0 atunci câmpul este ignorat.

PSH - flag-ul necesită o operație push, modulul TCP trebuie să transfere urgent pachetul în program.

RST - flag de anulare a conexiunii, folosit pentru a refuza o conexiune

SYN – steag de sincronizare a numărului de secvență, utilizat la stabilirea unei conexiuni.

FIN - steag pentru încheierea transferului de la expeditor

Protocolul UDP

UDP (Universal Datagram Protocol) este un protocol universal de transfer de date, un protocol de transport mai ușor decât TCP.

Prima și ultima versiune a UDP este RFC-768 (User Datagram Protocol J. Postel Aug-28-1980).

Principalele diferențe față de TCP:

  • Nu există nicio conexiune între modulele UDP.
  • Nu împarte mesajul pentru transmitere
  • Dacă se pierde un pachet, nu se trimite nicio cerere de retransmisie.

UDP este utilizat dacă nu este necesară livrarea garantată a pachetelor, de exemplu, pentru streaming video și audio, DNS (deoarece datele sunt de dimensiuni mici). Dacă verificarea sumei de control eșuează sau dacă nu există niciun proces atașat portului solicitat, pachetul este ignorat (distrus). Dacă pachetele ajung mai repede decât le poate procesa modulul UDP, atunci și pachetele primite sunt ignorate.

Fig.7 Structura datagramei UDP. cuvinte pe 32 de biți.

Nu toate câmpurile dintr-un pachet UDP trebuie completate. Dacă datagrama trimisă nu implică un răspuns, atunci pot fi plasate zerouri în locul adresei expeditorului.

Protocol în timp real RTP

RTP (Real Time Protocol) este un protocol de transport pentru aplicații în timp real.

RTCP (Real Time Control Protocol) este protocolul de transport de feedback pentru aplicația RTP.

Tabelul arată clar măștile de rețea.

Primele două intrări indică faptul că routerul însuși, prin interfețele sale IP corespunzătoare, trimite datagrame adresate rețelelor la care este conectat direct. Toate celelalte datagrame sunt redirecționate către G2 (194.84.0.118). Interfața se0 denotă un canal serial - o linie dedicată.

2.3.5. Crearea rutelor statice

Tabelul de traseu se poate umple căi diferite. Rutarea statică este utilizată atunci când rutele utilizate nu se pot schimba în timp, cum ar fi pentru gazdă și router discutate mai sus, unde pur și simplu nu există rute alternative. Rutele statice sunt configurate de rețea sau de administratorul gazdă specific.

Pentru o gazdă obișnuită din exemplul de mai sus, este suficient să specificați doar adresa gateway-ului (următorul router din ruta implicită), restul intrărilor din tabel sunt evidente, iar gazda, cunoscându-și propria adresă IP și masca de rețea, le poate introduce pe cont propriu. Adresa gateway-ului poate fi specificată fie manual, fie obținută automat la configurarea stivei TCP/IP prin intermediul unui server DHCP (vezi munca de laborator„Cercare IP dinamică” la cursul „Tehnologii Internet”).

2.3.6. Rutare dinamică

În cazul combinării rețelelor cu o topologie complexă, când există mai multe opțiuni pentru rutele de la un nod la altul și (sau) când starea rețelelor (topologia, calitatea canalelor de comunicație) se modifică în timp, tabelele de rute sunt compilate dinamic folosind diverse protocoale de rutare. Trebuie subliniat faptul că protocoalele de rutare nu direcționează de fapt datagramele - acest lucru se face oricum de către modulul IP conform intrărilor din tabelul de rutare, așa cum sa discutat mai sus. Protocoalele de rutare bazate pe anumiți algoritmi editează dinamic tabelul de rutare, adică adaugă și șterg intrări, în timp ce unele dintre intrări pot fi încă introduse static de către administrator.

În funcție de algoritmul de lucru, există vector de distanță protocoale (protocoale vector distanta) si protocoale stări de legătură(link state protocoale).

În funcție de domeniul de aplicare, există o împărțire în protocoale extern(exterior) și intern(interior) rutare.

Protocoale vector de distanță implementează algoritmul Bellman-Ford. Schema generală a activității lor este următoarea: fiecare router difuzează periodic informații despre distanța de la sine la toate rețelele cunoscute de el ( „vector de distanță”). La momentul inițial de timp, desigur, informațiile sunt trimise doar despre acele rețele la care routerul este conectat direct.

De asemenea, fiecare router, după ce a primit un vector de distanță de la cineva, în conformitate cu informațiile primite, corectează datele pe care le are deja despre accesibilitatea rețelelor sau adaugă altele noi, indicând ruterul de la care a fost primit vectorul ca următorul routerîn drum spre aceste reţele. După ceva timp, algoritmul converge și toate routerele au informații despre rutele către toate rețelele.

Protocoalele vector de distanță funcționează bine numai în rețelele mici. Algoritmul muncii lor va fi discutat mai detaliat în Capitolul 4. Evoluția tehnologiei vectorului de distanță - „vectori de cale” utilizați în protocolul BGP.

La munca protocoale de stare de legătură fiecare router monitorizează starea conexiunilor sale cu vecinii și, atunci când starea se schimbă (de exemplu, când conexiunea este întreruptă), trimite un mesaj de difuzare, după care îl primește toate celelalte routere își corectează bazele de date și recalculează rutele. Spre deosebire de protocoalele vector de distanță, protocoalele de stare a legăturii creează o bază de date pe fiecare router care descrie întregul grafic al rețelei și permite calcularea rutei locale și, prin urmare, rapidă.

Un protocol comun de acest tip, OSPF, se bazează pe algoritmul SPF (Shortest Path First) pentru găsirea celei mai scurte căi într-un grafic propus de E.W.Dijkstra.

Protocoalele de stare a legăturii sunt mult mai complicate decât protocoalele vector de distanță, dar oferă un calcul mai rapid, optim și corect al rutei. Protocoalele de stare de legătură vor fi discutate mai detaliat folosind protocolul OSPF ca exemplu în Capitolul 5.

Protocoalele de rutare internă (de exemplu, RIP, OSPF; numite colectiv IGP - Interior Gateway Protocols) sunt utilizate pe routerele care operează în interior sisteme autonome . Un sistem autonom este cea mai mare diviziune a Internetului, care este o asociație de rețele cu aceeași politică de rutare și administrare comună, de exemplu, un set de rețele ale Global One și clienții săi din Rusia.

Sfera de aplicare a unuia sau altuia protocol intern de rutare poate să nu acopere întregul sistem autonom, ci doar unele rețele care fac parte din sistemul autonom. Vom chema o astfel de uniune sistem de rețea , sau pur și simplu sistem, uneori cu o indicație a protocolului de rutare în vigoare pe acest sistem, de exemplu: sistem RIP, sistem OSPF.

Dirijare între sisteme autonome realizate frontieră(de frontieră) routere ale căror tabele de rute sunt compilate folosind protocoale de rutare externe (denumite colectiv EGP - Exterior Gateway Protocols). O caracteristică a protocoalelor de rutare externe este că la calcularea rutelor, acestea trebuie să țină cont nu numai de topologia graficului rețelei, ci și de restricțiile politice impuse de administrarea sistemelor autonome privind rutarea traficului altor sisteme autonome prin rețelele acestora. În prezent, cel mai comun protocol de rutare externă este BGP.

2.4. Format antet datagramei IP

O datagramă IP constă dintr-un antet și date.

Antetul datagramei este format din cuvinte de 32 de biți și are o lungime variabilă în funcție de dimensiunea câmpului „Opțiuni”, dar întotdeauna un multiplu de 32 de biți. Antetul este urmat imediat de datele transportate în datagramă.

Format antet:

Semnificațiile câmpurilor de antet sunt următoarele.

Ver(4 biți) - versiunea protocolului IP, în acest moment se folosește versiunea 4, noile dezvoltări au numerele de versiune 6-8.

IHL (lungimea antetului internetului)(4 biți) - lungimea antetului în cuvinte de 32 de biți; gamă valori admise de la 5 (lungimea minimă a antetului, fără câmp „Opțiuni”) la 15 (adică pot exista maximum 40 de octeți de opțiuni).

TOS (Tip de serviciu)(8 biți) - Valoarea câmpului determină prioritatea datagramei și tipul de rutare dorit. Structura de octeți TOS:

Cei trei biți mai puțin semnificativi („Precedență”) determină prioritatea datagramei:

111 - managementul rețelei

110 - control gateway

101-CRITIC-ECP

100 - mai mult decât instantaneu

011 - instantaneu

010 - imediat

001 - urgent

000 - de obicei

Biții D,T,R,C definesc tipul de rutare dorit:

D (Întârziere) - selectarea rutei cu întârziere minimă,

T (Throughput) - selecția rutei cu debit maxim,

R (Fiabilitate) - selectarea rutei cu fiabilitate maximă,

C (Cost) - selectarea traseului cu costul minim.

Doar unul dintre următoarele pot fi setate într-o datagramă biții D,T,R,C. Bitul înalt al octetului nu este utilizat.

Considerarea efectivă a priorităților și selecția rutei în funcție de valoarea octetului TOS depinde de router, de softwareși setări. Un router POATE să accepte calculul rutei pentru toate tipurile de TOS, pentru o porțiune sau să ignore complet TOS. Routerul poate lua în considerare valoarea priorității atunci când procesează toate datagramele sau atunci când procesează datagramele care provin doar de la un set limitat de gazde, sau poate ignora prioritatea cu totul.

lungime totală(16 biți) - lungimea întregii datagrame în octeți, inclusiv antetul și datele, valoarea maximă este 65535, minima este 21 (antet fără opțiuni și un octet în câmpul de date).

ID (Identificare)(16 biți) Steaguri(3 biți) Fragment Offset(13 biți) sunt utilizați pentru fragmentarea și reasamblarea datagramelor și vor fi discutate mai detaliat în 2.4.1 de mai jos.

TTL (Time To Live)(8 biți) - datagrama „time to live”. Setat de expeditor, măsurat în secunde. Fiecare router prin care trece datagrama suprascrie valoarea TTL, după ce scade din aceasta timpul petrecut cu procesarea datagramei. Deoarece viteza de procesare a datelor pe routere este în prezent mare, de obicei durează mai puțin de o secundă pentru a finaliza o datagramă, așa că, de fapt, fiecare router scade una din TTL. Când se atinge TTL=0, datagrama este distrusă, iar mesajul ICMP corespunzător poate fi trimis expeditorului. Controlul TTL împiedică datagrama să circule în buclă în jurul rețelei.

Protocol(8 biți) - definește programul (protocolul de stivă upstream) către care ar trebui să fie transferate datele datagramei pentru procesare ulterioară. Unele coduri de protocol sunt date în Tabelul 2.4.1.

coduri de protocol IP

Codul Protocol Descriere
1 ICMP

Protocolul mesajelor de control

2 IGMP

Protocolul de control al grupului gazdă

4 IP

IP peste IP (încapsulare)

6 TCP
8 EGP

Protocol de rutare externă (învechit)

9 IGP

Protocol intern de rutare (învechit)

17 UDP
46 RSVP

Protocolul de rezervare a resurselor multicast

88 IGRP

Protocolul de rutare intern Cisco

89 OSPF

Protocol intern de rutare

Sumă de control antet(16 biți) - suma de control antet, constă din 16 biți, completând biții din suma tuturor cuvintelor de 16 biți ale antetului. Înainte de a calcula suma de control, valoarea câmpului „Sumă de verificare antet” este resetata la zero. Deoarece routerele modifică valorile unor câmpuri de antet atunci când procesează o datagramă (cel puțin câmpul „TTL”), suma de control este recalculată de fiecare router. Dacă verificarea sumei de control eșuează, datagrama este eliminată.

Sursa adresei(32 de biți) - adresa IP a expeditorului.

Adresa de destinatie(32 biți) - adresa IP a destinatarului.

Captuseala- alinierea antetului la limita unui cuvânt de 32 de biți, dacă lista de opțiuni ocupă un număr neîntreg de cuvinte de 32 de biți. Câmpul „Padding” este umplut cu zerouri.

2.4.1. Fragmentarea datagramei

Mediile de transmisie diferite au o dimensiune maximă diferită a unității de date transmise (MTU - Media Transmission Unit), acest număr depinde de caracteristicile de viteză ale mediului și de probabilitatea unei erori în timpul transmisiei. De exemplu, dimensiunea MTU în Ethernet de 10 Mbps este de 1536 octeți, în FDDI de 100 Mbps este de 4096 octeți.

Când transferați o datagramă dintr-un mediu cu un MTU mare într-un mediu cu un MTU mai mic, poate fi necesar să fragmentați datagrama. Fragmentarea și reasamblarea datagramelor este gestionată de modulul de protocol IP. Pentru a face acest lucru, utilizați câmpurile „ID” (Identificare), „Flags” și „Fragment Offset” din antetul datagramei.

Steaguri-câmpul este format din 3 biți, dintre care cel mai puțin semnificativ este întotdeauna resetat:

Valorile biților DF (nu fragmentați):

0 - fragmentarea este permisă,

1 - fragmentarea este dezactivată (dacă datagrama nu poate fi transmisă fără fragmentare, aceasta este distrusă).

Valori de biți MF (Mai multe fragmente):

0 - acest fragment este ultimul (singurul),

1 - acest fragment nu este ultimul.

ID (Identificare)- identificatorul datagramei, setat de expeditor; folosit pentru a asambla o datagramă din fragmente pentru a determina dacă fragmentele aparțin aceleiași datagrame.

Fragment Offset- fragment offset, valoarea câmpului indică în ce poziţie din câmpul de date al datagramei originale se află acest fragment. Offset-ul este considerat a fi bucăți de 64 de biți, adică dimensiunea minimă a fragmentului este de 8 octeți, iar următorul fragment în acest caz va avea un offset de 1. Primul fragment are un offset de zero.

Să luăm în considerare procesul de fragmentare cu un exemplu. Să presupunem că o datagramă de 4020 de octeți (din care 20 de octeți antet) este transmisă de pe un mediu FDDI (MTU=4096) către un mediu Ethernet (MTU=1536). La limita media, datagrama este fragmentată. Antetele dintr-o datagramă dată și toate fragmentele acesteia au aceeași lungime - 20 de octeți.

Datagrama sursă:
antet: ID=X, lungime totală=4020, DF=0, MF=0, FOffset=0
date (4000 octeți): „A....A” (1472 octeți), „B....B” (1472 octeți), „C....C” (1056 octeți)

Fragmentul 1:
antet: ID=X, lungime totală=1492, DF=0, MF=1, FOffset=0
date: „A....A” (1472 octeți)

Fragmentul 2:
antet: ID=X, lungime totală=1492, DF=0, MF=1, FOffset=184
date: „B....B” (1472 octeți)

Fragmentul 3:
antet: ID=X, lungime totală=1076, DF=0, MF=0, FOffset=368
date: „C....C” (1056 octeți)

Fragmentarea poate fi recursivă, adică, de exemplu, fragmentele 1 și 2 pot fi fragmentate în continuare; decalajul fragmentului este numărat de la începutul datagramei originale.

2.4.2. Discuție de fragmentare

Numărul maxim de fragmente este 2 13 =8192 cu o dimensiune minimă (8 octeți) a fiecărui fragment. La marime mai mare fragment, numărul maxim de fragmente scade corespunzător.

La fragmentare, unele opțiuni sunt copiate în antetul fragmentului, altele nu. Toate celelalte câmpuri de antet de datagramă din antetul fragmentului sunt prezente. Următoarele câmpuri de antet își pot schimba valoarea față de datagrama originală: câmp de opțiuni, steag „MF”, „Compensare fragment”, „Lungime totală”, „IHL”, sumă de control. Restul câmpurilor sunt copiate în fragmente neschimbate.

Fiecare modul IP trebuie să poată transmite o datagramă de 68 de octeți fără fragmentare (dimensiunea maximă a antetului 60 octeți + fragment minim 8 octeți).

Reasamblarea fragmentelor are loc numai la destinația datagramei, deoarece diferite fragmente pot urma diferite căi către destinație.

Dacă fragmentele sunt întârziate sau se pierd în transmisie, atunci fragmentele rămase deja primite la punctul de asamblare au TTL redus cu unul pe secundă până la sosirea fragmentelor lipsă. Dacă TTL devine zero, atunci toate fragmentele sunt distruse și resursele folosite pentru a asambla datagrama sunt eliberate.

Numărul maxim de ID-uri de datagramă este 65536. Dacă toate ID-urile au fost folosite, trebuie să așteptați până la expirarea TTL, astfel încât același ID să poată fi folosit din nou, deoarece în secunde TTL datagrama „veche” fie va fi livrată și asamblată, fie distrusă. .

Transmiterea datagramelor cu fragmentare are anumite dezavantaje. De exemplu, după cum urmează din paragraful anterior, rata maximă pentru un astfel de transfer este de 65536/TTL datagrame pe secundă. Dacă luăm în considerare că valoarea TTL recomandată este 120, obținem o viteză maximă de 546 de datagrame pe secundă. În mediul FDDI, MTU este de aproximativ 4100 de octeți, din care obținem rata maximă de transfer de date în mediul FDDI de nu mai mult de 18 Mbps, ceea ce este semnificativ mai mic decât capacitățile acestui mediu.

Un alt dezavantaj al fragmentării este eficiența sa scăzută: dacă se pierde un fragment, întreaga datagrama este retransmise; în timp ce se așteaptă simultan fragmentele întârziate ale mai multor datagrame, se creează un deficit semnificativ de resurse și activitatea nodului de rețea încetinește.

O modalitate de a ocoli procesul de fragmentare este utilizarea algoritmului „Path MTU Discovery”, care este acceptat de protocolul TCP. Sarcina algoritmului este să găsească MTU minimă de-a lungul întregii căi de la expeditor la destinație. Pentru a face acest lucru, datagramele sunt trimise cu setul de biți DF ("fragmentare dezactivată"). Dacă nu ajung la destinație, dimensiunea datagramei este redusă și așa mai departe până când transmiterea este cu succes. Sarcina utilă generează apoi datagrame cu o dimensiune corespunzătoare MTU-ului minim descoperit.

2.4.3. Opțiuni IP

Opțiuni definite Servicii aditionale Protocol IP pentru procesarea datagramelor. O opțiune constă, cel puțin, dintr-un octet de tip Opțiune, care poate fi urmat de un octet de lungime a opțiunii și octeți de date pentru opțiune.

Structura octetului „Tip de opțiune”:

Valori bit C:

1 - opțiunea este copiată în toate fragmentele;

0 - opțiunea este copiată numai în primul fragment.

Sunt definite două clase de opțiuni: 0 - „Control” și 2 - „Măsurare și depanare”. În cadrul unei clase, o opțiune este identificată printr-un număr. Următoarele sunt opțiunile descrise în standardul de protocol IP; semnul „-” din coloana „Lungime octet” înseamnă că opțiunea constă numai din octetul „Option Type”, numărul de lângă semnul plus înseamnă că opțiunea are o lungime fixă ​​(lungimea este specificată în octeți).

Tabelul 2.4.2

octet de lungime

Sfârșitul listei de opțiuni

Nicio operațiune

Siguranță

Loose Source Routing (execuția liberă a rutei expeditorului)

Rutarea sursă strictă (aplicarea strictă a rutei expeditorului)

Înregistrarea unui traseu

Amprenta temporală a internetului (marca temporală)

Când opțiunea „Sfârșitul listei de opțiuni” este găsită în listă, analiza opțiunilor se oprește, chiar dacă lungimea antetului (DIH) nu a fost încă epuizată. Opțiunea Fără operație este de obicei utilizată pentru a alinia opțiunile pe o limită de 32 de biți.

Majoritatea opțiunilor nu sunt utilizate în prezent. Opțiunile „Stream ID” și „Security” au fost utilizate într-o gamă limitată de experimente, funcțiile opțiunilor „Record route” și „Internet Timestamp” sunt realizate de programul traceroute. Doar opțiunile „Loose/Strict Source Routing” prezintă un interes deosebit, acestea fiind discutate în paragraful următor.

Aplicarea opțiunilor datagramelor încetinește procesarea acestora. Deoarece majoritatea datagramelor nu conțin opțiuni, adică au o lungime fixă ​​a antetului, procesarea lor este optimizată maxim pentru acest caz particular. Apariția opțiunii întrerupe acest proces rapid și numește standard modul universal Un IP capabil să gestioneze orice opțiuni standard, dar cu prețul unei pierderi semnificative de performanță.

Opțiunile „Loose/Strict Source Routing” (clasa 0, numerele 3 și respectiv 9) au scopul de a indica datagramei o rută predefinită de expeditor.

Ambele opțiuni arată la fel:

Câmpul „Date” conține o listă de adrese IP ale rutei necesare, în ordine. Câmpul „Pointer” este folosit pentru a determina următorul punct de rută; acesta conține numărul primului octet al adresei IP a acestui punct în câmpul „Date”. Numerele sunt numărate de la începutul opțiunii de la unu, valoarea initiala indicatorul - 4.

Opțiunile funcționează după cum urmează.

Să presupunem că o datagramă trimisă de la A la B trebuie să treacă prin routerele G1 și G2. La ieșirea lui A, câmpul „Destination Address” din antetul datagramei conține adresa lui G1, iar câmpul de date opțiune conține adresele lui G2 și B (pointer=4). La sosirea datagramei la G1, din câmpul de date de opțiune, începând cu octetul indicat de pointer (octetul 4), se extrage adresa următoarei destinații (G2) și se plasează în câmpul „Adresa destinație”, cu valoarea pointerului crescută cu 4, iar la locația adresei G2 câmpul de date opțional este setat la adresa interfeței G1 prin care datagrama va fi trimisă către noua destinație (adică către G2). Când datagrama ajunge la G2, procedura se repetă și datagrama este trimisă către B. În timpul procesării datagramei la B, se constată că valoarea pointerului (12) depășește lungimea opțiunii, ceea ce înseamnă că finalul a fost atinsă destinația traseului.

Diferențele dintre opțiunile „Loose Source Routing” și „Strict Source Routing” sunt următoarele:

„Loose”: următorul punct al traseului necesar poate fi atins în orice număr de pași ( hamei);

„Strict”: următorul punct al traseului necesar trebuie atins într-un singur pas, adică direct.

Opțiunile luate în considerare sunt copiate în toate fragmentele. Într-o datagramă poate exista o singură astfel de opțiune.

Opțiunile „Loose/Strict Source Routing” pot fi folosite pentru pătrunderea neautorizată prin nodul de control (filtrare) (adresa permisă este setată în câmpul „Destination Address”, datagrama este transmisă de nodul de control, apoi adresa interzisă este substituit din câmpul de date opțiune și datagrama este redirecționată către această adresă este deja la îndemâna nodului de control), deci din motive de securitate se recomandă interzicerea în general a trecerii datagramelor cu opțiunile în cauză de către nodul de control.

O alternativă rapidă la utilizarea opțiunii „Loose Source Routing” este încapsularea IP-IP: imbricarea unei datagrame IP într-o datagramă IP (câmpul „Protocol” al datagramei exterioare este setat la 4, vezi ). De exemplu, este necesar să se trimită un segment TCP de la A la B prin C. O datagramă de formular este trimisă de la A la C:

La procesarea unei datagrame în C, se constată că datele datagramei trebuie să fie transmise protocolului IP pentru procesare și este, desigur, și o datagramă IP. Această datagramă internă este preluată și trimisă către B.

În același timp, a fost nevoie de timp suplimentar pentru a procesa datagrama numai în nodul C (procesarea a două antete în loc de unul), dar în toate celelalte noduri ale rutei, nu prelucrare suplimentară nu a fost necesar, spre deosebire de cazul utilizării opțiunilor.

Utilizarea încapsulării IP-IP poate cauza, de asemenea, problemele de securitate descrise mai sus.

2.5. Protocolul ICMP

ICMP (Internet Control Message Protocol) este o parte integrantă a modulului IP. Oferă părere sub forma unor mesaje de diagnostic transmise expeditorului atunci când datagrama acestuia nu poate fi livrată și în alte cazuri. ICMP este standardizat în RFC-792, cu completări în RCF-950,1256.

Mesajele ICMP nu sunt generate pe nelivrabile:

  • datagrame care conțin mesaje ICMP;
  • nu primele fragmente de datagramă;
  • datagrame trimise la o adresă multicast (difuzare, multicast);
  • datagrame a căror adresă de expeditor este nulă sau multicast.

Toate mesajele ICMP au un antet IP, valoarea câmpului „Protocol” este 1. Datele datagramei cu un mesaj ICMP nu sunt transmise în stiva de protocol pentru procesare, ci sunt procesate de modulul IP.

Antetul IP este urmat de un cuvânt pe 32 de biți cu câmpurile Type, Code și Checksum. Câmpurile de tip și cod definesc conținutul mesajului ICMP. Formatul restului datagramei depinde de tipul de mesaj. Suma de control este calculată în același mod ca și în antetul IP, dar în acest caz se însumează conținutul mesajului ICMP, inclusiv câmpurile „Tip” și „Cod”.

Tabelul 2.5.1

Tipuri de mesaje ICMP

Mesaj

Echo Răspuns

Destinație inaccesabilă (destinația este inaccesabilă din diverse motive):

Net inaccesibil (rețea inaccesabilă)

Gazdă inaccesabilă (gazdă inaccesabilă)

Protocol inaccesibil

Port inaccesibil

DF=1 (fragmentarea este necesară, dar nu este permisă)

Ruta sursă a eșuat (Nu se poate executa opțiunea Rută sursă)

Source Quench (încetinire sursă)

Redirecționare (selectați un alt router pentru a trimite datagrame)

în această rețea

la această gazdă

la rețeaua dată cu TOS dat

către gazda dată cu TOS dat

Solicitare ecou (cerere ecou)

Publicitate router (reclamă router)

Solicitare router (cerere de publicitate pentru router)

Timp depășit (durata de viață a datagramei a expirat)

la transfer

în timpul asamblarii

Problemă cu parametrii (eroarea parametrilor)

Eroare antet IP

Opțiunea necesară lipsește

Timp de timp (solicitare marcaj de timp)

Răspuns marcaj temporal (răspuns la solicitarea marcajului temporal)

Solicitare masca de adresa

Adresă Mască Răspuns

Formatele de mesaje ICMP sunt discutate mai jos și sunt oferite comentarii la unele dintre mesaje.

Tipurile 3, 4, 11, 12

Într-un mesaj de tip 12, câmpul „ххххххххх” (1 octet) conține numărul de octet al antetului în care a fost detectată eroarea; în mesajele de tipuri 3, 4, 11 nu este utilizat. Toate câmpurile neutilizate sunt umplute cu zerouri.

Mesajele de tip 4 („Decelerare sursă”) sunt generate în caz de depășire (sau pericol de depășire) a bufferelor de procesare a datagramelor ale destinației sau nodului intermediar de-a lungul rutei. La primirea unui astfel de mesaj, expeditorul TREBUIE să încetinească sau să suspende trimiterea de datagrame până când nu mai primește mesaje de acest tip.

Antetul IP și cuvintele inițiale ale datagramei originale sunt furnizate pentru ca expeditorul să recunoască și, eventual, să analizeze cauza defecțiunii.

Tip 5

Mesajele de tip 5 sunt trimise de un router către expeditorul unei datagrame atunci când routerul consideră că datagrama este în loc dat destinațiile ar trebui direcționate printr-un alt router. Adresa noului router este dată în al doilea cuvânt al mesajului.

Conceptul de „destinație” este specificat de valoarea câmpului „Cod” (vezi Tabelul 2.5.1). Informațiile despre unde a fost trimisă datagrama care a generat mesajele ICMP sunt preluate din antetul atașat mesajului. Netransmiterea unei măști de rețea limitează domeniul de aplicare al mesajelor de tip 5.

Tipurile 0.8

Tipurile de mesaje 0 și 8 sunt utilizate pentru a testa comunicația IP între două noduri de rețea. Nodul de testare generează mesaje de tip 8 („Solicitare Echo”), în timp ce „Identificator” determină această sesiune de testare (numărul de secvență de mesaje trimise), câmpul „Număr de secvență” conține numărul acestui mesaj în cadrul secvenței. Câmpul de date conține date arbitrare, dimensiunea acestui câmp este determinată de lungimea totală a datagramei specificată în câmpul „Lungime totală” din antetul IP.

Modulul IP care a primit cererea de ecou trimite un răspuns de ecou. Pentru a face acest lucru, schimbă adresele expeditorului și destinatarului, schimbă tipul de mesaj ICMP la 0 și recalculează suma de control.

Pe baza însuși faptului de a primi răspunsuri cu ecou, ​​a timpului de turnare a datagramei, a procentului de pierderi și a secvenței de sosire a răspunsurilor, nodul de testare poate trage concluzii despre prezența și calitatea comunicării cu nodul testat. Programul ping funcționează prin trimiterea și primirea de mesaje eco.

Tip 9

Mesajele de tip 9 (reclamă la router) sunt trimise periodic de către routere gazdelor din rețea, astfel încât gazdele să își poată configura automat tabelele de rutare. De obicei, astfel de mesaje sunt trimise la adresa multicast 224.0.0.1 („toate gazdele”) sau la adresa de difuzare.

Mesajul conține adresele unuia sau mai multor routere, prevăzute cu o valoare de prioritate pentru fiecare router. Prioritatea este un număr de complement a doi semnat; Cum mai mult număr, cu cât prioritatea este mai mare.

Câmpul „NumAddr” conține numărul de adrese de router în acest mesaj; valoarea câmpului „AddrEntrySize” este egală cu două (dimensiunea câmpului alocat pentru informații despre un router, în cuvinte de 32 de biți). „Time to live” definește data de expirare a informațiilor conținute în acest mesaj, în secunde.

Tip 10

Tipul de mesaj 10 (cerere de publicitate router) constă din două cuvinte de 32 de biți, primul dintre care conține câmpurile „Tip”, „Cod” și „Sumă de control”, iar al doilea este rezervat (umplut cu zerouri).

Tipurile 17 și 18

Tipurile de mesaje 17 și 18 (cerere și răspuns la o solicitare pentru o valoare de mască de rețea) sunt utilizate atunci când o gazdă dorește să cunoască masca rețelei în care se află. Pentru a face acest lucru, o solicitare este trimisă la adresa routerului (sau difuzată dacă adresa routerului este necunoscută). Routerul trimite înapoi un mesaj cu valoarea măștii rețelei din care a venit solicitarea. În cazul în care expeditorul cererii nu își cunoaște încă adresa IP, răspunsul este transmis ca difuzare.

Câmpurile „Identificator” și „Număr secvență” pot fi folosite pentru a controla corespondența cererilor și răspunsurilor, dar în majoritatea cazurilor acestea sunt ignorate.

2.6. Protocolul ARP

Protocolul ARP (Address Resolution Protocol) este conceput pentru a traduce adresele IP în adrese MAC, adesea denumite și adrese fizice.

MAC înseamnă Media Access Control, controlul accesului media. Adresele MAC identifică dispozitivele conectate la o legătură fizică, un exemplu de adresă MAC este o adresă Ethernet.

Pentru a transmite o datagramă IP pe un canal fizic (vom lua în considerare Ethernet), este necesar să se încapsuleze această datagramă într-un cadru Ethernet și să se indice în antetul cadrului adresa cardului Ethernet la care va fi livrată această datagramă pentru prelucrarea sa ulterioară. prin protocolul IP superior din stivă. Adresa IP inclusă în antetul datagramei se adresează interfeței IP a unui nod de rețea și nu conține nicio indicație a mediului de transmisie fizic la care este conectată această interfață, cu atât mai puțin la adresa fizica dispozitiv (dacă există) cu care această interfață comunică cu mediul.

Căutarea unei anumite adrese IP pentru adresa Ethernet corespunzătoare este efectuată de protocolul ARP, care operează la nivelul de acces media. Protocolul acceptă memorie cu acces aleator tabel arp dinamic pentru memorarea în cache a informațiilor primite. Ordinea de funcționare a protocolului este următoarea.

O datagramă IP este primită de la stratul de internetwork pentru a fi transmisă pe canalul fizic (Ethernet), împreună cu datagrama, printre alți parametri, este transmisă adresa IP a gazdei de destinație. Dacă tabelul arp nu conține o intrare pentru adresa Ethernet corespunzătoare adresei IP dorite, modulul arp pune datagrama în coadă și emite o cerere de difuzare. Solicitarea este primită de toate nodurile conectate la rețeaua dată; gazda care și-a învățat adresa IP trimite un răspuns arp cu valoarea adresei sale Ethernet. Datele primite sunt introduse într-un tabel, datagrama în așteptare este îndepărtată din coadă și transferată pentru a fi încapsulată într-un cadru Ethernet pentru transmiterea ulterioară pe un canal fizic.

Cererea sau răspunsul ARP este inclus în cadrul Ethernet imediat după antetul cadrului.

Formatele de cerere și de răspuns sunt aceleași și diferă doar în codul de operare (Codul de operație, 1 și respectiv 2).

Deși ARP a fost creat special pentru Ethernet, acest protocol poate suporta diferite tipuri de medii fizice (câmpul „Tip hardware”, o valoare de 1 corespunde Ethernet), precum și diverse tipuri de protocoale servite (câmpul „Tip protocol”). )”, valoarea 2048 corespunde IP). Câmpurile H-len și P-len conțin lungimile adreselor fizice și, respectiv, „protocol”, în octeți. Pentru Ethernet H-len=6, pentru IP P-len=4.

Câmpurile „Adresă hardware sursă” și „Adresă protocol sursă” conțin adresele fizice (Ethernet) și „protocol” (IP) ale expeditorului. Câmpurile „Adresă hardware țintă” și „Adresă protocol țintă” conțin adresele de destinație corespunzătoare. Când este trimisă o solicitare, câmpul „Adresă hardware țintă” este inițializat la zero, iar câmpul „Destinație” din antetul cadrului Ethernet este setat la adresa de difuzare.

2.6.1. ARP pentru datagramele destinate unei alte rețele

O datagrama destinata unei retele externe (alte) trebuie transmisa catre router. Să presupunem că gazda A trimite o datagramă către gazda B prin routerul G. Chiar dacă datagrama trimisă de la A are adresa IP a lui B în antetul său „Destinație”, cadrul Ethernet care conține datagrama trebuie să fie livrat către router. Acest lucru se realizează prin faptul că modulul IP, la apelarea modulului ARP, trimite adresa routerului, preluată din tabelul de rute, împreună cu datagrama ca adresă IP a gazdei de destinație. Astfel, o datagramă cu adresa B este încapsulată într-un cadru cu adresa MAC G:

Modulul Ethernet de pe router-ul G primește cadrul din rețea deoarece cadrul este adresat acestuia, extrage datele (adică, datagrama) din cadru și le trimite către modulul IP pentru procesare. Modulul IP detectează că datagrama nu îi este adresată, ci gazdei B și își folosește tabelul de rute pentru a determina unde ar trebui să fie transmisă. Datagrama este apoi aruncată din nou la interfața fizică corespunzătoare, care este transmisă ca adresă IP de destinație adresa următorului router, preluată din tabelul de rutare sau adresa gazdei B dacă routerul G poate livra datagrama direct către acesta. .

2.6.2. Proxy ARP

Răspunsul ARP poate să nu fie neapărat trimis de gazda țintă, dar o altă gazdă poate face acest lucru. Un astfel de mecanism se numește proxy ARP.

Luați în considerare un exemplu (Fig. 2.6.1). Gazda de la distanță A apelează la rețeaua 194.84.124.0/24 prin serverul de acces G. Rețeaua 194.84.124.0 este Ethernet la nivelul fizic. Serverul G oferă gazdei A adresa IP 194.84.124.30, care aparține rețelei 194.84.124.0. Prin urmare, orice nod din această rețea, cum ar fi gazda B, crede că poate trimite direct o datagramă gazdei A, deoarece se află în aceeași rețea IP.

Orez. 2.6.1. Proxy ARP

Modulul IP al gazdei B apelează modulul ARP pentru a determina adresa fizică a lui A. Cu toate acestea, în loc de A (care, desigur, nu poate răspunde, deoarece nu este conectat fizic la Rețele Ethernet) serverul G răspunde și returnează adresa sa Ethernet ca adresa fizică a gazdei A. B apoi trimite și G primește un cadru care conține o datagramă pentru A, pe care G o trimite la destinație prin circuitul comutat.