Հասցեի լուծման հաղորդակարգ (ARP)

Հասցեի լուծման հաղորդակարգ (), Գծային` 2-րդ շերտի (Data Link Layer) հաղորդակարգ, որն օգտագործվում է MAC հասցեները IP հասցեներին քարտեզագրելու համար։ Ցանցի բոլոր հոսթերը տեղակայված են իրենց IP հասցեով, սակայն Ցանցային ինտերֆեյսի կարգավորիչները (Network Interface Controller, NIC), որոնք թույլ են տալիս համակարգչին փոխազդել այլ ցանցային սարքերի հետ, չունեն IP հասցեներ, այլ ունեն MAC հասցեներ։ ARP-ն այն հաղորդակարգն է, որն օգտագործվում է IP հասցեն МАC հասցեին միացնելու համար։ Երբ հոսթն ուզում է փաթեթ ուղարկել այլ հոսթի, նախ հեռարձակում (Broadcast ) է ARP փաթեթ։ Այս փաթեթի նպատակն է՝ պարզել IP հասցեին համապատասխանող MAC հասցեն։ IP հասցեն օգտագործող Հոսթը պատասխանում է ARP փաթեթով, որը պարունակում է MAC հասցեն։ IPv6 համացանցային հաղորդակարգով ցանցերում ARP-ի ֆունկցիոնալությունը տրամադրվում է Հարևան սարքերի հայտնաբերման հաղորդակարգի (Neighbor Discovery Protocol (NDP)) կողմից, որը TCP/IP հաղորդակարգի փաթեթից է և օգտագործվում է IPv6 հաղորդակարգի հետ համատեղ։ ARP հաղորդակարգի գործառույթը կարևոր է Համացանցային հաղորդակարգերի փաթեթում, որը սահմանվել է 1982 թվականին՝ հանդիսանալով Համացանցային ստանդարտ (Internet Standard STD 37):

Նկարագրություն 
Դիտարկենք ARP-ի գործունեության էությունը պարզ օրինակով։ Համակարգիչ Ա (IP հասցե 10.0.0.1) և համակարգիչ Բ (IP հասցե 10.22.22.2) միացված են Ethernet ցանցով։ Համակարգիչ Ա-ն ցանկանում է տվյալների փաթեթը փոխանցել համակարգիչ B-ին, նրան հայտնի է համակարգչի Բ-ի IP հասցեն։ Այնուամենայնիվ, Ethernet ցանցը, որին նրանք միացված են, չի աշխատում IP հասցեների հետ։ Հետևաբար, համակարգիչը Ա Ethernet-ի միջոցով փոխանցում կատարելու համար անհրաժեշտ է պարզել համակարգչի հասցեն Ա Ethernet ցանցում (MAC հասցեն Ethernet-ի առումով)։ Այս խնդրի համար օգտագործվում է ARP արձանագրությունը։ Այս արձանագրության միջոցով Ա համակարգիչը հեռարձակման հարցում է ուղարկում, որն ուղղված է իր հետ նույն հեռարձակման տիրույթում գտնվող բոլոր համակարգիչներին։ Հարցման էությունը՝ 10.22.22.2 IP հասցեով համակարգիչ, ձեր MAC հասցեն տվեք MAC հասցեով համակարգչին (օրինակ՝ a0:ea:d1:11:f1:01)»: Ethernet ցանցը այս հարցումը փոխանցում է նույն Ethernet հատվածի բոլոր սարքերին, ներառյալ համակարգիչ Բ-ն։ Համակարգիչ Բ-ն պատասխանում է համակարգչին Ա-յի հարցմանը և ասում է իր MAC հասցեն (օր. 00: ea: d1: 11: f1: 11): Այժմ ստանալով Բ համակարգչի MAC հասցեն, Ա համակարգիչը կարող է ցանկացած տվյալներ փոխանցել դրան Ethernet ցանցի միջոցով։

Գոյություն ունեն ARP հաղորդագրությունների հետևյալ տեսակները՝ ARP հարցում և ARP պատասխան։ Ուղարկող համակարգը օգտագործում է ARP հարցում՝ պահանջելու ստացող համակարգի ապարատային հասցեն, որը գալիս է ARP պատասխանի ներսից։ 

Նախքան ցանցի շերտի փաթեթը Ethernet հատվածի միջոցով փոխանցելը, ցանցի կույտը ստուգում է ARP քեշը՝ պարզելու, թե արդյոք ստացողի հանգույցի վերաբերյալ անհրաժեշտ տեղեկատվությունն արդեն գրանցված է իր աղյուսակում։ Եթե ​​ARP քեշում նման գրառում չկա, ապա ARP հեռարձակման հարցում է արվում։ Ցանցում սարքերի այս հարցումն ունի հետևյալ նշանակությունը. «Որևէ մեկը գիտի՞ այս կամ այն ​​IP հասցե ունեցող սարքի ֆիզիկական հասցեն», «Այո, դա իմ IP հասցեն է, և իմ ապարատային հասցեն այսինչն է»։ Երբ սերվերը ստանում է այս հարցման փաթեթը, այն պետք է պատասխանի։ Դրանից հետո հարցումը ուղարկողը կպահպանի ստացողի ապարատային հասցեն իր ARP քեշում և կկարողանա հասցեագրված կերպով փոխանցել տեղեկատվությունը ստացողին։

ARP քեշի գրառումները կարող են լինել ստատիկ կամ դինամիկ։ Վերը բերված օրինակը նկարագրում է դինամիկ քեշի մուտքագրումը։ Դուք կարող եք նաև ստատիկ գրառումներ ստեղծել աղյուսակում։ Շատ օպերացիոն համակարգերում դա կարելի է անել՝ օգտագործելով հրամանը՝
 arp -s <IP-հասցե> <MAC-հասցե>

Windows Server 2003-ում դինամիկ կերպով ստեղծված ARP աղյուսակի գրառումները մնում են քեշում 2 րոպե։ Եթե այս երկու րոպեի ընթացքում տեղի է ունեցել տվյալների կրկնակի փոխանցում այս հասցեով, ապա քեշում գրելու պահպանման ժամանակը երկարաձգվում է ևս 2 րոպեով։ Այս ընթացակարգը կարող է կրկնվել մի քանի անգամ, բայց առավելագույնը քեշի ձայնագրությունը կտևի մինչև 10 րոպե։ Դրանից հետո գրառումը կջնջվի քեշից, և անհրաժեշտության դեպքում կուղարկվի ARP-ի կրկնակի հարցում։ 

Ավելի նոր օպերացիոն համակարգերում ARP աղյուսակի գրառումների պահպանման ժամանակը և պահպանման եղանակը ընտրվում են ծրագրավորմամբ և ցանկության դեպքում կարող են փոփոխվել։

ARP հաղորդակարգի բնութագիր 
ARP հաղորդակցման հաղորդակարգ է, որն օգտագործվում է ցանցի հասցեի հետ կապված ֆիզիկական հասցեն հայտնաբերելու համար։ Որպես կանոն՝ ARP հաղորդակարգն իրականացնում է Ցանցային շերտը (Network Layer) Գծային շերտին (Data Link Layer) քարտեզագրող գործընթացը, որի նպատակը Համացանցային հաղորդակարգի(IP) հասցեի MAC հասցեն հայտանաբերելն է։ Փաթեթը նպատակակետ ուղարկելու համար միայն IP հասցեն բավարար չէ։ Անհրաժեշտ է նաև նպատակակետ սարքի ֆիզիկական հասցեն։ ARP-ն օգտագործվում է նպատակակետ սարքի ֆիզիկական հասցեն (MAC Address) ստանալու համար։ Եթե IP փաթեթն ուղարկելիս նպատակակետի MAC հասցեն հայտնի չէ, ապա ուղարկողը հեռարձակում (Broadcast) է ARP հայտնաբերման փաթեթը՝ խնդրելով նախատեսված նպատակակետի MAC հասցեն։ Ցանցի ներսում գտնվող յուրաքանչյուր հոսթ ստանում է այս հաղորդագրությունը։ ARP փաթեթը հեռացվում է բոլորի կողմից՝ բացի նախատեսված ստացող հոսթի, որի հետ IP-ն կապված է։ Ապա ստացողն ուղարկում է Միահեռարձակման (Unicast) փաթեթ իր MAC հասցեով (ARP պատասխան) ARP հայտնաբերման փաթեթ ուղարկողին։ Սկզբնական ուղարկողը, ստանալով ARP պատասխանը, թարմացնում է ARP քեշը (ARP Cache)` հայտնի IP հասցեների ու դրանց MAC հասցեների ցանկը, և ուղարկում է Միահեռարձակման (Unicast) հաղորդագրություն դեպի նպատակակետ։

