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

Հասցեի լուծման հաղորդակարգ (անգլ.՝ Address Resolution Protocol (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 հաղորդակարգի բնութագիր ==
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):


== 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 հասցե