پروتکل ARP چیست و چه انواعی دارد؟
پروتکل ARP (Address Resolution Protocol) یکی از پروتکلهای مهم در شبکههای کامپیوتری است که به درخواست خدمات شبکه برای ترجمه آدرسهای IP به آدرسهای فیزیکی (MAC) کمک میکند. این پروتکل نقش کلیدی در ارتباطات درونشبکهای و انتقال دادهها دارد. با ما همراه باشید تا بهطور کامل با پروتکل ARP و انواع آن آشنا شوید.
فهرست محتوا
پروتکل ARP چیست؟
پروتکل ARP (Address Resolution Protocol) یکی از پروتکلهای کلیدی در لایه شبکه (لایه ۳ از مدل OSI) وظیفه ترجمه آدرسهای IP به آدرسهای MAC در شبکههای محلی (LAN) را بر عهده دارد. این پروتکل بهطور ویژه در شبکههای مبتنی بر IPv4 استفاده میشود و جایگرین آن در شبکههای مبتنی بر IPv6، پروتکل Neighbor Discovery (ND) است.
در شبکههای مدرن دستگاهها برای شناسایی یکدیگر و برقراری ارتباط از آدرسهای IP استفاده میکنند. آدرسهای IP در سطح نرم افزاری مدیریت میشوند و بهراحتی قابل تنظیم و تغییر هستند. با این حال در سطح سختافزار شبکه، دستگاهها از آدرسهای فیزیکی که به آدرسهای MAC معروف هستند استفاده میکنند. هر دستگاه شبکه از جمله روترها، سوئیچها و کارتهای شبکه (NIC)، از آدرس MAC منحصربهفردی بهره میبرد که هنگام ساخت دستگاه به آن اختصاص داده میشود و اغلب ثابت باقی میماند.
در شبکههای اترنت (Ethernet)، برای انتقال داده از یک دستگاه به دستگاه دیگر از فریمهایی استفاده میشود که براساس آدرسهای MAC کار میکنند. اما اغلب دستگاهها فقط آدرس IP مقصد را دارند و آدرس MAC آن را ندارند. دستگاهها برای اینکه بتوانند دادهها را به مقصد برسانند، ابتدا باید آدرس MAC مربوط به آدرس IP مقصد را پیدا کنند. در اینجا پروتکل ARP نقش حیاتی خود را ایفا میکند و وظیفه تبدیل آدرس IP به آدرس MAC متناظر را بر عهده دارد.
بهطور خلاصه پروتکل ARP مانند پلی میان لایه شبکه (که با آدرسهای IP کار میکند) و لایه پیوند داده (که بر مبنای آدرسهای MAC کار میکند) عمل میکند. این پروتکل یکی از اجزای اصلی درخواست خدمات شبکه محسوب میشود که ارتباطات بین دستگاهها در یک شبکه محلی را تسهیل میکند
فرض کنید کامپیوتر A میخواهد دادهای به کامپیوتر B ارسال کند و فقط آدرس IP کامپیوتر B را دارد. در این حالت، کامپیوتر A از ARP استفاده میکند تا آدرس MAC متناظر با IP کامپیوتر B را درخواست کند.ARP این کار را با ارسال یک پیام در شبکه انجام میدهد که میپرسد: «چه کسی صاحب این IP است؟» دستگاهی که با این IP مطابقت دارد، آدرس MAC خود را اعلام میکند و ارتباط برقرار میشود.
برای آشنایی بیشتر با پروتکل های مختلف شبکه، خواندن مقاله پروتکل چیست؟ را از دست ندهید.
نحوه عملکرد پروتکل ARP
پروتکل ARP از مکانیسم درخواست و پاسخ برای ترجمه آدرسهای IP به آدرسهای MAC استفاده میکند. این مکانیسم بهصورت خودکار و پویا در شبکههای محلی اجرا میشود و بدون نیاز به تنظیمات دستی، آدرسهای MAC مورد نیاز برای ارسال دادهها به دستگاههای مقصد را به دست میآورد.
برای درک بهتر نحوه عملکرد ARP، فرآیند آن را میتوان به چهار مرحله اصلی تقسیم کرد:
1. ارسال پیام درخواست ARP یا ARP Request
هنگامی که یک دستگاه (مبدا) قصد دارد دادهای را به دستگاه دیگری (مقصد) ارسال کند، ابتدا بررسی میکند که آیا آدرس MAC مربوط به آدرس IP مقصد را در حافظه کش ARP خود دارد یا خیر. حافظه کش (ARP Cache) شامل جداولی میشود که قبلا آدرسهای IP و MAC را ذخیره کرده است تا در دفعات بعدی نیازی به پرسوجوی مجدد نباشد.
اگر دستگاه مبدا، آدرس MAC مقصد را در حافظه خود نداشته باشد، یک پیام درخواست (ARP Request) تولید میکند. این پیام شامل آدرس IP دستگاه مقصد و همچنین آدرس IP و MAC دستگاه مبدا است. پیام درخواست ARP بهصورت Broadcast در شبکه ارسال میشود، به این معنی که همه دستگاههای موجود در همان شبکه محلی (Subnet) آن را دریافت میکنند.
2. دریافت پیام درخواست ARP توسط دستگاهها
همه دستگاههای شبکهای که پیام درخواست ARP را دریافت میکنند، آدرس IP درخواستی را با آدرس IP خود مقایسه میکنند. اگر آدرس IP موجود در پیام درخواست با آدرس IP دستگاه مطابقت داشته باشد، آن دستگاه میفهمد که پیام برای آن ارسال شدهاست و باید به آن پاسخ دهد. در غیر این صورت دستگاهها این پیام را نادیده میگیرند.
3. ارسال پیام پاسخ ARP یا ARP Reply
دستگاهی که آدرس IP مورد نظر را دارد، یک پیام پاسخ (ARP Reply) تولید کرده و آن را بهصورت Unicast (فقط به دستگاه مبدا) ارسال میکند. این پیام شامل آدرس MAC دستگاه مقصد و آدرس IP مربوط به آن است. پس از دریافت پیام پاسخ توسط دستگاه مبدا، آدرس MAC به دست آمده در حافظه کش ARP ذخیره میشود تا برای ارتباطات آینده بهسرعت قابل دسترسی باشد. به این ترتیب نیازی به ارسال مجدد درخواست ARP در دفعات بعدی وجود نخواهد داشت.
4. ارسال دادهها
پس از دریافت آدرس MAC مقصد، دستگاه مبدا قادر است دادههای خود را در قالب فریمهای اترنت بههمراه آدرس MAC مقصد ارسال کند. این فریمها بهصورت مستقیم به دستگاه مقصد تحویل داده میشوند.
چنین فرآیندی باعث میشود که پروتکل ARP بهصورت پویا و موثر عمل کند و بدون دخالت دستی، به دستگاههای شبکه اجازه دهد تا آدرسهای فیزیکی (MAC) یکدیگر را پیدا و با یکدیگر ارتباط برقرار کنند.
ARP Cache و مدیریت آن
در بخش قبلی با پیامهای مختلف ARP و نحوه عملکرد آنها تا حدودی آشنا شدید و چندین بار نام کش ARP را نیز مشاهده کردید. ARP Cache جدولی در هر دستگاه شبکه است که زوجآدرسهای IP و MAC را ذخیره میکند تا فرآیند جستجوی مجدد آدرسهای MAC برای ارسال دادهها به دستگاههای مقصد تسریع شود. این جدول، از زمان انقضا (TTL) برای هر ورودی استفاده میکند تا تغییرات شبکه مانند جابجایی دستگاهها یا تغییر آدرسهای MAC را مدیریت کند.
عملکرد ARP Cache
هنگامی که یک دستگاه با استفاده از پروتکل ARP، آدرس MAC دستگاه مقصد را پیدا میکند، آن را در ARP Cache ذخیره میکند. این اطلاعات برای تسریع در ارسال دادههای آینده استفاده میشود تا از ارسال مجدد درخواست ARP جلوگیری شود. ورودیهای این جدول پس از مدتی منقضی میشوند تا از بهروز بودن همیشگی اطلاعات، اطمینان حاصل شود.
مزایای استفاده از ARP Cache
- افزایش سرعت ارتباطات: ذخیره آدرسهای MAC باعث میشود که درخواستهای ARP به حداقل برسند.
- کاهش ترافیک شبکه: استفاده از ARP Cache ترافیک غیرضروری شبکه را کاهش میدهد.
- بهبود عملکرد شبکه: تمامی ارتباطات بدون تاخیر انجام میشوند زیرا آدرس MAC همیشه در دسترس است.
مدیریت ARP Cache
مدیریت صحیح ARP Cache برای اطمینان از عملکرد بهینه شبکه اهمیت بالایی دارد. برخی از اقدامات کلیدی برای مدیریت ARP Cache شامل موارد زیر است.
- پاکسازی دستی ARP Cache: در بسیاری از سیستمهای عامل امکان پاکسازی دستی ARP Cache وجود دارد. این کار اغلب برای رفع مشکلات احتمالی مانند وجود ورودیهای نادرست یا قدیمی انجام میشود. بهعنوان مثال در سیستم عامل ویندوز میتوان با استفاده از دستور arp-d کش ARP را پاک کرد.
- بهروزرسانی خودکار: اکثر سیستمهای عامل بهطور خودکار ARP Cache را بهروزرسانی میکنند. ورودیهای منقضیشده بهطور خودکار حذف میشوند و با دریافت درخواستهای ARP جدید، ورودیهای تازه به جدول اضافه میشوند.
- محدود کردن مدت زمان اعتبار ورودیها: تنظیم مدت زمان TTL برای ورودیهای ARP Cache به شبکه کمک میکند تا با تغییرات در آدرسهای MAC یا جابجایی دستگاهها سازگار شود. بهطور معمول مدت TTL ورودیها در شبکههای مختلف میتواند بهطور دستی تنظیم شود تا توازن بین عملکرد و بهروز بودن اطلاعات حفظ شود.
مشکلات احتمالی ARP
اگرچه ARP مزایای زیادی دارد، اما ممکن است گاهی مشکلاتی نیز برای آن به وجود آید.
- ARP Cache Poisoning: یکی از حملات رایج به شبکهها، حمله ARP Cache Poisoning یا به فارسی، مسمومسازی کش ARP است. در این حمله، مهاجم با ارسال پاسخهای ARP جعلی، جدول ARP دستگاهها را بهروزرسانی کرده و باعث میشود دادهها به آدرس MAC نادرست ارسال شوند. این حمله میتواند به سرقت دادهها یا ایجاد اختلال در شبکه منجر شود. برای جلوگیری از مسمومیت ARP، میتوانید اقدامات زیر را انجام دهید:
- استفاده از ابزارهای تشخیص ARP Poisoning
- پیادهسازی ورودیهای ARP ایستا
- فعال کردن بازرسی دینامیک ARP (DAI)
- استفاده از امنیت پورت روی سوئیچها (مانند محدودیت آدرس MAC)
- پیادهسازی تقسیمبندی VLAN و رمزگذاری ترافیک شبکه
- حملات DDoS: در این روش مهاجمان اغلب با استفاده از حجم بسیار زیادی از دادهها، سرورها، شبکههای کامپیوتری و سیستمها را مختل میکنند. هرچه ابعاد این حمله بزرگتر باشد، از منابع بیشتری برای مختل کردن سیستم و جلوگیری از دسترسی کاربران به آن استفاده میشود. برای جلوگیری از حملات DoS، میتوانید اقدامات زیر را انجام دهید:
- استفاده از فایروالها و سیستمهای تشخیص/پیشگیری از نفوذ
- استفاده از محدودیت نرخ و کنترل دسترسی
- استفاده از خدمات محافظت در برابر DDoS
- پیادهسازی افزونگی در زیرساخت شبکه
- حملات MITM: در حمله مرد میانی، یک شخص ثالث (هکر سایبری) راهی پیدا میکند تا بین دو طرف دیگر حاضر در شبکه قرار گیرد و اطلاعات را سرقت کند. برای جلوگیری از این نوع حمله اقدامات زیر را انجام دهید:
- از پروتکلهای رمزنگاری برای ارتباطات امن استفاده کنید.
- گواهینامههای دیجیتال و SSL/TLS را به کار ببرید.
- از روشهای MFA برای احراز هویت استفاده کنید.
- ترافیک شبکه را برای بروز ناهنجاریها نظارت کنید.
- یکپارچگی دستگاههای شبکه را بررسی کنید.
از استفاده از شبکههای Wi-Fi عمومی غیرایمن خودداری کنید یا هنگام استفاده از شبکههای عمومی از شبکه خصوصی مجازی استفاده کنید.
- هک شدن سشن: این حملات زمانی رخ میدهند که یک هکر سایبری با سرقت شناسه سشن کاربر، کنترل سشن وب او را به دست گیرد. اگر حمله موفقیتآمیز باشد، هکر سایبری میتواند هویت کاربر را کپیبرداری کرده و به جای آن فرد در سیستم فعالیت کند. برای جلوگیری از هک شدن سشن، اقدامات زیر را انجام دهید:
- از HTTPS برای ارتباطات امن استفاده کنید.
- شیوههای مدیریت سشن قوی (مانند پیادهسازی زمان انقضای سشن) را اجرا کنید.
- از رمزگذاری برای انتقال دادههای حساس استفاده کنید.
- احراز هویت چند مرحلهای را پیادهسازی کنید.
- ورودیهای منقضیشده: اگر یک ورودی ARP در دستگاهی بهموقع بروزرسانی نشود، ممکن است دستگاه نتواند بهدرستی به دستگاه مقصد متصل شود. چنین مشکلی اغلب با ارسال درخواست ARP جدید حل میشود.
انواع پروتکل ARP
پروتکل ARP در چندین نوع مختلف برای کاربردهای گوناگون در شبکهها پیادهسازی میشود. هر نوع ARP هدف خاصی دارد و در شرایط متفاوت مورد استفاده قرار میگیرد. در ادامه به انواع پروتکل ARP اشاره میشود.
ARP معمولی (Standard ARP)
از این نوع ARP برای تبدیل آدرس IP به آدرس MAC در شبکههای محلی استفاده میشود. دستگاه مبدا با ارسال درخواست ARP، آدرس MAC دستگاه مقصد را از طریق شبکه کشف میکند.
Proxy ARP
در Proxy ARP، یک روتر یا دستگاه واسط، به جای دستگاه مقصد پاسخ ARP را ارسال میکند. این روش به دستگاهها کمک میکند تا ارتباط با دستگاههای خارج از شبکه محلی (Subnet) را برقرار کنند و نیازی به تغییر پیکربندی شبکه نداشته باشند.
Gratuitous ARP
در ARP یادشده، دستگاه بهصورت خود خواسته (بدون درخواست) آدرس IP و MAC خود را در شبکه اعلام میکند. این روش اغلب برای تشخیص تضاد آدرسهای IP یا بهروزرسانی جداول ARP در دستگاههای دیگر مورد استفاده قرار میگیرد.
Inverse ARP
در Inverse ARP برعکس ARP معمولی عمل میشود؛ یعنی آدرس MAC شناختهشده است و دستگاه تلاش میکند آدرس IP متناظر با آن را کشف کند. این پروتکل اغلب در شبکههای Frame Relay و ATM استفاده میشود.
ارتباط ARP با DNS و DHCP
پروتکل ARP، DNS و DHCP هر کدام وظایف خاصی در شبکههای کامپیوتری دارند، اما با هم همکاری میکنند تا ارتباطات درون شبکهای را به شکلی موثرتر و هماهنگتر مدیریت کنند. هر یک از این پروتکلها در لایههای مختلف مدل شبکه عمل میکنند و نقشهای متفاوتی در مدیریت آدرسها و خدمات شبکه دارند.
ارتباط ARP و DNS
پروتکل DNS (Domain Name System) وظیفه تبدیل نام دامنههای انسانی مانند www.example.com به آدرسهای IP را بر عهده دارد. این فرآیند در لایه کاربرد (Application Layer) انجام میشود. در حالی که ARP مسئول ترجمه آدرسهای IP به آدرسهای MAC است که در لایه پیوند داده (Data Link Layer) برای ارسال داده استفاده میشود.
ارتباط بین ARP و DNS را میتوانیم به این صورت شرح دهیم؛ زمانی که کاربری در مرورگر خود نام یک وبسایت را وارد میکند، ابتدا DNS آدرس IP مربوط به آن دامنه را پیدا میکند. سپس هنگامی که آدرس IP مشخص شد، ARP وارد عمل میشود و این آدرس IP را به آدرس MAC مربوطه در شبکه محلی تبدیل میکند تا دادهها بتوانند ارسال شوند. به این ترتیب DNS و ARP بهصورت متوالی برای ارتباطات شبکهای عمل میکنند؛ DNS آدرس IP را تأمین میکند و ARP آن را به آدرس MAC ترجمه میکند.
ارتباط ARP و DHCP
پروتکل DHCP (Dynamic Host Configuration Protocol) برای اختصاص خودکار آدرسهای IP به دستگاههای شبکه استفاده میشود. زمانی که دستگاهی به شبکه متصل میشود، DHCP یک آدرس IP به آن اختصاص میدهد. این آدرس IP میتواند بهطور موقت (اجارهای) به دستگاه داده شود و پس از مدت مشخصی تغییر کند.
پس از این که DHCP به دستگاه آدرس IP جدید اختصاص داد، ARP برای ترجمه آن آدرس IP به آدرس MAC استفاده میشود. همچنین زمانی که یک دستگاه جدید به شبکه متصل میشود و آدرس IP دریافت میکند، ممکن است از پروتکل ARP برای بررسی تکراری نبودن این آدرس در شبکه استفاده کند. چنین فرآیندی به عنوان Gratuitous ARP نیز شناخته میشود که پیشتر به آن اشاره کردیم.
سه پروتکل یادشده با هم همکاری میکنند تا ارتباطات شبکهای از لایه کاربرد تا لایه فیزیکی بهدرستی برقرار شود. DHCP آدرسهای IP را مدیریت میکند، DNS نامها را به آدرس IP ترجمه میکند و ARP آدرسهای IP را به آدرس MAC برای ارسال نهایی تبدیل میکند.
آنچه درباره پروتکل ARP در این مقاله خواندید
پروتکل ARP یکی از عناصر کلیدی شبکههای کامپیوتری است که با ترجمه آدرسهای IP به آدرسهای MAC، ارتباط بین دستگاههای موجود در شبکه محلی را امکانپذیر میسازد. ARP با کمک به ارسال صحیح دادهها در لایه پیوند داده، نقشی اساسی در درخواست خدمات شبکه دارد. پروتکل یاد شده با قابلیتهایی مانند کش ARP به بهبود عملکرد شبکه و کاهش ترافیک غیرضروری کمک میکند، در حالی که انواع مختلف ARP مانند Proxy ARP و Gratuitous ARP برای موقعیتهای خاص به کار میروند. همچنین پروتکلهای دیگری مانند DNS و DHCP نیز با ARP همکاری میکنند تا ارتباطات شبکهای بهصورت روان و موثر انجام شوند.
سوال های متداول
1- پروتکل ARP چیست؟
ARP (Address Resolution Protocol) پروتکلی است که برای ترجمهی آدرسهای IP به آدرسهای MAC در شبکههای محلی (LAN) استفاده میشود تا ارتباط بین دستگاهها برقرار شود.
2- ARP Cache چه نقشی در شبکه دارد؟
ARP Cache اطلاعات آدرسهای MAC و IP را ذخیره میکند تا از ارسال مکرر درخواستهای ARP جلوگیری شود و سرعت ارتباطات شبکه افزایش یابد.
3- چه تفاوتی بین ARP و DNS وجود دارد؟
DNS نام دامنهها را به آدرسهای IP تبدیل میکند، در حالی که ARP آدرسهای IP را به آدرسهای MAC ترجمه میکند تا دادهها به مقصد صحیح در شبکه ارسال شوند.