CE ESTE PROTOCOLUL DE REZOLUTIE AL ADRESELOR (ADDRESS RESOLUTION PROTOCOL – ARP)

Pentru ca doua dispozitive de retea sa poata comunica este necesara cunoasterea atat a adresei MAC, cat si a celei logice. In cazul in care numai una dintre adrese este disponibila se apeleaza la un protocol dedicat care pe baza acesteia va determina cealalta adresa.

Stiva de protocoale TCP/IP conti doua protocoale de nivel retea pentru a servi acest scop: ARP (Address Resolution Protocol) si RARP (Reverse Address Resolution Protocol). ARP este protocolul ce va oferii adresa MAC a unui dispozitiv de retea, data fiind adresa sa IP.

ARP se bazeaza pe construirea si mentinerea unei tabele ARP. O tabela ARP are rolul de a oferii o corespondenta intre adresele IP si cele MAC. Acestea sunt construite dinamic si sunt stocate in memoria RAM. Desi exista mecanisme pentru adaugarea sau eliminarea unei intrari intr-o tabela ARP acestea sunt rareori folosite.

Fiecare computer sau dispozitiv de retea isi pastreaza propria sa tabela ARP.

Cum functioneaza ARP? Cum este construita tabela ARP?

Fie reteaua din figura.

Toate statiile sunt tocmai pornite, astfel tabelele ARP sunt vide. Presupunem ca statia A1 vrea sa comunice cu statia A2, cunoscand doar adresa IP a acesteia. La nivelul retea datele venite de la nivelurile superioare vor fi encapsulate si vor primi un antet ce va contine in campul adresa destinatie 193.23.1.7, iar ca adresa sursa 193.23.1.4. Inainte de trecerea la nivelul legatura e date adresa IP destinatie va fi cautata in tabela ARP si nefiind gasita se va crea un cadru special (ARP request) ce va avea in campul adresa destinatie din antet adresa de difuzare: FF.FF.FF.FF.FF.FF, iar in campul adresa sursa adresa MAC a statiei A1.

Daca vom considera ca reteaua din figura foloseste Ethernet drept protocol de nivel MAC datele vor fi difuzate si vor ajunge la A2 si la interfata ruterului conectata la segmentul A.

La nivelul legatura de date va fi analizat antetul cadrului. Campul destinatie fiind o adresa de difuzare cadrul va fi trimis la nivelul superior. Totodata pe baza continutului campului sursa de nivel 2 si 3 va fi creata prima intrare in tabela ARP a statiei A2. Ajuns la nivelul 3 cadrul este identificat drept o cerere ARP si se initiaza un raspuns transmis ca unicat atat la nivel retea cat si la nivel legatura de date. Dupa primirea raspunsului A1 va putea insera in tabela sa ARP adresa MAC a lui A2, iar comunicatia din acest moment va avea loc fara probleme.

Fiind pe un segment Ethernet toate cadrele schimbate de A1 si A2 vor ajunge la toate statiile de pe segment, astfel ca desi nu au emis nici un cadru atat A3 cat si ruterul vor avea cate o tabela ARP cu 2 intrari. Aceste intrari expira dupa o perioada de timp, fiind inlaturate din tabela ARP.

Cum are loc comunicatia intre statii aflate in retele diferite?

Am vazut ca protocolul de rezolutie a adresei se bazeaza pe difuzari la nivel legatura de date. Ruterele in schimb nu propaga pachetele de difuzare de nivel legatura de date in afara retelei din care provin.

Exista doua modalitati prin care statii aflate in retele diferite pot comunica: default gateway si proxy ARP.

Proxy ARP este o extensie a protocolului de rezolutie a adresei. Pornind de la faptul ca ruterul nu va transfera pachetele de difuzare Proxy ARP va determina ruterul sa raspunda la toate cererile ARP destinate unor adrese in afara retelei cu propria sa adresa MAC.

In cazul retelei de mai sus sa consideram ca statia A1 vrea sa comunice cu B1. Dupa ce nu va gasi adresa MAC a statiei B1 in tabela ARP va trimite o cerere ARP. Cadrul se va fi receptionat de catre toate dispozitivele de retea aflate pe acest segment. Statiile A2 si A3 deja au in tabela ARP informatii despre A1, astfel incat vor reseta timpul de viata al acestei intrari. Ruterul va reseta si el acest timp, iar apoi analizand adresa IP destinatie va concluziona ca destinatia nu se afla in acelasi segment. Daca acesta ar fi fost un cadru obisnuit ruterul ar fi luat o decizie pe baza tabelei sale de rutare. Fiind totusi o cerere ARP ruterul va genera un raspuns ARP ce va contine propria sa adresa MAC. Raspunsul ARP va fi incapsulat, iar antetul va avea atat la nivelul legatura de date cat si la nivelul retea adresa sursa adresa interfetei ruterului ce se afla conectata la retea. Ruterul va determina pe ce interfata trebuie sa trimita pachetele destinate pentru 24.8.17.2 si va trimite pe aceasta interfata o noua cerere ARP. B1 va raspunde la aceasta.

