NameCheap-Hosting

استفد من الخصومات على خدمات الاستضافة بمختلف انواعها

VPS hosting: up to 30% off!

الثلاثاء، 11 نوفمبر 2014

بروتوكول ARP

 بروتوكول 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.