ARP հաղորդակարգի տեսակներ 
Հասցեի լուծման հաղորդակարգը լինում է 4 տեսակ՝
 Հակադարձ հասցեի լուծման հաղորդակարգ (Reverse Address Resolution Protocol (RARP)),
 Հակառակ հասցեի լուծման հաղորդակարգ (Inverse Address Resolution Protocol (InARP)), 
 Լիազորված հասցեի լուծման հաղորդակարգ (Proxy Address Resolution Protocol (Proxy ARP)), 
 Անհատույց հասցեի լուծման հաղորդակարգ (Gratuitous Address Resolution Protocol (Gratuitous ARP)):

Հակադարձ հասցեի լուծման հաղորդակարգ (Reverse Address Resolution Protocol (RARP)) 
Հակադարձ հասցեի լուծման հաղորդակարգը (Reverse Address Resolution Protocol (RARP)) ցանցային հաղորդակարգ է, որն օգտագործվում է Հաճախորդի կողմից՝ իր Համացանցային հաղորդակարգի հասցեն Երթուղիչի (Router) ARP աղյուսակից իմանալու համար։ Այն ստեղծվում է MAC հասցեն համապատասխան IP հասցեին քարտեզագրելու համար։ Նոր հոսթի դեպքում անհրաժեշտ է IP հասցե օգտագործման համար։ Այն ուղարկում է RARP հեռարձակման (Broadcast) փաթեթ, որը պարունակում է MAC հասցեն ուղարկողի և ստացողի հասցեի դաշտում։ Այս տեսակի հեռարձակման փաթեթների համար պատասխանատու է RARP Սերվերը։ RARP Սերվերը փորձում է պարզել IP-ից MAC հասցեների քարտեզագրման աղյուսակի մուտքը։ Եթե որևէ գրառում համընկնում է աղյուսակում, RARP Սերվերն ուղարկում է պատասխանի փաթեթը պահանջող սարքին IP հասցեի հետ միասին։ 
RARP հաղորդակարգը այսօրվա ցանցերում չի օգտագործվում, որովհետև կիրառվում են այնպիսի հաղորդակարգեր, ինչպիսիք են Սկզբնաբեռնման հաղորդակարգը (Bootstrap Protocol (BOOTP)) և Դինամիկ հոսթի կազմաձևման հաղորդակարգը (DHCP):

