Protocolul de rutare IP asigură livrarea informațiilor. Ce face protocolul de rutare (IP)? . ARP pentru datagramele destinate unei alte rețele

Protocolul de rutare IP asigură livrarea informațiilor.  Ce face protocolul de rutare (IP)?  .  ARP pentru datagramele destinate unei alte rețele
Protocolul de rutare IP asigură livrarea informațiilor. Ce face protocolul de rutare (IP)? . ARP pentru datagramele destinate unei alte rețele

Protocolul IP se află la nivelul de interconectare al stivei de protocoale TCP/IP. Funcțiile protocolului IP sunt definite în standardul RFC-791 astfel: „Protocolul IP asigură transmiterea de blocuri de date, numite datagrame, de la un expeditor la destinatari, unde expeditorii și destinatarii sunt calculatoare identificate prin lungime fixă. adrese ( adrese IP). Protocolul IP oferă, de asemenea, fragmentarea și reasamblarea datagramelor, dacă este necesar, pentru transmisia de date prin rețele cu dimensiuni mici de pachete.” Protocolul IP este nesigure protocol fără conexiune. Aceasta înseamnă că protocolul IP nu confirmă livrarea datelor, nu controlează integritatea datelor primite și nu efectuează o operațiune de strângere de mână - schimbul de mesaje de serviciu care confirmă stabilirea unei conexiuni cu nodul destinație și pregătirea acestuia. pentru a primi date.

Structura pachetului IP
Un pachet IP constă dintr-un antet și un câmp de date. Antetul, de obicei lung de 20 de octeți, are următoarea structură (Fig. 5.12).

Camp Steaguri (Hags) ocupă 3 biți și conține caracteristici asociate cu fragmentarea. Un bit setat DF (Do not Fragment) interzice routerului să fragmenteze acest pachet, iar un bit setat MF (Mai multe fragmente) indică faptul că acest pachet este un fragment intermediar (nu ultimul). Bitul rămas este rezervat.

Funcția principală a unui router este de a citi antetele pachetelor de protocol de rețea primite și stocate în tampon pe fiecare port (de exemplu, IPX, IP, AppleTalk sau DECnet) și de a decide asupra rutei ulterioare a pachetului în funcție de adresa sa de rețea, care de obicei include numărul de rețea și nodul de număr.

Modulele software de protocol IP sunt instalate pe toate stațiile finale și routerele din rețea. Ei folosesc tabele de rutare pentru a transmite pachete.

Structura tabelului de rutare a stivei TCP/IP urmează principiile generale de construire a tabelelor de rutare. Cu toate acestea, este important de reținut că aspectul tabelului de rutare IP depinde de implementarea specifică a stivei TCP/IP.
Scopul câmpurilor tabelului de rutare
În ciuda diferențelor externe destul de vizibile, toate cele trei tabele conțin toți parametrii cheie necesari pentru funcționarea routerului.
Acești parametri includ, desigur, adresa rețelei de destinație și adresa următorului router. Al treilea parametru cheie, adresa portului către care ar trebui trimis pachetul, este indicat direct în unele tabele și indirect în altele. Restul parametrilor care pot fi găsiți în versiunile prezentate ale tabelului de rutare sunt opționali pentru a decide calea pachetului.

Surse și tipuri de intrări în tabelul de rutare:

  1. Prima sursă este software-ul de stivă TCP/IP.
  2. A doua sursă pentru apariția unei intrări în tabel este administratorul, care creează direct intrarea folosind un utilitar de sistem.
  3. O a treia sursă de înregistrări ar putea fi protocoalele de rutare precum RIP sau OSPF.

Fragmentarea pachetelor IP

Protocolul IP permite fragmentarea pachetelor care ajung la porturile de intrare ale routerelor. Este necesar să se facă distincția între fragmentarea mesajelor în nodul de trimitere și fragmentarea dinamică a mesajelor în nodurile de tranzit ale rețelei - routere. Aproape toate stivele de protocoale au protocoale care sunt responsabile pentru fragmentarea mesajelor de la nivelul aplicației în bucăți care se potrivesc în cadrele stratului de legătură. În stiva TCP/IP, această problemă este rezolvată de protocolul TCP, care împarte fluxul de octeți transferați către acesta de la nivelul aplicației în mesaje de dimensiunea necesară (de exemplu, 1460 de octeți pentru protocolul Ethernet). Prin urmare, protocolul IP de la nodul expeditor nu folosește capacitățile sale de fragmentare a pachetelor.

Dar dacă este necesar să transferați un pachet în următoarea rețea, pentru care dimensiunea pachetului este prea mare, fragmentarea IP devine necesară. Funcțiile stratului IP includ ruperea unui mesaj care este prea lung pentru un anumit tip de componentă de rețea în pachete mai scurte cu crearea câmpurilor de serviciu corespunzătoare necesare pentru asamblarea ulterioară a fragmentelor în mesajul original.
În majoritatea tipurilor de rețele locale și de zonă largă, valorile MTU, adică dimensiunea maximă a câmpului de date în care protocolul IP trebuie să-și încapsuleze pachetul, diferă semnificativ. Rețelele Ethernet au un MTU de 1500 de octeți, rețelele FDDI au un MTU de 4096 de octeți, iar rețelele X.25 funcționează cel mai adesea cu un MTU de 128 de octeți.

Un pachet IP poate fi marcat ca nefragmentabil. Orice pachet marcat în acest fel nu poate fi fragmentat de modulul IP în nicio circumstanță. Dacă un pachet marcat ca nefragmentabil nu poate ajunge la destinatar fără fragmentare, atunci acest pachet este pur și simplu distrus și mesajul ICMP corespunzător este trimis gazdei care trimite.

Procedura de îmbinare constă în plasarea datelor din fiecare fragment în poziția specificată în antetul pachetului în câmpul „fragment offset”.

