PROTOCOLUL ARP – Address Resolution Protocol
Pentru ca două dispozitive dintr-o reţea locală să poată comunica, dispozitivul care
transmite trebuie să cunoască atât adresa MAC, cât şi adresa IP a dispozitivului destinaţie.
Atunci când se doreşte comunicarea cu un dispozitiv a cărui adresă IP este cunoscută,
trebuie aflată adresa sa MAC. Suita de protocoale TCP/IP dispune de un protocol, numit
ARP, care poate obţine în mod automat adresa MAC a unei staţii cu un IP cunoscut.
Există o multitudine de moduri în care nodurile din reţea pot determina adresa
MAC pe care o vor folosi ca adresă destinaţie în încapsularea de nivel 2. Fiecare staţie va
ţine o tabelă cu toate adresele IP şi MAC ale calculatoarelor din aceeaşi reţea locală.
Aceste tabele se numesc tabele ARP şi cu ajutorul lor se mapează adrese IP la adrese
MAC. Tabelele ARP sunt reţinute în RAM, ceea ce înseamnă că trebuie refăcute la fiecare
rebootare a staţiei.
Administratorul de reţea poate modifica manual intrările din această tabela prin
mijloace puse la dispoziţie de către sistemul de operare, însă aceste modificari sunt
complet excepţionale şi în marea majoritate a cazurilor, tabelele sunt gestionate exclusiv
de către dispozitivul care le menţine.
Cereri ARP
Când un calculator sursă află adresa IP a destinatiei cu care doreşte să comunice, va
căuta adresa de MAC a acestuia în tabela ARP proprie. Dacă nu poate găsi adresa în
această tabelă, staţia va iniţia o procedură numită cerere ARP. Un pachet special de cerere
ARP este trimis prin broadcast de adresa MAC (ff-ff-ff-ff-ff-ff ) în reţeaua locală pentru a
fi recepţionat de toate dispozitivele. Datorită faptului că pachetul a fost trimis pe adresa de
broadcast, toate staţiile din reţeaua locală îl vor primi şi îl vor trimite nivelului reţea
pentru a fi analizat. Dacă adresa IP a dispozitivului corespunde adresei destinaţie din
pachet, dispozitivul va răspunde. În caz contrar, pachetul este ignorat.
Sursa nu ştie adresa MAC a destinaţiei, dar îi ştie adresa IP. Cadrul cu cererea ARP
este trimis prin broadcast MAC tuturor staţiilor din reţeaua locală.
Header MACDestinatieFf-ff-ff-ff-ff-ffSursa00-00-BC-12-34-56
Realizarea broadcastului de nivel 2 înseamnă că se setează adresa destinaţie din
cadrul headerului adăugat de către nivelul legatură de date în procesul de încapsulare la
valoarea ff-ff-ff-ff-ff-ff. Ori de câte ori o staţie primeşte un cadru în care adresa
destinaţie are această valoare, acest cadru este tratat ca şi cum ar fi fost destinat staţiei
care l-a primit şi este deci trimis mai departe nivelului reţea. Acest mecanism ne asigură
că orice pachet de broadcast de nivel 2 va fi recepţionat şi transmis nivelului reţea de către
toate staţiile la care ajunge.
Cadrul ARP
Figura 1 Headerul cadrului protocolului ARP
Pachetele de cerere ARP au un format special, a cărui structură este prezentată în
figura de mai sus. Un astfel de pachet are o dimensiune a header-ului de 28 de octeţi şi
conţine, în afară de informaţiile adăugate la încapsulare de nivelurile legătură de date şi
reţea, doar informatiile necesare recunoaşterii faptului că este o cerere ARP.
Toate dispozitivele din segmentul local de reţea vor investiga cadrul şi vor verifica
dacă adresa proprie de IP este aceeaşi cu adresa IP destinaţie.
Figura 2 Schema simplificată
Headerul cadruluiHeaderul MAC DestinaţieFf-ff-ff-ff-ff-ffSursa00-00-BC-12-34-56
Headerul IPDestinaţie192.168.1.100Sursa192.168.1.205
Mesaj de cerere ARPCare este adresa ta MAC?
IP HeaderDestinatie192.168.1.100Sursa192.168.1.205
EU ?
Pentru că pachetul este trimis având ca adresă destinaţie adresa de broadcast pe
adrese MAC, toate staţiile din reţeaua locală îl primesc şi îl analizează. Nivelul reţea
verifică adresa IP destinaţie înscrisă în headerul IP şi o compară cu adresa proprie.
– Dacă nu – ignoră cadrul;
– Dacă da:
– Citeşte restul pachetului
– Trimite raspuns ARP
– Răspunsul ARP:
– Ofera adresa MAC a dispozitivului
Figura 3 Verificarea adresei IP
Dacă o staţie determină că adresa IP destinaţie din cadrul pachetului de cerere ARP
este egală cu adresa proprie IP, aceasta va pregăti un pachet de răpuns ARP. Acest pachet
va avea ca adresă IP destinaţie adresa IP a staţiei care a iniţiat cererea ARP. Adresa sursă
încapsulată la nivelul reţea va fi egală cu adresa IP pentru care se dorea găsirea adresei
MAC corespunzătoare, deci cea a staţiei care trimite pachetul de răspuns ARP. Cadrul
care încapsulează acest pachet va fi adresat către adresa MAC a calculatorului care a făcut
cererea ARP şi, în cadrul câmpului pentru adresa MAC, sursa va completa practic
răspunsul la cererea ARP făcută, adică adresa MAC a staţiei care răspunde.
Sursa: cerere ARPIP-ul propriu se potriveşte!!!
Adresa mea de MAC
nunu
Durata de viaţă a cache-ului ARP
Pentru a gasi adresa MAC mapată unei adrese IP către care se doreşte transmiterea
unui pachet, un dispozitiv din reţea îşi va verifica mai întâi tabela ARP proprie şi numai
dacă nu găseşte adresa dorită în această tabelă va face o cerere ARP. Această procedură
introduce necesitatea ca tabelele de ARP să conţină informaţii actuale, altfel pachetele vor
fi trimise la adrese greşite. Pe baza tabelei ARP se trimite un pachet către o placă de reţea
destinaţie sau alta, deci corespondeţa adresă IP – adresă MAC reţinută în această tabelă
trebuie să fie corectă la orice moment dat.
Însă adresele IP nu sunt fixe şi sunt asignate diverselor dispozitive de către
administratorul de reţea, ceea ce înseamnă că ele se pot schimba între două momente de
timp. Dacă tabelele ARP nu ar fi din când în când înnoite, s-ar putea ajunge la o situaţie
când o mapare între o adresă IP şi una MAC reţinută într-un cache ARP să nu mai
corespundă realităţii, făcând astfel comunicarea imposibilă. Pentru a evita această
problemă, dispozitivele de reţea stabilesc un timp de viaţa pentru o intrare în cache-ul
ARP. După expirarea acestui interval de timp, intrarea în tabelă va fi invalidată. Procesul
de înlăturare a intrărilor vechi din tabelele ARP poartă numele de îmbătrânire.
Pentru o flexibilitate sporită şi pentru a reduce overhead-ul cauzat de cererile ARP,
s-a adăugat un mecanism prin care, ori de câte ori o staţie primeşte un pachet cu informaţii
noi despre un dispozitiv din reţea, adaugă aceste informaţii la tabela ARP proprie.
PROTOCOLUL RARP – Reverse Address Resolution Protocol
RARP (Reverse Adress Resolution Protocol) este un protocol simplu care are ca
efect alocarea automată a adreselor logice staţiilor din reţea. Staţiile îşi cunosc adresele
proprii MAC şi doresc să afle adresa lor de IP. Acestea trimit o cerere RARP în reţea.
Serverul RARP din reţea va răspunde cererii şi va asigna o adresă IP staţiei respective.
Acest protocol este folosit de către dispozitivele care au o dependenţă mare de reţea
(terminale fără disc) şi de obicei partea din protocol ce ţine de client este „arsă” în ROM-
ul dispozitivului.
Protocolul Reverse ARP este asemănător cu ARP, în sensul că are acelasi scop:
asocierea unei adrese MAC cu o adresă IP.
RARP este folosit mai ales de către staţiile fără discuri. Aceste staţii îşi cunosc la
momentul bootării numai adresa fizică MAC, fără a şti care este adresa IP proprie. Prin
RARP, un calculator îşi poate afla adresa IP pe baza adresei MAC a plăcii sale de reţea.
Staţiile fără disc nu dispun de suport magnetic pe care să-şi poată salva configuraţia
IP, pentru a-şi putea reface setările de reţea după ce au fost scoase de sub tensiune. În
consecinţă, aceste statii trebuie să-şi afle adresa IP la fiecare bootare.
Configuratia IP pentru fiecare staţie ce foloseste protocolul RARP pentru a-şi afla
această configuraţie este stocată pe serverul RARP. În timpul bootării, staţiile fără disc au
rutine speciale în EPROM care le permit să afle, printr-o cerere RARP, care le este adresa
IP.
Cadrul RARP vs. ARP
Figura 4 Headerul cadrului protocolului RARP
Atât protocolul ARP, cât şi RARP, folosesc acelaşi tip de pachet, numit pachet
cerere ARP, pentru a face o cerere. Ambele pachete de cerere sunt trimise prin broadcast
de adresa MAC. Deosebirile între cele două cereri constau în încapsularea de la nivel
reţea, mai exact cerererea ARP se transmite direcţionat (se cunoaste IP-ul destinatie şi se
doreşte aflarea adresei MAC), pe când cererea RARP se trimite prin broadcast IP pe
adresa 255.255.255.255, fără să se completeze câmpul adresă IP sursă, acesta se
iniţializează la valoarea 0.
Clientul RARP
Headerul cadrului
Headerul MAC DestinatieFf-ff-ff-ff-ff-ffSursa00-00-8C-12-34-56
IP HeaderDestinatie255.255.255.255Sursa0.0.0.0
Mesaj cerere ARPCare este adresa MEA de IP?
Atunci cand un client RARP primeşte un răspuns la o cerere făcută, va desfăşura
următoarea procedură:
– îşi setează adresa IP proprie la adresa destinaţie primită în răspunsul RARP;
– îşi copiază această adresă proprie în RAM şi o foloseşte din acest moment înainte
ca adresă proprie în toate încapsulările şi verificările de nivel 3 realizate;
– începe să funcţioneze ca o staţie normală în reţeaua locală cu noile setări
efectuate;.
– la orice scoatere de sub tensiune, aceste setări sunt pierdute şi trebuie refăcute la
rebootare prin aceeaşi procedură.
Comparatie ARP & RARP
Similarităţi:
– ambele se ocupă cu maparea adreselor IP la adrese MAC
– ambele folosesc acelaşi tip de pachet;
– ambele folosesc adrese de broadcast pentru a-şi îndeplini scopul.
Similarităţile principale între ARP şi RARP sunt legate de faptul că folosesc acelaşi
format de pachet pentru a trimite cereri şi de faptul că se ocupă de aceeaşi problemă şi
anume maparea adreselor IP la adrese MAC.
Ambele protocoale folosesc un broadcast pentru a trimite cererile făcute.
Diferenţe:
ARP - obţine adresa MAC a altor staţii folosind o adresă IP;
RARP – obţine adresa proprie IP folosind adresa proprie MAC;
Pachetele ARP folosesc broadcast pe adrese MAC (ff-ff-ff-ff-ff-ff);
RARP foloseşte adresa IP de broadcast (255.255.255.255), precum şi adresa MAC de
broadcast (ff-ff-ff-ff-ff-ff);
Tabelele ARP sunt menţinute local;
Tabelele RARP sunt menţinute de către serverul RARP;
Răspunsul ARP este folosit de staţia locală pentru a-şi înnoi cache-ul ARP;
Răspunsul RARP este folosit de o staţie pentru a-şi configura parametrii locali IP.
Deosebirile între ARP şi RARP sunt legate în primul rând de scopul utilizării celor
două: în timp ce ARP este folosit pentru aflarea adresei MAC a unei alte staţii cu o adresă
IP cunoscută, pe când RARP este utilizat pentru găsirea adresei IP proprii în cazul
cunoaşterii adresei MAC. Pe când pentru o cerere ARP, broadcastul este exclusiv pe
adrese MAC, pachetul RARP este trimis atât pe o adresă de broadcast de nivel 2, cât şi
printr-un broadcast general IP.
În timp ce tabelele ARP sunt menţinute local de către fiecare nod din retea, tabelele
RARP sunt ţinute centralizat pe serverul RARP.
O ultimă diferenţă constă în modul de folosire a pachetului răspuns. Cu ajutorul
pachetului de răspuns ARP se înnoieşte cache-ul ARP local, pe cand pachetul de răspuns
RARP este utilizat de către o staţie pentru a-şi configura proprii parametri de reţea IP.
Nivelul reţea – determinarea căii de urmat
Un router este un dispozitiv care asigură comunicarea între două sau mai multe
reţele distincte. Routerul foloseşte schema de adresă pentru nivel 3
(adrese logice – adrese IP, IPX) pentru a dirija pachetele între diversele
reţele, căutând calea cea mai bună pentru aceste pachete. Când un router
forward-ează un pachet, îi înlocuieşte informaţia de nivel 2 cu propria adresă, deci
adresarea de nivel 2 rămâne foarte importantă.
Comunicarea într-o reţea (bazată pe comutarea de pachete!) este echivalentă cu
alegerea unui drum într-un graf. Există nenumaraţi algoritmi care tratează acest gen de
probleme, dar pentru cazul mai special al unei reţele (un graf dinamic, în care anumite
legături între noduri pot fi inaccesibile pentru o perioadă de timp (mai mică, mai mare
sau chiar definitiv) se potrivesc foarte bine doi algorimi. Aceştia stau la baza
implementării celor două tipuri de protocoale de rutare folosite: link-state, respectiv
distance-vector.
Chiar dacă vom trata în continuare aspecte legate de adresarea la nivelul 3, vom
vedea că practic rămâne foarte importantă şi adresarea la nivelul 2. Una din problemele
ce apar este faptul că trebuie făcută o trecere de la adresarea de nivel 2 la adresarea de
nivel 3 şi invers. Aceste probleme sunt rezolvate şi ele cu ajutorul unor protocoale
specifice (ARP, RARP).
Figura 5 – Fiecare interfaţă a unui router are propria adresă IP şi propria adresă MAC
Una din necesităţile pe care trebuie să le aibă un dispozitiv ce face parte dintr-o
reţea este să aibă un identificator care să fie unic. Dacă această condiţie nu este
îndeplinită, adică există două dispozitive într-o reţea cu acelaşi identificator, comunicarea
între cele două dispozitive, precum şi între oricare dintre ele şi oricare alt dispozitiv nu va
mai putea fi făcută corect, pentru că există ambiguităţi. Cine ar trebui să primească
informaţia?
Am spus că un router asigură interconectarea mai multor reţele. Aceasta implică că
routerul face parte din toate reţelele pe care le interconectează. Cum fiecare dispozitiv
dintr-o reţea trebuie să aibă un identificator unic în reţeaua respectivă, înseamna că
routerul va avea identificatori diferiţi pentru fiecare din reţelele din care face parte.
Practic fiecare interfaţă a routerului („partea” din router care aparţine unei reţele,
atât fizică cât şi logică – ethernet, seriale) va avea o adresă proprie atât la nivel 3 (IP) cât
şi la nivel 2 (MAC).
Figura 6 – Interfeţele unui router trebuie să aibă adrese din reţele diferite
De asemenea, adresele logice ale interfeţelor trebuie să aparţină unor reţele diferite,
întrucât interfeţele sunt părţi ale routerului ce aparţin unor reţele diferite.
Cum se asignează adresele IP ?
Ajungând la problematica adresării de nivel 3, trebuie să reamintim că aceste adrese
sunt adrese logice. Spre deosebire de nivelul 2, unde adresele MAC erau înscrise în ROM-
ul plăcii de reţea de către producătorul acesteia, la nivelul 3 adresele trebuiesc asignate de
către administratorul de reţea.
Există două metode de alocare a acestor adrese: alocare statică şi alocare
dinamică. Numele lor sunt destul de sugestive.
Prima dintre ele constă în atribuirea de adrese pentru fiecare dispozitiv din reţea,
explicit, de către administratorul de reţea.
Avantajul acestei metode de alocare a adreselor este simplitatea, securitatea şi
overhead-ul practic inexistent. Este o soluţie bună pentru reţele de dimensiuni mici sau
pentru reţele mai mari, dar care nu îşi schimbă foarte mult configuraţia.
Dezatantajele se materializează prin multă muncă de administrare şi o ţinere strictă
a evidenţei (tot de către administratorul de reţea).
Alocarea dinamică de adrese este de preferat în cazul reţelelor de dimensiune mare
sau a reţelelor care îşi schimbă configuraţia frecvent. În acest caz, administratorul de reţea
instruieşte un server care va distribui adresele logice staţiilor din retea, în coloborare cu
acestea.
Cele mai cunoscute protocoale pentru asignarea de adrese IP în mod dinamic sunt
următoarele: BOOTP, RARP, DHCP.
Căutarea adreselor
Protocolul Ethernet identificã gazdele printr-un numãr pe 6
octeţi, care nu are nimic în comun cu o adresã IP. Din cauza aceasta
este nevoie de un mecanism pentru a face legătura între adrese IP şi
adrese Ethernet. Acesta este aşa numitul Adress Resolution
Protocol (ARP) - protocol de căutare al adreselor. De fapt, ARP nu este legat de Ethernet
neapărat, ci este folosit şi la alte tipuri de reţele, ca de exemplu la reţelele radio. Ideea care
stă la baza ARP este ceea ce fac cei mai mulţi oameni când vor să-l găseascã pe dl X între
150 de oameni: merg şi îl strigă pe nume, fiind sigur că acesta va răspunde dacă este
acolo.
Când ARP vrea să găsească adresa Ethernet corespunzãtoare unei adrese IP,
foloseşte o proprietate a protocolului Ethernet numită „rãspândire” (broadcasting), când o
datagramă este adresată simultan tuturor staţiilor din reţea. Diagrama aceasta conţine o
întrebare pentru a afla adresa IP. Fiecare gazdã din reţea compară adresa IP din datagrama
primită cu propria adresã IP şi dacă se potrivesc, îi întoarce un răspuns ARP gazdei care a
făcut cererea. Această gazdă poate extrage acum, din rãspuns, adresa Ethernet.
Desigur ne putem întreba cum poate şti o gazdă care din milioanele de maşini cu
Ethernet din lume este gazda căutată şi cum poate şti că aceasta posedã interfaţă Ethernet.
Aceste întrebări îşi află răspunsul în ceea ce se numeşte rutare (routing), care se ocupã cu
găsirea locaţiei fizice a unei gazde într-o reţea. Acesta va fi subiectul următoarelor
secţiuni.
Odatã ce o gazdã a descoperit o adresã Ethernet, o va ţine minte astfel încât să nu
mai trebuiască să întrebe din nou data viitoare când va vrea să trimită o datagramă gazdei
cu pricina. Însă nu este bine să păstreze acestă informaţie totdeauna; de exemplu, gazda de
la distanţă îşi poate schimba placa de reţea din cauza problemelor tehnice, deci intrarea
ARP devine invalidă. Pentru a forţa altă întrebare, intrările în memoria ARP trebuiesc
şterse din când în când.
Câteodatã este necesarã găsirea adresei IP asociate unei adrese Ethernet date.
Aceasta se întâmplă când o maşină fără disc vrea să booteze de pe un server din reţea,
situaţie des întâlnită în reţelele locale. Un client fãrã disc nu are nici o informaţie despre el
însuşi - în afară de adresa Ethernet! Aşa că va trimite un mesaj răspândit (broadcast)
conţinând o rugăminte către serverul de boot pentru a-i spune adresa sa IP. Pentru aceasta
există alt protocol numit Reverse Adress Resolution Protocol (RARP). Împreunã cu
protocolul BOOTP, el defineşte metoda prin care clienţii fără disk pot boota de pe un
server din reţea.
La ce nivel se verifică o adresă MAC ?
Problema adresării prin adrese fizice (adrese MAC) apare la nivelul legatură de
date, mai exact atunci când nivelurile superioare (transport/TCP şi reţea/IP) trimit
nivelului legatură de date un pachet cu o adresă IP destinaţie şi o adresă IP sursă
cunoscute. Sarcina nivelului legatură de date (sau acces la reţea în modelul TCP/IP) este
acela de a completa corect adresele MAC pentru sursă şi destinaţie astfel încât
comunicarea să aiba loc în mod corect. Pentru a se putea transmite date între două staţii,
sunt neaparat necesare atât adresa MAC, cât şi adresa IP.
Top Related