Հակառակ հասցեի լուծման հաղորդակարգ (Inverse Address Resolution Protocol (InARP)) 
MAC հասցեն գտնելու համար Ցանցայի շերտի (Network Layer) IP հասցեն օգտագործելու փոխարեն՝ Հակառակ հասցեի լուծման հաղորդակարգը (INARP) օգտագործում է MAC հասցեն IP հասցե գտնելու համար։ INARP հաղորդակարգն ուղղակի հակառակ է ARP հաղորդակարգին։ Եթե RARP հաղորդակագը ( Reverse ARP ) նախ փախարինվեց BOOTP հաղորդակարգով, իսկ հետո՝ DHCP հաղորդակարգով, ապա Inverse ARP հաղորդակարգն օգտագործվում է բացառապես սարքի կազմաձևման ( Configuration ) համար։ Inverse ARP հաղորդակարգը լռելյայն միացված է բանկոմատների (ATM=Asynchronous Transfer Mode) ցանցերին։ InARP հաղորդակարգը կիրառվում է Ցանցային շերտի (Network Layer) հասցեն Գծային շերտի (Data Link Layer) հասցեից գտնելու համար Տվյալների կապի միացման նույնացուցիչի շրջանակային ռելեում (DLCI Frame Relay): Հակադարձ ARP հաղորդակարգը դինամիկ կերպով քարտեզագրում է տեղական՝ Տվյալների կապի միացման նույնացուցիչները հեռավոր IP հասցեներին։ InARP հաղորդակարգը կիրառելիս հայտնի է հեռավոր երթուղիչի DLCI-ն, սակայն IP հասցեն հայտնի չէ։ InARP հաղորդակարգը հարցում է ուղարկում՝ ձեռք բերելու այդ IP հասցեն։