Fiecare modul IP trebuie să poată transmite un pachet de 68 de octeți fără fragmentare suplimentară.

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țelei la care este conectat direct. Toate celelalte datagrame sunt transmise 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 rute poate fi populat în diferite moduri. Rutarea statică este utilizată atunci când rutele utilizate nu se pot schimba în timp, cum ar fi gazda și routerul discutate mai sus, unde pur și simplu nu există rute alternative. Rutele statice sunt configurate de administratorul de rețea sau gazdă.

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

2.3.6. Dirijare dinamică

În cazul combinării rețelelor cu o topologie complexă, când există mai multe opțiuni de rută 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. Subliniem că protocoalele de rutare nu direcționează de fapt datagramele - este în orice caz efectuată de 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 rute, adică adaugă și șterg intrări, în timp ce unele intrări pot fi încă introduse static de către administrator.

În funcție de algoritmul de operare, există vector de distanță protocoale și protocoale vectoriale de distanță stări de conexiune(protocoale de stare de legătură).

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

Protocoale vectoriale de distanță implementează algoritmul Bellman-Ford. Schema generală de funcționare a acestora 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 rețeaua de date. 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 doar în rețelele mici. Algoritmul funcționării lor va fi discutat mai detaliat în Capitolul 4. Dezvoltarea tehnologiei vectorului de distanță - „vectori de cale” utilizați în protocolul BGP.

Când lucrezi 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 o conexiune este întreruptă), trimite un mesaj de difuzare, după care îl primește toate celelalte routere își ajustează 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 ca calculele rutei să fie efectuate local și, prin urmare, rapid.

Un protocol comun de acest tip este 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 de legătură sunt mult mai complexe decât protocoalele vector distanță, dar oferă un calcul mai rapid, mai optim și mai corect al rutelor. Protocoalele de stare de legătură vor fi discutate mai detaliat folosind protocolul OSPF ca exemplu în Capitolul 5.

