تبادل اطلاعات بین رایانهها در یک شبکه، توسط آدرس IP و آدرس MAC آنها اتفاق میافتد. گاهی اوقات پیش میآید که آدرس IP کامپیوتر مقصد در دسترس است ولی آدرس MAC آن مشخص نیست. پروتکل ARP وظیفه پیدا کردن آدرس MAC یک دستگاه را با استفاده از آدرس IP آن برعهده دارد. در این مطلب به توضیح پروتکل ARP میپردازیم و کاربردها و مزایا و معایب آن را بررسی میکنیم.
پروتکل ARP چیست؟
ARP مخفف عبارت Address Resolution Protocol و یکی از مهمترین پروتکلهای لایه شبکه است. این پروتکل آدرس منطقی ۳۲ بیتی یا همان IP Address یک دستگاه موجود در شبکه LAN را دریافت میکند و آدرس فیزیکی ۴۸ بیتی یا همان MAC Address مربوط به آن را تحویل میدهد. همچنین این پروتکل دارای یک حافظه Cache است که لیستی از آدرسهای IP دستگاههای موجود در شبکه در آن قرار دارد و از طریق این لیست اقدام به پیدا کردن آدرس MAC یک دستگاه میکند.
برای برقراری ارتباط بین دستگاههای موجود در یک شبکه، داشتن آدرس MAC دستگاه مقصد، امری ضروری است. اینجاست که پروتکل ARP وارد عمل میشود و آدرس IP را به آدرس MAC تبدیل میکند.
پروتکل ARP چگونه کار میکند؟
در این بخش سعی میکنیم به زبانی ساده نحوه عملکرد پروتکل ARP را به شما توضیح دهیم.
فرض کنید کامپیوتر مبدأ با آدرس IP و آدرس MAC مشخص قصد ارسال یک بسته به کامپیوتر مقصد دارد که آدرس IP آن مشخص و آدرس MAC آن نامشخص است. در ابتدا کامپیوتر مبدأ به جدول ARP خود که به ARP Cache یا ARP Table معروف است رجوع میکند. در این جدول آدرسهای MAC مربوط به هر آدرس IP در مقابل آن نوشته شده است. اگر آدرس MAC مربوط به آدرس IP کامپیوتر مقصد در این لیست قرار داشت، آن را برداشته و در جای خود قرار میدهد و بسته را به کامپیوتر مورد نظر ارسال میکند. اما اگر آدرس MAC کامپیوتر مقصد در این لیست قرار نداشت پروتکل ARP وارد عمل میشود و یک درخواست بین کامپیوترهای موجود در شبکه ارسال میکند و آدرس MAC کامپیوتر مقصد را درخواست میکند. این درخواست بین کامپیوترهای موجود در شبکه پخش میشود و کامپیوتری که آدرس IP آن مطابق با آدرس IP کامپیوتر مقصد باشد درخواست را دریافت میکند و آدرس MAC خود را بهعنوان جواب به پروتکل ARP میدهد. حالا که تمام فاکتورهای لازم برای ارسال یک بسته بین دو کامپیوتر مشخص شده است، بسته بین کامپیوترها منتقل میشود.
کاربرد پروتکل ARP
شاید این سوال در ذهن شما ایجاد شده باشد که وقتی آدرس IP کامپیوتر مقصد را میدانیم دیگر چه نیازی به داشتن آدرس MAC آن داریم. در این قسمت به این سوال که نشاندهنده کاربرد پروتکل ARP است جواب میدهیم.
آدرس IP برای هر دستگاه یک مقدار پویا است که در طول عمر آن دستگاه ممکن است چندین بار تغییر کند. اما آدرس MAC برای هر دستگاه همواره مقدار ثابت و منحصربهفردی است. به عبارت دیگر ممکن است دو دستگاه دارای آدرس IP یکسانی باشند ولی به هیچ وجه امکان ندارد که دارای آدرس MAC یکسان باشند.
از طرف دیگر مسیریابی کامپیوتر مقصد با استفاده از آدرس IP سریعتر و آسانتر اتفاق میافتد ولی استفاده از آدرس MAC برای این کار، دشوار است.
با توجه به مواردی که در بالا به آنها اشاره کردیم میتوان نتیجه گرفت که برای ارسال یک بسته بین دو کامپیوتر همزمان به هردو آدرس IP و آدرس MAC نیاز داریم که آدرس MAC را تنها با استفاده از پروتکل ARP میتوانیم بهدست آوریم. پس نتیجه میگیریم این پروتکل در جابهجایی بستهها بین دو سیستم بسیار کاربردی و مهم است.
مزایا و معایب پروتکل ARP
از مزایای پروتکل ARP میتوان به موارد زیر اشاره کرد:
باعث ایجاد دسترسی آسان و سریع به آدرس MAC یک دستگاه تنها با داشتن آدرس IP آن دستگاه میشود.
دسترسی به آدرس MAC و آدرس IP تمامی دستگاههای موجود در شبکه را از طریق ARP Cache به راحتی امکانپذیر میکند.
دستگاههایی که به تازگی در شبکه قرار گرفتهاند را به سرعت شناسایی و آدرس MAC آنها را بین تمامی دستگاههای موجود در شبکه پخش میکند.
از معایب این پروتکل میتوان موارد زیر را نام برد:
این پروتکل از درست بودن آدرس MAC دریافت شده از طرف کامپیوتر مقصد اطمینان ندارد. یعنی پروتکل ARP هر جوابی را که به عنوان آدرس MAC دریافت میکند درست میداند و فرآیند انتقال اطلاعات را برای آن آدرس انجام میدهد. این مساله باعث به خطر افتادن امنیت شبکه میشود.
این پروتکل ممکن است باعث بروز حملههای مخرب ARP Spoofing یا ARP Denial of service شود که به ترتیب باعث حمله مهاجم به یک شبکه اترنت و متوقف کردن ترافیک از طرف مهاجم میشود.
ساختار پروتکل ARP
پروتکل ARP از ساختار پیام نسبتاً سادهای استفاده میکند. این پیام شامل فیلدی برای نوع پیام و آدرس لایه دوم و آدرس لایه سوم شبکه است. ساختار کلی پیامهای ARP شامل مواردی است که در ادامه این موارد را نام برده و معرفی میکنیم.
Hardware Type: این فیلد نوع سختافزاری که برای ارسال پیام ARP استفاده شده را مشخص میکند. از رایجترین انواع سختافزار میتوان به اترنت و کانال فیبر اشاره کرد.
Protocol Type: این فیلد کاملکننده فیلد نوع سختافزار است و نوع آدرسهایی که در لایه سه شبکه استفاده شده مشخص میکند.
Hardware Address Length: این فیلد طول آدرس MAC را بر حسب بایت مشخص میکند. در حالت کلی آدرس MAC در شبکه اترنت ۶ بایت طول دارد.
Protocol Address Length: طول آدرس منطقی IPV4 را مشخص میکند که عموماً برابر ۴ بایت است.
OpCode: یک فیلد ۱۶ بیتی است که نوع بسته ARP را مشخص میکند. دو نوع بسته ARP که شامل بسته درخواست ARP و بسته پاسخ ARP است وجود دارد که برای درخواست کد یک و برای پاسخ کد ۲ ارسال میشود.
Sender Hardware Address: این فیلد آدرس فیزیکی یا همان آدرس MAC ارسالکننده بسته را مشخص میکند.
Sender Protocol Address: آدرس منطقی یا همان آدرس IP ارسالکننده پیام را مشخص میکند.
Target Hardware Address: آدرس فیزیکی یا همان آدرس MAC دریافتکننده بسته را مشخص میکند. در درخواست ARP به دلیل این که ارسالکننده از آدرس فیزیکی دریافتکننده اطلاع ندارد این فیلد برابر صفر است.
Target Protocol Address: این فیلد آدرس منطقی یا همان آدرس IP دریافتکننده بسته ARP را در خود نگهداری میکند.
در این مطلب سعی کردیم به زبانی ساده به معرفی و توضیح پروتکل ARP بپردازیم.