Address Resolution Protocol یا ARP برای استخراج آدرس MAC از آدرس IP استفاده می شود. این دستوری بسیار مهم است زیراکه در یک شبکه دستگاه ها توسط آدرس IP همدیگر را پیدا می کنند اما ارتباط بین آنها از طریق آدرس MAC صورت می گیرد.
وقتی یک کامپیوتر قصد ارسال اطلاعاتی را به کامپیوتر دیگری دارد نیاز دارد آدرس MAC کامپیوتر مقصد را بداند لذا برای این منظور ، ARP یک پاکت تحقیقاتی را برای دانستن آدرس MAC ارسال می کند و وقتی که کامپیوتر مقصد این بسته را دریافت کرد اقدام به ارسال آدرس MAC خود به کامپیوتر درخواست کننده می نماید. این آدرس های MAC بطور موقت در جدولی به نام ARP Cache نگهداری می شود. این جدول شامل آدرس های MAC و آدرس های IP متناظر آن ها است. این جدول همیشه قبل از ارسال پاکت تحقیقاتی توسط کامپیوتر بررسی می شود تا اگر آدرس مورد نظر در جدول باشد اقدام به ارسال پاکت ARP نشود و آدرس MAC به راحتی در دسترس قرارگیرد.

همانطور که می دانید کارت شبکه یک آدرس سخت افزاری دارد که بر روی آن حک شده است.زمانیکه یک سیستم با سیستم دیگری می خواهد ارتباط برقرار کند،باید IP مربوط به host سیستمی که می خواهد با آن ارتباط برقرار کند را بداند.این روالی است که ما با آن آشنا هستیم اما در پشت پرده اتفاق دیگری می افتد.در واقع سیستم باید برای دریافت و ارسال داده از آدرس سخت افزاری یا MAC Address استفاده کند.حال سوالی که پیش می آید این است که یک سیستم از کجا آدرس MAC سیستم های دیگری را که می خواهد از طریق شبکه با آنها ارتباط برقرار کند را پیدا کند.پاسخ چیزی جز ARP نمی باشد.در واقع ARP یا Address Resolution Protocol برای تبدیل آدرس های منطقی TCP/IP به آدرس های فیزیکی MAC طراحی شده است.حال این پروسه،یعنی تبدیل آدرس منطقی (از لایه ی 3 به آدرس MAC در لایه ی 2 ) از طریق ارسال broadcasting در داخل شبکه انجام می شود.بدین صورت که کامپیوتر ارسال کننده در داخل شبکه فریاد میزند که " این آدرس IP متعلق به چی کسی است؟من آدرس MAC تورا نیاز دارم ! ". این broadcast به داخل شبکه فرستاده می شود و همه ی host ها ، data های broadcast را دریافت می کنند .سپس host ی که آدرس IP ارسال شده متعلق به او می باشد در پاسخ ، آدرس MAC خود را می فرستد.در نهایت این پروسه با در اختیار قرار دادن آدرس MAC به کامپیوتری که برای ارسال داده های خود نیازمند آن آدرس بود کامل می شود. 

Image



ARP قوانین این پروتکل را برای انتقال و تبدیل آدرس ( از لایه ی 3 به لایه ی 2 و همچنین از لایه ی 2 به لایه ی 3 که همان ARP معکوس است)برقرار نگه میدارد.برای کاهش تعداد broadcast (یا کاهش تعداد Broadcast Domain ) و در نتیجه افزایش بهره وری در استفاده از شبکه یک client cache که آدرس ها را برای مدت زمانی درون یک جدول نگهداری می کند. 

Image



(ARP ) تبدیل آدرس 32 بیتی IP به آدرس 48 بیتی MAC 
(RARP) تبدیل آدرس 47 بیتی MAC به آدرس 32 بیتی IP 


این جدول با عنوانcache ARP شناخته می شوندو برای نگهداری هر آدرس MAC تبدیل شده به IP متناظرش استفاده می شود.این یکی از مهمترین قسمتهای این پروتکل است اما از آنجا که سایز ARP cache محدود است ورودی ها باید به صورت دوره ای پاک شوند.این پروسه همچنین هر گونه تلاش ناموفق برای برقراری ارتباط با کامپیوترهایی که دیگر استفاده نمی شوند را پا ک می کند.ما 2 نوع ورودی به cache داریم:static & dynamic .ورودی های static ورودی هایی هستند که توسط ARP وارد جدول می شوند و از cache حذف نخواهند شد اما ورودی هایی که به صورت اتوماتیک از طریق broadcast وارد جدول می شوند( در مواردی که برای پیدا کردن IP مورد نظر ، سیستم در شبکه ما نبوده و برای پیدا کردن آن از router ها ،getway ها و switchهای مختلفی باید عبور کنیم و IP همه آنها جداگانه در cache ذخیره می شود) و به آنها ورودی های dynamic گفته می شود و از cache پاک خواهند شد. 

تمام ورودی ها به ARP cache می توانند مشاهده،اضافه و حذف شوند.برای برطرف کردن مشکلات مربوط به این آدرس ها می توانیم از ARP cache استفاده کنیم.برای مشاهده ی ARP cache از کامند arp -a ( یا arp -g ) در command prompt استفاده می کنیم.حال اگر بخواهیم ARP cache را فقط برای IP های خاصی استفاده کنیم از کامند <arp -a <IP Address استفاده می کنیم.برای حذف ARP cache ،از کامند arp -d و برای اضافه کردن از arp -s استفاده می کنیم.بعضی از کامپیوتر ها،کارتهای شبکه چند منظوره (multiple NICs ) دارند که ARP cache آدرس های مربوط به هر کارت را به طور جداگانه ای نگهداری می کند .برای مشاهده ی ARP cache مربوط به یک کارت شبکه از arp -a –n <interface استفاده می شود.در ادامه مثالی از مشاهده و حذف کش arp را مشاهده می کنید : 

مشاهده کش arp : 

C:\>arp -a
 
Interface: 192.168.1.3 --- 0xb
  Internet Address      Physical Address      Type
  192.168.1.1           10-c6-1f-e9-aa-41     dynamic
  192.168.1.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static
 
Interface: 192.168.179.1 --- 0x12
  Internet Address      Physical Address      Type
  192.168.179.255       ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static
 
Interface: 192.168.94.1 --- 0x13
  Internet Address      Physical Address      Type
  192.168.94.255        ff-ff-ff-ff-ff-ff     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.252           01-00-5e-00-00-fc     static


حذف کش arp : 


C:\>arp -d