نویسنده: مصطفی پورآقایی | مدیرعامل آرا سامانه ارتباطات مبین
ARP چیست؟
اگر تاکنون با مفاهیمی مانند IP Address، MAC Address یا Switch آشنا شده باشید، احتمالاً این سؤال برایتان پیش آمده است که یک کامپیوتر چگونه با داشتن آدرس IP، دستگاه مقصد را در شبکه پیدا میکند؟
فرض کنید کامپیوتر شما میخواهد اطلاعاتی را برای کامپیوتری دیگر در همان شبکه ارسال کند. سیستمعامل آدرس IP مقصد را میداند، اما تجهیزات لایه دوم شبکه مانند سوئیچها بر اساس MAC Address تصمیمگیری میکنند، نه IP Address.
در اینجا پروتکلی به نام ARP (Address Resolution Protocol) وارد عمل میشود. وظیفه ARP این است که آدرس IP را به آدرس MAC متناظر آن تبدیل کند تا ارتباط بین دو دستگاه در شبکه محلی (LAN) برقرار شود.
اگر بخواهیم تنها یک جمله درباره ARP به خاطر بسپاریم، آن جمله این است:
ARP پلی بین لایه شبکه (Network Layer) و لایه پیوند داده (Data Link Layer) است و IP Address را به MAC Address تبدیل میکند.
در این مقاله با زبان ساده، مثالهای واقعی و تجربههای عملی بررسی میکنیم که ARP چیست، چگونه کار میکند، چرا وجود آن ضروری است و چه نقشی در ارتباطات شبکه ایفا میکند.
پروتکل ARP چیست؟
ARP مخفف Address Resolution Protocol است.
این پروتکل در شبکههای مبتنی بر IPv4 استفاده میشود و وظیفه آن پیدا کردن MAC Address مربوط به یک IP Address است.
به عنوان مثال فرض کنید کامپیوتر شما دارای IP زیر است:
192.168.1.10
و قصد دارد برای سیستم زیر اطلاعات ارسال کند:
192.168.1.20
سیستمعامل مقصد را میشناسد، اما هنوز نمیداند MAC Address این دستگاه چیست.
از آنجایی که سوئیچها اطلاعات را بر اساس MAC Address جابهجا میکنند، ابتدا باید MAC دستگاه مقصد پیدا شود.
اینجاست که ARP شروع به کار میکند.
چرا به ARP نیاز داریم؟
یکی از رایجترین سؤالات دانشجویان شبکه این است:
وقتی IP Address را داریم، چرا به MAC Address نیاز داریم؟
پاسخ ساده است.
IP Address مشخص میکند داده باید به کدام شبکه ارسال شود.
اما داخل همان شبکه، سوئیچ فقط MAC Addressها را میشناسد.
به عبارت دیگر:
- روترها با IP Address کار میکنند.
- سوئیچها با MAC Address کار میکنند.
بنابراین قبل از ارسال اطلاعات در شبکه محلی، سیستم باید MAC Address مقصد را پیدا کند.
این همان وظیفه ARP است.
سادهترین مثال برای درک ARP
فرض کنید میخواهید بستهای را برای یکی از واحدهای یک مجتمع مسکونی ارسال کنید.
شما فقط شماره واحد را میدانید اما نگهبان مجتمع افراد را با نام آنها میشناسد.
ابتدا از نگهبان میپرسید:
«واحد ۲۰ متعلق به چه کسی است؟»
نگهبان پاسخ میدهد:
«واحد ۲۰ متعلق به آقای احمدی است.»
اکنون میتوانید بسته را تحویل دهید.
در شبکه نیز دقیقاً همین اتفاق رخ میدهد.
کامپیوتر ابتدا از همه دستگاههای شبکه میپرسد:
چه کسی IP برابر با 192.168.1.20 را دارد؟
تنها دستگاهی که این IP را دارد پاسخ میدهد:
MAC Address من برابر است با 00:1A:2B:3C:4D:5E
از این لحظه ارتباط برقرار میشود.
ARP چگونه کار میکند؟
فرض کنید دو کامپیوتر در یک شبکه قرار دارند.
| دستگاه | IP Address |
|---|---|
| PC1 | 192.168.1.10 |
| PC2 | 192.168.1.20 |
کاربر PC1 دستور Ping را اجرا میکند.
در این لحظه مراحل زیر اتفاق میافتد.
مرحله اول: بررسی جدول ARP
سیستم ابتدا بررسی میکند آیا قبلاً MAC Address مقصد را یاد گرفته است یا خیر.
اگر وجود داشته باشد، دیگر نیازی به ارسال ARP Request نیست.
مرحله دوم: ارسال ARP Request
اگر اطلاعات در حافظه وجود نداشته باشد، کامپیوتر یک پیام Broadcast ارسال میکند.
مفهوم این پیام بسیار ساده است:
چه کسی IP برابر با 192.168.1.20 را دارد؟
از آنجایی که پیام Broadcast است، تمام دستگاههای موجود در همان شبکه آن را دریافت میکنند.
مرحله سوم: دریافت ARP Reply
تمام دستگاهها پیام را بررسی میکنند.
فقط دستگاهی که IP آن برابر با 192.168.1.20 است پاسخ میدهد.
این پاسخ شامل MAC Address واقعی دستگاه است.
به عنوان مثال:
IP Address : 192.168.1.20
MAC Address : 00:1A:2B:3C:4D:5E
مرحله چهارم: ذخیره در ARP Cache
کامپیوتر این اطلاعات را در حافظه خود ذخیره میکند.
از این لحظه به بعد دیگر لازم نیست برای هر Packet دوباره ARP اجرا شود.
به همین دلیل ارتباطهای بعدی بسیار سریعتر برقرار میشوند.
ARP Request و ARP Reply چه تفاوتی دارند؟
یکی از نکاتی که در آزمونهای شبکه و همچنین پروژههای عملی اهمیت زیادی دارد، تفاوت این دو پیام است.
| ویژگی | ARP Request | ARP Reply |
|---|---|---|
| نوع ارسال | Broadcast | Unicast |
| گیرنده | همه دستگاههای شبکه | فقط درخواستکننده |
| هدف | پیدا کردن MAC Address | اعلام MAC Address |
همین تفاوت باعث میشود ترافیک شبکه تا حد امکان کاهش پیدا کند.
ارتباط ARP با MAC Address
در مقاله MAC Address چیست؟ یاد گرفتیم که سوئیچها تصمیمهای خود را بر اساس MAC Address میگیرند.
اما سیستمعامل معمولاً مقصد را با IP Address میشناسد.
بنابراین قبل از ارسال اولین Frame، باید IP Address به MAC Address تبدیل شود.
دقیقاً همین نقطه، محل عملکرد ARP است.
به همین دلیل بسیاری از مهندسان شبکه ARP را «پل ارتباطی بین IP و MAC» مینامند.
جمعبندی این بخش
اگر بخواهیم عملکرد ARP را در یک جمله خلاصه کنیم:
هر زمان یک دستگاه IP مقصد را بداند اما MAC Address آن را نداند، پروتکل ARP وارد عمل شده و با ارسال ARP Request، MAC Address مقصد را پیدا میکند تا ارتباط در شبکه محلی برقرار شود.