Protocoalele de rutare interioară (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 divizie a Internetului, care este o combinație de rețele cu aceeași politică de rutare și administrare comună, de exemplu, setul de rețele ale companiei Global One și clienții săi din Rusia.

Sfera de aplicare a unui anumit protocol intern de rutare poate să nu acopere întregul sistem autonom, ci doar o combinație de rețele care face parte din sistemul autonom. Vom chema o astfel de uniune sistem de rețea , sau pur și simplu sistem, indicând uneori protocolul de rutare care funcționează în acest sistem, de exemplu: sistem RIP, sistem OSPF.

Dirijare între realizat prin sisteme autonome frontieră(de frontieră) routere ale căror tabele de rute sunt compilate folosind protocoale de rutare externe (denumite colectiv EGP - Exterior Gateway Protocols). Particularitatea 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 lor. Î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 este întotdeauna un multiplu de 32 de biți. Antetul este urmat imediat de datele transportate în datagramă.

Format antet:

Valorile câmpului antet sunt după cum urmează.

Ver(4 biți) - versiunea protocolului IP, în prezent este utilizată 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; intervalul de valori valide este 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 cei mai puțin semnificativi („Precedență”) determină prioritatea datagramei:

111 - managementul rețelei

110 - control rețea

101 - CRITIC-ECP

100 - mai mult decât instantaneu

011 - instantaneu

010 - imediat

001 - urgent

000 - de obicei

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

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

T (Throughput) - selectarea unei rute cu debit maxim,

R (Fiabilitate) - alegerea unei rute cu fiabilitate maximă,

C (Cost) - selectarea traseului cu costul minim.

Doar unul dintre biții D, T, R, C poate fi setat într-o datagramă. Cel mai semnificativ bit al octetului nu este utilizat.

Considerarea efectivă a priorităților și selecția rutei pe baza valorii octetului TOS depinde de router și de software-ul și setările acestuia. Un router poate accepta calcule de rută pentru toate tipurile de TOS, unele sau poate ignora complet TOS. Un router poate lua în considerare valoarea priorității atunci când procesează toate datagramele sau atunci când procesează datagramele care provin doar dintr-un set limitat de noduri de rețea sau poate ignora prioritatea cu totul.

Lungime totală(16 biți) - lungimea întregii datagrame în octeți, inclusiv antet și date, valoarea maximă 65535, minim - 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 mai jos în secțiunea 2.4.1.

TTL (Time To Live)(8 biți) - „durata de viață” a datagramei. Setat de expeditor, măsurat în secunde. Fiecare router prin care trece datagrama rescrie valoarea TTL, mai întâi scăzând din aceasta timpul petrecut cu procesarea datagramei. Deoarece viteza de procesare a routerelor în zilele noastre este atât de rapidă, de obicei durează mai puțin de o secundă pentru a procesa o datagramă, astfel încât fiecare router scade de fapt una din TTL. Când se atinge TTL=0, datagrama este eliminată și un mesaj ICMP corespunzător poate fi trimis expeditorului. Controlul TTL împiedică datagrama de la bucla în rețea.

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

coduri de protocol IP

Cod Protocol Descriere
1 ICMP

Protocolul mesajului de control

2 IGMP

Protocolul de gestionare a grupului gazdă

4 IP

IP peste IP (încapsulare)

6 TCP
8 E.G.P.

Protocol de rutare extern (învechit)

9 IGP

Protocol intern de rutare (învechit)

17 UDP
46 RSVP

Protocol de rezervare a resurselor pentru multicasting

88 IGRP

Protocol intern de rutare de la Cisco

89 OSPF

Protocol intern de rutare

Sumă de control antet(16 biți) - sumă de control antet, constă din 16 biți, biți complementari în suma tuturor cuvintelor antet de 16 biți. Î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ă este detectată o eroare în timpul verificării sumei de control, datagrama este eliminată.

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

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

Captuseala- alinierea antetului pe o graniță a unui cuvânt de 32 de biți dacă lista de opțiuni ocupă un număr non-întreg de cuvinte de 32 de biți. Câmpul „Padding” este umplut cu zerouri.

2.4.1. Fragmentarea datagramei

Diferitele medii de transmisie au dimensiuni maxime diferite ale unității de date transmise (MTU - Media Transmission Unit), acest număr depinde de caracteristicile de viteză ale mediului și de probabilitatea apariției unei erori în timpul transmisiei. De exemplu, dimensiunea MTU în Ethernet de 10 Mbit/s este de 1536 octeți, în FDDI de 100 Mbit/s este de 4096 octeți.

Când se transmite o datagramă dintr-un mediu cu un MTU mare într-un mediu cu un MTU mai mic, poate fi necesar să se fragmenteze datagrama. Fragmentarea și reasamblarea datagramelor este realizată de modulul de protocol IP. În acest scop, sunt folosite câmpurile „ID” (Identificare), „Flags” și „Fragment Offset” ale antetului 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 în 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ă ne uităm la procesul de fragmentare cu un exemplu. Să presupunem că o datagramă de 4020 de octeți (inclusiv 20 de octeți de antet) este transmisă dintr-un mediu FDDI (MTU=4096) către un mediu Ethernet (MTU=1536). La limita media, datagrama este fragmentată. Antetele din această datagramă și în toate fragmentele sale au aceeași lungime - 20 de octeți.

Datagrama originală:
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 din nou; în acest caz, offset-ul (Fragment Offset) este calculat de la începutul datagramei originale.

2.4.2. Discuție despre fragmentare

Numărul maxim de fragmente este 2 13 =8192 cu o dimensiune minimă (8 octeți) a fiecărui fragment. Cu o dimensiune mai mare a fragmentului, numărul maxim de fragmente scade în consecință.

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 în comparație cu datagrama originală: câmp de opțiuni, steag „MF”, „Compensare fragment”, „Lungime totală”, „IHL”, sumă de control. Câmpurile rămase sunt copiate în fragmente fără modificări.

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 nodul de destinație al datagramei, deoarece fragmente diferite pot lua rute diferite către destinație.

Dacă fragmentele sunt întârziate sau se pierd în tranzit, fragmentele rămase deja primite la punctul de reasamblare au TTL scăzut cu una pe secundă până la sosirea fragmentelor lipsă. Dacă TTL devine zero, atunci toate fragmentele sunt distruse și resursele folosite pentru a reasambla datagrama sunt eliberate.

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

Transmiterea datagramelor cu fragmentare are anumite dezavantaje. De exemplu, după cum urmează din paragraful anterior, viteza maximă a unei astfel de transmisii 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ă. Într-un mediu FDDI, MTU este de aproximativ 4100 de octeți, din care obținem o rată maximă de transfer de date într-un mediu FDDI de cel mult 18 Mbit/s, care 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; Când se așteaptă simultan fragmente întârziate ale mai multor datagrame, se creează o lipsă vizibilă de resurse și funcționarea nodului de rețea încetinește.

O modalitate de a ocoli procesul de fragmentare este utilizarea algoritmului „Path MTU Discovery”, acest algoritm este acceptat de protocolul TCP. Scopul algoritmului este de a descoperi MTU-ul minim de-a lungul întregii căi de la expeditor la destinație. Pentru a face acest lucru, datagramele sunt trimise cu bitul DF setat („fragmentare interzisă”). Dacă nu ajung la destinație, dimensiunea datagramei este redusă, iar aceasta continuă până când transmiterea este cu succes. La transmiterea sarcinilor utile, datagramele sunt apoi create cu o dimensiune corespunzătoare MTU-ului minim detectat.

2.4.3. Opțiuni IP

Opțiunile definesc servicii suplimentare de 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 - „Management” ș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; un semn „-” în coloana „Lungime octet” înseamnă că opțiunea constă doar din octetul „Option Type”, un număr lângă semnul plus înseamnă că opțiunea are o lungime fixă ​​(lungimea este indicată î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 gratuită a rutei expeditorului)

Strict Source Routing (execuția strictă a rutei expeditorului)

Înregistrarea unui traseu

Timp de Internet

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 (IHL) nu a fost încă epuizată. Opțiunea Fără operație este de obicei folosită 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 efectuate de programul traceroute. Doar opțiunile „Loose/Strict Source Routing” sunt de un anumit interes, acestea sunt discutate în paragraful următor.

Utilizarea opțiunilor în datagrame î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 unei opțiuni întrerupe acest proces de mare viteză și apelează la un modul IP universal standard, capabil să proceseze orice opțiuni standard, dar în detrimentul 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ă predeterminată 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 utilizat 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 inițială a indicatorului este 4.

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

Să presupunem că o datagramă trimisă de la A la B trebuie să călătorească prin routerele G1 și G2. La ieșirea din A, câmpul „Destination Address” al antetului datagramei conține adresa lui G1, iar câmpul de date opțiunii conține adresele lui G2 și B (pointer = 4). La sosirea datagramei la G1, din câmpul de date 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”, valoarea al pointerului este incrementat cu 4, iar adresa G2 este înlocuită câmpul de date opțiunea conține adresa interfeței routerului G1 prin care datagrama va fi trimisă către noua destinație (adică către G2). La sosirea datagramei la G2, procedura se repetă și datagrama este trimisă către B. La procesarea datagramei la B, se descoperă că valoarea pointerului (12) depășește lungimea opțiunii, ceea ce înseamnă că a fost atinsă destinația finală a 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. Nu poate exista decât o astfel de opțiune per datagramă.

Opțiunile „Loose/Strict Source Routing” pot fi utilizate în scopul pătrunderii neautorizate printr-un nod de control (filtrare) (adresa permisă este setată în câmpul „Destination Address”, datagrama este transmisă de nodul de control, apoi un adresa interzisă este înlocuită din câmpul de date opțiuni și datagrama este redirecționată către această adresă este deja în afara accesului nodului de control), prin urmare, din motive de securitate, se recomandă interzicerea în general a nodului de control să transmită datagrame cu opțiunile din întrebare.

O alternativă rapidă la utilizarea opțiunii „Loose Source Routing” este încapsularea IP-IP: includerea unei datagrame IP într-o datagramă IP (câmpul „Protocol” al datagramei exterioare are valoarea 4, vezi ). De exemplu, trebuie să trimiteți un segment TCP de la A la B prin C. O datagramă ca aceasta este trimisă de la A la C:

La procesarea unei datagrame în C, se descoperă că datele datagramei trebuie transferate către protocolul IP pentru procesare și este, desigur, și o datagramă IP. Această datagramă internă este preluată și trimisă către B.

În acest caz, timp suplimentar pentru procesarea datagramei a fost necesar doar în nodul C (prelucrarea a două antete în loc de unul), dar în toate celelalte noduri ale rutei nu a fost necesară nicio prelucrare suplimentară, spre deosebire de cazul utilizării opțiunilor.

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

2.5. Protocolul ICMP

Protocolul ICMP (Internet Control Message Protocol) este o parte integrantă a modulului IP. Oferă feedback sub formă de mesaje de diagnostic trimise 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 dacă livrarea este imposibilă:

  • datagrame care conțin mesaje ICMP;
  • nu primele fragmente de datagramă;
  • datagrame trimise la o adresă de grup (difuzare, multidifuzare);
  • datagrame a căror adresă sursă 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 protocoale pentru procesare, ci sunt procesate de modulul IP.

După antetul IP există un cuvânt de 32 de biți cu câmpurile „Tip”, „Cod” și „Sumă de control”. 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 indisponibilă)

