پروتکل ARP چیست؟ و چگونه کار می کند
نقش پروتکل ARP
Address Resolution Protocol به اختصار (ARP) یک پروتکل بسیار مهم در شبکه های کامپیوتری است. وقتی سیستم شخصی می خواهد پیامی را از طریق شبکه ارسال کند، باید داده ها را در لایه های مدل OSI قرار دهد. در هر لایه، باید تمام اطلاعات header مانند پورت های TCP/UDP را در header لایه ۴ ، آدرس و آدرس IP مقصد در سربرگ لایه ۳ و آدرس های MAC مبدا و مقصد را در سربرگ لایه ۲ پر کند. اگر خوب فکر کنید، همه این اطلاعات به جز آدرس MAC مقصد در دسترس مشتری نهایی است. پروتکل (ARP) برای تبدیل یک آدرس MAC بر اساس آدرس IP داده شده در یک شبکه محلی معرفی شده است.
بیایید به مثال نشان داده شده در شکل زیر نگاه کنیم.
PC1 سعی می کند PC3 را که در همان شبکه محلی و همان زیر شبکه ۱۰.۱.۱.۰/۲۴ قرار دارد ، پینگ کند. هنگامی که کاربر دستور ping 10.1.1.3 را اجرا می کند،PC1 قبل از ارسال آن به شبکه شروع به کپسوله کردن درخواست ICMP (ping) در یک فریم اترنت می کند. بیایید به نحوه ساخت کامپیوتر واحد داده پروتکل (PDU) نگاه کنیم:
در لایه ۴: PC1 می داند که پینگ با ارسال ICMP Echo Request کار می کند و منتظر ICMP Echo Response است. بنابراین پروتکل را در لایه ۴ به عنوان ICMP با مجموعه فلگ Echo Request تنظیم می کند. بنابراین، همه چیز مورد نیاز در این لایه در دسترس است.
در لایه ۳: PC1 آدرس IP مقصد را می داند، توسط کاربر در دستور ping 10.1.1.3 به صراحت ذکر شده است، بنابراین آن را در قسمت IP مقصد قرار می دهد. PC1 آدرس IP پیکربندی شده خود را ۱۰.۱.۱.۱ می داند و آن را در قسمت منبع قرار می دهد. بنابراین ، همه چیز مورد نیاز در این لایه در دسترس است.
در لایه ۲: PC1 آدرس MAC پیکربندی شده خود را می داند و در قسمت منبع قرار می دهد. اما هیچ راهی برای PC1 وجود ندارد که بداند کدام مشتری نهایی در LAN 10.1.1.3 پیکربندی شده است و آدرس MAC آن چیست. بنابراین آدرس MAC مقصد در دسترس PC1 نیست و برای بدست آوردن آن باید از ARP استفاده کند.
پروتکل ARP چگونه کار می کند؟
ARP از ارتباط پخش (یک به همه) استفاده می کند تا از تمام کلاینت های نهایی در یک LAN بپرسد که آدرس فیزیکی یک IP مشخص چیست.
پیام های ARP
دو نوع اصلی بسته در عملیات پروتکل ARP وجود دارد:
- درخواست ARP
- پاسخ ARP
شکل زیر نمونه ای از هر دو نوع را نشان می دهد. می توانید مشاهده کنید که چهار قسمت در سربرگ ARP وجود دارد:
- آدرس سخت افزار منبع (MAC)
- آدرس پروتکل منبع (IP)
- آدرس سخت افزار هدف (MAC)
- آدرس پروتکل هدف (IP)
توجه داشته باشید که در پیام ARP Request ، آدرس MAC مقصد آدرس broadcast معروف FFFF-FFFF-FFFF است. این به سوئیچ های LAN نشان می دهد که این ارتباط ارتباطی broadcast شده است و همه دستگاه های متصل در LAN باید یک کپی از فریم را دریافت و پردازش کنند. مقدار مهم دیگر که باید به آن توجه کنید Target MAC 0000-0000-0000 است. این به صاحب IP Target نشان می دهد که فرستنده در تلاش است آدرس فیزیکی این IP را مشخص کند.
توجه داشته باشید که در پیامهای ARP Reply ، آدرسهای MAC مبدا و مقصد، آدرسهای unicast هستند.
وقتی این اتفاق می افتد چهار مورد مشخص به شرح زیر وجود دارد:
۱- میزبان می خواهد داده ها را به میزبان دیگری در همان شبکه ارسال کند. به عنوان مثال، PC2 پیامی را به PC3 ارسال می کند.
- PC2 یک درخواست ARP در مورد آدرس IP PC3 192.168.1.3 ارسال می کند.
- همه در شبکه LAN یک کپی از قاب ARP دریافت می کنند.
- PC3 با آدرس فیزیکی خود BBBB-BBBB-BBBB پاسخ می دهد. همه میزبان های دیگر درخواست ARP را کنار می گذارند.
۲- میزبان می خواهد داده ها را به میزبان دیگری در شبکه دیگر ارسال کند. به عنوان مثال ، PC2 پیامی را به google.com ارسال می کند.
- PC2 به جدول مسیریابی خود نگاه می کند.
- آدرس IP دروازه پیش فرض خود را ۱۹۲.۱۶۸.۱.۱ پیدا می کند.
- یک درخواست ARP در مورد آدرس IP پیش فرض دروازه ۱۹۲.۱۶۸.۱.۱ ارسال می کند.
- همه در شبکه LAN یک کپی از قاب ARP از جمله Router1 دریافت می کنند.
- روتر ۱ با آدرس فیزیکی خود DDDD-DDDD-DDDD پاسخ می دهد.
۳- یک روتر داده هایی را که برای یک میزبان در شبکه متصل محلی تعیین شده است دریافت می کند. روتر ۱ داده هایی را برای PC2 دریافت می کند.
- روتر ۱ یک درخواست ARP در مورد آدرس IP مقصد ۱۹۲.۱۶۸.۱.۲ ارسال می کند.
- همه در شبکه LAN یک کپی از قاب ARP دریافت می کنند.
- PC2 با آدرس فیزیکی خود پاسخ می دهد. همه میزبان های دیگر درخواست ARP را کنار می گذارند.
۴- یک روتر داده هایی را که برای میزبان در شبکه دیگری تعیین شده است دریافت می کند. روتر ۲ داده هایی را که برای PC2 تعیین شده است دریافت می کند.
- روتر ۲ جدول مسیریابی خود را بررسی می کند.
- در می یابد که آدرس بعدی هاپ به سمت PC2 34.43.12.1 است.
- یک درخواست ARP در مورد آدرس IP بعدی ۳۴.۴۳.۱۲.۱ ارسال می کند.
- روتر ۱ یک کپی از درخواست ARP دریافت می کند.
- روتر ۱ با آدرس فیزیکی خود AD12-43AB-F432 پاسخ می دهد.
جدول ARP (ARP Cache)
هنگامی که یک دستگاه آدرس MAC یک IP مشخص را با موفقیت بدست می آورد، اتصال IP-to-MAC را در جدولی به نام جدول ARP ذخیره می کند. ارتباطات بعدی به جای ارسال مجدد درخواست ARP از این اتصال ذخیره شده در حافظه cache استفاده می کنند. بیایید به جدول ARP روتر سیسکو نگاه کنیم.
Router#show arp
Protocol Address Age (min) Hardware Addr Type Interface
Internet ۱۰.۱.۱.۱ – ۰۰E0.B076.9A02 ARPA GigabitEthernet0/1
Internet ۱۰.۱.۱.۲ ۹ ۰۰۳۰.A321.43E3 ARPA GigabitEthernet0/1
Internet ۱۹۲.۱۶۸.۱.۱ – ۰۰E0.B076.9A01 ARPA GigabitEthernet0/0
Internet ۱۹۲.۱۶۸.۱.۲ ۲۳ ۰۰۴۰.۰BAD.3852 ARPA GigabitEthernet0/0
Internet ۱۹۲.۱۶۸.۱.۳ ۵۹ ۰۰E0.F760.8C2D ARPA GigabitEthernet0/0
Internet ۱۹۲.۱۶۸.۱.۴ ۰ ۰۰E0.B01D.B1E7 ARPA GigabitEthernet0/0
Internet ۱۹۲.۱۶۸.۱.۶۴ ۲ ۰۰۶۰.۲FE4.6DB0 ARPA GigabitEthernet0/0
هر ورودی در جدول به طور پیش فرض ۲۴۰ دقیقه (۴ ساعت) نگه داشته می شود. این مقدار با عنوان ARP Timeout شناخته می شود و می تواند در هر اینترفیس روی مقدار متفاوتی تنظیم شود. می توانید با نگاهی به خروجی رابط نمایش آن را بررسی کنید.
Router#sh int GigabitEthernet 0/1
GigabitEthernet0/0/1 is up, line protocol is up (connected)
Hardware is ISR4331-3x1GE, address is 00e0.b076.9a02 (bia 00e0.b076.9a02)
Internet address is 10.1.1.1/24
MTU 1500 bytes, BW 1000000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive not supported
output flow-control is on, input flow-control is on
ARP type: ARPA, ARP Timeout 04:00:00,
Last input 00:00:08, output 00:00:05, output hang never
Last clearing of “show interface” counters never
Input queue: 0/375/0 (size/max/drops); Total output drops: 0
Queueing strategy: fifo
Output queue :0/40 (size/max)
۵ minute input rate 4 bits/sec, 0 packets/sec
۵ minute output rate 4 bits/sec, 0 packets/sec
۴ packets input, 512 bytes, 0 no buffer
Received 0 broadcasts (0 IP multicasts)
۰ runts, 0 giants, 0 throttles
۰ input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
۰ watchdog, 1017 multicast, 0 pause input
۰ input packets with dribble condition detected
۴ packets output, 512 bytes, 0 underruns
۰ output errors, 0 collisions, 1 interface resets
۰ unknown protocol drops
۰ babbles, 0 late collision, 0 deferred
۰ lost carrier, 0 no carrier
۰ output buffer failures, 0 output buffers swapped out
با اجرای arp -a در پنجره خط فرمان ، می توان ARP Cache سیستم عامل های ویندوز یا یونیکس را بررسی کرد:
C:\>arp -a
Internet Address Physical Address Type
۱۹۲.۱۶۸.۱.۱ ۰۰e0.b076.9a01 dynamic
۱۹۲.۱۶۸.۱.۲ ۰۰۴۰.۰bad.3852 dynamic
۱۹۲.۱۶۸.۱.۴ ۰۰e0.b01d.b1e7 dynamic
۱۹۲.۱۶۸.۱.۶۴ ۰۰۶۰.۲fe4.6db0 dynamic
جمع بندی:
- پروتکل (ARP) مکانیزمی برای تبدیل آدرس فیزیکی (MAC) به آدرس منطقی داده شده (IP) در اتصال LAN: IP-to-MAC است.
- یک درخواست ARP در یک broadcast frame قرار می گیرد. بنابراین این ارتباط یک به یک است و هر میزبان در LAN یک نسخه از درخواست ARP را دریافت می کند. فقط مالک IP هدف پاسخ می دهد.
- پاسخ ARP در یک قاب unicast است. بنابراین این یک ارتباط یک به یک بین درخواست کننده و ارسال کننده است.
- هنگامی که دستگاه آدرس فیزیکی IP را دریافت می کند، یک ورودی در ARP Table خود (ARP Cache) ایجاد می کند. هر ارتباط بعدی از ورودی ذخیره شده استفاده می کند.
- هر ورودی در جدول ARP به طور پیش فرض ۴ ساعت نگه داشته می شود. به این ARP Timeout گفته می شود.
مطالب زیر را حتما بخوانید
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
دیدگاهتان را بنویسید لغو پاسخ
برای نوشتن دیدگاه باید وارد بشوید.
با سلام و احترام
استاد ارجمند واقعا لازم دانستم تشکر کنم بابت نشر مطلب ارزنده.
سرسبز باشید
سلام
ممنون از حمایت شما. واقعا این دیدگاه ها باعث دلگرمی ماست.
شاد و پیروز باشید