يقدم هذا المستند بروتوكول توجيه العبارة الداخلية (IGRP). لها غايتين. الأولى هي تشكيل مقدمة لتكنولوجيا بروتوكول العبارة الداخلية، لأولئك المهتمين باستعمالها، وتقييمها، وربما تنفيذها. والثاني هو توسيع نطاق الاطلاع على بعض الأفكار والمفاهيم المثيرة للاهتمام التي تتجسد في بروتوكول العبارة الداخلية. راجع تكوين IGRP، وتنفيذ Cisco IGRP وأوامر IGRP للحصول على معلومات حول كيفية تكوين IGRP.
يسمح بروتوكول IGRP لعدد من البوابات بتنسيق التوجيه الخاص بها. وتتمثل أهدافها فيما يلي:
توجيه مستقر حتى في الشبكات الكبيرة جدا أو المعقدة. يجب ألا تحدث أي حلقات توجيه، حتى في حالة النقل.
إستجابة سريعة للتغييرات في مخطط الشبكة.
نفقات عامة منخفضة. وهذا يعني أن بروتوكول العبارة الداخلية للشركات (IGRP) ذاته لا ينبغي له أن يستخدم نطاقا تردديا أكبر من النطاق المطلوب فعليا لمهمته.
تقسيم حركة المرور بين عدة طرق متوازية عندما تكون مستصوبة بشكل متساو تقريبا.
مع مراعاة معدلات الأخطاء ومستوى حركة المرور على المسارات المختلفة.
يتناول التنفيذ الحالي لمقابض IGRP توجيه TCP/IP. ومع ذلك، فإن التصميم الأساسي يقصد به أن يكون قادرا على معالجة مجموعة متنوعة من البروتوكولات.
لن تحل أي أداة جميع مشاكل التوجيه. عادة ما تنقسم مشكلة التوجيه إلى عدة أجزاء. وتسمى بروتوكولات مثل IGRP "بروتوكولات العبارة الداخلية" (IGPs). وهي مصممة للاستخدام ضمن مجموعة واحدة من الشبكات، إما تحت إدارة واحدة أو إدارات منسقة تنسيقا وثيقا. ويتم توصيل هذه المجموعات من الشبكات بواسطة "بروتوكولات العبارة الخارجية" (EGPs). تم تصميم بروتوكول العبارة الداخلية (IGP) لتعقب قدر كبير من التفاصيل حول مخطط الشبكة. يتم وضع الأولوية في تصميم بروتوكول العبارة الداخلية على إنتاج المسارات المثالية والاستجابة السريعة للتغييرات. المقصود ب EGP حماية نظام واحد من الشبكات من الأخطاء أو التمثيل الخاطئ المتعمد بواسطة أنظمة أخرى، BGP هو أحد بروتوكولات العبارة الخارجية هذه. وترتكز الأولوية في تصميم أي منتج من السلع والخدمات على الاستقرار والضوابط الإدارية. وغالبا ما يكون كافيا أن يصدر أي من مقدمي الخدمات العامة مسارا معقولا، بدلا من المسار الأمثل.
يحتوي بروتوكول إدارة مجموعات الإنترنت (IGRP) على بعض أوجه التشابه مع البروتوكولات الأقدم مثل بروتوكول معلومات التوجيه الخاص ب Xerox و RIP الخاص ب Berkeley و Dave Mills'hello. وهو يختلف عن هذه البروتوكولات في المقام الأول من حيث تصميمه للشبكات الأكبر حجما والأكثر تعقيدا. راجع قسم المقارنة مع بروتوكول معلومات التوجيه (RIP) للحصول على مقارنة أكثر تفصيلا مع بروتوكول معلومات التوجيه (RIP)، والذي يعد الأكثر إستخداما من الجيل الأقدم من البروتوكولات.
مثل هذه البروتوكولات الأقدم، فإن بروتوكول العبارة الداخلية (IGRP) هو بروتوكول متجه المسافات. في مثل هذا البروتوكول، تتبادل البوابات معلومات التوجيه فقط مع البوابات المجاورة. تحتوي معلومات التوجيه هذه على ملخص للمعلومات حول باقي الشبكة. يمكن تبين رياضيا أن جميع البوابات مجتمعة تقوم بحل مشكلة تحسين من خلال ما يصل لخوارزمية موزعة. تحتاج كل بوابة فقط إلى حل جزء من المشكلة، ويجب أن تتلقى جزءا فقط من إجمالي البيانات.
والبديل الرئيسي ل IGRP هو IGRP المحسن وفئة من الخوارزميات المشار إليها باسم SPF (أقصر مسار أولا). يستخدم OSPF هذا المفهوم. لمعرفة المزيد حول OSPF، ارجع إلى دليل تصميم OSPF. يستند OSPF هذا إلى تقنية تدفق، حيث يتم الحفاظ على كل بوابة محدثة حول حالة كل واجهة على كل بوابة أخرى. تقوم كل بوابة بحل مشكلة التحسين بشكل مستقل من وجهة نظرها باستخدام البيانات الخاصة بالشبكة بالكامل. وهناك مزايا لكل نهج. وفي بعض الظروف، قد تكون SPF قادرة على الاستجابة للتغييرات بسرعة أكبر. لمنع حلقات تكرار التوجيه، يجب أن يتجاهل IGRP البيانات الجديدة لدقائق قليلة بعد أنواع معينة من التغييرات. نظرا لأن SPF به معلومات مباشرة من كل بوابة، فإنه قادر على تجنب حلقات التوجيه هذه. وبالتالي، يمكنها أن تعمل على أساس المعلومات الجديدة على الفور. ومع ذلك، يتعين على SPF التعامل مع بيانات أكثر بكثير من بروتوكول IGRP، في كل من هياكل البيانات الداخلية والرسائل بين البوابات.
IGRP مخصص للاستخدام في البوابات المتصلة بعدة شبكات. نفترض أن الشبكات تستخدم تقنية قائمة على الحزم. وفي الواقع، تعمل البوابات كمحولات للحزم. عندما يريد نظام متصل بشبكة واحدة إرسال حزمة إلى نظام على شبكة مختلفة، فإنه يخاطب الحزمة إلى بوابة. إذا كانت الوجهة على إحدى الشبكات المتصلة بالبوابة، فستقوم البوابة بإعادة توجيه الحزمة إلى الوجهة. إذا كانت الوجهة أكثر بعدا، فستقوم البوابة بإعادة توجيه الحزمة إلى بوابة أخرى أقرب إلى الوجهة. تستخدم البوابات جداول التوجيه لمساعدتهم على تحديد ما يجب عمله بالحزم. فيما يلي مثال بسيط لجدول التوجيه. (العناوين المستخدمة في الأمثلة هي عناوين IP المأخوذة من جامعة روتجرز. لاحظ أن مشكلة التوجيه الأساسية مماثلة للبروتوكولات الأخرى أيضا، ولكن هذا الوصف سيفرض إستخدام IGRP لتوجيه IP.)
شكل 1
network gateway interface ------- ------- --------- 128.6.4 none ethernet 0 128.6.5 none ethernet 1 128.6.21 128.6.4.1 ethernet 0 128.121 128.6.5.4 ethernet 1 10 128.6.5.4 ethernet 1
(تحتوي جداول توجيه IGRP الفعلية على معلومات إضافية لكل بوابة، كما سنرى.) ربطت هذا مدخل إلى إثنان EtherNet، يدعو 0 و 1. تم إعطائهم أرقام شبكة IP (أرقام الشبكات الفرعية بالفعل) 128.6.4 و 128.6.5. وبالتالي يمكن إرسال الحزم الموجهة لهذه الشبكات المحددة مباشرة إلى الوجهة، ببساطة باستخدام واجهة إيثرنت المناسبة. توجد بوابتان قريبتان، 128.6.4.1 و 128.6.5.4. سيتم إعادة توجيه الحزم للشبكات بخلاف 128.6.4 و 128.6.5 إلى واحد أو الآخر من هذه البوابات. يشير جدول التوجيه إلى البوابة التي يجب إستخدامها للشبكة التي يجب إستخدامها. على سبيل المثال، يجب إعادة توجيه الحزم الموجهة إلى مضيف على الشبكة 10 إلى البوابة 128.6.5.4. يأمل المرء أن تكون هذه البوابة أقرب إلى الشبكة 10، أي أن يمر أفضل مسار إلى الشبكة 10 عبر هذه البوابة. الغرض الأساسي من بروتوكول العبارة الداخلية (IGRP) هو السماح للبوابات بإنشاء جداول توجيه مثل هذه وصيانتها.
وكما هو مذكور أعلاه، فإن بروتوكول IGRP هو بروتوكول يسمح للبوابات بإنشاء جدول التوجيه الخاص بها من خلال تبادل المعلومات مع البوابات الأخرى. تبدأ البوابة بإدخالات لجميع الشبكات المتصلة بها مباشرة. تحصل على معلومات حول الشبكات الأخرى من خلال تبادل تحديثات التوجيه مع البوابات المجاورة. في أبسط حالة، ستجد البوابة مسارا واحدا يمثل أفضل طريقة للوصول إلى كل شبكة. ويتميز المسار بالبوابة التالية التي يجب إرسال الحزم إليها وواجهة الشبكة التي يجب إستخدامها والمعلومات المترية. المعلومات المترية هي مجموعة من الأرقام التي تميز مدى جودة المسار. وهذا يسمح للبوابة بمقارنة المسارات التي سمعتها من بوابات مختلفة وتحديد أي منها سيتم إستخدامه. غالبا ما تكون هناك حالات يكون فيها من المنطقي تقسيم حركة المرور بين مسارين أو أكثر. يقوم IGRP بذلك كلما كان هناك مسارين أو أكثر جيدين بالتساوي. كما يمكن للمستخدم تكوينها لتقسيم حركة المرور عندما تكون المسارات جيدة بشكل متساو تقريبا. في هذه الحالة سيتم إرسال المزيد من حركة المرور على المسار باستخدام المقياس الأفضل. الغرض من ذلك هو أنه يمكن تقسيم حركة المرور بين خط بسرعة 9600 بت في الثانية وخط بسرعة 19200 بت في الثانية، وسيحصل خط بسرعة 19200 على ضعف حركة المرور التي يحصل عليها خط بسرعة 9600 بت في الثانية.
تشمل المقاييس المستخدمة من قبل IGRP ما يلي:
زمن التأخير الطوبولوجي
عرض النطاق الترددي لجزء النطاق الترددي الأضيق من المسار
إشغال القناة للمسار
موثوقية المسار
يقصد ب Topological Delay Time مقدار الوقت المستغرق للوصول إلى الوجهة على طول هذا المسار، بافتراض وجود شبكة غير محملة. بالطبع هناك تأخير إضافي عند تحميل الشبكة. ومع ذلك، يتم حساب الحمل باستخدام رقم شغل القناة، وليس بمحاولة قياس التأخيرات الفعلية. النطاق الترددي للمسار هو ببساطة النطاق الترددي بوحدات بت في الثانية لأبطأ إرتباط في المسار. يشير وجود القناة إلى مقدار عرض النطاق الترددي المستخدم حاليا. يتم قياسه، وسوف يتغير مع التحميل. الموثوقية تشير إلى معدل الخطأ الحالي. إنه جزء الحزم التي تصل إلى الوجهة غير تالفة. إنها تقاس.
وعلى الرغم من أنها لا تستخدم كجزء من المقياس، إلا أنه يتم تمرير معلومتين إضافيتين معها: عدد الخطوات و MTU. يعد عدد الخطوات هو ببساطة عدد البوابات التي يجب أن تمر بها الحزمة للوصول إلى الوجهة. MTU هو الحد الأقصى لحجم الحزمة التي يمكن إرسالها عبر المسار بأكمله دون تجزئة. (هذا يعني، أنها الحد الأدنى من وحدات الحد الأقصى للنقل (MTU) لجميع الشبكات المعنية في المسار.)
استنادا إلى المعلومات المترية، يتم حساب "مقياس مركب" واحد للمسار. ويجمع المقياس المركب بين تأثير مختلف المكونات المترية في رقم واحد يمثل "جودة" ذلك المسار. إنه المقياس المركب الذي يستخدم في الواقع لتحديد المسار الأفضل.
تقوم كل بوابة بشكل دوري بإذاعة جدول التوجيه الخاص بها بالكامل (مع فرض بعض الرقابة بسبب قاعدة انقسام الأفق) إلى جميع البوابات المجاورة. عندما تحصل البوابة على هذا البث من بوابة أخرى، فإنها تقارن الجدول بالجدول الموجود الخاص بها. تتم إضافة أي وجهات ومسارات جديدة إلى جدول توجيه البوابة. يتم مقارنة المسارات في البث بالمسارات الموجودة. إذا كان المسار الجديد أفضل، فقد يستبدل المسار الموجود. كما يتم إستخدام المعلومات الموجودة في البث لتحديث تواجد القناة ومعلومات أخرى حول المسارات الموجودة. هذا الإجراء العام مماثل للإجراء المستخدم من قبل كل بروتوكولات متجه المسافات. ويشار إليها في الكتابات الرياضية باسم خوارزمية بيلمان-فورد. راجع RFC 1058 للحصول على تطوير مفصل للإجراء الأساسي، والذي يصف بروتوكول معلومات التوجيه (RIP)، بروتوكول متجه المسافات الأقدم.
في بروتوكول العبارة الداخلية (IGRP)، يتم تعديل خوارزمية Bellman-Ford العامة في ثلاثة جوانب حرجة. أولا، بدلا من القياس البسيط، يتم إستخدام متجه من القياسات لتخصيص المسارات. ثانيا، بدلا من انتقاء مسار واحد بأصغر مقياس، يتم تقسيم حركة المرور بين عدة مسارات، تقع قياساتها في نطاق محدد. وثالثا، استحدثت عدة سمات لتوفير الاستقرار في الحالات التي تتغير فيها الطوبولوجيا.
يتم تحديد أفضل مسار استنادا إلى مقياس مركب:
[(K1 / Be) + (K2 * Dc)] r
حيث K1، K2 = الثوابت، BE = عرض نطاق مسار غير محمل (1 - شغل القناة)، DC = التأخير الطوبولوجي، و R = الموثوقية.
المسار الذي يحتوي على أصغر مقياس مركب سيكون أفضل مسار. حيث هناك يتعدد ممر إلى ال نفسه غاية، العبارة يستطيع وجهت الربط عبر أكثر من واحد ممر. ويتم القيام بذلك وفقا للمقياس المركب لكل مسار بيانات. على سبيل المثال، إذا كان أحد المسارات له قياس مركب من 1 ومسار آخر له قياس مركب من 3، ثلاثة أضعاف عدد الحزم التي سيتم إرسالها عبر مسار البيانات الذي له المقياس المركب من 1.
هناك ميزتان لاستخدام متجه من المعلومات المترية. الأول هو أنه يوفر القدرة على دعم أنواع متعددة من الخدمة من نفس مجموعة البيانات. الميزة الثانية هي الدقة المحسنة. وعندما يستخدم مقياس واحد، يعامل عادة كما لو كان تأخيرا. تتم إضافة كل إرتباط في المسار إلى القياس الإجمالي. أما إذا كان هناك رابط ذو نطاق ترددي عريض منخفض، فإنه يمثل عادة بتأخير كبير. ومع ذلك، فإن قيود النطاق الترددي لا تتراكم مع التأخيرات. من خلال التعامل مع النطاق الترددي كمكون منفصل، يمكن التعامل معه بشكل صحيح. وبالمثل، يمكن معالجة الحمل بواسطة رقم إحتلال قناة منفصل.
يوفر IGRP نظاما لشبكات الكمبيوتر المتصلة بينيا التي يمكنها التعامل بشكل فعال مع مخطط رسم بياني عام بما في ذلك حلقات التكرار. يحتفظ النظام بمعلومات قياس المسار الكامل، أي أنه يعرف معلمات المسار لجميع الشبكات الأخرى التي يتم توصيل أي بوابة بها. يمكن توزيع حركة المرور عبر مسارات متوازية ويمكن حساب معلمات مسارات متعددة في وقت واحد عبر الشبكة بالكامل.
يقارن هذا قسم IGRP مع RIP. تكون هذه المقارنة مفيدة لأن بروتوكول معلومات التوجيه (RIP) يستخدم على نطاق واسع لأغراض مماثلة لبروتوكول العبارة الداخلية (IGRP). غير أن القيام بذلك ليس منصفا تماما. لم يكن الغرض من بروتوكول معلومات التوجيه (RIP) هو تحقيق جميع الأهداف نفسها التي يسعى إليها بروتوكول إدارة مجموعات الإنترنت (IGRP). كان الغرض من بروتوكول معلومات التوجيه (RIP) هو إستخدامه في الشبكات الصغيرة ذات التقنية الموحدة بشكل معقول. وفي مثل هذه التطبيقات يكون ذلك كافيا عموما.
الفرق الأساسي بين بروتوكول العبارة الداخلية وبروتوكول معلومات التوجيه (RIP) هو بنية المقاييس. ولكن من المؤسف أن هذا ليس بالتغيير الذي يمكن تعديله ببساطة بحيث يصلح للتمزيق. ويتطلب ذلك الخوارزميات الجديدة وهياكل البيانات الموجودة في بروتوكول إدارة الموارد البشرية (IGRP).
يستخدم RIP مقياس "عدد الخطوات" البسيط لوصف الشبكة. على عكس بروتوكول العبارة الداخلية (IGRP)، حيث يتم وصف كل مسار بواسطة التأخير والنطاق الترددي، إلخ، في بروتوكول معلومات التوجيه (RIP)، كما يتم وصفه برقم من 1 إلى 15. عادة ما يتم إستخدام هذا الرقم لتمثيل عدد البوابات التي يمر بها المسار قبل الوصول إلى الوجهة. وهذا يعني أنه لا يتم التمييز بين الخط التسلسلي البطيء وشبكة إيثرنت. في بعض عمليات تنفيذ RIP، من الممكن أن يحدد مسؤول النظام أنه يجب عد خطوة معينة أكثر من مرة. يمكن تمثيل الشبكات البطيئة بعدد نقلات كبير. ولكن بما أن الحد الأقصى هو 15، فلا يمكن فعل ذلك كثيرا. على سبيل المثال، إذا تم تمثيل إيثرنت ب 1 وخط 56 كيلوبايت ب 3، يمكن أن يكون هناك على الأكثر 56 كيلوبايت خط في مسار أو يتم تجاوز الحد الأقصى البالغ 15. من أجل تمثيل النطاق الكامل لسرعات الشبكة المتاحة، والسماح بشبكة كبيرة، تشير الدراسات التي قامت بها Cisco إلى أن هناك حاجة إلى قياس 24 بت. إذا كان الحد الأقصى للمقياس صغيرا جدا، فيكون لدى مسؤول النظام خيار غير سار، إما أنه لا يستطيع التمييز بين المسارات السريعة والبطيئة، أو أنه لا يستطيع وضع شبكته كلها في الحد المسموح به. في الواقع، عدد من الشبكات الوطنية كبيرة الآن بما يكفي أن شركة RIP لا تستطيع التعامل معها حتى إذا كل قفزة عد مرة واحدة فقط. لا يمكن إستخدام بروتوكول معلومات التوجيه (RIP) لمثل هذه الشبكات.
إن الإستجابة الواضحة ستكون تعديل RIP للسماح بمقياس أكبر. ولكن من المؤسف أن هذا لن ينجح. مثل كل بروتوكولات متجه المسافات، RIP لديه مشكلة "العد إلى ما لا نهاية". يتم وصف هذا بشكل أكثر تفصيلا في RFC 1058 . وعندما تتغير الطوبولوجيا، ستدخل طرق زائفة. والمقاييس المرتبطة بهذه المسارات المزيفة تزداد ببطء حتى تصل إلى 15، وعندها تزال المسارات. 15 هو الحد الأقصى الصغير الذي يمكن لهذه العملية من التقارب معه بسرعة كبيرة، على افتراض إستخدام التحديثات التي تم تشغيلها. إذا تم تعديل RIP للسماح بمقياس 24 بت، فإن حلقات التكرار سوف تستمر لفترة كافية ليتم حساب المقياس حتى 2**24. هذا غير مقبول. يحتوي بروتوكول حل العناوين (IGRP) على ميزات مصممة لمنع إدخال طرق زائفة. وترد مناقشة هذه المسائل أدناه في الفرع 5-2. من غير العملي معالجة الشبكات المعقدة دون إدخال مثل هذه الميزات أو التغيير إلى بروتوكول مثل SPF.
يفعل بروتوكول العبارة الداخلية (IGRP) أكثر من مجرد زيادة نطاق المقاييس المسموح بها. فهو يعيد هيكلة المقياس لوصف التأخير، والنطاق الترددي، والموثوقية، والحمولة. ومن الممكن تمثيل هذه الاعتبارات في مقياس واحد، مثل مؤشرات النتائج، بيد أن النهج الذي اتبعه برنامج التقييم المستقل قد يكون أكثر دقة. على سبيل المثال، مع وجود قياس واحد، عدة روابط سريعة متعاقبة ستظهر على أنها مكافئة لواحد بطيء. قد يكون هذا هو الحال بالنسبة لحركة المرور التفاعلية، حيث يكون التأخير هو الشاغل الرئيسي. ولكن فيما يتعلق بنقل البيانات بالجملة، يتمثل الشاغل الرئيسي في عرض النطاق الترددي، ولا تمثل إضافة مقاييس معا النهج الصحيح هناك. يعالج بروتوكول IGRP التأخير والنطاق الترددي بشكل منفصل، مما يؤدي إلى تراكم التأخيرات، ولكنه يأخذ الحد الأدنى من عروض النطاق الترددي. ليس من السهل أن نرى كيف ندمج التأثيرات المترتبة على الاعتمادية والتحميل في قياس مكون واحد.
من وجهة نظري، إحدى المزايا الكبيرة لبروتوكول العبارة الداخلية هي سهولة التهيئة. ويمكن ان تمثل مباشرة كميات ذات معنى مادي. وهذا يعني أنه يمكن إعداده تلقائيا، استنادا إلى نوع الواجهة وسرعة الخط، وما إلى ذلك. فبالقياس المكون الواحد، يرجح أكثر أن يكون المقياس "مطهيا" لدمج آثار عدة أشياء مختلفة.
أما الابتكارات الأخرى فهي مسألة خوارزميات وهياكل بيانات أكثر من كونها مسألة بروتوكول التوجيه. على سبيل المثال، يحدد بروتوكول العبارة الداخلية (IGRP) الخوارزميات وهياكل البيانات التي تدعم تقسيم حركة المرور بين عدة مسارات. من الممكن بالتأكيد تصميم تطبيق لبروتوكول معلومات التوجيه (RIP) يقوم بذلك. ومع ذلك، بمجرد إعادة تنفيذ التوجيه، لا يوجد سبب للتمسك ب RIP.
لقد وصفت حتى الآن "بروتوكول العبارة الداخلية (IGRP) العام"، وهي تقنية يمكن أن تدعم التوجيه لأي بروتوكول شبكة. ومع ذلك، تجدر الإشارة في هذا القسم إلى المزيد من التفاصيل حول تنفيذ بروتوكول TCP/IP المحدد. ذلك هو التنفيذ الذي سيتم مقارنته مع RIP.
تشتمل رسائل تحديث RIP ببساطة على لقطات لجدول التوجيه. أي أن لديها عدد من الوجهات والقيم المترية، وقليل آخر. يحتوي تنفيذ IP ل IGRP على بنية إضافية. أولا، يتم تحديد رسالة التحديث بواسطة "رقم نظام مستقل". هذه المصطلحات تأتي من التقاليد الآربانية، ولها معنى محدد هناك. ومع ذلك، بالنسبة لمعظم الشبكات، يعني ذلك أنه يمكنك تشغيل العديد من أنظمة التوجيه المختلفة على نفس الشبكة. وهذا مفيد للأماكن التي تتلاقى فيها الشبكات من عدة مؤسسات. يمكن لكل مؤسسة الحفاظ على التوجيه الخاص بها. ونظرا لأن كل تحديث يحمل عنوانا، يمكن تكوين البوابات بحيث تنتبه فقط للتحديث الصحيح. تم تكوين بوابات معينة لتلقي التحديثات من أنظمة ذاتية متعددة. فهي تمرر المعلومات بين النظم بطريقة خاضعة للرقابة. لاحظ أن هذا ليس حلا كاملا لمشاكل توجيه الأمان. يمكن تكوين أي بوابة للاستماع إلى التحديثات من أي نظام مستقل. ومع ذلك، فإنه لا يزال أداة مفيدة للغاية في تنفيذ سياسات التوجيه حيث تكون درجة معقولة من الثقة بين مسؤولي الشبكة.
تؤثر الميزة الهيكلية الثانية حول رسائل تحديث IGRP على طريقة معالجة المسارات الافتراضية بواسطة IGRP. تتضمن معظم بروتوكولات التوجيه مفهوما للمسار الافتراضي. غالبا ما يكون من غير العملي بالنسبة لتحديثات التوجيه سرد كل شبكة في العالم. تحتاج مجموعة من البوابات بشكل نموذجي إلى معلومات توجيه تفصيلية للشبكات داخل مؤسستها. يمكن إرسال جميع حركات المرور للوجهات خارج المؤسسة الخاصة بها إلى واحد من عدد قليل من بوابات الحدود. قد تحتوي بوابات الحدود هذه على معلومات أكثر اكتمالا. يعد المسار إلى أفضل بوابة حدود "المسار الافتراضي". هو افتراضي بمعنى أنه يتم إستخدامه للوصول إلى أي وجهة غير مدرجة تحديدا في تحديثات التوجيه الداخلية. يعمل بروتوكول معلومات التوجيه (RIP) وبعض بروتوكولات التوجيه الأخرى على تعميم المعلومات حول المسار الافتراضي كما لو كان شبكة حقيقية. ويتبع بروتوكول إدارة مجموعات الإنترنت (IGRP) نهجا مختلفا. بدلا من إدخال واحد وهمي للمسار الافتراضي، يسمح بروتوكول العبارة الداخلية بوضع علامة على الشبكات الحقيقية كمرشحين لكونها افتراضية. ويتم تنفيذ هذا الإجراء من خلال وضع معلومات حول هذه الشبكات في قسم خارجي خاص في رسالة التحديث. ومع ذلك، قد يعتقد أيضا بأنه تشغيل مرتبط قليلا بتلك الشبكات. يقوم بروتوكول IGRP بمسح جميع المسارات الافتراضية للمرشح بشكل دوري ويختار الموجه الأقل قياسا كالمسار الافتراضي الفعلي.
ومن المحتمل أن يكون هذا النهج في التعامل مع التخلف عن السداد أكثر مرونة بعض الشيء من النهج الذي تبنته أغلب تطبيقات بروتوكول معلومات التوجيه (RIP). يمكن تعيين بوابات بروتوكول معلومات التوجيه (RIP) في معظم الأحوال لإنشاء مسار افتراضي بمقياس محدد محدد محدد محدد. والقصد من ذلك هو أن يتم ذلك على بوابات الحدود.
يوفر هذا القسم وصفا مفصلا لبروتوكول العبارة الداخلية (IGRP).
عند تشغيل البوابة لأول مرة، تتم تهيئة جدول التوجيه الخاص بها. وقد يتم ذلك بواسطة عامل تشغيل من وحدة تحكم طرفية، أو من خلال قراءة معلومات من ملفات التكوين. يتم توفير وصف لكل شبكة متصلة بالبوابة، بما في ذلك التأخير الهيكلي على طول الارتباط (على سبيل المثال، كم من الوقت يستغرق بت واحد لعكس الارتباط) وعرض النطاق الترددي للارتباط.
شكل 2
على سبيل المثال، في الرسم التخطيطي أعلاه، سيتم إبلاغ البوابة S بأنها متصلة بالشبكات 2 و 3 عبر الواجهات المقابلة. وبالتالي، في البداية، تعرف البوابة 2 فقط أنها يمكنها الوصول إلى أي كمبيوتر وجهة في الشبكات 2 و 3. كل البوابات مبرمجة لتنقل دوريا إلى بواباتها المجاورة المعلومات التي استهلت بها، بالاضافة إلى المعلومات التي جمعت من بوابات أخرى. وبالتالي، ستتلقى البوابة S تحديثات من البوابين R و T وستتعلم أنه يمكنها الوصول إلى أجهزة الكمبيوتر في الشبكة 1 من خلال البوابة R وأجهزة الكمبيوتر في الشبكة 4 من خلال البوابة T. وبما أن البوابة S ترسل جدول التوجيه بالكامل، في بوابة الدورة التالية، سيتعلم T أنه يمكنها الوصول إلى الشبكة 1 من خلال البوابة S. من السهل أن ترى أن المعلومات حول كل شبكة في النظام ستصل في نهاية المطاف إلى كل بوابة في النظام، مما يوفر فقط اتصال الشبكة بالكامل.
شكل 3
________ Network 1 | gw A --nw2-- gw C | / | | / | nw3 nw4 nw5 | / | | / | gw B gw D _|_____________|____ Network 6
تقوم كل بوابة بحساب قياس مركب لتحديد مدى استصواب مسارات البيانات للوصول إلى أجهزة الكمبيوتر الوجهة. على سبيل المثال، في الرسم التخطيطي أعلاه، لوجهة في الشبكة 6، تقوم العبارة أ (gw A) بحساب الدوال المترية لمسارين، عبر البوابين B و C. لاحظ أن المسارات يتم تعريفها ببساطة بواسطة الخطوة التالية. هناك في الواقع ثلاثة مسارات محتملة من الشبكة A إلى الشبكة 6:
مباشرة إلى B
إلى C ومن ثم إلى B
إلى C ثم إلى D
ومع ذلك، لا يلزم إختيار البوابة A بين المسارين المشمولين C. يحتوي جدول التوجيه في A على إدخال واحد يمثل المسار إلى C. يمثل المتري أفضل طريقة للوصول من C إلى الوجهة النهائية. إذا كان A يرسل حزمة إلى C، فإن الأمر يرجع إلى C لتحديد ما إذا كان سيتم إستخدام B أو D.
المعادلة 1
الدالة المترية المركبة المحسوبة لكل مسار بيانات موضح أدناه:
[(K1 / Be) + (K2 * Dc)] r
حيث R = الموثوقية الكسرية (٪ من عمليات الإرسال التي يتم استقبالها بنجاح في الخطوة التالية)، Dc = تأخير مركب، Be = النطاق الترددي الفعال: عرض النطاق الترددي غير المحمل x (1 - شغل القناة)، و K1 و K2 = الثوابت.
المعادلة 2
ويمكن، من حيث المبدأ، تحديد التأخير المركب، دي سي، على النحو المبين أدناه:
Dc = Ds + Dcir + Dt
حيث أن DS = تأخير التحويل، DCIR = تأخير الدائرة (تأخير النشر 1 بت)، و DT = تأخير الإرسال (تأخير عدم التحميل لرسالة 1500 بت).
ومع ذلك، يستخدم في الممارسة العملية رقم تأخير قياسي لكل نوع من أنواع تقنية الشبكات. على سبيل المثال، سيكون هناك رقم تأخير قياسي لشبكة الإيثرنت، وللخطوط التسلسلية بأي معدل بت معين.
هنا مثال على كيف يمكن أن يبدو جدول توجيه العبارة A في حالة الرسم التخطيطي للشبكة 6 أعلاه. (لاحظ أن المكونات المنفردة للمتجه المتري لا يتم إظهارها، من أجل البساطة.)
مثال جدول التوجيه:
الشبكة | الواجهة | البوابة التالية | متري |
---|---|---|---|
1 | ن.و | None | متصل مباشرة |
2 | ن و 2 | None | متصل مباشرة |
3 | ن.و. 3 | None | متصل مباشرة |
4 | ن و 2 | C | 1270 |
ن.و. 3 | B | 1180 | |
5 | ن و 2 | C | 1270 |
ن.و. 3 | B | 2130 | |
6 | ن و 2 | C | 2040 |
ن.و. 3 | B | 1180 |
والعملية الاساسية لبناء جدول توجيه بتبادل المعلومات مع الجيران تصفها خوارزمية بيلمان-فورد. تم إستخدام الخوارزمية في البروتوكولات السابقة مثل RIP (RFC 1058). للتعامل مع الشبكات الأكثر تعقيدا، يضيف بروتوكول إدارة مجموعات الإنترنت (IGRP) ثلاث ميزات إلى خوارزمية Bellman-Ford الأساسية:
بدلا من القياس البسيط، يتم إستخدام متجه من القياسات لتخصيص المسارات. يمكن حساب قياس مركب واحد من هذا المتجه وفقا للمعادلة 1 أعلاه. يسمح إستخدام المتجه للعبارة باستيعاب أنواع مختلفة من الخدمة، باستخدام العديد من المعاملات المختلفة في المعادلة 1. كما أنها تتيح تمثيلا أكثر دقة لخصائص الشبكة من قياس واحد.
بدلا من انتقاء مسار واحد بأصغر مقياس، يتم تقسيم حركة المرور بين عدة مسارات بمقاييس تقع في نطاق محدد. وهذا يتيح إستخدام عدة طرق في نفس الوقت مما يوفر نطاقا تردديا فعالا أكبر من أي مسار واحد. يتم تحديد الفرق V بواسطة مسؤول الشبكة. يتم الاحتفاظ بجميع المسارات ذات المقياس المركب الأدنى M. بالإضافة إلى ذلك، يتم الاحتفاظ بجميع المسارات التي يكون قياسها أقل من V x M. يتم توزيع حركة المرور بين مسارات متعددة في تناسب عكسي إلى المقاييس المركبة.
هناك بعض المشاكل مع مفهوم الفرق هذا. من الصعب الخروج باستراتيجيات تجعل إستخدام قيم التباين أكبر من 1، ولا تؤدي أيضا إلى تكرار الحزم. في cisco إطلاق 8.2، لا يطبق الفرق سمة. (لست متأكدا من إصدار الميزة التي تمت إزالتها.) التأثير من هذا هو تعيين الفرق بشكل دائم إلى 1.
تم إدخال العديد من المميزات لتوفير الاستقرار في الحالات التي يتغير فيها المخطط. وتهدف هذه الميزات إلى منع حلقات التوجيه و"العد إلى ما لا نهاية"، التي اتسمت بها المحاولات السابقة لاستخدام خوارزميات من نوع فورد لهذا النوع من التطبيقات. تتمثل ميزات الاستقرار الأساسية في "عمليات إيقاف التشغيل" و"التحديثات التي تم تشغيلها" و"تقسيم الأفق" و"التسميم". وستناقش هذه المسائل بمزيد من التفصيل أدناه.
إن انشقاق حركة المرور (النقطة 2) يثير خطرا بسيطا إلى حد ما. تم تصميم التباين V للسماح للبوابات باستخدام مسارات متوازية ذات سرعات مختلفة. على سبيل المثال، قد يكون هناك خط بسرعة 9600 بت في الثانية يعمل بالتوازي مع خط بسرعة 19200 بت في الثانية للتكرار. إذا كان التباين V هو 1، سيتم إستخدام المسار الأفضل فقط. لذلك لن يتم إستخدام خط بسرعة 9600 بت في الثانية إذا كان للخط بسرعة 19200 بت في الثانية موثوقية معقولة. (على أي حال، إذا كانت عدة مسارات متشابهة، سيتم مشاركة الحمل فيما بينها.) ومن خلال زيادة التباين، يمكننا السماح بتقسيم حركة المرور بين أفضل الطرق والمسارات الأخرى التي هي تقريبا جيدة. مع وجود تباين كبير بدرجة كافية، سيتم تقسيم حركة المرور بين الخطين. الخطر هو أنه مع وجود تنوع كبير بما فيه الكفاية، تصبح المسارات مسموحة ليس فقط أبطأ، لكنها في الواقع "في الإتجاه الخاطئ". وبالتالي، يجب أن تكون هناك قاعدة إضافية لمنع إرسال حركة المرور "من الخادم": لا يتم إرسال حركة مرور عبر المسارات التي يكون المقياس المركب البعيد الخاص بها (القياس المركب الذي يتم حسابه في الخطوة التالية) أكبر من القياس المركب الذي يتم حسابه في البوابة. وعلى وجه العموم، يشجع المسؤولون عن النظام على عدم تعيين الفرق فوق 1 إلا في حالات محددة حيث يلزم إستخدام مسارات متوازية. في هذه الحالة، يتم تعيين الفرق بعناية لتوفير النتائج "الصحيحة".
تم تصميم IGRP لمعالجة "أنواع الخدمة" المتعددة والبروتوكولات المتعددة. نوع الخدمة هو مواصفات في حزمة بيانات تقوم بتعديل طريقة تقييم المسارات. على سبيل المثال، يسمح بروتوكول TCP/IP للحزمة بتحديد الأهمية النسبية للنطاق الترددي العالي، أو التأخير المنخفض، أو الموثوقية العالية. وبشكل عام، ستحدد التطبيقات التفاعلية فترات تأخير منخفضة، في حين ستحدد تطبيقات النقل المجمع نطاقا تردديا عريضا مرتفعا. تحدد هذه المتطلبات القيم النسبية لكلمتي K1 و K2 المناسبة للاستخدام في EQ. 1. يشار إلى كل مجموعة من المواصفات في الحزمة المراد دعمها باسم "نوع الخدمة". لكل نوع من الخدمات، يجب إختيار مجموعة من المعلمات K1 و K2. يتم الاحتفاظ بجدول توجيه لكل نوع من أنواع الخدمات. يتم القيام بذلك لأن المسارات يتم تحديدها وترتيبها طبقا للمقياس المركب المعرف بواسطة EQ. 1. وهذا مختلف لكل نوع من أنواع الخدمات. يتم تجميع المعلومات من جميع جداول التوجيه هذه لإنتاج رسائل تحديث التوجيه المتبادلة بين البوابات، كما هو موضح في الشكل 7.
يصف هذا القسم عمليات التوقف والتحديثات التي تم تشغيلها وتقسيم الأفق والتسميم. وقد تم تصميم هذه الميزات لمنع البوابات من التقاط المسارات الخاطئة. كما هو موضح في RFC 1058 ، يمكن أن يحدث ذلك عندما يصبح المسار غير قابل للاستخدام، بسبب فشل بوابة أو شبكة. من حيث المبدأ، تعمل البوابات المجاورة على اكتشاف حالات الفشل. ثم يقومون بإرسال تحديثات التوجيه التي تظهر المسار القديم على أنه غير قابل للاستخدام. ومع ذلك، من الممكن أن لا تصل التحديثات إلى بعض أجزاء الشبكة على الإطلاق، أو أن تتأخر في الوصول إلى بوابات معينة. ويمكن لبوابة ما زالت تؤمن بأن المسار القديم جيد أن تستمر في نشر هذه المعلومات، وبالتالي الدخول من جديد في المسار الفاشل إلى النظام. في نهاية المطاف، سيتم نشر هذه المعلومات عبر الشبكة والعودة إلى البوابة التي قامت بإعادة حقنها. والنتيجة هي مسار دائري.
في الواقع، هناك بعض التكرار بين التدابير المضادة. من حيث المبدأ، ينبغي أن تكون عمليات التوقف والتحديثات التي يتم تشغيلها كافية لمنع المسارات الخاطئة في المقام الأول. غير أن حالات الفشل في الاتصالات بمختلف أنواعها قد تتسبب في عدم كفايتها من الناحية العملية. يهدف تقسيم الأفق وتسميم المسار إلى منع حلقات التوجيه في أي حالة.
عادة، يتم إرسال جداول التوجيه الجديدة إلى البوابات المجاورة بشكل منتظم (كل 90 ثانية بشكل افتراضي، رغم أنه يمكن ضبط ذلك بواسطة مسؤول النظام). التحديث الذي تم تشغيله هو جدول توجيه جديد يتم إرساله على الفور، إستجابة لبعض التغييرات. إن أهم تغيير هو إزالة مسار. يمكن أن يحدث هذا بسبب انتهاء صلاحية المهلة (قد يكون هناك بوابة أو خط مجاور قد انخفض)، أو لأن رسالة تحديث من البوابة التالية في المسار تظهر أن المسار لم يعد قابلا للاستخدام. عندما يكتشف G لعبارة أن المسار لم يعد قابلا للاستخدام، فإنه يؤدي إلى تشغيل التحديث على الفور. سيظهر هذا التحديث هذا المسار كغير قابل للاستخدام. ضع في الاعتبار ما يحدث عند وصول هذا التحديث إلى البوابات المجاورة. إذا كان طريق الجيران يشير إلى G، يجب على الجار إزالة المسار. وهذا يتسبب في قيام الجار بتشغيل تحديث، إلخ. وبالتالي فإن الفشل سوف يؤدي إلى إطلاق موجة من رسائل التحديث. ستتكاثر هذه الموجة عبر ذلك الجزء من الشبكة الذي مرت فيه المسارات عبر البوابة أو الشبكة الفاشلة.
ستكون التحديثات التي تم تشغيلها كافية إذا أمكننا ضمان وصول موجة التحديثات إلى كل بوابة مناسبة على الفور. ولكن هنالك مشكلتان. أولا، يمكن إسقاط الحزم التي تحتوي على رسالة التحديث أو تلفها بواسطة إرتباط ما في الشبكة. ثانيا، التحديثات التي تم تشغيلها لا تحدث على الفور. من المحتمل أن تصدر البوابة التي لم تحصل بعد على التحديث الذي تم تشغيله تحديثا منتظما في الوقت غير المناسب تماما، مما يؤدي إلى إعادة توجيه المسار غير الصحيح في جار حصل بالفعل على التحديث الذي تم تشغيله. فالقيود مصممة للتغلب على هذه المشاكل. وتقول قاعدة الرفض إنه عند إزالة مسار، لن يتم قبول أي مسار جديد للوجهة نفسها لفترة من الوقت. وهذا يعطي التحديثات التي يتم تشغيلها الوقت للوصول إلى جميع البوابات الأخرى، بحيث يمكننا التأكد من أن أي مسارات جديدة نحصل عليها ليست مجرد بوابة تعيد إدخال البوابة القديمة. يجب أن تكون فترة التوقف طويلة بما يكفي للسماح بموجة التحديثات التي تم تشغيلها بالانتقال عبر الشبكة. بالإضافة إلى ذلك، يجب أن يشمل بضع دورات بث منتظمة، لمعالجة الحزم المسقطة. ضع في الاعتبار ما يحدث في حالة إسقاط أحد التحديثات التي تم تشغيلها أو تلفه. ستصدر البوابة التي أصدرت هذا التحديث تحديثا آخر في التحديث العادي التالي. سيؤدي ذلك إلى إعادة تشغيل موجة التحديثات التي تم تشغيلها في الجيران الذين لم يتلقوا الموجة الأولية.
يجب أن يكون الجمع بين التحديثات المشغلة والمعوقات كافيا للتخلص من المسارات التي انتهت صلاحيتها ومنع إعادة دمجها. لكن بعض الاحتياطات الاضافية تستحق ان تفعل على اية حال. فهي تسمح بوجود شبكات مفقودة جدا، وشبكات أصبحت مقسمة. والاحتياطات الإضافية التي يدعو إليها بروتوكول IGRP هي تسميم الأفق المقسم والتوجيه. وينشأ الأفق المنقسم من ملاحظة مفادها أنه من غير المنطقي على الإطلاق أن يرسل المرء مسارا عائدا إلى الإتجاه الذي جاء منه. تأملوا في الحالة التالية:
network 1 network 2 -------------X-----------------X gateway A gateway B
ستخبر البوابة A B بأن لديها مسارا إلى الشبكة 1. عندما يرسل B تحديثات إلى A، لا يوجد أي سبب على الإطلاق لذكرها الشبكة 1. بما أن A أقرب إلى 1، لا يوجد سبب يجعله يفكر في الانتقال عبر B. تنص قاعدة تقسيم الأفق على أنه يجب إنشاء رسالة تحديث منفصلة لكل جار (في الواقع كل شبكة مجاورة). يجب أن يحذف التحديث الخاص بجار معين مسار تلك النقطة إلى هذا الجار. تمنع هذه القاعدة حلقات التكرار بين البوابات المتجاورة. على سبيل المثال، افترض فشل واجهة A للشبكة 1. بدون قاعدة الأفق الفاصل، فإن b ستخبر أ أنها يمكن أن تصل إلى 1. وبما انه لم يعد لديه طريق حقيقي، يمكن ان يسلك "أ" هذا الطريق. في هذه الحالة، كل من A و B سيكون لديهما طريقان إلى 1. ولكن من شأن الإشارة إلى (أ) و (ب) أن تشير إلى (أ). وبالطبع فإن التحديثات والأحكام المسبقة ستمنع حدوث هذا. ولكن نظرا لعدم وجود سبب لإعادة إرسال المعلومات إلى المكان الذي جاءت منه، فإن تقسيم الأفق يستحق القيام به على أية حال. بالإضافة إلى دوره في منع حلقات التكرار، يحافظ الأفق المقسم على حجم رسائل التحديث بشكل أقل.
يجب أن يمنع تقسيم الأفق حلقات التكرار بين البوابات المتجاورة. يقصد بتسميم المسار كسر حلقات أكبر. القاعدة هي أنه عندما يظهر تحديث المقياس للمسار الموجود ليزيد بشكل كاف، هناك تكرار حلقي. يجب إزالة المسار ووضعه في مساحة فارغة. القاعدة حاليا هي أن مسار يتم إزالته إذا زاد القياس المركب أكثر من معامل 1.1. ليس آمنا لأي زيادة في القياس المركب فقط أن يتم تشغيل إزالة المسار، بما أن تغييرات صغيرة في القياس يمكن أن تحدث بسبب التغييرات في شغل القناة أو الموثوقية. إذا عامل 1.1 هو مجرد الكشف عن مجريات الأمور. القيمة الدقيقة ليست مهمة. نتوقع أن تكون هذه القاعدة مطلوبة فقط لكسر حلقات التكرار الكبيرة جدا، حيث سيتم منع حلقات التكرار الصغيرة من خلال التحديثات والتقييدات التي يتم تشغيلها.
اعتبارا من الإصدار 8.2، توفر مدونة Cisco خيارا لتعطيل عمليات الرفض. والعيب في هذه القيود أنها تؤخر اعتماد طريق جديد عندما يفشل طريق قديم. باستخدام المعلمات الافتراضية، يمكن أن يستغرق الأمر عدة دقائق قبل أن يعتمد الموجه مسارا جديدا بعد إجراء تغيير. ولكن، للأسباب الموضحة أعلاه، ليس من المأمون ببساطة إزالة عمليات الاعتراض. وسوف يتم حساب النتيجة إلى ما لا نهاية، كما هو موضح في RFC 1058. ونحن نخمن، ولكن لا يمكننا أن نثبت، أنه باستخدام نسخة أقوى من تسمم المسار، فإن عمليات التصيد لم تعد مطلوبة لوقف العد إلى ما لا نهاية. وبالتالي فإن تعطيل عمليات التوقف يتيح هذا الشكل الأقوى من تسميم المسار. لاحظ أن الأفق المقسم والتحديثات التي تم تشغيلها لا تزال سارية المفعول.
يعتمد الشكل الأقوى لتسميم المسار على عدد الخطوات. إذا زاد عدد الخطوات للمسار، تتم إزالة المسار. من الواضح أن هذا سيؤدي إلى إزالة المسارات التي لا تزال صالحة. إذا تغير شيء في مكان آخر في الشبكة بحيث يمر المسار الآن من خلال بوابة أخرى، فسيزداد عدد الخطوات. في هذه الحالة، لا يزال المسار صالحا. ومع ذلك، لا توجد طريقة آمنة تماما لتمييز هذه الحالة من حلقات التوجيه (العد إلى ما لا نهاية). لذلك فإن الطريقة الاكثر امانا هي إزالة الطريق كلما زاد عدد الخطوات. إذا كان المسار لا يزال شرعيا، ستتم إعادة تثبيته بواسطة التحديث التالي، وسيتسبب ذلك في حدوث تحديث تم تشغيله سيؤدي إلى إعادة تثبيت المسار في مكان آخر من النظام.
بصفة عامة، تعتمد خوارزميات متجه المسافات 1 مسارات جديدة بسهولة. المشكلة هي إزالة القديمة تماما من النظام. لذلك ينبغي ان تكون القاعدة التي تتصف بالعدوانية المفرطة في إزالة الطرق المريبة آمنة.
تهدف مجموعة العمليات الموضحة في الأشكال من 4 إلى 8 إلى معالجة بروتوكول شبكة واحد، على سبيل المثال، TCP/IP أو DECnet أو بروتوكول ISO/OSI. ومع ذلك، لن يتم توفير تفاصيل البروتوكول إلا ل TCP/IP. قد تقوم البوابة المفردة بمعالجة البيانات التي تتبع أكثر من بروتوكول. نظرا لأن كل بروتوكول له بنى عنونة وتنسيقات حزم مختلفة، فإن رمز الكمبيوتر المستخدم لتنفيذ الأشكال من 4 إلى 8 سيكون بشكل عام مختلفا لكل بروتوكول. وستختلف العملية الموصوفة في الشكل 4 إلى أقصى حد، كما هو موضح في الملاحظات التفصيلية للشكل 4. وستكون للعمليات المبينة في الشكل 5 إلى 8 نفس الهيكل العام. سيكون الاختلاف الأساسي من بروتوكول إلى بروتوكول هو تنسيق حزمة تحديث التوجيه، والذي يجب تصميمه ليكون متوافقا مع بروتوكول محدد.
لاحظ أن تعريف الوجهة قد يختلف من بروتوكول إلى بروتوكول. يمكن إستخدام الطريقة الموضحة هنا للتوجيه إلى الأجهزة المضيفة الفردية أو الشبكات أو مخططات العناوين الهرمية الأكثر تعقيدا. يعتمد أي نوع من التوجيه يتم إستخدامه على بنية عنونة البروتوكول. يدعم تنفيذ TCP/IP الحالي التوجيه إلى شبكات IP فقط. وبالتالي فإن "الوجهة" تعني في الواقع رقم شبكة IP أو الشبكة الفرعية. يتم الاحتفاظ بمعلومات الشبكة الفرعية للشبكات المتصلة فقط.
توضح الأشكال من 4 إلى 7 التعليمات البرمجية الظاهرية الخاصة بمختلف أجزاء عملية التوجيه المستخدمة بواسطة البوابات. في بداية البرنامج، يتم إدخال البروتوكولات والمعلمات المقبولة التي تصف كل واجهة.
ستعالج البوابة بروتوكولات معينة مدرجة فقط. سيتم تجاهل أي اتصال من نظام يستخدم بروتوكولا غير مدرج بالقائمة. وفيما يلي مدخلات البيانات:
الشبكات التي يتم توصيل البوابة بها.
نطاق ترددي عريض غير محمل لكل شبكة.
التأخير الطوبولوجي لكل شبكة.
موثوقية كل شبكة.
تواجد قناة لكل شبكة.
وحدة الحد الأقصى للنقل (MTU) لكل شبكة.
ثم يتم حساب الدالة المترية لكل مسار بيانات وفقا للمعادلة 1. لاحظوا ان البنود الثلاثة الاولى دائمة إلى حد معقول. وهي وظيفة تقوم عليها تقنية الشبكة الأساسية، ولا تعتمد على الحمل. يمكن تعيينها من ملف تكوين أو من إدخال عامل التشغيل المباشر. لاحظ أن بروتوكول العبارة الداخلية (IGRP) لا يستخدم التأخير المقاس. وتشير كل من النظرية والخبرة إلى أنه من الصعب للغاية بالنسبة للبروتوكولات التي تستخدم التأخير المقاس للحفاظ على التوجيه المستقر. هناك معياران محسوبان: الموثوقية واحتلال القناة. تعتمد الموثوقية على معدلات الخطأ التي تم الإبلاغ عنها بواسطة أجهزة واجهة الشبكة أو البرامج الثابتة.
وبالإضافة إلى هذه المدخلات، تتطلب خوارزمية التوجيه قيمة لعدة معلمات توجيه. ويتضمن ذلك قيم المؤقت، والتباين، وما إذا كانت عمليات الرفض ممكنة أم لا. يتم تحديد ذلك عادة بواسطة ملف تكوين أو إدخال عامل التشغيل. (اعتبارا من الإصدار 8.2 من Cisco، يتم تعيين الفرق بشكل دائم على 1.)
بمجرد إدخال المعلومات الأولية، يتم تشغيل العمليات في البوابة بواسطة الأحداث - إما وصول حزمة بيانات إلى إحدى واجهات الشبكة أو انتهاء صلاحية مؤقت. وتنشأ العمليات المبينة في الأشكال من 4 إلى 7 على النحو التالي:
عند وصول الحزمة، تتم معالجتها وفقا للشكل 4. وهذا يؤدي إلى إرسال الحزمة إلى واجهة أخرى، أو تجاهلها، أو قبولها لمزيد من المعالجة.
عندما يتم قبول حزمة من قبل البوابة لمزيد من المعالجة، يتم تحليلها بطريقة خاصة بالبروتوكول غير موضحة في هذه المواصفات. إذا كانت الحزمة تحديث توجيه، فإنها تتم معالجتها وفقا للشكل 5.
الشكل 6 يوضح الأحداث التي تم تشغيلها بواسطة مؤقت. تم تعيين المؤقت لإنشاء المقاطعة مرة واحدة في الثانية. عند حدوث المقاطعة، يتم تنفيذ العملية الموضحة في الشكل 6.
الشكل 7 يوضح الإجراء الفرعي لتحديث التوجيه. تظهر الاستدعاءات إلى هذا الإجراء الفرعي في الشكلين 5 و 6.
وبالإضافة إلى ذلك، يبين الشكل 8 تفاصيل الحسابات المترية المشار إليها في الشكلين 5 و 7.
هناك أربع ثوابت زمنية حرجة تتحكم في نشر مسار المرور وانتهاء صلاحيته. قد يقوم مسؤول النظام بتعيين هذه الثوابت الزمنية. على أي حال، هناك قيم افتراضية. هذه الثوابت الزمنية هي:
وقت البث—يتم بث التحديثات بواسطة جميع البوابات على جميع الواجهات المتصلة في هذه الحالة غالبا. الافتراضي هو مرة كل 90 ثانية.
وقت غير صالح - إذا لم يتم تلقي أي تحديث لمسار معين خلال هذا الوقت، يعتبر أنه قد انقضى الوقت. يجب أن يكون عدة مرات وقت البث، للسماح بإمكانية إسقاط الحزم التي تحتوي على تحديث بواسطة الشبكة. الافتراضي هو 3 مرات وقت البث.
وقت الاحتجاز - عندما يصبح الوصول إلى وجهة غير ممكن (أو عندما يكون القياس قد زاد بما يكفي لتسميم)، يذهب الوجهة إلى "إهمال". أثناء هذه الحالة، لن يتم قبول أي مسار جديد لنفس الوجهة لهذا المقدار من الوقت. يشير وقت الانتظار إلى المدة التي يجب أن تستمر فيها هذه الحالة. لازم يكون اكتر من مرة وقت البث. القيمة ثلاثة أضعاف وقت البث بالإضافة إلى 10 ثوان. (كما هو موضح في قسم تعطيل التقييدات، من الممكن تعطيل عمليات الرفض.)
مسح الوقت—إذا لم يتم تلقي أي تحديث لوجهة معينة خلال هذا القدر من الوقت، تتم إزالة الإدخال الخاص بها من جدول التوجيه. لاحظ الفرق بين وقت غير صالح ووقت مسح: بعد وقت غير صالح، ينتهي المسار ويزال. إن لا يكون هناك ممر متبقي إلى غاية، الغاية الآن يتعذر الوصول. ومع ذلك، يبقى إدخال قاعدة البيانات للوجهة. ويتعين عليها أن تظل قائمة حتى يتسنى لها فرض هذا الرفض. بعد وقت التسييل، تتم إزالة إدخال قاعدة البيانات من الجدول. يجب أن يكون أطول من الوقت غير الصالح بالإضافة إلى وقت التوقف. الإعداد الافتراضي هو 7 مرات وقت البث.
وتفترض هذه الأرقام هياكل البيانات الرئيسية التالية. ويتم الاحتفاظ بمجموعة منفصلة من بنى البيانات هذه لكل بروتوكول مدعوم من قبل البوابة. وضمن كل بروتوكول، يتم الاحتفاظ بمجموعة منفصلة من بنى البيانات لكل نوع من أنواع الخدمات لكي يتم دعمه.
لكل وجهة معروفة للنظام، هناك قائمة (قد تكون خالية) بالمسارات إلى الوجهة، ووقت انتهاء صلاحية الرفض، ووقت آخر تحديث. يشير وقت التحديث الأخير إلى آخر مرة تم فيها تضمين أي مسار لهذه الوجهة في تحديث من بوابة أخرى. لاحظ أن هناك أيضا أوقات تحديث محفوظة لكل مسار. عندما تتم إزالة المسار الأخير إلى الوجهة، يتم وضع الوجهة في قائمة الانتظار، ما لم يتم تعطيل قوائم التحكم في الوصول (راجع قسم تعطيل القوائم المغلقة للحصول على مزيد من المعلومات). يشير وقت انتهاء صلاحية الرفض إلى الوقت الذي تنتهي فيه مدة صلاحية الرفض. حيث أنه ليس صفرا يشير إلى أن الوجهة قيد الرفض. لتوفير وقت الحساب، من الأفضل أيضا الاحتفاظ ب "أفضل قياس" لكل وجهة. هذا ببساطة هو الحد الأدنى للمقاييس المركبة لكل المسارات إلى الوجهة.
لكل مسار إلى وجهة، هناك عنوان الخطوة التالية في المسار، القارن أن يكون استعملت، متجه للمقاييس التي تميز المسار، بما في ذلك التأخير الهيكلي، عرض النطاق الترددي، الموثوقية، وسكن القناة. وتقترن معلومات أخرى أيضا بكل مسار، بما في ذلك عدد الخطوات، MTU، ومصدر المعلومات، والمقياس المركب البعيد، والمقياس المركب المحسوب من هذه الأرقام وفقا للمعادلة 1. هناك أيضا وقت آخر تحديث. يشير مصدر المعلومات إلى المكان الذي جاء منه أحدث تحديث لهذا المسار. عمليا هذا هو نفسه عنوان الخطوة التالية. وقت التحديث الأخير هو ببساطة الوقت الذي وصل فيه آخر تحديث لهذا المسار. يتم إستخدامه لانتهاء صلاحية مسارات المهلة.
لاحظ أن رسالة تحديث IGRP تحتوي على ثلاثة أجزاء: داخلي، نظام (يعني "هذا النظام الذاتي" ولكن ليس داخلي)، وخارجي. القسم الداخلي مخصص للمسارات إلى الشبكات الفرعية. لا يتم تضمين جميع معلومات الشبكة الفرعية. يتم تضمين شبكات فرعية واحدة فقط. هذه هي الشبكة المقترنة بالعنوان الذي يتم إرسال التحديث إليه. عادة ما يتم بث التحديثات على كل واجهة، لذلك فهذه هي الشبكة التي يتم إرسال البث عليها. (تنشأ حالات أخرى للاستجابات لطلب بروتوكول العبارة الداخلية (IGRP) والإشارة إلى بروتوكول العبارة الداخلية (IGRP).) يتم وضع الشبكات الرئيسية (على سبيل المثال، الشبكات غير الفرعية) في جزء النظام من رسالة التحديث ما لم يتم وضع علامة عليها كشبكات خارجية.
سيتم وضع علامة خارجي على الشبكة إذا تم تعلمها من بوابة أخرى ووصلت المعلومات إلى الجزء الخارجي من رسالة التحديث. يسمح تنفيذ Cisco أيضا لمسؤول النظام بإعلان الشبكات المحددة كشبكات خارجية. ويشار إلى المسارات الخارجية أيضا باسم "تقصير المرشح". هي مسارات تنتقل إلى البوابات أو عبرها والتي تعتبر مناسبة كافتراضية، ويتم إستخدامها عندما لا يوجد مسار صريح إلى الوجهة. على سبيل المثال في Rutgers نقوم بتكوين البوابة التي تربط Rutgers بشبكتنا الإقليمية بحيث ترمز إلى المسار إلى العمود الفقاري ل NSFnet كخارجي. يختار تنفيذ Cisco المسار الافتراضي من خلال إختيار ذلك المسار الخارجي بأصغر مقياس.
والقصد من الأجزاء التالية هو توضيح أجزاء معينة من الأشكال من 4 إلى 8.
الشكل 4 يصف المعالجة العامة لحزم الإدخال. ويستخدم هذا ببساطة لتوضيح المصطلحات. من الواضح أن هذا ليس وصفا كاملا لما تقوم به بوابة IP.
تستخدم هذه العملية قائمة البروتوكولات المدعومة ومعلومات حول الواجهات التي تم إدخالها عند تهيئة البوابة. تعتمد تفاصيل معالجة الحزمة على البروتوكول المستخدم من قبل الحزمة. ويتم تحديد ذلك في الخطوة A. الخطوة A هي الجزء الوحيد من الشكل 4 الذي تتم مشاركته بواسطة جميع البروتوكولات. بمجرد معرفة نوع البروتوكول، يتم إستخدام تنفيذ الشكل 4 المناسب لنوع البروتوكول. يتم وصف تفاصيل محتويات الحزمة حسب مواصفات البروتوكول. تتضمن مواصفات البروتوكول إجراء لتحديد وجهة الحزمة، وإجراء لمقارنة الوجهة بعناوين البوابة الخاصة لتحديد ما إذا كانت البوابة نفسها هي الوجهة، وإجراء لتحديد ما إذا كانت الحزمة عبارة عن بث، وإجراء لتحديد ما إذا كانت الوجهة جزءا من شبكة محددة. وتستخدم هذه الإجراءات في الخطوتين باء وجيم من الشكل 4. يتطلب الاختبار في الخطوة D بحثا عن الوجهات المدرجة في جدول التوجيه. يكون الاختبار راضيا إذا كان هناك إدخال في جدول التوجيه للوجهة، وكانت الوجهة قد اقترنت به على الأقل مسار واحد قابل للاستخدام. لاحظ أنه يتم الاحتفاظ ببيانات الوجهة والمسار المستخدمة في هذه الخطوة والخطوة التالية بشكل منفصل لكل نوع من الخدمات المدعومة. لذلك تبدأ هذه الخطوة بتحديد نوع الخدمة المحددة بواسطة الحزمة، وتحديد مجموعة هياكل البيانات المطابقة لاستخدامها لهذا الإجراء وللخطوة التالية.
يكون المسار قابلا للاستخدام لأغراض الخطوتين D و E إذا كان متركبه عن بعد أقل من المتري المركب الخاص به. المسار الذي يكون المتري المركب عن بعد أكبر من المتري المركب هو مسار تكون خطواته التالية "أبعد" من الوجهة، مقيسة بالمقياس. ويشار إليه باسم "مسار المنبع". من الطبيعي أن يتوقع المرء أن إستخدام القياسات سوف يمنع إختيار مسارات المنبع. من السهل أن نرى أن مسار المنبع لا يمكن أبدا أن يكون أفضل مسار. على أي حال، إذا كان هناك تغاير كبير مسموح به، فإن المسارات غير الأفضل يمكن إستخدامها. بعض هذه يمكن أن تكون في المنبع.
الخطوة E تحسب المسار للاستخدام. المسارات التي لا يقل قياسها المركب البعيد عن قياساتها المركبة لا يتم أخذها بعين الاعتبار. إذا كان هناك أكثر من مسار مقبول، تستخدم هذه المسارات بشكل مرجح من التناوب الدوري. التردد الذي يستخدم به المسار يتناسب عكسيا مع مقياسه المركب.
الشكل 5 يصف معالجة تحديث توجيه تم تلقيه من بوابة مجاورة. تلك التحديثات تتكون من قائمة الإدخالات، كل منها يعطي معلومات لوجهة واحدة. يمكن أن يحدث أكثر من إدخال لنفس الوجهة في تحديث توجيه واحد، لاستيعاب أنواع متعددة من الخدمة. وتتم معالجة كل بند من هذه الإدخالات على حدة، كما هو موضح في الشكل 5. إذا كان الإدخال في القسم الخارجي من التحديث، فسيتم تعيين العلامة الخارجية للوجهة إذا تمت إضافتها نتيجة لهذه العملية.
يجب تكرار العملية الموضحة بالكامل في الشكل 5 مرة واحدة لكل نوع من الخدمات التي تدعمها البوابة، باستخدام مجموعة معلومات الوجهة / المسار المقترنة بهذا النوع من الخدمة. وهذا موضح في الحلقة الخارجية في الشكل 5. يجب معالجة تحديث التوجيه بالكامل مرة واحدة لكل نوع من الخدمات. (لاحظ أن التنفيذ الحالي ل IGRP لا يدعم أنواعا متعددة من الخدمات لذلك فإن الحلقة الخارجية لم يتم تنفيذها فعليا.)
في الخطوة (أ)، يتم إجراء إختبارات القبول الأساسية على المسار. وينبغي أن يشمل ذلك إختبارات المعقولية للوجهة المقصودة. يجب رفض أرقام شبكات ("Martian") المستحيلة. (راجع RFC 1009 وRFC 1122
للحصول على مزيد من المعلومات.) يتم رفض التحديثات أيضا إذا كانت الوجهة التي تشير إليها موجودة في قائمة الرفض، أي أن وقت انتهاء صلاحية الرفض ليس صفرا ومتأخر عن الوقت الحالي.
في الخطوة B يتم البحث في جدول التوجيه لمعرفة ما إذا كان هذا الإدخال يصف مسارا معروفا بالفعل. يتم تعريف المسار في جدول التوجيه بواسطة الوجهة التي يتم اقترانه بها، والخطوة التالية المدرجة كجزء من المسار، وواجهة المخرجات التي سيتم إستخدامها للمسار، ومصدر المعلومات (العنوان الذي يأتي منه التحديث—بشكل طبيعي نفس الخطوة التالية). يصف الإدخال من حزمة التحديث مسارا يتم إدراج وجهته في الإدخال، وواجهة الإخراج الخاصة به هي الواجهة التي جاء إليها التحديث، والتي تمثل نقلتها التالية ومصدر المعلومات الخاص بها عنوان البوابة التي أرسلت التحديث (المصدر s).
في الخطوة H والخطوة T، تمت جدولة عملية التحديث الموضحة في الشكل 7. سيتم تشغيل هذه العملية في الواقع بعد انتهاء العملية بأكملها الموضحة في الشكل 5. أي أن عملية التحديث الموصوفة في الشكل 7 لن تحدث إلا مرة واحدة، حتى إذا تم تشغيلها عدة مرات أثناء المعالجة الموضحة في الشكل 5. علاوة على ذلك، يجب إتخاذ إحتياطات لمنع إصدار التحديثات بشكل متكرر، إذا كانت الشبكة تتغير بسرعة.
يتم تنفيذ الخطوة k إذا كانت الوجهة الموضحة بواسطة الإدخال الحالي في حزمة التحديث موجودة بالفعل في جدول التوجيه. ك يقارن المقياس المركب الجديد المحسوب من البيانات في حزمة التحديث بأفضل مقياس مركب للوجهة. لاحظ أن أفضل مقياس مركب لا تتم إعادة حسابه في هذا الوقت، لذلك، إذا كان المسار الذي يتم أخذه في الاعتبار موجودا بالفعل في جدول التوجيه، فقد يقارن هذا الاختبار مقاييس جديدة وقديمة لنفس المسار.
يتم تنفيذ الخطوة L للمسارات التي تكون أسوأ من أفضل قياس مركب موجود. وهذا يشمل كلا من المسارات الجديدة التي هي أسوأ من المسارات القائمة والمسارات الموجودة التي زاد قياسها المركب. تختبر الخطوة L ما إذا كان المسار الجديد مقبولا أم لا. لاحظ أن هذا الاختبار يطبق كلا من الاختبار لمعرفة ما إذا كان المسار الجديد جيدا بما يكفي للاحتفاظ به وتوجيه التسمم. لكي تكون مقبولة، يجب ألا تكون قيمة التأخير هي القيمة الخاصة التي تشير إلى وجهة يتعذر الوصول إليها (لتنفيذ IP الحالي، وكل الآحاد في حقل 24 بت)، ويجب أن يكون القياس المركب (الذي يتم حسابه كما هو محدد في الشكل 8) مقبولا. لتحديد ما إذا كان المتري المركب مقبول، قارنه بمقاييس مركبة لجميع المسارات الأخرى إلى الوجهة. خليني أقل شي من هدول. يكون المسار الجديد مقبولا إذا كان < V x M، حيث يكون V هو مجموعة التباين عند تهيئة البوابة. إذا كان V = 1 (والذي يكون صحيحا دائما اعتبارا من الإصدار 8.2 من Cisco)، فلا يمكن قبول قياس أسوأ من الموجود. هناك إستثناء واحد لهذا: إذا كان المسار موجودا بالفعل وكان المسار الوحيد إلى الوجهة، فسيتم الاحتفاظ بالمسار إذا لم يتم زيادة القياس بأكثر من 10٪ (أو حيث يتم تعطيل عمليات الرفض، إذا لم يتم زيادة عدد الخطوات).
يتم تنفيذ الخطوة V عندما تشير المعلومات الجديدة لمسار إلى أن القياس المركب سيتم خفضه. يتم مقارنة المقاييس المركبة لكل المسارات إلى الوجهة D. في هذه المقارنة، يتم إستخدام المقياس المركب الجديد ل P، بدلا من المقياس الذي يظهر في جدول التوجيه. يتم حساب الحد الأدنى للمقياس المركب M. ثم يتم فحص كل المسارات إلى D مرة أخرى. إذا كان القياس المركب لأي مسار > M x V، فإن ذلك المسار تتم إزالته. V هو التباين الذي تم إدخاله عند تهيئة البوابة. (اعتبارا من الإصدار 8.2 من Cisco، يتم تعيين الفرق بشكل دائم على 1.)
يتم تشغيل العملية الموضحة في الشكل 6 مرة في الثانية. وهو يقوم بفحص وحدات التوقيت المختلفة في جدول التوجيه لمعرفة ما إذا كان قد انتهت صلاحية أي منها. هذه المؤقتات مذكورة أعلاه.
في الخطوة U، يتم تنشيط العملية الموضحة في الشكل 7.
تكون الخطوة R والخطوة S ضرورية لأن المقاييس المركبة المخزنة في جدول التوجيه تعتمد على إشغال القناة، والذي يتغير مع الوقت، بناء على القياسات. وبشكل دوري، تتم إعادة حساب إحتلال القناة، باستخدام متوسط متحرك لحركة المرور المقاسة من خلال الواجهة. إذا كانت القيمة المحسوبة حديثا تختلف عن القيمة الموجودة، فيجب ضبط جميع المقاييس المركبة التي تتضمن تلك الواجهة. يتم فحص كل مسار ظاهر في جدول التوجيه. أي مسار تستخدم خطواته التالية الواجهة "I" له إعادة حساب المترجم المركب الخاص به. ويتم هذا وفقا للمعادلة 1، باستخدام الحد الأقصى لاحتلال القناة للقيمة المخزنة في جدول التوجيه كجزء من قياس المسار، واحتلال القناة الذي تم حسابه حديثا للواجهة.
الشكل 7 يصف كيفية إنشاء البوابة لرسائل التحديث التي سيتم إرسالها إلى بوابات أخرى. يتم إنشاء رسالة منفصلة لكل واجهة شبكة متصلة بالبوابة. ويتم إرسال هذه الرسالة بعد ذلك إلى جميع البوابات الأخرى التي يمكن الوصول إليها من خلال الواجهة (الخطوة J). ويتم ذلك عموما بإرسال الرسالة كبث. ومع ذلك، إذا كانت تقنية الشبكة أو البروتوكول لا يسمح بعمليات البث، فقد يكون من الضروري إرسال الرسالة بشكل فردي إلى كل بوابة.
بشكل عام، يتم إنشاء الرسالة عن طريق إضافة إدخال لكل وجهة في جدول التوجيه، في الخطوة G. لاحظ أنه يجب إستخدام بيانات الوجهة/المسار المقترنة بكل نوع من الخدمات. في أسوأ الحالات، تتم إضافة إدخال جديد إلى التحديث لكل وجهة لكل نوع من أنواع الخدمة. ومع ذلك، قبل إضافة إدخال إلى رسالة التحديث في الخطوة G، يتم مسح الإدخالات التي تمت إضافتها بالفعل. إذا كان الإدخال الجديد موجودا بالفعل في رسالة التحديث، فلن تتم إضافته مرة أخرى. يقوم إدخال جديد بتكرار إدخال موجود عندما تكون الوجهات وعبارات الخطوة التالية متطابقة.
من أجل التبسيط، فإن التعليمات البرمجية المزيفة تتجاهل شيء واحد - رسائل تحديث بروتوكول إدارة مجموعات الإنترنت (IGRP) تتضمن ثلاثة أجزاء: داخلي، ونظام، وخارجي، مما يعني أن هناك في الواقع ثلاثة حلقات فوق الوجهات. ويتضمن الأول الشبكات الفرعية فقط للشبكة التي يتم إرسال التحديث إليها. ويتضمن الثاني جميع الشبكات الرئيسية (على سبيل المثال، الشبكات غير الفرعية) التي لا يتم وضع علامة عليها كشبكات خارجية. والثالث يتضمن كل الشبكات الرئيسية التي يتم وضع علامة عليها كشبكات خارجية.
تقوم الخطوة E بتنفيذ إختبار انقسام الأفق. في الحالة العادية، يفشل هذا الاختبار للمسارات التي يخرج أفضل مسار لها نفس الواجهة التي يتم إرسال التحديث إليها. ومع ذلك، إذا كان يتم إرسال التحديث إلى وجهة معينة (على سبيل المثال، إستجابة لطلب IGRP من بوابة أخرى، أو كجزء من "نقطة إلى نقطة IGRP")، يفشل أفق التقسيم فقط إذا كان أفضل مسار قد أتى في الأصل من تلك الوجهة (حيث يكون "مصدر المعلومات" الخاص به هو نفسه الوجهة) وكانت واجهة الإخراج الخاصة به هي نفسها التي جاء منها الطلب.
يوضح الشكل 8 كيفية معالجة المعلومات المترية من رسائل التحديث التي يتم استقبالها بواسطة البوابة، وكيفية إنشاؤها لرسائل التحديث التي يتم إرسالها بواسطة البوابة. لاحظ أن الإدخال مبني على مسار واحد معين إلى الوجهة. إذا كان هناك أكثر من مسار إلى الوجهة، يتم إختيار مسار يكون الحد الأدنى للمقياس المركب الخاص به. إذا كان هناك أكثر من مسار يحتوي على الحد الأدنى للمقياس المركب، يتم إستخدام قاعدة عدم ربط تعسفية. (لمعظم البروتوكولات، يعتمد هذا على عنوان بوابة الخطوة التالية.)
الشكل 4 - معالجة الحزم الواردة
Data packet arrives using interface I A Determine protocol used by packet If protocol is not supported then discard packet B If destination address matches any of gateway's addresses or the broadcast address then process packet in protocol-specific way C If destination is on a directly-connected network then send packet direct to the destination, using the encapsulation appropriate to the protocol and link type D If there are no paths to the destination in the routing table, or all paths are upstream then send protocol-specific error message and discard the packet E Choose the next path to use. If there are more than one, alternate round-robin with frequency proportional to inverse of composite metric. Get next hop from path chosen in previous step. Send packet to next hop, using encapsulation appropriate to protocol and data link type.
الشكل 5- معالجة تحديثات التوجيه الواردة
Routing update arrives from source S For each type of service supported by gateway Use routing data associated with this type of service For each destination D shown in update A If D is unacceptable or in holddown then ignore this entry and continue loop with next destination D B Compute metrics for path P to D via S (see Fig 8) If destination D is not already in the routing table then Begin Add path P to the routing table, setting last update times for P and D to current time. H Trigger an update Set composite metric for D and P to new composite metric computed in step B. End Else begin (dest. D is already in routing table) K Compare the new composite metric for P with best existing metric for D. New > old: L If D is shown as unreachable in the update, or holddowns are enabled and the new composite metric > (the existing metric for D) * V [use 1.1 instead of V if V = 1, as it is as of Cisco release 8.2] O or holddowns are disabled and P has a new hop count > old hop count then Begin Remove P from routing table if present If P was the last route to D then Unless holddowns are disabled Set holddown time for D to current time + holddown time T and Trigger an update End else Begin Compute new best composite metric for D Put the new metric information into the entry for P in the routing table Add path P to the routing table if it was not present. Set last update times for P and D to current time. End New <= OLD: V Set composite metric for D and P to new composite metric computed in step B. If any other paths to D are now outside the variance, remove them. Put the new metric information into the entry for P in the routing table Set last update times for P and D to current time. End End of for End of for
الشكل 6 - المعالجة الدورية
Process is activated by regular clock, e.g. once per second For each path P in the routing table (except directly connected interfaces) If current time < P'S LAST UPDATE TIME + INVALID TIME THEN CONTINUE WITH THE NEXT PATH P Remove P from routing table If P was the last route to D then Set metric for D to inaccessible Unless holddowns are disabled, Start holddown timer for D and Trigger an update else Recompute the best metric for D End of for For each destination D in the routing table If D's metric is inaccessible then Begin Clear all paths to D If current time >= D's last update time + flush time then Remove entry for D End End of for For each network interface I attached to the gateway R Recompute channel occupancy and error rate S If channel occupancy or error rate has changed, then recompute metrics End of for At intervals of broadcast time U Trigger update
شكل 7—إنشاء تحديث
Process is caused by "trigger update" For each network interface I attached to the gateway Create empty update message For each type of service S supported Use path/destination data for S For each destination D E If any paths to D have a next hop reached through I then continue with the next destination If any paths to D with minimal composite metric are already in the update message then continue with the next destination G Create an entry for D in the update message, using metric information from a path with minimal composite metric (see Fig. 8) End of for End of for J If there are any entries in the update message then send it out interface I End of for
شكل 8- تفاصيل الحسابات المترية
يصف هذا القسم إجراء المقاييس الحاسوبية وعدد الخطوات من تحديث توجيه قادم. الإدخال إلى هذه الوظيفة هو إدخال لوجهة معينة في حزمة تحديث التوجيه. الإنتاج هو متجه للمقاييس التي يمكن إستخدامها لحساب القياس المركب، وعدد الخطوات. إذا تم إضافة هذا المسار إلى جدول التوجيه، يتم إدخال متجه المقاييس بالكامل في الجدول. معلمات الواجهة المستخدمة في التعريفات التالية هي تلك التي تم تعيينها عند تهيئة البوابة، للواجهة التي تم وصول تحديث التوجيه عليها، باستثناء أن شغل القناة وموثوقيتها يستندان إلى متوسط متحرك لحركة المرور المقاسة من خلال الواجهة.
التأخير = التأخير من الحزمة + تأخر مخطط الواجهة
النطاق الترددي = الحد الأقصى (النطاق الترددي من الحزمة والنطاق الترددي للواجهة)
الموثوقية = الحد الأدنى (الموثوقية من الحزمة وموثوقية الواجهة)
تواجد القناة = الحد الأقصى (تواجد القناة من الحزمة، تواجد قناة الواجهة)
(يتم إستخدام الحد الأقصى للنطاق الترددي لأن قياس النطاق الترددي يتم تخزينه في شكل عكسي. من الناحية النظرية، نريد الحد الأدنى من عرض النطاق الترددي). لاحظ أنه يجب حفظ إشغال القناة الأصلية من الحزمة، نظرا لأنه سيكون ضروريا لإعادة حساب إشغال القناة الفعال كلما تغير إشغال قناة الواجهة.
لا يعد ما يلي جزءا من المتجه المتري، ولكنه يتم الاحتفاظ به أيضا في جدول التوجيه كخصائص للمسار:
عدد الخطوات = عدد الخطوات من الحزمة .
MTU = الحد الأدنى (MTU من الحزمة، واجهة MTU).
القياس المركب البعيد = محسوب من المعادلة 1 باستخدام القيم المترية من الحزمة. وهذا يعني أن المكونات المترية هي تلك الخاصة بالحزمة، ولا يتم تحديثها كما هو موضح أعلاه. ومن الواضح أنه يجب حساب ذلك قبل إجراء التسويات المبينة أعلاه.
القياس المركب = محسوب من المعادلة 1 باستخدام القيم المترية المحسوبة كما هو موضح في هذا القسم.
يصف هذا القسم المتبقي إجراء المقاييس الحاسوبية وعدد الخطوات الخاصة بتحديثات التوجيه التي سيتم إرسالها.
تحدد هذه الوظيفة المعلومات المترية وعدد الخطوات التي سيتم وضعها في حزمة تحديث صادرة. هو مبني على مسار معين إلى غاية، إن كان هناك أي مسارات يمكن إستخدامها. إذا لم يكن هناك مسارات، أو أن المسارات كلها في أعلى التيار، تسمى الوجهة "لا يمكن الوصول إليها".
If destination is inaccessible, this is indicated by using a specific value in the delay field. This value is chosen to be larger than the largest valid delay. For the IP implementation this is all ones in a 24-bit field. If destination is directly reachable through one of the interfaces, use the delay, bandwidth, reliability, and channel occupancy of the interface. Set hop count to 0. Otherwise, use the vector of metrics associated with the path in the routing table. Add one to the hop count from the path in the routing table.
يصف هذا قسم خلاصة الربط يستعمل ب ال cisco IGRP. يتم إرسال IGRP باستخدام مخططات بيانات IP مع بروتوكول IP 9 (IGP). تبدأ الحزمة برأس. يبدأ مباشرة بعد عنوان IP.
unsigned version: 4; /* protocol version number */ unsigned opcode: 4; /* opcode */ uchar edition; /* edition number */ ushort asystem; /* autonomous system number */ ushort ninterior; /* number of subnets in local net */ ushort nsystem; /* number of networks in AS */ ushort nexterior; /* number of networks outside AS */ ushort checksum; /* checksum of IGRP header and data */
بالنسبة للرسائل المحدثة، تتبع معلومات التوجيه بعد الرأس مباشرة.
رقم الإصدار هو 1 حاليا. يتم تجاهل الحزم التي تحتوي على أرقام إصدار أخرى.
يمكن أن يكون رمز التشغيل 1 = تحديث أو 2 = طلب.
يشير ذلك إلى نوع الرسالة. سيتم عرض تنسيق نوعي الرسائل أدناه.
Edition هو رقم تسلسلي يتزايد كلما حدث تغيير في جدول التوجيه. (يتم القيام بذلك في الحالات التي يقول فيها الرمز المزيف أعلاه أنه يؤدي إلى تحديث التوجيه.) يتيح رقم الإصدار للبوابات إمكانية تجنب معالجة التحديثات التي تحتوي على معلومات سبق أن شاهدوها. (لم يتم تنفيذ هذا حاليا. أي أن رقم الإصدار يتم تكوينه بشكل صحيح، ولكن يتم تجاهله عند الإدخال. نظرا لأنه من الممكن إسقاط الحزم، ليس من الواضح أن رقم الإصدار كاف لتجنب المعالجة المكررة. وسيكون من الضروري التأكد من معالجة جميع الحزم المرتبطة بالإصدار.)
النظام الآلي للبيانات هو رقم النظام الذاتي. في تنفيذ Cisco، يمكن أن تشارك العبارة في أكثر من نظام مستقل. يقوم كل نظام من هذه الأنظمة بتشغيل بروتوكول IGRP الخاص به. من الناحية النظرية، هناك جداول توجيه منفصلة تماما لكل نظام مستقل. يتم إرسال المسارات التي تصل عبر بروتوكول العبارة الداخلية (IGRP) من نظام مستقل واحد فقط في التحديثات الخاصة بهذا النظام. يسمح هذا الحقل للعبارة بتحديد أي مجموعة من جداول التوجيه سيتم إستخدامها لمعالجة هذه الرسالة. إذا تلقت البوابة رسالة IGRP ل AS لم يتم تكوينها لها، يتم تجاهلها. في الواقع، يسمح تنفيذ Cisco "بتسريب" المعلومات من واحد إلى آخر. غير أنني أعتبر ذلك أداة إدارية، وليس جزءا من البروتوكول.
يشير NINTERNAL وSYSTEM والتالي إلى عدد الإدخالات في كل من الأقسام الثلاثة لرسائل التحديث. وقد ورد وصف لهذه الأقسام أعلاه. ولا يوجد ترسيم آخر بين الأقسام. المدخلات الداخلية الأولى تعتبر داخلية، والإدخالات التالية للنظام هي النظام، والمسافة النهائية مثل الخارجية.
المجموع الاختباري هو المجموع الاختباري IP، الذي يتم حسابه باستخدام نفس خوارزمية المجموع الاختباري كالمجموع الاختباري ل UDP. يتم حساب المجموع الاختباري على رأس IGRP وأي معلومات توجيه تتبعه. يتم تعيين حقل المجموع الاختباري على صفر عند حساب المجموع الاختباري. لا يتضمن المجموع الاختباري رأس IP، ولا يوجد أي رأس ظاهري كما في UDP و TCP.
يطلب طلب IGRP من المستلم إرسال جدول التوجيه الخاص به. تحتوي رسالة الطلب على رأس فقط. يتم إستخدام حقول الإصدار والتشفير والنظام الأساسي فقط. كل الحقول الأخرى صفرية. من المتوقع أن يرسل المستلم رسالة تحديث IGRP عادية إلى الطالب.
تحتوي رسالة تحديث IGRP على رأس، يتبعه مباشرة إدخالات التوجيه. يتم تضمين العديد من إدخالات التوجيه كما سيلائم مخطط بيانات سعة 1500 بايت (بما في ذلك رأس IP). مع تصريحات الهيكل الحالية، فإن ذلك يسمح بما يصل إلى 104 مدخل. إذا كانت هناك حاجة إلى مزيد من الإدخالات، فسيتم إرسال العديد من رسائل التحديث. بما أن رسائل التحديث تتم معالجتها ببساطة من خلال إدخال، فلا توجد ميزة لاستخدام رسالة مجزأة واحدة بدلا من العديد من الرسائل المستقلة.
هنا بنية إدخال توجيه:
uchar number[3]; /* 3 significant octets of IP address */ uchar delay[3]; /* delay, in tens of microseconds */ uchar bandwidth[3]; /* bandwidth, in units of 1 Kbit/sec */ uchar mtu[2]; /* MTU, in octets */ uchar reliability; /* percent packets successfully tx/rx */ uchar load; /* percent of channel occupied */ uchar hopcount; /* hop count */
الحقلان المحددان UCHAR[2] و UCHAR[3] هما مجرد أرقام صحيحة ثنائية 16 و 24 بت، بترتيب شبكة IP العادية.
يحدد الرقم الوجهة التي يتم وصفها. هو عنوان IP. لتوفير المساحة، يتم توفير أول 3 وحدات بايت من عنوان IP، باستثناء القسم الداخلي. في القسم الداخلي، يتم توفير آخر 3 بايت. بالنسبة للمسارات الخارجية للنظام، لا تتوفر أي شبكات فرعية، لذلك فإن البايت المنخفض الترتيب يكون دائما صفرا. تكون المسارات الداخلية دائما شبكات فرعية لشبكة معروفة، لذلك يتم توفير البايت الأول من رقم الشبكة هذا.
التأخير بالوحدات 10 ميكرو ثانية. وهذا يعطي مدى من 10 ميكروثانية إلى 168 ثانية، مما يبدو كافيا. يشير تأخر الكل إلى أنه لا يمكن الوصول إلى الشبكة.
النطاق الترددي هو عرض نطاق ترددي عكسي للوحدات بت في الثانية تم قياسه بمعامل 1.0e10. يتراوح النطاق من خط بسرعة 1200 بت في الثانية إلى 10 جيجابت في الثانية. (هذا يعني إذا كان النطاق الترددي n كيلوبت في الثانية، فإن الرقم المستخدم هو 10000000 / N.)
MTU بالبايت.
الموثوقية مقدمة ككسر من 255. هذا يعني، 255 هو 100٪.
يتم إعطاء الحمل ككسر من 255.
عدد الخطوات هو عدد بسيط.
بسبب الوحدات الغريبة نوعا ما المستخدمة لعرض الحزمة والتأخير، تبدو بعض الأمثلة مرتبة. هذه هي القيم الافتراضية المستخدمة لعدة وسائط مشتركة.
Delay Bandwidth --------------- ------------------- Satellite 200,000 (2 sec) 20 (500 Mbit) Ethernet 100 (1 ms) 1,000 1.544 Mbit 2000 (20 ms) 6,476 64 Kbit 2000 156,250 56 Kbit 2000 178,571 10 Kbit 2000 1,000,000 1 Kbit 2000 10,000,000
هنا وصف للطريقة التي يتم بها حساب القياس المركب في الواقع في الإصدار 8.0(3) من Cisco.
metric = [K1*bandwidth + (K2*bandwidth)/(256 - load) + K3*delay] * [K5/(reliability + K4)] If K5 == 0, the reliability term is not included. The default version of IGRP has K1 == K3 == 1, K2 == K4 == K5 == 0