Gazdă inaccesabilă (gazda nu este disponibilă)

Protocol indisponibil

Port inaccesibil (port indisponibil)

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

Ruta sursă a eșuat (opțiunea Rută sursă nu poate fi executată)

Sursă de stingere

Redirecționare (alegeți alt router la care să trimiteți datagramele)

la această rețea

la această gazdă

la o anumită rețea cu un anumit TOS

la o anumită gazdă cu un anumit TOS

Solicitare ecou

Publicitate la router

Solicitare router (cerere de publicitate pentru router)

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

la transmitere

în timpul asamblarii

Problemă cu parametrii

Eroare în antetul IP

Opțiunea necesară lipsește

Marca de timp (solicitare de marcaj de timp)

Răspuns marcaj de timp (răspuns la o solicitare de marcaj de timp)

Solicitare masca de adresa

Răspuns la masca de adresă (răspuns la solicitarea măștii de rețea)

Mai jos discutăm formatele mesajelor ICMP și oferim comentarii la unele mesaje.

Tipurile 3, 4, 11, 12

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

Mesajele de tip 4 („Slow Down”) sunt generate atunci când tampoanele de procesare a datagramelor ale destinației sau nodului intermediar de-a lungul rutei sunt pline (sau sunt în pericol de depășire). La primirea unui astfel de mesaj, expeditorul trebuie sa reduca viteza sau sa intrerupa trimiterea datagramelor pana cand nu mai primeste mesaje de acest tip.

Antetul IP și cuvintele inițiale ale datagramei originale sunt furnizate pentru a identifica inițiatorul datagramei și, eventual, a analiza 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ă datagramele către o anumită destinație 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 derivate din antetul atașat mesajului. Lipsa transmisiei cu masca 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 „Identificatorul” 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 primește 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.

Nodul de testare, pe baza însuși faptului de a primi răspunsuri cu eco, timpul de turnare a datagramei, procentul de pierderi și secvența de sosire a răspunsurilor, 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 dintr-o 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, cu valori prioritare pentru fiecare router. Prioritatea este un număr semnat, scris în complement de doi; cu cât numărul este mai mare, cu atât prioritatea este mai mare.

Câmpul „NumAddr” conține numărul de adrese de router din 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). „Lifetime” definește data de expirare a informațiilor conținute în acest mesaj, în secunde.

Tip 10

Tipul de mesaj 10 (Solicitare de publicitate pentru 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

Mesajele de tipurile 17 și 18 (cerere și răspuns la o solicitare pentru valoarea măștii de rețea) sunt utilizate atunci când gazda dorește să cunoască masca de rețea în care se află. Pentru a face acest lucru, o solicitare este trimisă la adresa routerului (sau difuzată dacă adresa routerului este necunoscută). Routerul răspunde cu un mesaj care conține valoarea măștii rețelei din care a venit cererea. În cazul în care solicitantul nu își cunoaște încă adresa IP, răspunsul este transmis difuzat.

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

2.6. Protocolul ARP

ARP (Address Resolution Protocol) este conceput pentru a traduce adresele IP în adrese MAC, adesea numite ș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ă încapsulăm această datagramă într-un cadru Ethernet și în antetul cadrului să indicați adresa plăcii Ethernet la care va fi livrată această datagramă pentru prelucrarea sa ulterioară. prin protocolul IP mai sus în stivă. Adresa IP inclusă în antetul datagramei se adresează interfeței IP a oricărui nod de rețea și nu conține nicio indicație despre mediul fizic de transmisie la care este conectată această interfață, cu atât mai puțin adresa fizică a dispozitivului (dacă există), prin care aceasta interfața comunică cu mediul.

Căutarea unei adrese Ethernet corespunzătoare utilizând o anumită adresă IP este efectuată de protocolul ARP, care operează la nivelul de acces la media de transmisie. Protocolul menține un tabel arp dinamic în RAM în scopul stocării în cache a informațiilor primite. Protocolul funcționează după cum urmează.

O datagramă IP este primită de la stratul de internetwork pentru a fi transmisă pe un canal fizic (Ethernet), iar î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 această rețea; un nod care și-a recunoscut adresa IP trimite un răspuns arp cu valoarea adresei Ethernet. Datele primite sunt introduse într-un tabel, datagrama în așteptare este îndepărtată din coadă și transferată pentru încapsulare într-un cadru Ethernet pentru trimiterea 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 conceput special pentru Ethernet, protocolul poate suporta diferite tipuri de medii fizice (câmpul „Tipul hardware”, o valoare de 1 corespunde Ethernet), precum și diferite tipuri de protocoale acceptate (câmpul „Tipul protocolului”) . 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 destinatarelor corespunzătoare. Când trimiteți o solicitare, câmpul „Adresă hardware țintă” este inițializat la zero, iar câmpul „Adresă destinație” din antetul cadrului Ethernet este setat la adresa de difuzare.

2.6.1. ARP pentru datagramele destinate unei alte rețele

O datagramă direcționată către o rețea externă (altă) trebuie să fie transmisă către 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 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, îi transmite, împreună cu datagrama, adresa routerului extrasă din tabelul de rute ca adresa 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 acest cadru din rețea, deoarece cadrul îi este adresat, extrage date (adică o datagramă) 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ă. Apoi, datagrama este din nou coborâtă la nivelul inferior, la interfața fizică corespunzătoare, la care adresa următorului router extras din tabelul de rute este transmisă ca adresă IP a gazdei de destinație, sau imediat 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 trimis neapărat de nodul dorit; Acest mecanism se numește proxy ARP.

Să ne uităm la un exemplu (Fig. 2.6.1). Gazda de la distanță A este conectată printr-o linie dial-up la rețeaua 194.84.124.0/24 prin serverul de acces G. Rețeaua 194.84.124.0 este un strat fizic Ethernet. 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, consideră 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țeaua Ethernet), serverul G răspunde, care returnează Adresă Ethernet ca adresă fizică gazdă A. B trimite apoi și G primește un cadru care conține o datagramă pentru A, pe care G o trimite către destinație prin circuitul comutat.

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

  • Adresa locală a computerului. Pentru gazdele incluse în rețelele locale, aceasta este adresa MAC a adaptorului de rețea. 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-identificator de caractere (DNS), de exemplu, www.site

