شبكات الحاسوب Computer Networks

بروتوكول توجيه البطاطا الساخنة (Hot Potato Routing Protocol)


بروتوكول توجيه البطاطا الساخنة (Hot Potato Routing Protocol)

قبل عدة ايام قرأت في الكتاب المنهجي للشبكات في اغلب جامعات العالم (Computer Networking: A Top Down Approach) شرحاً عن بروتوكولات التوجيه وكان من ضمنها البروتوكول المذكور اعلاه وبعد ان قرأت الاسم المثير للفضول ذهبت الى الكوكل واليوتيوب بحثاَ عن شرح عربي لهذا البروتوكول فلم اجد!

نعم لم اجد من شرحه ربما لكوني لم اتعمق في البحث او ربما لأن احداً لم يشرحه بالعربية قبلاً بالفعل!

وفي كلا الحالتين، اردت ان اتأكد من ذلك فطرحت سؤالاً في الفيس بوك عن هذا البروتوكول ومن يعرف عنه بين اصدقائي البالغ عددهم بحدود 850 واغلبهم مهتمين في مجال الشبكات فكان الجواب ان لا احد منهم يعرف شيئاً عن هذا البروتوكول والحقيقة ان هذا امر متوقع فهو بروتوكول توجيه بين الشبكات الرئيسية (WAN routing protocol) وليس من الشائع شرحه في كورسات الشبكات للمبتدئين والمستوى المتوسط لذا احببت ان اشرحه ليكون الشرح العربي الاول لهذا البروتوكول وليكون حافزاً لأخوتي المدونين والاساتذة العرب للبحث المستمر عن ما لم يتم شرحه ليقوموا بشرحه بدل تكرار المكرر الف مرة!.

قبل البدء في شرح البروتوكول لا بد من شرح مفهوم التوجيه بأختصار لمن لا يعرف ما هو:

التوجيه بأختصار هو الوظيفة الاهم للراوتر (الموجه) حيث يقوم بأختيار المسار الامثل لكل حزمة بيانات واصلة اليه من احد المنافذ  (ports) والقيام بأختيار المنفذ الامثل (من بين منافذ الراوتر المتعددة) لتوجيه الحزمة اليه ومتابعة استلامها من قبل الراوتر المجاور وهكذا.  ويقوم الراوتر بهذا العمل بأتباع خوارزمية تسمى خوارزمية التوجية (routing algorithm) والتي تقوم بدورها بأستخدام معلومات جدول يخزن ويحدث بداخل الرواتر اسمه جدول التوجيه (routing table) كما هو موضح في الشكل التالي:

1

وطبعاً هناك الكثير من التفاصيل عن خوارزميات التوجيه وانواع بروتوكولات التوجيه التي تنقسم عموماً الى توجيه ثابت وتوجيه متغير (static and dynamic routing protocols) والتي سبق ان شرحنا عنها في دروس سابقة في المدونة.

ويمكن ان تنقسم بروتوكولات التوجيه ايضاً بصورة اساسية الى:

  • Link state routing protocols
  • Distance vector routing protocols

وقد قام الكثير من الاخوة العرب بشرحها وتوضيحها في فيديوهات كثيرة في اليوتيوب وشروحات في المواقع والمنتديات العربية.

الامر المهم الذي يمكن ان نبدأ به لشرح بروتوكول البطاطا الساخنة هو معرفة ان الانترنت اليوم يحتوي مليارات الاجهزة المتصلة بالشبكة في كل وقت وهو امر يجعل من المستحيل وضع كل عناوين هذه الاجهزة في ذاكرة راوتر واحد او حتى الف راوتر ولذا كالعادة اتجه مهندسوا الشبكات الى التجزئة للمشكلة الى اجزاء اصغر ليسهل التحكم بها وحلها فظهر ما يسمى التوجيه الهرمي (hierarchal routing) الذي يقسم التوجيه الى عدة اجزاء بحيث يكون هناك توجيه بين الانظمة المستقلة (Autonomous Systems AS) وهي شبكات الشركات الكبيرة او مزودي الخدمة او عبارة عن تجميع لعدد من الراوترات لمنطقة معينة في منظومة مستقلة تسمى AS. وهنا سيكون التوجيه بين ال AS هو الطبقة العليا من التوجيه ثم التوجيه بين الراوترات في داخل كل AS هو الطبقة الثانية من التوجيه ولذا سمي التوجيه الهرمي وكما موضح في الشكل ادناه:

2

حيث نرى ان لدينا 3 نظم مستقلة (AS) وفي كل منها مجموعة من الموجهات وهنا يكون كل موجه مسؤولاً عن التوجيه داخل ال AS وبين ال Ass المتجاورة.