Լիազորված հասցեի լուծման հաղորդակարգ (Proxy Address Resolution Protocol (Proxy ARP)) 
Լիազորված հասցեի լուծման հաղորդակարգը (Proxy Arp) ներդրվել է սարքերում, որոնք բաժանված են սեգմենտների։ Այդ սարքերը միացված են երթուղիչով (Router) նույն IP ցանցում կամ ենթացանցում՝ MAC հասցեները որոշելու համար։ Երբ սարքերը ցանցի նույն՝ Գծային շերտում (Data Link Layer) չեն, բայց նույն IP ցանցում են, փորձում են տվյալները փոխանցել միմյանց։ Սարքերը բաժանող երթուղիչը հաղորդագրություն չի ուղարկի, քանի որ երթուղիչները չեն անցնում սարքերի շերտով հեռարձակումներ (Hardware Layer Broadcast)։ Հետևաբար, հասցեները չեն կարող լուծվել։ Proxy ARP-ն միացված է լռելյայնորեն (Default), այնպես որ Լիազորված երթուղիչը (Proxy Router), որը գտնվում է տեղական ցանցերի միջև, արձագանքում է իր MAC հասցեով։ Երբ ուղարկող սարքը ստանում է Լիազորված երթուղիչի (Proxy Router) MAC հասցեն, վերջինս ուղարկում է տվյալներ Լիազորված երթուղիչին, ինչն իր հերթին ուղարկում է տվյալները (Datagram) նշված սարքին։

Անհատույց հասցեի լուծման հաղորդակարգ (Gratuitous Address Resolution Protocol (Gratuitous ARP))  
Անհատույց ARP-ն գործարկվում է համակարգչի բեռնման ժամանակ։ Վերջինս ավտոմատ կերպով հեռարձակում է իր МАC հասցեն ամբողջ ցանցին։ Երբ համակարգչի MAC հասցեն արդեն հայտնի է յուրաքանչյուր փոխարկիչին (Switch), Դինամիկ հոսթի կազմաձևման հաղորդակարգի (DHCP) Սերվերը IP հասցեն ուղարկում է պահանջված հոսթին։ Անհատույց ARP-ն կարող է նշանակել և՛ անհատույց հարցում, և՛ անհատույց պատասխան։ Անհատույց ARP հարցումը փաթեթ է, որի աղբյուրի և նպատակակետի IP հասցեն (Source and Destination IP) սահմանվում է փաթեթը թողարկող հոսթի IP-ով, իսկ նպատակակետ MAC հասցեն հեռարձակման հասցեն է։ Անհատույց ARP-ն ARP պատասխան է (ARP Reply), որը չի հուշվել ARP hարցումով (ARP Request): Անհատույց ARP հաղորդակարգն օգտակար է IP կոնֆլիկտը (IP Conflict) հայտնաբերելու համար, ինչպես նաև՝ ARP քարտեզագրման աղյուսակը և Փոխարկիչի միացքի (Switch Port) MAC հասցեների աղյուսակը թարմացնելու համար։

ARP և RARP հաղորդակարգերի տարբերությունները 
Ստորև ներկայացվում է ARP և RARP հաղորդակարգերի միջև առկա տարբերությունները։

ARP փաթեթի կառուցվածք (Packet structure)
ARP հաղորդակարգն օգտագործում է փաթեթի պարզ ձևաչափ, որը կախված է Գծային շերտի և Ցանցային շերտի հասցեի չափերից։ Փաթեթի վերնագիրը (Header) սահմանում է յուրաքանչյուր շերտում օգտագործվող ցանցի տեսակները, ինչպես նաև` յուրաքանչյուր շերտի հասցեների չափը։ Հաղորդագրության վերնագիրը լրացվում է գործառնական կոդի (Operation Code) օգնությամբ, որը Հարցման(Request) և Պատասխանի(Response) համար է։ Փաթեթի ծանրաբեռնվածությունն ունի չորս հասցե` 
 Ուղարկող հոսթի սարքավորման հասցե (Hardware Address of The Sender Host),
 Ստացող հոսթի սարքավորման հասցե (Hardware Address of The Receiver Host),
 Ուղարկող հոսթի հաղորդակարգի հասցե (Protocol Address of The Sender Host),
 Ստացող հոսթի հաղորդակարգի հասցե (Protocol Address of The Receiver Host):