Protocoale de rețea

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

Orez. 1. Ilustrarea conceptului 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 două protocoale care stau la baza comunicațiilor pe Internet. Protocolul TCP împarte informațiile transmise în porțiuni (pachete) și le numerotează. Folosind protocolul IP, toate pachetele sunt transmise destinatarului. Apoi, folosind protocolul TCP, se verifică dacă toate pachetele au fost primite. Când primește toate porțiunile, TCP le plasează în ordinea necesară și le adună într-un singur întreg. Există două versiuni ale acestui protocol utilizate pe Internet:

  • Protocol de rețea direcționat IPv4. În această versiune a protocolului, fiecărui nod de rețea i se atribuie o adresă IP de 32 de biți (adică 4 octeți sau 4 octeți).
  • IPv6 vă permite să abordați un număr semnificativ mai mare de noduri decât IPv4. Protocolul Internet versiunea 6 folosește adrese pe 128 de biți și poate defini mult mai multe adrese.

Adresele IP v6 sunt scrise după cum urmează: X:X:X:X:X:X:X:X, unde X este un număr hexazecimal din 4 cifre (16 biți) și fiecare număr are 4 biți . Fiecare număr variază de la 0 la F. Iată un exemplu de adresă IP versiunea 6: 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:.

Adresele IP sunt scrise de obicei prin împărțirea întregii adrese în octeți (8), fiecare octet este scris ca număr zecimal, numerele sunt separate prin puncte. De exemplu, adresa

10100000010100010000010110000011
scris ca

10100000.01010001.00000101.10000011 = 160.81.5.131

Orez. 2 Conversia unei adrese din binar în zecimal

Adresa IP a gazdei constă din numărul rețelei IP, care ocupă partea de ordin înalt a adresei și numărul gazdei din această rețea, care ocupă partea de ordin 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ă) de protocoale de rețea la 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 niveluri:

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

Datele sunt transmise în pachete. Pachetele au un antet și o coadă care conțin informații de serviciu. Datele de la nivelurile superioare sunt inserate în pachete de la nivelurile inferioare.

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

Nivel fizic și link.
Stiva TCP/IP nu implică utilizarea unor protocoale specifice stratului de acces media sau medii fizice. Stratul de acces media este necesar să aibă o interfață cu modulul IP, care asigură transmiterea pachetelor IP. De asemenea, este necesar să vă asigurați că adresa IP a gazdei rețelei către care este trimis pachetul IP este convertită într-o adresă 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 Internet și protocolul IP.

Baza acestui nivel este protocolul IP.

IP (Internet Protocol) – protocol de internet.

Primul standard IPv4 a fost 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 de 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ă un pachet IP este adresat unui anumit computer, atunci datele din acesta sunt transferate pentru procesare către un modul de nivel superior (care este indicat în mod specific în antetul pachetului IP).
  • Dacă adresa de destinație a pachetului IP este străină, 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, determinând ruta - asta fac routerele.

De asemenea, poate fi necesar, la granița rețelelor cu caracteristici diferite, împărțirea pachetului IP în fragmente (fragmentare), apoi asamblarea acestuia într-un singur întreg pe computerul destinatar.

Dacă modulul IP nu poate livra un pachet 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 monitoriza corectitudinea datelor, de a confirma livrarea acestora, de a asigura ordinea corectă a pachetelor IP sau de a prestabili o conexiune între calculatoare. Această sarcină este atribuită stratului de transport.

Orez. 5 Structura datagramei IP. Cuvintele au 32 de biți.

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

lungime zag – 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 - Folosit pentru a recunoaște pachetele rezultate din 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 – Identificatorul de protocol de nivel superior indică cărui protocol de nivel superior îi aparține pachetul (de exemplu: TCP, UDP).

Dirijare

IP este un protocol rutabil și necesită 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, ruterele creează în mod 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 sistem autonom.
  • EGP (Exterior Gateway Protocols) – protocoale de rutare externe, distribuie informații de rutare între sisteme autonome.
  • BGP (Border Gateway Protocol) este un protocol de router de frontieră.
    Protocolul ICMP
  • ICMP (Internet Control Message Protocol) este o extensie a protocolului IP care permite trimiterea mesajelor de eroare sau de testare.
    Alte protocoale IP de serviciu
  • IGMP (Internet Group Management Protocol) – vă permite să organizați mesajele multicast folosind IP.
  • RSVP (Resource Reservation Protocol) – protocol de rezervare a resurselor.
    ARP (Address Resolution Protocol) este un protocol pentru conversia adreselor IP și a adreselor stratului de legătură.