في هذا المستوى من الشبكات تكون بروتوكولات التوجيه الثابتة (Static routing) غير مجدية طبعاً لأن متغيرات الشبكة اكبر بكثير من ان يقوم شخص (او حتى مجموعة اشخاص) بمتابعتها وتغييرها يدوياً ولذا تكون كل بروتوكولات التوجيه من النوع الديناميكي ومن اهم هذه البروتوكولات استخداماً وشيوعاً هي:

  • Open Shortest Path First OSPF: وهذا البروتوكول (مفتوح) اي متاح مجاناً للجميع وهو من نوع ال (link state) ويقوم بأختصار بأرسال البيانات الى المنفذ المرتبط بأقصر مسار ونقصد هنا بأقصر مسار المسار الاقل ازدحاماً او الاسرع معدلاً في نقل البيانات وفي حالة وجود مسارين لهما نفس الكلفة فيمكن للراوتر اختيار احدهما لتوجيه البيانات اليه.
  • Routing Information Protocol RIP: وقد ظهر لأول مرة مع نظام تشغيل اليونكس عام 1982 وهو من نوع (distance vector) حيث تقوم الموجهات فيه بأرسال تحديث لبيانات منافذها والشبكات المرتبطة بها الى الموجهات الاخرى كل 30 ثانية.

يعتبر البروتوكولين السابقين من بروتوكولات التوجيه في داخل الانظمة المستقلة (AS) واما البروتوكول الابرز (والوحيد) في التوجيه بين الانظمة المستقلة المختلفة فهو بروتوكول (Border Gateway Protocol BGP) والذي يعبر عنه بأنه “الصمغ الذي يربط الانترنت سوية” وبدونه لا يكون هناك انترنت كما نعرفه اليوم!

ويقوم هذا البروتوكول بالتنسيق بين المعلومات المختلفة التي يستلمها كل راوتر في كل AS من حيث نوع وعدد ومواصفات المسارات الى كل شبكة ويقوم بأختيار المسار الى شبكة ما (او عنوان ما) استناداً الى:

3

  • التفضيلات المحلية للشبكة اي هل ان الشبكة (س) تفضل الاتصال بالشبكة (ص) عبر الشبكة الوسطية (ض) او (ق) وهنا تدخل الاتفاقيات والعقود بين الشركات في تحديد ذلك فهو ليس خيار تقني وانما تجاري ربحي.
  • بعد تحديد المفضل تجارياً يمكن ان يكون هناك ايضاً عدة مسارات فيقوم هذا البروتوكول بأختيار الافضل بحسب اقصر مسار (او ارخص مسار).
  • بأستخدام بروتوكول البطاطا الحارة (كما سنرى الان).
  • وقد يستخدم خيارات اخرى بحسب حاجة الشبكة والشركة التابعة لها.

الان نفترض ان السيناريو التالي حصل في الشبكة:

في لحظة معينة قام الراوتر 1c بأستلام معلومات توجيه من كل من 1b  و 3a تفيد بأنهما يستطيعان ايصاله الى هدفه (شبكة او جهاز خارج ال AS1 ولنفترض انه في ال AS2) وان كلاهما سيكلفان نفس الكلفة (من ناحية الوقت والسرعة وامكانية الوصول) فمن سيختار ليرسل البيانات من خلاله؟

بداية يقوم بروتوكول ال BGP بأستخدام ال OSPF ليرى اين تقع اقرب نقطة توصل الى الشبكات المجاورة (Gateway point) وهنا نرى انها مباشرة الى 3a ولذا فأن مبدأ عمل بروتوكول البطاطا الحارة هو ان يقوم الرواتر 1c بأرسال البيانات الى اقرب (gateway point) تقوم بأخراجه من نظامه المستقل AS  مباشرة ولذا سيختار المسار

1c–>3a–>2a

بدلاً من

1c–>1b–>2a

وهذا هو المبدأ الرئيسي لعمل هذا البروتوكول🙂

اتمنى ان يكون مفيداً ومفهوماً للجميع واكرر ان الهدف من هذا الشرح ليس الخوض في التفاصيل المعقدة خلف هذه العملية وانما شرحها بأبسط الكلمات وبلغة مفهومة للجميع وطبعاً هناك الكثير من طبقات التعقيد لشرح اي مفهوم.

 

4 thoughts on “بروتوكول توجيه البطاطا الساخنة (Hot Potato Routing Protocol)

  1. مشكور استاذ مصطفى ,, لكن ع اى اساس هو اختار المسار دا بردة ,, انا موصلتنش فكرة البرتوكول و ازاى ان المسار اللى فضله هو الاقرب من التانى

    أعجبني

    1. العفو اخي الكريم
      الفكرة انه لو كان المسارين متساويين في الكلفة فان هذا البروتوكول يختار ايهما يوصله الى خارج ال
      AS
      اولا فيرسل البيانات اليه

      أعجبني

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s