پروتکل ARP
همان طور که میدانید انتقال دیتا در یک شبکه، بر پایه IP است. IP یک شناسه منطقی است و در لایه اینترنت کار میکند. بستههای IP خود در Frameهای لایه فیزیکی قرار میگیرند و سپس درون شبکه ارسال میشوند.
اما باید به این نکته توجه کرد که Deviceها و Workstationهای درون شبکه محلی برای ارتباط با یک دیگر نیازمند دانستن آدرس سختافزاری یک دیگر هستند. این در حالیست که ما از کامپیوترها و Deviceهایی مانند مودم، روتر، پرینتر و … که در شبکه با آنها کار میکنیم فقط IP آنها را میدانیم در حالی که در عمل به شناسه سختافزاری یا Mac Address آنها نیاز است!
برای آشنایی بیشتر با آدرسهای Mac میتوانید به مقاله «کاربرد آدرس MAC» رجوع کنید. همچنین پیشنهاد میشود مقاله «تغییر آدرس MAC در اوبونتو» را نیز مطالعه فرمایید.
ارتباط بین دو کامپیوتر در ظاهر به وسیله IP انجام میگیرد ولی در واقع Mac Addressها هستند که این ارتباط را برقرار میکنند. سوالی که پیش میآید این است که یک سیستم از کجا آدرس MAC سیستمهای دیگری را که میخواهد از طریق شبکه با آنها ارتباط برقرار کند را بیابد؟ پاسخ پروتکل ARP است.
پروتکل ARP
ARP سرنام عبارت Address Resolution Protocol میباشد، پروتکل ARP به معنی تفکیک آدرس میباشد و یا میتوان گفت که با استفاده از این پروتکل آدرس لایه دو که با لایی مک مرتبط است پیدا میشود.
اگر به طور مختصر در مورد آن توضیح دهیم لازم است بگوییم که پروتکل ARP پروتکلی است که آدرس IP را به آدرس Mac تبدیل میکند.
میتوانید برای آشنایی بیشتر مقاله «آموزش بدست آوردن آدرس IP و آدرس MAC در اوبونتو» را مطالعه بفرمایید.
در بالا از لایه دو گفته شد که به معنی لایه پیوند داده شده میباشد، و به آدرسی که در این لایه وجود دارد آدرس مک میگویند.
لازم به ذکر است که لایه دو، منبع دستگاههایی چون هاپ و سوئیچ میباشد و باید بدانید که آدرس مک هم به صورت یک آدرس ۴۸ بیتی کار میکند که به صورت شش جفت رقم هگزا مانند به نمایش گذاشته میشود، به صورتی است که سازنده آن، آن را داخل هر دستگاه الکترونیکی سختافزاری قرار داده است.
همانطور که عنوان شد، ARP مسئول تبدیل IP به Mac Address است. این پروسه از طریق Broadcasting در داخل شبکه انجام میشود؛ بدین صورت که کامپیوتر ارسالکننده در داخل شبکه فریاد میزند که «این آدرس IP متعلق به چی کسی است؟ من آدرس MAC تو را نیاز دارم! ». این Broadcast به داخل شبکه فرستاده میشود و همه کامپیوترها، دیتای Broadcast را دریافت میکنند. سپس کامپیوتری که آدرس IP ارسال شده متعلق به او میباشد در پاسخ، آدرس MAC خود را میفرستد. در نهایت این پروسه با در اختیار قرار دادن آدرس MAC به کامپیوتری که برای ارسال دادههای خود نیازمند آن آدرس بود کامل میشود.
برای کاهش تعداد Broadcast ها و در نتیجه کاهش ترافیک شبکه، از یک Client Cache که آدرس ها را برای یک بازه زمانی درون یک جدول نگهداری می کند، استفاده میشود. این جدول (ARP Table یا ARP Cache) هر 120 ثانیه Refresh میشود و تغییرات احتمالی را چک میکند.
به این نکته توجه کنید که ARP Table ویندوز را با Mac Address Table سوییچ اشتباه نکنید. Mac Address Table سوئیچ، مشخص کننده این است که کدام Mac Address به کدام پورت سوئیچ مربوط است که اگر بسته ای به سوئیچ برسد، Mac Address مقصد آن را می خواند و بسته را بر روی پورت مربوط به آن میفرستد.
عملکرد پروتکل ARP
عملکرد پروتکل ARP به صورتی است که اگر شخصی بخواهد توسط سیستم کامپیوتر خود، اطلاعاتی را به شخص دیگری ارسال کند ولی او تنها آدرس IP شخص دوم را دارد و هیچ اطلاعاتی از آدرس مک آن ندارد در این گونه مواقع است که پروتکل ARP کمک میکند و باعث میشود که بین دو سیستم کامپیوتر به طور کامل ارتباط برقرار شود.
این ارتباط به صورتی است که تعدادی MAC Address سیستمهای یک شبکه را که ARP Table از آن تشکیل شده است آن را کامل میکنند.
کاربرد پروتکل 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 دیگر قابل استفاده نخواهد بود.
اصطلاحات مهم مرتبط با ARP
- ARP Cache: کاری که اARP انجام میدهد این است که MAC Address را به منبع محل ارسال خود جهت ارجاع در آینده ارسال میکند. بنابراین ارتباطات بعدی میتوانند از MAC Address های موجود در جدول استفاده کنند.
- ARP Cache Timeout: زمانی را که MAC Address در ARP Cache میتواند وجود داشته باشد، نشان میدهد.
- ARP request: پخش یک پکت از طریق شبکه جهت تایید این که آیا با MAC Address مقصد مواجه شدهایم یا خیر.
- ARP response/reply: در واقع پاسخ MAC Address است که توسط مبدا دریافت میشود و به ارتباط بیشتر دادهها کمک میکند.
مزایای استفاده از ARP
- در صورتی که آدرس آیپی را بدانیم به راحتی میتوانیم MAC Address را نیز پیدا کنیم.
- برای اطلاع از MAC Address ها، نیازی به انجام تنظیمات مربوط به nodeهای پایانی نیست، بلکه در صورت نیاز میتوان به سادگی به آنها دست پیدا کرد.
معایب استفاده از ARP
- ممکن است حملات ARP مانند ARP spoofing و ARP Denial of service رخ دهد. ARP Spoofing تکنیکی است که به مهاجم این امکان را میدهد که به یک شبکه اترنت حمله کند. ARP denial of Service نیز مهاجم به طور کلی ترافیک را متوقف میکند.
همچنین بخوانید «چگونگی تغییر آدرس IP در لینوکس از طریق خط فرمان»
درباره فرشید نوتاش حقیقت
همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرمافزارهای آزاد/ متنباز و سیستمعامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.
نوشتههای بیشتر از فرشید نوتاش حقیقتدیدگاهتان را بنویسید لغو پاسخ
این سایت از اکیسمت برای کاهش جفنگ استفاده میکند. درباره چگونگی پردازش دادههای دیدگاه خود بیشتر بدانید.



1 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.