Ստորև ներկայացվում է Հասցեի լուծման հաղորդակարգի՝ ARP-ի փաթեթի ձևաչափը․

Սարքավորման տեսակ (HTYPE)
Այս դաշտը նշում է ցանցային կապի հաղորդակարգի տեսակը։ 
Հաղորդակարգի տեսակ (PTYPE)
Այս դաշտը նշում է համացանցային հաղորդակարգը, որի համար նախատեսված է ARP հարցումը։ IPv4-ի համար ունի 0x0800 արժեքը։ Թույլատրված PTYPE արժեքները կիսում են համարակալման տարածությունը EtherType-ի համարների հետ։
Սարքավորումների երկարություն (HLEN)
Սարքավորման հասցեի երկարությունը նշվում է օկտետներով։ Ethernet հասցեի երկարությունը 6 օկտետ է։
Հաղորդակարգի երկարություն (PLEN)
Համացանցային հաղորդակարգի հասցեի երկարությունը նշվում է օկտետներով PTYPE-ում։ Օրինակ՝ IPv4 հասցեի երկարությունը 4 օկտետ է։
Գործառնություն
Նշում է այն գործառնությունը, որն իրականացնում է Հարցման(Request) և Պատասխանի(Response) համար։ 
Ուղարկողի սարքավորման հասցե (SHA)
ARP հարցումում այս դաշտն օգտագործվում է հարցումն ուղարկող հոսթի հասցեն նշելու համար։ ARP-ի պատասխանում այս դաշտն օգտագործվում է նշելու այն հոսթի հասցեն, որը փնտրում էր հարցումը։
Ուղարկողի հաղորդակարգի հասցե (SPA)
Ուղարկողի համացանցային հասցեն է։
Թիրախային սարքավորման հասցե (THA)
Ստացողի հասցեն է, որը ARP հարցումում անտեսվում է։ ARP-ի պատասխանում այս դաշտն օգտագործվում է՝ նշելու այն հոսթի հասցեն, որն առաջացրել է ARP հարցումը։
Թիրախային արձանագրության հասցե (TPA)
Ստացողի համացանցային հասցեն է։ 
ARP-ի համար EtherType-ը 0x0806 է։ Սա հայտնվում է Ethernet շրջանակի վերնագրում, երբ ծանրաբեռնվածությունը ARP փաթեթ է և չպետք է շփոթել PTYPE-ի հետ, որը հայտնվում է այս պարփակված ARP փաթեթում։ 
ARP հաղորդակարգի պարամետրի արժեքները ստանդարտացված են և պահպանվում են Համացանցի նշանակված համարների կառավարման կողմից (IANA):

Հարցման օրինակ 

Եթե IPv4 հասցեով 10.10.10.123 և MAC հասցեով 00:0D:9D:86:59:E2-ը ցանկանում է փաթեթ ուղարկել մեկ այլ հյուրընկալողի՝ 10.10.10.140 հասցեով, բայց չգիտի դրա MAC հասցեն, ապա այն պետք է ARP-ին ուղարկի հարցում՝ հասցեն լուծելու համար։

Ստորև ներկայացված փաթեթը պատկերում է հեռարձակման հարցումը։ Եթե IP 10.10.10.140-ով հյուրընկալողը առկա է ցանցում և հասանելի է, ապա նա ստանում է այս ARP հարցումը և վերադարձնում պատասխանը։

Պատասխանի օրինակ 
Վերը նկարագրված իրավիճակում, եթե 10.10.10.140 հասցեով հանգույցն ունի MAC հասցե 00:09:58:D8:33:AA, ապա այն ի պատասխան կուղարկի ստորև ներկայացված փաթեթը։ Նկատի ունեցեք, որ ուղարկողի և ստացողի հասցեների բլոկներն այժմ փոխել են արժեքները (պատասխան ուղարկողն այժմ հարցման ստացողն է պատասխան ստացողը հարցման ուղարկողն է)։