Stratul 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 adreselor expeditorului și destinatarului la nivel de transport îl joacă numărul portului (sau mai simplu, portul).

Analizând antetul pachetului său primit de la stratul de internetwork, modulul de transport determină prin numărul portului destinatar către care dintre procesele de aplicație sunt trimise datele și transmite aceste date către procesul 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.

Există două protocoale principale care operează la nivelul transportului: UDP și TCP.

Protocolul de livrare a mesajelor de încredere TCP

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

Prima și ultima versiune a TCP este RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Caracteristici cheie:


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

Sumă de control – include pseudo antet, antet și date.

Indicator de urgență - indică ultimul octet de date urgente la care trebuie răspuns imediat.

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

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

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

RST – flag de întrerupere a conexiunii, folosit pentru a refuza conexiunea

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

FIN – steag de sfârșit de transmisie din partea expeditorului

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ă un pachet este pierdut, nu se trimite nicio cerere de retransmitere.

UDP este utilizat dacă nu este necesară livrarea garantată a pachetelor, de exemplu, pentru streaming video și audio, DNS (deoarece datele sunt mici). Dacă verificarea sumei de control eșuează sau dacă nu există niciun proces conectat la portul necesar, 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. Cuvintele au 32 de biți.

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

Real Time Protocol RTP

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

RTCP (Protocol de control în timp real) este un protocol de transport de feedback pentru aplicația RTP.

Internetul, care este o rețea de rețele și reunește un număr mare de rețele locale, regionale și corporative diferite, operează și se dezvoltă prin utilizarea 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 asigură transferul de informații între computerele 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ția dorită, pe plic sunt indicate adresa destinatarului (căruia i se adresează scrisoarea) și adresa expeditorului (de la care provine scrisoarea).

În mod similar, informațiile transmise prin rețea sunt „ambalate î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 limbajul computerului se numește 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.

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

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

Determinarea traseului prin care trebuie să treacă informațiile. „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 (capacitatea acestora) prin care se transmite informația de la nod la nod.

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

Să vedem cum este implementat accesul la informații în partea „Moscova” a internetului la unul dintre cele mai populare servere de căutare de pe internetul rus www.rambler.ru.

Determinarea rutei fluxului de informații

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

2. În fereastra MS-DOS Session, ca răspuns la promptul de sistem, introduceți comanda.

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

