پروتکل ARP چیست؟
برنامهها برای تبادل پیام بین یکدیگر از آدرسهای IP استفاده میکنند، در حالی که ارتباط حقیقی بین رایانهها بهوسیلهی آدرسهای فیزیکی یعنی همان مشخصات یکتای سختافزاری دستگاهها صورت میگیرد. در علم شبکه و مدل استاندارد OSI، آدرس IP مربوط به لایهی سوم و آدرس سختافزاری، که تحت عنوان MAC Address شناخته میشود، مربوط به لایهی دوم است.
پروتکل ARP یا Address Resolution Protocol وظیفهی یافتن MAC Address مربوط به یک IP Address را برعهده دارد. فرض کنید آدرس IP سرور مقصدتان را میدانید و میخواهید به آن سرور یک پیام مشخص ارسال کنید. در این حالت شما صرفن آدرس IP مقصد را وارد میکنید و رایانهی شما بهشکل خودکار با استفاده از پروتکل ARP آدرس MAC سرور مقصد را پیدا کرده و با استفاده از آن پیام شما را ارسال میکند.
کاربرد پروتکل ARP
در اینجا ممکن است از خود بپرسید وقتی IP مقصد را میدانیم، دیگر وجود MAC چه معنایی دارد؟ پاسخ آن است که آدرس IP دستگاهها بهشکل پویا تغییر میکند و یک دستگاه در طول عمر خود ممکن است IPهای متفاوتی به خود بگیرد، حال آنکه آدرس MAC آن دستگاه همواره ثابت است و تغییری نمیکند. از طرفی استفاده از IP به تسریع و تسهیل مسیریابی کمک میکند و اگر از آدرس MAC برای مسیریابی بستههای داده استفاده شود، پیدا کردن مقصد بسیار دشوار خواهد شد.
همچنین، ممکن است برای سرور مشکلی پیش بیاید که دیگر قابل استفاده نباشد. حال اگر کاربران آدرس سختافزاری خود سرور را برای ارتباط با آن استفاده کنند، پس از جایگزین شدن آن سرور تمامی کاربران باید آدرس سختافزاری سرور جدید را بدانند. اما اگر از IP استفاده شود، چون همان IP قبلی را میتوان به سرور جدید نیز نسبت داد، دیگر چنین مشکلی وجود نخواهد داشت.
پروتکل ARP چگونه کار میکند؟
زمانی که یک دستگاه میخواهد آدرس MAC مربوط به یک IP را شناسایی کند، یک پیام موسوم به ARP Request را با مشخصات زیر ارسال میکند:
- آدرس IP مبدا را آدرس خودش قرار میدهد و آدرس IP مقصد را برابر همان آدرس هدف قرار میدهد.
- بهعنوان آدرس MAC مبدا، آدرس خودش را قرار میدهد و برای آدرس مقصد، تمامی 48 بیت را یک قرار میدهد تا پیام برای همه دستگاههای موجود در شبکهی محلیاش بهشکل Broadcast ارسال شود.
وقتی این پیام به دستگاهی میرسد، آن دستگاه بررسی میکند که آیا آدرس IP مقصد پیام، همان آدرس خودش است. اگر پاسخ مثبت باشد، آدرس MAC خود را برای مبدا پیام در قالب یک ARP Response/Reply ارسال میکند و فرایند جستجو پایان مییابد. اگر چنین دستگاهی در شبکه محلی دستگاه مبدا نباشد، Gateway آن شبکه پیام ARP را برای سایر شبکهها ارسال میکند تا اینکه دستگاه مقصد پیدا شود و آدرسش را برای دستگاه مبدا ارسال کند.
پس از پیدا شدن آدرس MAC مربوط به یک IP، نتیجه در دستگاه مبدا Cache میشود تا برای ارسال پیامهای بعدی به این مقصد دیگر نیازی به ارسال پیام ARP نباشد. البته این اطلاعات تا ابد در دستگاه مبدا معتبر نیست و باقی نمیماند، بلکه پس از یک زمان تعریف شده با دریافت پیام Timeout دیگر قابل استفاده نخواهد بود.