پروتکل تفکیک آدرس (ARP) چیست ؟
ARP مخفف سه کلمه Address Resolution Protocol است .
وظیفه آن شناخت وتشخیص Hardware Address ) Mac Address) است در صورتی سیستم با دانستن IP بخواهد با یک سیستم ارتباط برقرار کند.
باید این مطلب را برای این که وضیفه این پروتکل را بهتر بدانیم این است که برای ارتباط با سیستم در یک محدوده شبکه ای ( یک Subnet ) باید حتما Mac address آن سیستم را بدانیم .
حال وقتی شما میخواهید با یک IP ارتباط برقرار در ابتدا باید سیستم با توجه به Subnet mask داده شده و IP داده شده به سیستم تشخیص میدهد که آیا سیستم مورد نظر برای ارتباط بر روی یک بخش هستند و یا خیر .
در صورتی که بر روی یک بخش بودند با استفاده از پروتکل تفکیک آدرس (ARP) سعی در تشخیص IP آن سیستم میکند و در پاسخ به آن آن سیستم ( سیستمی که این IP مورد نظر برای ارتباط ما را دارد ) به درخواست Mac خود را به سیستم ما اعلام میکند و سیستم ما این Mac را در جدولی با نام ARP Table که بر روی سیستم خودمان است ذخیره میشود .که مدت دخیره شدن این اطلاعات در صورت دوباره نویسی و بروز نشدن آن فقط ۱۲۰ ثانیه است.
در حالت دوم در صورتی که سیستم ما تشخیص دهد که سیستم با سیستم ما بر روی یک Subnet قرار ندارند سیستم در ابتدا Route Table خود را میبیند و در صورتی که در این جد.ول موردی برای رسیدن به این IP مجود باشد در ابتدا میبیند که برای ارتباط با این IP باید به سمت کدام روتر اطلاعهات را بفرستد و در این صورت با استفاده از همان مراحل بالا mac آدرس روتر مورد نظر را با توحه به داشتن IP آن پیدا میکند و در Destination mac address آدرس مربوط به روتر و در بخش destination IP address مقصد سیستمی که میخواهد با آن ارتباط داشته باشد را ارسال میکند .
در ارتباطاط بر پایه IP در هر شبکه ای چه در WAN و چه در LAN از این پروتکل استفاده میشود ولی در هر سابنت و برای رساندن اطلاعات به روتر و یا سیستم مقصد از این پروتکل ( در نگارش ۴ IP البته فقط ) استفاده میشود.
در همین رابطه یک نکته دیگر را باید گفته شود که ممکن است در بعضی اوقات این مورد اشتباه شود این است که یک موردی نیز در سوییچ ها با نام Mac address Table وجود دارد که در عین شبیه بودن به ARP Table کاملا با آن متفاوت است .
در یک سوییچ که یکی از مهمترین تفاوت های آن با HUB همین داشتن Mac Table است یعنی اینکه لایه دوم پکتهای دریافتی را میخواند و مک آدرس مبدا را در این جدول به همراه پورت مربوطه قرار میدهد و این باعث میشود در صورتی که درخواستی را بخواهد به این آدرس بفرستد بداند از کدام پورت باید ارسال کند و مجبورک به ارسال آن به تمامی پورتهای خروجی نمیشود.
فرایندپروتکل تفکیک آدرس (ARP) :
اگر Switch بسته ای دریافت کند که فقط IP مقصد آن را بداند،یک بسته ی پروتکل تفکیک آدرس (ARP) برای تمام اعضای Broadcast Domain خود ارسال می کند و از تمام آن ها می پرسد که چه کسی صاحب IP مقصد این بسته است؟…سپس صاحب IP اگر درون Broadcast Domain سوییچ باشد موجودیت خود را اعلام می کند و MAC Address خود را در اختیار Switch قرار می دهد و Switch می تواند بسته را برای آن ارسال کند.
این MAC Address و IP متناظر با آن برای مدت محدودی در جدولی مخصوص در Switch ذخیره می شوند تا اگر مجددا نیاز به ارسال بسته ای به این مقصد باشد دیگر احتیاجی به انجام فرآیند پروتکل تفکیک آدرس (ARP) نباشد و ترافیک بی مورد در شبکه ایجاد نشود.
فیلدهای ARP
(Hardware type (2Byte | نوع آدرس سختافزاری فرستنده و گیرندهاست (همگی یک برای اترنت و حلقه نشانه) |
(Protocol type (2Byte | نوع پروتکل آدرس دهی استفاده شدهاست |
(Hardware Address length (1Byte | تعداد بایت آدرس سختافزاری فرستنده و گیرندهاست (شامل مقدار ۶ برای اترنت و حلقه نشانه) |
(Protocol Address length (1Byte | تعداد بایت آدرس IP یا به عبارتی آدرس پروتکل است |
(Opcod (2Byte | نوع عملیات پاکت ARP را تعین میکند. (مقدار ۱ برای درخواست ARP ,مقدار۲ برای پاسخ ARP و۳ برای درخواست RARP و۴ برای پاسخ RARP) |
(Sender Hardware Address(6Byte | ادرس اترنت یا سختافزاری فرستنده |
(Sender IP Address(32 Bit | ادرس IP یا پروتکل مبدأ |
(Target Hardware Address(6Byte | ادرس اترنت یا سختافزار گیرنده |
(Target IP Address(32Bit | ادرس IP یا پروتکل مقصد |
(CheckSum (16bit | الگوریتم تشخیص خطا |