Միևնույն ցանցում գտնվող ցանկացած հանգույց, ինչ ուղարկողը և ստացողը, նույնպես կստանա հարցումը և այդպիսով կավելացնի ուղարկողի մասին տեղեկատվություն իր քեշում։ ARP պատասխանն ուղղված է միայն ARP հարցման աղբյուրին, ուստի ARP պատասխանը հասանելի չէ ցանցի այլ հանգույցների համար։

 Դիտողություն Sha, SPA, THAI, SPA դաշտերի երկարությունը կախված է համապատասխանաբար Hardware length-ի և Protocol length-ի պարամետրերից։

ARP զեղծարարություն (ARP Spoofing) 

ARP զեղծարարությունը ցանցային հարձակման տեսակ է, երբ կեղծված ARP հարցում է ուղարկվում Լռելյայն դարպասին, ինչի արդյունքում զեղծարարի MAC հասցեն կապվում է զոհի ցանցի Սերվերին։ Զեղծարարը ստանում է IP հասցեի համար նախատեսված տվյալները։ ARP սպուֆինգի միջոցով զեղծարարը կարողանում է զավթել տվյալները, փոխել դրանց երթևեկությունը կամ դադարեցնել տվյալների փոխանցումը։

ARP, DHCP, DNS հաղորդակարգերի ֆունկցիոնալ տարբերություն  
ARP, DHCP, DNS հաղորդակարգերն անհրաժեշտ են Լոկալ ցանցի (Local Area Network, LAN) գործարկման համար։ Եթե ARP հաղորդակարգը Գծային շերտի (Data Link Layer) հաղորդակարգ է, ապա DHCP և DNS կիրառական շերտի (Application Layer) հաղորդակարգեր են։ ARP հաղորդակարգն անհրաժեշտ է MAC հասցեները IP հասցեներին քարտեզագրելու համար։ DHCP հաղորդակարգն անհրաժեշտ է ցանցին միացող հոսթերին ավտոմատ կերպով IP հասցեներ տրամադրելու համար։ DNS հաղորդակարգը համացանցային տիրույթի անունները վերածում է IP հասցեների, որոնք բրաուզերներն օգտագործում են համացանցի էջերը բեռնելու համար։ ARP հաղորդակարգի դեպքում, երբ հոսթն ուզում է փաթեթ ուղարկել այլ հոսթի, նախ հեռարձակում (Broadcast ) է ARP փաթեթ։ DHCP հաղորդակարգը թույլ է տալիս հոսթերին ստանալ անհրաժեշտ TCP/IP կոնֆիգուրացիայի տեղեկատվությունը DHCP Սերվերից և հիմնված է Հաճախորդ-Սերվեր մոդելի վրա (Client-Server Model)։ DNS հաղորդակարգն ստեղծվել է որպես Հաճախորդ-Սերվեր համակարգ, որի պարագայում պատասխանողը ստանում է դոմեն անունը (DN) զննարկիչից և ուղարկում է քարտեզագրված հարցումը DNS Սերվերին։ ARP հաղորդակարգի դեպքում Ստացողն ուղարկում է Միահեռարձակման (Unicast) փաթեթ իր MAC հասցեով (ARP պատասխան)։ DHCP հաղորդակարգի դեպքում Հաճախորդն ուղարկում է DHCP հեռարձակման (Broadcast) հարցում (Request)՝ պահանջելով անհրաժեշտ տեղեկատվություն։ Հաղորդակցության համար ARP հաղորդակարգն կիրառում է իր տեսակները՝ RARP, InARP, Proxy ARP, Gratuitous ARP: DHCP հաղորդակարգի դեպքում Հաճախորդը և Սերվերը, կապ հաստատելու համար, փոխանակում են 4 DHCP հաղորդագրություն՝ Հայտնաբերում (Discovery), Առաջարկ (Offer), Հարցում (Request) և Հաստատում (Acknowledge (ACK)), իսկ DNS հաղորդակարգն օգտագործում է իր հարցումների տեսակները՝ Ուղիղ հարցում(Forward), Հետադարձ հարցում(Reverse), Ռեկուրսիվ հարցում(Recursive), Ինտերատիվ հարցում(Internative):

Ծանոթագրություններ

Տես նաև 
 DHCP
 IP
 MAC հասցե

Համացանց
Տեղեկատվական տեխնոլոգիաներ
Հեռահաղորդակցություն
Թվային տեխնոլոգիաներ
Ցանցային հաղորդակարգեր
Հաղորդակարգեր այբբենական կարգով