بروتوكول Address Resolution Protocol
تعلمنا
سابقا أن البيانات المراد ارسالها تدخل في عملية التغليف encapsulation قبل
ارسالها والتي يتم فيها اضافة معلومات ضرورية على البيانات الأصلية وذلك لتتمكن
أجهزة الشبكة لنقلها وكذلك ليتمكن الجهاز المستقبل من استرجاع البيانات. من هذه
المعلومات المضافة عنواني الطبقة الثالثة layer 3 للمرسل والمستقبل IP addresses أي العنوان المتغير، كما يجب اضافة عنواني الطبقة الثانية layer 2 للمرسل والمستقبل MAC addresses وهو
العنوان الثابت.
عندما
يريد جهاز ارسال البيانات يكون عنوان المستقبل المتغير IP address معلوم للمرسل لكنه بالعادة
يجهل عنوان المستقبل الثابت MAC address. وهنا
يحتاج المرسل معرفة العنوان المفقود destination MAC address ويتم ذلك من خلال بروتوكول ARP.
مبدأ عمل
بروتوكول ARP
يقوم
الجهاز المرسل بارسال بيانات متعلقة بالسؤال عن عنوان MAC address لجهاز
معلوم عنوانه الآخر IP address وتسمى
هذه بـ ARP request. اذ يقوم
المرسل بتغليف encapsulation باكيت خاصة ببروتوكول الـ ARP يكون مصدرها عنوان IP address للجهاز
المرسل وعنوان المستقبل فيكون العنوان المخصص للجميع global broadcast وقيمته
(255.255.255.255)، وبعد الانتهاء من اضافة باقي المعلومات الاخرى ترسل الـ packet للطبقة الثانية لاستكمال عملية التغليف ويتم اضافة عنوان MAC address للجهاز المرسل اما عنوان المستقبل فيكون ايضا العنوان
المخصص للجميع broadcast وتكون
قيمته (FFFF.FFFF.FFF). ثم ترسل هذه الـ ARP request لتمر على جهاز switch الذي يقوم بارسالها عبر جميع المنافذ التي لديه كونه broadcast frame أي مرسل لجميع الأجهزة الموجودة بنفس الشبكة
المحلية LAN. فتصل ARP request للأجهزة الطرفية الموجودة في الشبكة المحلية،
حيث يقوم الجهاز المعني باجابة الطلب ويشكل ARP reply يحتوي
على العنوان المطلوب MAC address.
مثال توضيحي
لنفرض
أن الجهاز (10.1.1.1) يريد ارسال بيانات للجهاز (10.1.1.10)، فكونه لا يملك العنوان
الثابت (layer 2 address) للجهاز صاحب
العنوان (10.1.1.10)، فإنه سيأجل عملية ارسال البيانات لحين معرفة العنوان
المفقود. لذا سيقوم بارسال رسالة جديدة ARP request يطلب فيها معرفة العنوان
المفقود ليصل هذا الطلب لجميع الأجهزة الموجودة داخل الشبكة المحلية broadcast message. عند استلام الطلب يقوم الجهاز المعني (10.1.1.10) بتجهيز الرد بتشكيل ARP reply ترسل للجهاز
(10.1.1.1) وتحمل الاجابة على السؤال بخصوص قيمة الـ MAC address للجهاز
(10.1.1.10).
بعد
وصول الرد سيتمكن الجهاز (10.1.1.1) من استمكال عملية التغليف encapsulation وبالتالي ارسال البيانات للجهاز (10.1.1.10). يقوم
الجهاز (10.1.1.1) بتخزين قيمة الـ MAC address مع ما
يقابله من الـ IP address داخل الـ ARP table. لكي يتجنب ارسال طلب ARP request مرة أخرى. يتم الاحتفاظ
بمكونات الـ ARP table في الذاكرة
العشوائية RAM.
فحال
كان الجهاز المستقبل للبيانات في شبكة أخرى ما الذي سيحدث ؟
لنتابع
في الجزء التالي
مبدأ ARP Proxy
لو
أراد الجهاز PC1 ارسال بيانات للجهاز PC2 ولم يكن لديه العنوان الثابت الخاص به، فإن
الجهاز PC1 سيقوم
بارسال ARP request ليسأل عن العنوان المفقود
وسيقوم الجهاز PC2 باجابة الطلب بارسال ARP reply للجهاز
الأول PC1 كما تعلمنا سابقا.
لكن
ماذا لو كان البيانات سترسل لجهاز في شبكة أخرى يفصل بينهما الراوتر، هنا ستظهر
مشكلة كون ال ARP request يرسل بطريقة الـ broadcast وحيث أن جهاز الراوتر لا يمرر مثل هذه الارساليات للأطراف (المنافذ)
الأخرى التي لديه مما يعني أن هذا الارسالية (الطلب) لن يصل للجهاز المعني.
لنأخذ
المثال التالي، يريد الجهاز PC1 ارسال بيانات للجهاز PC3 ولديه
عنوانه المتغير IP address ولكنه لا
يعرف عنوانه الثابت MAC address، عندها
سيقوم الجهاز PC1 بارسال ARP request ليسأل عن عنوان PC3 لكن هذا الطلب لن يصله كون
الراوتر يمنع ال broadcast messages من
العبور لمنافذ أخرى لديه، فهو يقوم بالكشف عن ماهية الرسالة ويقوم هو بمعالجة
مضمون الرسالة وتقديم خدمة تتماشى من المضمون إن كانت لديه القدرة على فعل ذلك، أي
إن كان لديه خدمة فعّالة enabled service ينطبق عليها محتوى الرسالة
من نوع الـ broadcast.
في
حالتنا فإن مضمون الرسالة هي ARP request اي
السؤال عن العنوان الثابت MAC address لجهاز
معلوم عنوانه المتغير IP address. من خلال
قراءة محتوى الرسالة من قبل الراواتر فإنه سيدرك بأن الجهاز PC1 يريد معرفة العنوان الثابت
للجهاز موجود بشبكة أخرى، لذا سيقوم الراوتر باجابة الطلب بدلا من الجهاز PC3 ويريد على الطلب الوارد من الجهاز PC1 وسيحمل
الرد العنوان الثابت لمنفذ الراوترFa0/0 وهذا
الرد يسمى Proxy ARP.