Urmărirea rutei transmiterea de informații arată că serverul www.rambler.ru este situat la o „distanță” de 7 tranziții de la noi, adică informațiile sunt transmise prin șase servere intermediare de internet (prin serverele furnizorilor de la Moscova 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.

Protocolul de transport. Acum să ne imaginăm că trebuie să trimitem un manuscris de mai multe pagini prin poștă, dar oficiul poștal nu acceptă colete sau pachete. Ideea este simplă: dacă manuscrisul nu se încadrează într-un plic poștal obișnuit, acesta trebuie dezasamblat în foi și trimis în mai multe plicuri. În acest caz, foile manuscrisului trebuie numerotate astfel încât destinatarul să știe în ce ordine vor fi combinate ulterior aceste foi.

O situație similară apare adesea pe Internet atunci când computerele schimbă fișiere mari. Dacă trimiteți un astfel de fișier în ansamblu, 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 care trimite este necesar să împărțiți fișierul mare în părți mici, să le numerotați și să le transportați în pachete IP separate la computerul de primire. Pe computerul destinatar, este necesar să asamblați fișierul sursă din părți individuale în ordinea corectă.

Transmission Control Protocol (TCP), adică un protocol de transport, asigură că fișierele sunt împărțite în pachete IP în timpul transmisiei și fișierele sunt asamblate în timpul recepției.

Determinarea timpului schimbului de pachete IP. Timpul pentru schimbul de pachete IP între computerul local și serverul de Internet poate fi determinat folosind utilitarul ping, care face parte din sistemul de operare Windows. Utilitarul trimite patru pachete IP la adresa specificată și arată timpul total de transmisie și recepție pentru fiecare pachet

73. Căutarea de informații pe Internet.

Există o părere în mare măsură corectă că astăzi Internetul „are totul” și singura problemă este cum să găsiți informațiile necesare. Arhitectura foarte deschisă a Rețelei înseamnă că îi lipsește orice centralizare și cele mai valoroase date pentru tine, pe care le-ai căutat fără succes în toată lumea, se pot dovedi a fi localizate pe un server din același oraș ca tine. Există două abordări complementare pentru colectarea de informații despre resursele de pe Internet: crearea de indiciȘi crearea directoarelor:

Cu prima metodă, puternică servere de căutare Ei „căută” continuu pe Internet, creând și actualizând baze de date care conțin informații despre ce documente de pe Internet conțin anumite cuvinte cheie. Astfel, în realitate căutarea are loc nu pe servere de internet, ceea ce ar fi imposibil din punct de vedere tehnic, ci pe baza de date a unui motor de căutare, iar absența informațiilor adecvate găsite la cerere nu înseamnă că nu se află pe Internet - puteți încercați să utilizați un alt instrument de căutare sau director de resurse. Bazele de date ale serverului de căutare nu sunt doar completate automat. Orice motor de căutare major are capacitatea de a indexa site-ul dvs. și de a-l adăuga la baza de date. Avantajul serverului de căutare este ușurința de a lucra cu acesta, dezavantajul este gradul scăzut de selecție a documentelor la cerere.

În al doilea caz, serverul este organizat ca catalogul bibliotecii, care conține o ierarhie de secțiuni și subsecțiuni care stochează link-uri către documente care corespund subiectului subsecțiunii. Catalogul este de obicei completat de către utilizatori înșiși după verificarea datelor pe care le-au introdus de către administrația serverului. Un catalog de resurse este întotdeauna mai bine organizat și structurat, dar este nevoie de timp pentru a găsi categoria potrivită, care, în plus, nu este întotdeauna ușor de definit. În plus, dimensiunea directorului este de obicei mai mică decât numărul de site-uri indexate de motorul de căutare.

Lucrul cu serverele de căutare. Când intrați în pagina principală a serverului de căutare, introduceți interogarea dvs. în câmpul de introducere sub forma unui set de cuvinte cheie și apăsați Enter sau butonul de pornire a căutării.

Interogările pot conține orice cuvânt și nu este necesar să vă faceți griji cu privire la cazuri și declinări - de exemplu, interogările „eseu de filosofie” și „eseu de filozofie” sunt destul de corecte.

Serverele moderne de căutare înțeleg destul de bine limbajul natural, cu toate acestea, multe dintre ele păstrează capabilități de căutare avansate sau speciale care vă permit să căutați cuvinte după mască, să combinați cuvintele de interogare cu operațiuni logice „ȘI”, „SAU”, etc.

După finalizarea căutării în baza de date, serverul afișează primul lot de 10 sau mai multe documente care conțin cuvintele cheie. Pe lângă link, există de obicei mai multe rânduri de text care descriu documentul sau doar începutul acestuia. Prin deschiderea linkurilor într-o fereastră nouă sau aceeași a browserului, puteți trece la documentele selectate, iar linia de linkuri din partea de jos a paginii vă permite să treceți la următoarea porțiune de documente. Această linie arată cam așa:

Diferite servere sortează documentele găsite în moduri diferite - după data creării, după traficul documentelor, după prezența tuturor sau a unei părți a cuvintelor de interogare în document ( relevanţă), unele servere vă permit să restrângeți căutarea selectând categoria documentului pe care îl căutați pe pagina principală - de exemplu, interogarea „bănci” din categoria „lumea afacerilor” este puțin probabil să găsească informații despre conserve.

Printre instrumentele populare de căutare în limba rusă putem numi serverele Yandex, AportȘi Hoinar, indexând zeci de mii de servere și zeci de milioane de documente. Popular de pe serverele străine Altavista, Excita, Hotbot, Lycos, WebCrawler, OpenText.

În cele din urmă, există multe pagini pe Internet pentru metacăutare, permițându-vă să accesați mai multe servere de căutare populare simultan cu aceeași interogare - uitați-vă, de exemplu, la pagini http://www.find.ru/ sau http://www.rinet.ru/buki/.

Lucrul cu cataloage de resurse. Când intrăm în pagina principală a catalogului, ne regăsim într-un meniu sau tabel extins pentru selectarea categoriilor, fiecare dintre acestea putând conține subcategorii imbricate. Nu există un standard aici, dar totuși structurile de directoare sunt foarte asemănătoare, peste tot puteți găsi secțiuni „afaceri” sau „lumea afacerilor”, „calculatoare”, „programare” sau „Internet”, „umor” sau „hobby-uri”, etc. . Deplasându-te prin categorii, poți ajunge la link-uri către anumite documente, care, la fel ca pe un server de căutare, sunt emise în porțiuni și sunt însoțite de informații succinte.

Astăzi există multe directoare mari cu zeci de mii de link-uri, din directoare interne pe care le putem numi http://www.list.ru/, http://www.weblist.ru/, http://www.stars.ru/, http://www.au.ru/, http://www.ru/, http://www.ulitka.ru/și din străinătate - Yahoo, Magellan.

Adesea catalogul are și un formular de căutare după cuvinte cheie printre documentele enumerate în el.

Reguli de căutare. Câteva sfaturi simple despre căutarea pe Internet.

definiți clar în prealabil subiectul căutării dvs., cuvintele cheie și timpul pe care sunteți dispus să îl petreceți acestei căutări; selectați un server de căutare - este util să stocați link-uri către cele mai bune dintre ele în Favorite;

nu vă fie teamă de limbajul natural, dar verificați ortografia corectă a cuvintelor, de exemplu, folosind Microsoft Word;

Folosiți majuscule numai în nume și titluri. Multe motoare de căutare vor procesa corect interogarea „abstract”, dar nu „Abstract”;

Protocolul TCP/IP (Protocolul de control al transmisiei/Protocolul Internet) este o stivă de protocoale de rețea folosită în mod obișnuit pentru Internet și alte rețele similare (de exemplu, acest protocol este folosit și în rețelele LAN). Numele TCP/IP provine de la cele mai importante două protocoale:

  • IP (Internet Protocol) - este responsabil pentru transmiterea unui pachet de date de la nod la nod. IP redirecționează fiecare pachet pe baza unei adrese de destinație de patru octeți (adresă IP).
  • TCP (Transmission Control Protocol) - este responsabil pentru verificarea livrării corecte a datelor de la client către server. Datele se pot pierde în rețeaua intermediară. TCP a adăugat capacitatea de a detecta erori sau date pierdute și, ca urmare, capacitatea de a solicita retransmiterea până când datele sunt recepționate corect și complet.

Principalele caracteristici ale TCP/IP:

  • Protocoale standardizate de nivel înalt utilizate pentru serviciile utilizatorilor binecunoscute.
  • Sunt utilizate standarde de protocol deschis, ceea ce face posibilă dezvoltarea și rafinarea standardelor indiferent de software și hardware;
  • Sistem unic de adresare;
  • Independență față de canalul de comunicare fizic utilizat;

Principiul de funcționare al stivei de protocol TCP/IP este același ca și în modelul OSI, datele din straturile superioare sunt încapsulate în pachete din straturile inferioare.

Dacă un pachet trece prin nivel de sus în jos, la fiecare nivel se adaugă pachetului informații de serviciu sub forma unui antet și, eventual, a unui trailer (informații plasate la sfârșitul mesajului). Acest proces se numește. Informațiile de serviciu sunt destinate unui obiect de același nivel pe un computer la distanță. Formatul și interpretarea acestuia sunt determinate de protocoalele acestui strat.

Dacă un pachet trece prin strat de jos în sus, acesta este împărțit în antet și date. Antetul pachetului este analizat, informațiile de serviciu sunt extrase și, în conformitate cu aceasta, datele sunt redirecționate către unul dintre obiectele de nivel superior. Nivelul superior, la rândul său, analizează aceste date și, de asemenea, le împarte în antet și date, apoi antetul este analizat și informațiile de serviciu și datele sunt alocate pentru nivelul superior. Procedura se repetă din nou până când datele utilizatorului, eliberate de toate informațiile de serviciu, ajung la nivelul aplicației.

Este posibil ca pachetul să nu ajungă niciodată la nivelul aplicației. În special, dacă un computer funcționează ca o stație intermediară pe calea dintre emițător și destinatar, atunci un obiect la nivelul corespunzător, la analiza informațiilor de serviciu, va determina că pachetul de la acest nivel nu îi este adresat, ca un rezultat din care obiectul va lua măsurile necesare pentru redirecționarea pachetului către destinație sau returnat expeditorului cu un mesaj de eroare. Dar într-un fel sau altul nu va promova datele la nivelul superior.

Un exemplu de încapsulare poate fi reprezentat după cum urmează:

Să ne uităm la fiecare funcție de nivel

Strat de aplicație

Aplicațiile care rulează stiva TCP/IP pot îndeplini, de asemenea, funcțiile stratului de prezentare și o parte a stratului de sesiune al modelului OSI.

Exemple comune de aplicații sunt programele:

  • Telnet
  • HTTP
  • Protocoale de e-mail (SMTP, POP3)

Pentru a trimite date către o altă aplicație, aplicația accesează unul sau altul modul al modulului de transport.

Stratul 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 este identificat la nivelul de transport printr-un număr numit număr de port.

Astfel, rolul adresei sursă și destinație la nivelul transportului este îndeplinit de numărul portului. Analizând antetul pachetului său primit de la stratul de internetwork, modulul de transport determină prin numărul portului destinatar către care dintre procesele de aplicație sunt trimise datele și transmite aceste date către procesul de aplicație corespunzător.

Numerele portului destinatarului și expeditorului sunt scrise în antet de către modulul de transport care trimite datele. Antetul stratului de transport conține și alte informații generale, iar formatul antetului depinde de protocolul de transport utilizat.

Instrumentele stratului de transport reprezintă o suprastructură funcțională peste stratul de rețea și rezolvă două probleme principale:

  • asigurarea livrării datelor între programe specifice care funcționează, în general, pe diferite noduri de rețea;
  • asigurând livrarea garantată a matricelor de date de dimensiuni arbitrare.

În prezent, pe Internet sunt utilizate două protocoale de transport - UDP, care asigură livrarea negarantată a datelor între programe, și TCP, care asigură livrarea garantată cu stabilirea unei conexiuni virtuale.

Nivel de rețea (internet).

Protocolul principal la acest nivel este protocolul IP, care furnizează blocuri de date (datagrame) de la o adresă IP la alta. O adresă IP este un identificator unic de 32 de biți al unui computer sau, mai precis, interfața sa de rețea. Datele pentru datagramă sunt transmise către modulul IP de către stratul de transport. Modulul IP adaugă la aceste date un antet care conține adresa IP a expeditorului și destinatarului și alte informații despre servicii.

Astfel, datagrama generată este transferată la stratul de acces media pentru a fi trimisă prin legătura de date.

Nu toate calculatoarele pot comunica direct între ele, de multe ori, pentru a transmite o datagramă la destinație, este necesar să o direcționeze printr-unul sau mai multe calculatoare intermediare de-a lungul unei anumite rute. Sarcina de a determina traseul pentru fiecare datagramă este rezolvată de protocolul IP.

Când un modul IP primește o datagramă de la un nivel inferior, verifică adresa IP de destinație dacă datagrama este adresată unui anumit computer, apoi datele de la acesta sunt transferate pentru procesare la un modul de nivel superior, dar dacă adresa de destinație; datagramei este străină, atunci modulul IP poate lua două decizii:

  • Distruge datagrama;
  • Trimiteți-l mai departe la destinație, după ce a determinat ruta, asta fac stațiile intermediare - routere.

De asemenea, poate fi necesar la marginea rețelelor, cu caracteristici diferite, să spargeți datagrama în fragmente și apoi să le asamblați într-un singur întreg pe computerul destinatarului. Aceasta este, de asemenea, sarcina protocolului IP.

Protocolul IP poate trimite și mesaje de notificare folosind protocolul ICMP, de exemplu, în cazul distrugerii unei datagrame. Nu mai există mijloace de monitorizare a corectitudinii datelor, de confirmare sau de livrare, nu există o conexiune preliminară în protocol, aceste sarcini sunt atribuite stratului de transport.

Nivel de acces media

Funcțiile acestui nivel sunt următoarele:

  • Maparea adreselor IP la adresele de rețea fizice. Această funcție este realizată de protocolul ARP;
  • Încapsulează datagramele IP în cadre pentru transmisie printr-o legătură fizică și extrage datagramele din cadre fără a necesita niciun control de transmisie fără erori, deoarece în stiva TCP/IP un astfel de control este atribuit stratului de transport sau aplicației în sine. Antetul cadrului indică punctul de acces la serviciul SAP, acest câmp conține codul de protocol;
  • Determinarea metodei de acces la mediul de transmisie, i.e. modul în care computerele își stabilesc dreptul de a transmite date;
  • Definirea reprezentării datelor în mediul fizic;
  • Redirecționarea și primirea cadrelor.

Sa luam in considerare încapsulare folosind exemplul de interceptare a unui pachet de protocol HTTP folosind sniffer-ul wireshark, care operează la nivelul de aplicație al protocolului TCP/IP:


În plus față de protocolul HTTP interceptat în sine, sniffer-ul descrie fiecare strat subiacent pe baza stivei TCP/IP. HTTP este încapsulat în TCP, TCP în IPv4, IPv4 în Ethernet II.