Fizinių adresų atvaizdavimas į IP-adresus: protokolai ARP ir RARP
IP-protokole mazgo adresas, tai yra kompiuterio arba maršrutizatoriaus porto adresas, yra priskiriamas laisvai tinklo administratoriaus ir nėra tiesiogiai susijęs su jo lokaliu adresu, kaip tai pavyzdžiui realizuota protokole IPX. Priėjimu, panaudotu IP-protokole, patogu naudotis dideliuose tinkluose ir dėl jo nepriklausomumo nuo lokalaus adreso formato, ir dėl jo stabilumo, nes priešingu atveju, pakeitus kompiuteryje tinklo plokštę, šį pakeitimą turėtų įvertinti visi Interneto adresatai (tuo atveju, kai tinklas yra prijungtas prie Interneto).
Lokalus adresas yra naudojamas IP-protokole tik lokaliame tinkle, kai vyksta duomenų persiuntimas tarp šio tinklo mašrutizatoriaus ir mazgo. Maršrutizatorius, gavęs skirtą vienam iš tinklų, betarpiškai pajungtų prie jo portų, mazgui paketą, paketo perdavimui turi suformuoti freimą, atitinkantį šio tinklo priimtos technologijos reikalavimus, ir jame nurodyti mazgo numerį, pavyzdžiui, jo MAC-adresą. Atėjusiame pakete šis adresas nėra nurodytas, todėl maršrutizatoriaus užduotis yra jo paieška pagal žinomą IP-adresą, kuris yra nurodytas pakete gavėjo adresu. Analogišką uždavinį turi ir galinis mazgas, kai jis nori išsiusti paketą į nutolusį tinklą per maršrutizatorių, pajungtą prie to pačio lokalaus tinklo, kaip ir duotasis mazgas.
Lokalaus adreso nustatymui pagal IP-adresą naudojamas adreso išsprendimo (nustatymo) protokolas (Address Resolution Protocol, ARP). ARP protokolas dirba skirtingai, priklausomai nuo to, koks kanalinio lygio protokolas dirba duotajame tinkle – lokalaus tinklo protokolas (Ethernet, Token Ring, FDDI) su plataus išsiuntimo galimybę visiems tinklo mazgams vienu metu, arba globalaus tinklo protokolas (X.25, frame relay), kuris, kaip taisyklė, nepalaiko plataus išsiuntimo. Taip pat egzistuoja protokolas, išsprendžiantis atvirkšią problemą – IP-adreso nustatymas pagal žinomą lokalų adresą. Jis vadinasi reversinis ARP – RARP (Reverse Address Resolution Protocol) ir yra naudojamas stočių, neturinčių diskų, startui, kurios pradžioje nežino savo IP-adreso, bet žino savo tinklo adapterio adresą.
Lokaliuose tinkluose ARP protokolas naudoja kanalinio lygio protokolo plačiai išsiunčiamus kadrus mazgo su užduotu IP-adresu radimui tinkle.
Mazgas, kuriam reikia atlikti IP-adreso atvaizdavimą į lokalų adresą, formuoja ARP-užklausą, įdeda ją į kanalinio lygio protokolo freimą, nurodydamas jame turimą IP-adresą, ir plačiai išsiunčią (broadcasting) tokią užklausą. Visi lokalaus tinklo mazgai gauna ARP užklausą ir lygina joje nurodytą IP-adresą su savo IP-adresu. Jei adresai sutampa, mazgas suformuoja ARP-atsakymą, kuriame nurodo savo IP-adresą ir savo lokalų adresą, ir dabar jau kryptingai jį išsiunčia, nes ARP užklausoje siuntėjas nurodė savo lokalų adresą. ARP-užklausos ir atsakymai naudoja tą patį paketo formatą. Kadangi skirtingo tipo tinkluose lokalūs adresai gali skirtis pagal ilgį, tai ARP paketo formatas priklauso nuo tinklo tipo. Žemiau pavaizduotas ARP paketo formatas, naudojamas tinkluose Ethernet.
ARP protokolo paketo formatas
Tinklo tipo lauke Ethernet tinklams yra nurodoma reikšmė 1. Protokolo tipo laukas leidžia naudotis ARP paketais ne tik IP protokolui, bet ir kitiems tinklo protokolams. IP protokolams šita reikšmė lygi 080016.
Ethernet protokole lokalaus adreso ilgis lygus 6 baitams, o IP-adreso ilgis yra 4 baitai. ARP užklausos operacijos lauke nurodoma reikšmė 1 ARP protokolui ir 2 – RARP protokolui.
ARP-užklausos mazgas-siuntėjas užpildo visus paketo laukus, išskyrus ieškomo lokalaus adreso lauką (RARP-užklausai priešingai: nėra užpildomas ieškomas IP-adresas). Šio lauko adresas yra užpildomas mazgo, kuris atpažino savo IP-adresą gautoje užklausoje.
Globaliuose tinkluose administratoriui dažniausiai tenka pačiam rankiniu būdu formuoti ARP-lenteles, kuriose jis užduoda, pavyzdžiui, IP-adreso ir X.25 tinklo mazgo atitikimą, kuris turi lokalaus adreso prasmę. Pastaruoju laiku yra pastebima ARP protokolo darbo automatizavimo ir globaliuose tinkluose tendencija. Šiam tikslui tarp visų pajungtų prie kokio nors globalaus tinklo maršrutizatorių yra paskiriamas specialus maršrutizatorius, kuris palaiko ARP-lentelę visiems kitiems šio tinklo maršrutizatoriams. Tokiu centralizuoto priėjimo atveju, visiems mazgams ir maršrutizatoriams rankiniu būdu reikia užduoti tik IP-adresą ir lokalų išskirto maršrutizatoriaus adresą. Po to kiekvienas mazgas ir maršrutizatorius registruoja savo adresus išskirtame maršrutizatoriuje. Esant IP-adreso ir lokalaus adreso atitikimo nustatymo būtinybei, mazgas kreipiasi į išskirtą maršrutizatorių su užklausa, ir automatiškai gauna atsakymą be administratoriaus dalyvavimo.
Andrej Kurusiov