In final toate statiile din reteaua A isi vor adauga o noua intrare in tabela ARP ce va face corespondenta intre 193.23.1.1 si adresa MAC a interfetei routerului: 00.48.0C.18.7A.A2. In plus statia A1 va mai adauga o intrare ce va mapa 24.8.17.2 cu adresa 00.48.0C.18.7A.A2. Statiile din reteaua B vor insera doua intrari in tabelele ARP propri: 24.8.17.1 – 00.48.0C.18.7A.A3 si 24.8.17.1 – 00.01.9A.11.71.11.

Din acest moment statia A1 va incapsula transmisia destinata statiei B1 folosind adresa IP a lui B1 si adresa MAC a ruterului. Ruterul va primi cadrele va inlocui adresa sursa din antetul de nivel legatura de date cu adresa sa: 00.48.0C.18.7A.A3 si le va trimite mai departe catre B1.

Pentru o statie data default gatewayeste adresa IP a interfetei de pe ruter ce conecteaza reteaua din care face parte respectiva statie. Odata precizat un default gateway nivelul retea al statiei va mai capata o noua atributie, trebuind sa determine daca destinatia este sau nu in accesi retea. Daca nu este atunci nu va mai fi initiata ci se va folosi adresa IP destinatiei finale si adresa MAC a default gateway. Astfel in tabela ARP va fi cautata adresa interfetei ruterului.

Încapsularea pachetului ARP într-un cadru Ethernet sau 802.2 SNAP este exemplificată în figură:

Structura unei cereri ARP este:

În cele ce urmează vom da o scurtă descriere a câmpurilor:

  • Tipul hardware-ului: tipul de hardware al interfeţei;
  • Tipul protocolului: tipul de protocol pe care emiţătorul îl foloseşte;
  • Lungimea adresei MAC: lungimea fiecărei adrese hardware din cadru, dată în octeţi;
  • Lungimea adresei de protocol: lungimea adresei de protocol din datagramă dată în octeţi;
  • Cod operaţie (Op Code) indică: tipul de datagramă, cerere ARP sau răspuns la aceasta. Dacă datagrama este cerere valoarea acestui câmp este 1, iar dacă este răspuns valoarea este 0;
  • Adresa MAC sursă: adresa hardware a dispozitivului transmiţător;
  • Adresa IP sursă: adresa IP a dispozitivului transmiţător;
  • Adresa IP a destinaţiei: adresa IP a dispozitivului destinaţie;
  • Adresa MAC a destinaţiei: adresa hardware a dispozitivului destinaţie.

Câmpul “Tipul hardware-ului”

Acest câmp identifică tipul interfeţei hardware folosit:

Tip Descriere

1 = Ethernet

2 = Ethernet experimental

3 = X.25

4 = Proteon ProNET (Token Ring)

5 = Chaos

6 = IEEE 802.x

7 = ARCnet

16 = ATM

Câmpul “Tipul de protocol”

Tipul de protocol identifică, aşa cum îi spune şi numele, tipul de protocol de nivel reţea pe care dispozitivul transmiţător îl foloseşte. Aceasta astfel indică, în mod implicit, şi tipul de adresă de nivel reţea folosit. Cu TCP/IP, aceste protocoale sunt de obicei EtherType. Câteva exemple de valori ale acestui câmp:

În zecimal Descriere

2048 = Internet Protocol (IP)

2049 = X.75

2053 = X.25 Level 3

2054 = ARP

2055 = XNS

32821 = Reverse ARP

32824 = DEC LANBridge

32823 = Apple Talk

Dacă protocolul nu este EtherType, vor fi folosite alte valori.

 

  1. Protocolul de rezoluţie inversă a adresei – RARP

RARP – Reverse ARP

ARP rezolvă problema aflării adresei MAC corespunzătoare unei adrese IP date. Uneori însă se cere rezolvarea problemei inverse: dându-se o adresă MAC, trebuie găsită adresa IP corespunzătoare.

Aceasta problemă apare în particular când se porneşte o staţie de lucru fără disc. O astfel de maşină încarcă nucleul sistemului de operare de la un server de fişiere la distanţă. Soluţia este folosirea protocolului RARP. Acest protocol permite unei staţii de lucru să difuzeze adresa sa MAC şi să solicite o adresă IP.

Serverul RARP este responsabil de tratarea acestei cereri şi furnizarea unui răspuns. El deţine de obicei tabele de corespondenţă adresă MAC – adresă IP, caută adresa IP ce corespunde adresei MAC a solicitantului şi transmite un răspuns acestuia.

Un dezavantaj al protocolului RARP constă în faptul că pentru a ajunge la server-ul RARP, staţia sursă foloseşte o adresă MAC de difuzare. Asemenea difuzări nu sunt propagate prin router-e şi deci este necesar să existe un server RARP în fiecare LAN.

Pentru a rezolva această problemă a fost inventat un protocol alternativ, protocolul BOOTP.

Spre deosebire de RARP, BOOTP este un protocol de nivel aplicaţie ce foloseşte pachete UDP pentru transfer-ul mesajelor. Mesajele UDP fiind bazate pe IP, sunt propagate peste router-e. În plus BOOTP este capabil să furnizeze unei staţii fără disc şi informaţii suplimentare ca: adresa IP a serverului de fişiere ce deţine imaginea nucleului SO, adresa IP a router-ului implicit şi masca de subreţea folosită.

Lasa un comentariu

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.