يُقدّم المستند بروتوكول توجيه العبّارة الداخلية (IGRP). له غرضان. أحدهما هو تكوين مقدمة لتقنية IGRP، لأولئك الذين يرغبون في استخدامه وتقييمه وربما تنفيذه. والثاني هو توفير عرض أوسع لبعض الأفكار والمفاهيم الممتعة التي تتجسد في IGRP. راجع تكوين IGRP وتنفيذ Cisco IGRP وأوامر IGRP للحصول على معلومات حول كيفية تكوين IGRP.
يتيح بروتوكول IGRP لعدد من العبّارات تنسيق التوجيه الخاص بها. وتتمثل أهدافه فيما يلي:
توجيه مستقر حتى في الشبكات الكبيرة للغاية أو المعقدة. يجب ألا تحدث أي من حلقات التكرار الحلقي للتوجيه، حتى لو كانت عابرة.
استجابة سريعة للتغييرات في هيكل الشبكة.
عبء أقل. أي أنه يجب ألا يستخدم IGRP نفسه نطاق عرض ترددي أكبر مما هو مطلوب بالفعل لمهمته.
تقسيم حركة المرور بين العديد من المسارات المتوازية عندما تكون ذات مرغوبية متساوية تقريبًا.
مع الأخذ في الاعتبار معدلات الخطأ ومستوى حركة المرور على المسارات المختلفة.
يعالج التنفيذ الحالي من IGRP التوجيه لبروتوكول TCP/IP. ومع ذلك، فإن التصميم الأساسي مصمم ليكون قادرًا على التعامل مع مجموعة متنوعة من البروتوكولات.
لا توجد أداة واحدة قادرة على حل جميع مشكلات التوجيه. وبشكل تقليدي، يتم تقسيم مشكلة التوجيه إلى عدة أجزاء. هناك بروتوكولات مثل IGRP تُسمى "بروتوكولات العبّارة الداخلية" (IGPs). وهي مخصصة للاستخدام داخل مجموعة واحدة من الشبكات، إما تحت إدارة واحدة أو إدارات منسقة بشكل وثيق. تتصل هذه المجموعات من الشبكات بواسطة "بروتوكولات العبّارة الخارجية" (EGPs). تم تصميم IGP لتتبع قدر كبير من التفاصيل حول هيكل الشبكة. يتم وضع الأولوية في تصميم IGP على إنتاج المسارات المثلى والاستجابة بسرعة للتغييرات. والغرض من بروتوكول GB هو حماية نظام واحد من الشبكات من الأخطاء أو التضليل المتعمد من قِبل الأنظمة الأخرى، ويُعد BGP أحد بروتوكولات العبّارة الخارجية. تكون الأولوية في تصميم EGP هي للاستقرار والضوابط الإدارية. في كثير من الأحيان، يكفي أن يقوم بروتوكول EGP بإنتاج مسار معقول، بدلاً من المسار الأمثل.
يحتوي IGRP على بعض أوجه التشابه مع البروتوكولات القديمة مثل بروتوكول معلومات التوجيه الخاص بـ Xerox وBerkeley's RIP وDave Mills 'Hello. وهو يختلف عن هذه البروتوكولات في المقام الأول في كونه مصممًا للشبكات الأكبر والأكثر تعقيدًا. راجع قسم المقارنة مع RIP للحصول على مقارنة أكثر تفصيلاً مع RIP، وهو الأكثر استخدامًا من الجيل الأقدم من البروتوكولات.
مثل هذه البروتوكولات القديمة، IGRP عبارة عن بروتوكول متجه المسافات. في مثل هذا البروتوكول، تتبادل العبّارات معلومات التوجيه مع العبّارات المجاورة فقط. تحتوي معلومات التوجيه هذه على ملخص لمعلومات حول بقية الشبكة. يمكن إظهار أن جميع العبّارات المأخوذة معًا تحل مشكلة تحسين من خلال ما يرقى إلى خوارزمية موزعة. تحتاج كل عبّارة إلى حل جزء من المشكلة فقط، ويجب أن تتلقى جزءًا فقط من إجمالي البيانات.
البديل الرئيسي من IGRP هو IGRP المحسّن (EIGRP) وفئة من الخوارزميات المُشار إليها باسم 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 ما يلي:
وقت التأخير الهيكلي
عرض النطاق الترددي لأضيق مقطع من عرض النطاق الترددي للمسار
إشغال القناة للمسار
موثوقية المسار
وقت التأخير الهيكلي هو مقدار الوقت المستغرق للوصول إلى الوجهة على طول ذلك المسار، بافتراض وجود شبكة غير محمّلة. بالطبع هناك تأخير إضافي عند تحميل الشبكة. ومع ذلك، يتم حساب الحِمل باستخدام رقم إشغال القناة، وليس محاولة قياس التأخيرات الفعلية. عرض النطاق الترددي للمسار هو ببساطة عرض النطاق الترددي بوحدات البت في الثانية لأبطأ ارتباط في المسار. يشير إشغال القناة إلى مقدار عرض النطاق الترددي ذلك المُستخدم حاليًا. يتم قياسه، وسوف يتغير مع الحِمل. الموثوقية تشير إلى معدل الخطأ الحالي. وهي جزء من الحزم التي تصل إلى الوجهة بحالة سليمة. يتم قياسها.
على الرغم من أنها لا تستخدم كجزء من القياس، إلا أنه يتم تمرير معلومتين إضافيتين معها: عدد الخطوات و MTU. إن عدد الخطوات هو ببساطة عدد العبّارات التي سيتعين على الحزمة المرور خلالها للوصول إلى الوجهة. MTU هي الحد الأقصى لحجم الحزمة التي يمكن إرسالها على طول المسار بالكامل دون التجزئة. (وهذا هو، الحد الأدنى من وحدات MTU لجميع الشبكات المشاركة في المسار.)
بناءً على معلومات القياس، يتم حساب "قياس مركب" واحد للمسار. يجمع القياس المركب تأثير مكونات القياس المختلفة في رقم واحد يمثل "جودة" ذلك المسار. وهو القياس المركب المُستخدم بالفعل لتحديد أفضل مسار.
تقوم كل عبّارة بشكل دوري ببث جدول التوجيه الخاص بها بالكامل (مع بعض الرقابة بسبب قاعدة الانقسام الأفقي) إلى كافة العبّارات المجاورة. عندما تحصل عبّارة على هذا البث من عبّارة أخرى، فإنها تقارن الجدول بالجدول الحالي. تتم إضافة أي وجهات ومسارات جديدة إلى جدول توجيه العبّارة. تتم مقارنة المسارات في البث بالمسارات الموجودة. إذا كان المسار الجديد أفضل، فقد يحل محل المسار الحالي. كما يتم استخدام المعلومات الواردة في البث لتحديث إشغال القناة ومعلومات أخرى حول المسارات الموجودة. يشبه هذا الإجراء العام الإجراء المُستخدم من قِبل جميع بروتوكولات متجه المسافات. يُشار إليه في الأدبيات الرياضية باسم خوارزمية بلمان فورد. ارجع إلى RFC 1058 للحصول على تطوير مفصل للإجراء الأساسي، والذي يصف RIP، وهو بروتوكول متجه للمسافات قديم.
في IGRP، يتم تعديل خوارزمية بلمان فورد العامة في ثلاثة جوانب مهمة. أولاً، بدلاً من القياس البسيط، يتم استخدام متجه من القياسات لتوصيف المسارات. ثانيًا، بدلاً من اختيار مسار واحد بأصغر قياس، يتم تقسيم حركة المرور بين عدة مسارات، تقع قياساتها في نطاق محدد. ثالثًا، يتم تقديم العديد من الميزات لتوفير الاستقرار في المواقف التي يتم فيها تغيير الهيكل.
يتم تحديد أفضل مسار بناءً على قياس مركب:
[(K1 / Be) + (K2 * Dc)] r
حيث إن K1،K2 = الثوابت، Be = عرض النطاق الترددي للمسار الذي لم يتم تحميله x (1 - إشغال القناة)، Dc = التأخير الهيكلي، وr = الموثوقية.
سيكون المسار الذي يحتوي على أصغر قياس مركب هو أفضل مسار. وفي حالة وجود مسارات متعددة لنفس الوجهة، يمكن للعبارة توجيه الحزم عبر أكثر من مسار. ويتم ذلك وفقًا للقياس المركب لكل مسار بيانات. على سبيل المثال، إذا كان أحد المسارات يحتوي على قياس مركب من 1 ومسار آخر يحتوي على قياس مركب من 3، فسيتم إرسال ثلاثة أضعاف عدد الحزم عبر مسار البيانات الذي يحتوي على القياس المركب من 1.
هناك ميزتان لاستخدام متجه المعلومات القياسية. الأولى هو أنه يوفر القدرة على دعم أنواع متعددة من الخدمات من نفس مجموعة البيانات. الميزة الثانية هي الدقة المحسّنة. عند استخدام قياس واحد، يتم التعامل معه عادةً كما لو كان تأخيرًا. تتم إضافة كل رابط في المسار إلى إجمالي القياس. إذا كان هناك ارتباط بعرض نطاق ترددي منخفض، فسيتم تمثيله عادةً بتأخير كبير. ومع ذلك، فإن قيود عرض النطاق الترددي لا تتراكم في الواقع مع طريقة التأخير. من خلال التعامل مع عرض النطاق الترددي كمكون منفصل، يمكن التعامل معه بشكل صحيح. وبالمثل، يمكن معالجة الحِمل من خلال رقم إشغال قناة منفصل.
يوفر بروتوكول توجيه العبّارة الداخلية (IGRP) نظامًا لربط شبكات الكمبيوتر التي يمكنها التعامل بثبات مع هيكل رسم بياني عام بما في ذلك الحلقات. يحتفظ النظام بمعلومات قياس المسار الكاملة، أي أنه يعرف معلّمات المسار لجميع الشبكات الأخرى التي تتصل بها أي عبّارة. يمكن توزيع حركة المرور عبر مسارات متوازية ويمكن حساب معلّمات المسار المتعددة في وقت واحد عبر الشبكة بأكملها.
يقارن هذا القسم بروتوكول توجيه العبّارة الداخلية (IGRP) مع بروتوكول معلومات التوجيه (RIP). وتُعد هذه المقارنة مفيدة لأن RIP يتم استخدامه على نطاق واسع لأغراض مشابهة لبروتوكول IGRP. ومع ذلك، فإن القيام بذلك ليس عادلاً تمامًا. لم يكن القصد من RIP هو تحقيق جميع الأهداف مثل IGRP. كان RIP مخصصًا للاستخدام في الشبكات الصغيرة بتقنية موحدة بشكل معقول. في مثل هذه التطبيقات يكون مناسبًا بشكل عام.
يتمثل الاختلاف الأساسي بين IGRP وRIP في بنية القياسات الخاصة بهما. لسوء الحظ، لا يُعد هذا تغييرًا يمكن تعديله ببساطة إلى RIP. وهو يتطلب الخوارزميات الجديدة وهياكل البيانات الموجودة في IGRP.
يستخدم RIP قياس "عدد الخطوات" البسيط لوصف الشبكة. على عكس IGRP، حيث يتم وصف كل مسار بالتأخير، النطاق الترددي، وما إلى ذلك، في RIP فإنه يتم وصفه برقم من 1 إلى 15. عادة ما يتم إستخدام هذا الرقم لتمثيل عدد البوابات التي يمر بها المسار قبل الوصول إلى الوجهة. وهذا يعني أنه لا يوجد فرق بين الخط التسلسلي البطيء وشبكة Ethernet. في بعض عمليات تنفيذ 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) بأكثر من مجرد زيادة لنطاق القياسات المسموح بها. وهو يُعيد هيكلة القياس لوصف التأخير وعرض النطاق الترددي والموثوقية والحِمل. من الممكن تمثيل هذه الاعتبارات في قياس واحد مثل بروتوكولات RIP. ومع ذلك، من المحتمل أن يكون النهج المتبع بواسطة IGRP أكثر دقة. على سبيل المثال، باستخدام قياس واحد، ستظهر عدة ارتباطات سريعة متتالية كمعادلة لارتباط واحد بطيء. قد يكون هذا هو الحال بالنسبة لحركة المرور التفاعلية، حيث يكون التأخير هو الشاغل الرئيسي. ومع ذلك، بالنسبة لنقل البيانات المجمّعة، فإن الشاغل الرئيسي هو عرض النطاق الترددي، وجمع القياسات معًا ليس هو النهج الصحيح هناك. يتعامل IGRP مع التأخير وعرض النطاق الترددي بشكل منفصل، مما يؤدي إلى تراكم التأخيرات، ولكنه يأخذ الحد الأدنى من عرض النطاق الترددي. ليس من السهل معرفة كيفية دمج تأثيرات الموثوقية والتحميل في قياس مكون واحد.
في رأيي، إحدى المزايا الكبيرة لبروتوكول IGRP هي سهولة التكوين. يمكن أن تمثل بشكل مباشر الكميات التي لها معنى مادي. وهذا يعني أنه يمكن إعداده تلقائيًا، بناءً على نوع الواجهة وسرعة الخط وما إلى ذلك. باستخدام قياس مكون واحد، من المرجح أن يكون القياس "تم إعداده" لدمج تأثيرات عدة أشياء مختلفة.
الابتكارات الأخرى تتعلق بالخوارزميات وهياكل البيانات أكثر من كونها تتعلق ببروتوكول التوجيه. على سبيل المثال، يحدد IGRP الخوارزميات وهياكل البيانات التي تدعم تقسيم حركة المرور بين عدة مسارات. من الممكن بالتأكيد تصميم تنفيذ RIP للقيام بذلك. ومع ذلك، بمجرد إعادة تنفيذ التوجيه، لا يوجد أي سبب للالتزام ببروتوكول RIP.
لقد قمتُ بوصف "IGRP العام" حتى الآن، وهي تقنية يمكنها دعم التوجيه لأي بروتوكول شبكة. ومع ذلك، تجدر الإشارة في هذا القسم إلى المزيد حول تنفيذ بروتوكول TCP/IP المحدد. هذا هو التنفيذ الذي ستتم مقارنته ببروتوكول RIP.
تحتوي رسائل تحديث RIP ببساطة على لقطات لجدول التوجيه. أي أن لديها عددًا من الوجهات والقيم القياسية، وقليلاً من الأشياء الأخرى. يتضمن تنفيذ IP لبروتوكول IGRP بنية إضافية. أولاً، يتم تحديد رسالة التحديث بواسطة "رقم نظام مستقل." يأتي هذا المصطلح من تقليد أربانت، وله معنى محدد هناك. ومع ذلك، فإن ما يعنيه ذلك بالنسبة لمعظم الشبكات هو أنه يمكنك تشغيل عدة أنظمة توجيه مختلفة على نفس الشبكة. يُعد هذا مفيدًا للأماكن التي تندمج فيها الشبكات من عدة مؤسسات. يمكن لكل مؤسسة الحفاظ على التوجيه الخاص بها. نظرًا لأنه تتم تسمية كل تحديث، يمكن تكوين العبّارات للانتباه فقط إلى التحديث الصحيح. يتم تكوين عبّارات معينة لاستقبال التحديثات من العديد من الأنظمة الذاتية. تقوم بتمرير المعلومات بين الأنظمة بطريقة خاضعة للرقابة. لاحظ أن هذا ليس حلاً كاملاً لمشكلات أمان التوجيه. يمكن تكوين أي عبّارة للاستماع إلى التحديثات من أي نظام مستقل. ومع ذلك، ما تزال أداة مفيدة للغاية في تنفيذ سياسات التوجيه حيث توجد درجة معقولة من الثقة بين مسؤولي الشبكة.
تؤثر الميزة الهيكلية الثانية حول رسائل تحديث IGRP على الطريقة التي تتم بها معالجة المسارات الافتراضية بواسطة IGRP. تحتوي معظم بروتوكولات التوجيه على مفهوم المسار الافتراضي. غالبًا ما يكون توجيه التحديثات لسرد كل شبكة في العالم أمرًا غير عملي. تحتاج مجموعة العبّارات عادةً إلى معلومات توجيه تفصيلية للشبكات داخل مؤسستها. يمكن إرسال جميع حركات المرور للوجهات خارج مؤسستها إلى إحدى العبّارات الحدودية القليلة. قد تحتوي هذه العبّارات الحدودية على معلومات أكثر اكتمالاً. المسار إلى أفضل عبّارة حدودية هو "مسار افتراضي". إنه افتراضي بمعنى أنه يتم استخدامه للوصول إلى أي وجهة غير مدرجة على وجه التحديد في تحديثات التوجيه الداخلية. يقوم بروتوكول معلومات التوجيه (RIP) وبعض بروتوكولات التوجيه الأخرى بتعميم المعلومات حول المسار الافتراضي كما لو كان شبكة حقيقية. يتخذ بروتوكول توجيه العبّارة الداخلية (IGRP) نهجًا مختلفًا. بدلاً من إدخال مزيف واحد للمسار الافتراضي، يتيح 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، ستقوم العبّارة A (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، كما هو موضح أدناه:
Dc = Ds + Dcir + Dt
حيث Ds = تأخير التبديل، Dcir = تأخير الدائرة الكهربية (تأخير النشر بمقدار 1 بت)، وDT = تأخير الإرسال (تأخير عدم التحميل لرسالة 1500 بت).
ومع ذلك، يتم استخدام رقم تأخير قياسي في الممارسة العملية لكل نوع من أنواع تقنيات الشبكة. على سبيل المثال، سيكون هناك رقم تأخير قياسي لشبكة Ethernet ولخطوط تسلسلية بأي معدل بت معين.
فيما يلي مثال على الكيفية التي قد يبدو بها جدول توجيه العبّارة A في حالة مخطط الشبكة 6 أعلاه. (لاحظ أنه لا يتم عرض المكونات الفردية للمتجه القياسي، للبساطة.)
مثال جدول التوجيه:
الشبكة | الواجهة | العبّارة التالية | القياس |
---|---|---|---|
1 | NW 1 | None | موصل بشكل مباشر |
2 | NW 2 | None | موصل بشكل مباشر |
3 | NW 3 | None | موصل بشكل مباشر |
4 | NW 2 | C | 1270 |
NW 3 | B | 1180 | |
5 | NW 2 | C | 1270 |
NW 3 | B | 2130 | |
6 | NW 2 | C | 2040 |
NW 3 | B | 1180 |
يتم وصف العملية الأساسية لإنشاء جدول توجيه من خلال تبادل المعلومات مع الأجهزة المجاورة بواسطة خوارزمية بلمان فورد. تم استخدام الخوارزمية في البروتوكولات السابقة مثل RIP (RFC 1058). للتعامل مع الشبكات الأكثر تعقيدًا، يضيف بروتوكول توجيه العبّارة الداخلية (IGRP) ثلاث ميزات إلى خوارزمية بلمان فورد الأساسية:
بدلاً من القياس البسيط، يتم استخدام متجه المقاييس لتوصيف المسارات. يمكن حساب قياس مركب واحد من هذا المتجه وفقًا للمعادلة 1، أعلاه. يسمح إستخدام المتجه للعبارة باستيعاب أنواع مختلفة من الخدمة، باستخدام العديد من المعاملات المختلفة في المعادلة 1. كما يتيح تمثيلا أكثر دقة لخصائص الشبكة من قياس واحد.
بدلاً من اختيار مسار واحد بأصغر مقياس، يتم تقسيم حركة المرور بين عدة مسارات بقياسات تقع في نطاق محدد. وهذا يتيح استخدام العديد من المسارات بشكل متوازٍ، مما يوفر نطاقًا تردديًا فعّالاً أكبر من أي مسار فردي. يتم تحديد التباين V بواسطة مسؤول الشبكة. يتم الاحتفاظ بجميع المسارات ذات الحد الأدنى من القياس المركب M. بالإضافة إلى ذلك، يتم الاحتفاظ بجميع المسارات التي يكون قياسها أقل من V × M. يتم توزيع حركة المرور بين مسارات متعددة في تناسب عكسي للقياسات المركبة.
هناك بعض المشكلات المتعلقة بمفهوم التباين هذا. من الصعب الوصول إلى استراتيجيات تستفيد من قيم التباين الأكبر من 1، ولا تؤدي أيضًا إلى تكرار الحزم. في الإصدار 8.2 من Cisco، لم يتم تنفيذ ميزة التباين. (لستُ متأكدًا من الإصدار الذي تمت إزالة الميزة منه.) تأثير هذا هو تعيين التباين بشكل دائم على 1.
يتم تقديم العديد من الميزات لتوفير الاستقرار في الحالات التي يتم فيها تغيير الهيكل. تهدف هذه الميزات إلى منع حلقات التوجيه و"العد إلى ما لا نهاية"، والتي قد ميزت المحاولات السابقة لاستخدام خوارزميات من نوع فورد لهذا النوع من التطبيقات. ميزات الاستقرار الأساسية هي "عمليات إيقاف التشغيل" و"التحديثات التي تم تشغيلها" و"الانقسام الأفقي" و"التحديث الهادم". وستتم مناقشة هذه بمزيد من التفصيل أدناه.
يثير تقسيم حركة المرور (النقطة 2) خطرًا خفيًا إلى حد ما. تم تصميم التباين V للسماح للعبّارات باستخدام مسارات متوازية بسرعات مختلفة. على سبيل المثال، قد يكون هناك خط 9600 بت في الثانية يعمل بالتوازي مع خط 19200 بت في الثانية، للتكرار. إذا كان التباين V هو 1، فسيتم استخدام أفضل مسار فقط. لذلك لن يتم استخدام خط 9600 بت في الثانية إذا كان خط 19200 بت في الثانية يتمتع بموثوقية معقولة. (ومع ذلك، إذا كانت العديد من المسارات متماثلة، فستتم مشاركة الحِمل فيما بينها.) من خلال زيادة التباين، يمكننا السماح بتقسيم حركة المرور بين أفضل مسار والمسارات الأخرى الجيدة بنفس الجودة تقريبًا. باستخدام تباين كبير بما يكفي، سيتم تقسيم حركة المرور بين السطرين. ويكمن الخطر في أنه مع وجود تباين كبير بما فيه الكفاية، تصبح المسارات مسموحة ليست فقط أبطأ، ولكنها في الواقع "في الاتجاه الخاطئ". لذلك يجب أن تكون هناك قاعدة إضافية لمنع إرسال حركة المرور "من الخادم": لا يتم إرسال حركة مرور عبر المسارات التي يكون فيها القياس المركب البعيد (القياس المركب الذي يتم حسابه عند الخطوة التالية) أكبر من القياس المركب الذي يتم حسابه في البوابة. بشكل عام، يتم تشجيع مسؤولي النظام على عدم تعيين التباين فوق 1 إلا في حالات محددة حيث يلزم استخدام مسارات متوازية. في هذه الحالة، يتم تعيين التباين بعناية لتوفير النتائج "الصحيحة".
يهدف IGRP إلى التعامل مع "أنواع الخدمة" المتعددة والبروتوكولات المتعددة. نوع الخدمة عبارة عن مواصفات في حزمة بيانات تعمل على تعديل طريقة تقييم المسارات. على سبيل المثال، يتيح بروتوكول TCP/IP للحزمة تحديد الأهمية النسبية لعرض النطاق الترددي العالي أو التأخير المنخفض أو الموثوقية العالية. بشكل عام، ستحدد التطبيقات التفاعلية تأخيرًا منخفضًا، بينما ستحدد تطبيقات النقل المجمّع عرض نطاق ترددي مرتفع. تحدد هذه المتطلبات القيم النسبية لكل من K1 وK2 المناسبة للاستخدام في المعادلة. 1. يشار إلى كل مجموعة من المواصفات في الحزمة المراد دعمها على أنها "نوع خدمة". يجب اختيار مجموعة من المعلّمات K1 وK2 لكل نوع من الخدمات. يتم الاحتفاظ بجدول توجيه لكل نوع من أنواع الخدمات. ويتم ذلك لأن المسارات يتم تحديدها وترتيبها وفقًا للقياس المركب المعرّف بواسطة المعادلة. 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. بدون قاعدة الأفق الفاصل، فإن "ب" سيخبر "أ" بأنه يمكنه الوصول إلى 1. وبما أنه لم يعد لديه طريق حقيقي، فقد يتمكن "أ" من سلوك ذلك الطريق. في هذه الحالة، كلا من A و B سيكون لديهما طريقان إلى 1. ولكن A تشير إلى B و B تشير إلى A. بالطبع، ستتسبب التحديثات وعمليات الاعتراض ستمنع ذلك من الحدوث. ولكن نظرًا لعدم وجود سبب لإرسال المعلومات مرة أخرى إلى المكان الذي جاءت منه، فإن الانقسام الأفقي يستحق القيام به على أي حال. بالإضافة إلى دوره في منع حلقات التكرار الحلقية، يحافظ الانقسام الأفقي على حجم رسائل التحديث.
يجب أن يمنع الانقسام الأفقي حلقات التكرار الحلقي بين العبّارات المجاورة. يهدف تحديث المسار الهادم إلى قطع حلقات التكرار الحلقي الأكبر. تتمثل القاعدة في أنه عندما يعرض أحد التحديثات مقياسًا لزيادة كافية لمسار موجود، تكون هناك حلقة تكرار حلقي. يجب إزالة المسار ووضعه في الإيقاف المؤقت. القاعدة الحالية هي أن المسار تتم إزالته إذا زاد القياس المركب أكثر من عامل 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 أضعاف وقت البث.
وقت الانتظار—عندما تصبح الوجهة غير قابلة للوصول (أو زاد المقياس بما يكفي للتسبب في تحديث هادم)، تنتقل الوجهة إلى "الإيقاف المؤقت". خلال هذه الحالة، لن يتم قبول أي مسار جديد لنفس الوجهة لهذه الفترة الزمنية. يشير وقت الإيقاف المؤقت إلى المدة التي يجب أن تستمر فيها هذه الحالة. وينبغي أن يكون عدة مرات من وقت البث. القيمة الافتراضية هي 3 أضعاف وقت البث بالإضافة إلى 10 ثوانٍ. (كما هو موضح في قسم تعطيل عمليات الإيقاف المؤقت، من الممكن تعطيل عمليات الإيقاف المؤقت.)
وقت المسح—إذا لم يتم استلام أي تحديث لوجهة معينة خلال هذا المقدار من الوقت، فستتم إزالة الإدخال الخاص به من جدول التوجيه. لاحظ الفرق بين وقت غير صالح ووقت مسح: بعد وقت غير صالح، يتم انقضاء مهلة المسار وإزالته. إذا لم تكن هناك مسارات متبقية إلى وجهة، فلن يمكن الوصول إلى الوجهة الآن. ومع ذلك، يظل إدخال قاعدة البيانات للوجهة. يجب أن يبقى لفرض الإيقاف المؤقت. بعد وقت المسح، تتم إزالة إدخال قاعدة البيانات من الجدول. يجب أن يكون أطول إلى حد ما من الوقت غير الصالح بالإضافة إلى وقت التوقف المؤقت. الإعداد الافتراضي هو 7 أضعاف وقت البث.
تفترض هذه الأرقام هياكل البيانات الرئيسية التالية. ويتم الاحتفاظ بمجموعة منفصلة من بنيات البيانات هذه لكل بروتوكول تدعمه العبّارة. ضمن كل بروتوكول، يتم الاحتفاظ بمجموعة منفصلة من بنيات البيانات لكل نوع من الخدمات المطلوب دعمها.
بالنسبة لكل وجهة معروفة للنظام، توجد قائمة (ربما فارغة) بالمسارات إلى الوجهة، ووقت انتهاء صلاحية الإيقاف المؤقت، ووقت تحديث أخير. يشير وقت التحديث الأخير إلى آخر مرة تم فيها تضمين أي مسار لهذه الوجهة في تحديث من عبّارة أخرى. لاحظ أنه توجد أيضًا أوقات تحديث محفوظة لكل مسار. عند إزالة المسار الأخير إلى وجهة، يتم وضع الوجهة في الإيقاف المؤقت، ما لم يتم تعطيل عمليات الإيقاف المؤقت (راجع قسم تعطيل عمليات الإيقاف المؤقت للحصول على مزيد من المعلومات). يشير وقت انتهاء صلاحية الإيقاف المؤقت إلى الوقت الذي تنتهي فيه صلاحية الإيقاف المؤقت. تشير حقيقة أنه غير صفري إلى أن الوجهة قيد الانتظار. لتوفير وقت الحساب، من الجيد أيضًا الإبقاء على "أفضل مقياس" لكل وجهة. هذا هو ببساطة الحد الأدنى من المقاييس المركبة لجميع المسارات إلى الوجهة.
بالنسبة لكل مسار إلى وجهة ما، يوجد عنوان الخطوة التالية في المسار، والواجهة المُراد استخدامها، ومتجه المقاييس التي تميز المسار، بما في ذلك التأخير الهيكلي، وعرض النطاق الترددي، والموثوقية، وإشغال القناة. كما يتم ربط معلومات أخرى بكل مسار، بما في ذلك عدد الخطوات و MTU ومصدر المعلومات والقياس المركب عن بعد والمقياس المركب الذي يتم حسابه من هذه الأرقام وفقا للمعادلة 1. وهناك أيضا وقت آخر تحديث. يشير مصدر المعلومات إلى المكان الذي أتى منه آخر تحديث لذلك المسار. ومن الناحية العملية، هذا هو نفس عنوان الخطوة التالية. وقت التحديث الأخير هو ببساطة وقت وصول آخر تحديث لهذا المسار. يتم استخدامه لانتهاء المسارات المهلة.
لاحظ أن رسالة تحديث IGRP تحتوي على ثلاثة أجزاء: الداخلية، النظام (الذي يعني "هذا النظام الذاتي" ولكن ليس الداخلية) ، والخارجية. القسم الداخلي هو للمسارات إلى الشبكات الفرعية. لا يتم تضمين جميع معلومات الشبكة الفرعية. يتم تضمين الشبكات الفرعية لشبكة واحدة فقط. هذه هي الشبكة المرتبطة بالعنوان الذي يتم إرسال التحديث إليه. عادةً ما يتم بث التحديثات على كل واجهة، لذا فهذه هي ببساطة الشبكة التي يتم إرسال البث عليها. (تظهر حالات أخرى للردود على طلب IGRP والإشارة إلى IGRP.) يتم وضع الشبكات الرئيسية (على سبيل المثال، الشبكات بخلاف الشبكات الفرعية) في جزء النظام من رسالة التحديث ما لم يتم وضع علامة عليها كشبكات خارجية على وجه التحديد.
سيتم وضع علامة على الشبكة كشبكة خارجية إذا تم التعرّف عليها من عبّارة أخرى ووصول المعلومات إلى الجزء الخارجي من رسالة التحديث. كما يتيح تنفيذ Cisco لمسؤول النظام الإعلان عن شبكات معينة كشبكات خارجية. كما تتم الإشارة إلى المسارات الخارجية باسم "المسارات الافتراضية المرشحة". وهي مسارات تنتقل إلى أو من خلال العبّارات التي تُعتبر مناسبة كإعدادات افتراضية، ليتم استخدامها في حالة عدم وجود مسار واضح إلى وجهة. على سبيل المثال، في روتجرز، قمنا بتكوين البوابة التي تربط روتجرز بشبكتنا الإقليمية بحيث تضع علامة على المسار إلى شبكة NSFnet على أنها خارجية. يختار تنفيذ Cisco مسارًا افتراضيًا من خلال اختيار ذلك المسار الخارجي بأصغر قياس.
والغرض من الأقسام التالية هو توضيح أجزاء معينة من الأشكال من 4 إلى 8.
يصف الشكل 4 المعالجة الشاملة لحزم الإدخال. يستخدم هذا ببساطة لتوضيح المصطلحات. من الواضح أن هذا ليس وصفًا كاملاً لما تفعله عبّارة IP.
تستخدم هذه العملية قائمة البروتوكولات المدعومة والمعلومات حول الواجهات التي تم إدخالها عند تهيئة العبّارة. تعتمد تفاصيل معالجة الحزمة على البروتوكول المستخدم بواسطة الحزمة. يتم تحديد ذلك في الخطوة A. الخطوة A هي الجزء الوحيد من الشكل 4 الذي تتم مشاركته بواسطة جميع البروتوكولات. بمجرد معرفة نوع البروتوكول، يتم استخدام تنفيذ الشكل 4 المناسب لنوع البروتوكول. يتم وصف تفاصيل محتويات الحزمة بواسطة مواصفات البروتوكول. تتضمن مواصفات البروتوكول إجراءً لتحديد وجهة الحزمة، وإجراءً لمقارنة الوجهة بعناوين العبّارة الخاصة لتحديد ما إذا كانت العبّارة نفسها هي الوجهة، وإجراءً لتحديد ما إذا كانت الحِزمة عبارة عن بث أم لا، إجراء لتحديد ما إذا كانت الوجهة جزءًا من شبكة محددة. يتم إستخدام هذه الإجراءات في الخطوات B و C من الشكل 4. يتطلب الاختبار في الخطوة D إجراء بحث عن الوجهات المدرجة في جدول التوجيه. يتم الوفاء بالاختبار في حالة وجود إدخال في جدول التوجيه للوجهة، وقد ارتبطت تلك الوجهة بمسار واحد قابل للاستخدام على الأقل. لاحظ أنه يتم الاحتفاظ ببيانات الوجهة والمسار المستخدمة في هذه الخطوة والخطوة التالية بشكل منفصل لكل نوع من أنواع الخدمات المدعومة. وبالتالي تبدأ هذه الخطوة بتحديد نوع الخدمة المحددة بواسطة الحزمة، واختيار المجموعة المقابلة من بنيات البيانات لاستخدامها في هذه الخطوة والخطوة التالية.
يكون المسار قابلاً للاستخدام لأغراض الخطوتين D وEـ إذا كان القياس المركب البعيد الخاص به أقل من القياس المركب الخاص به. المسار الذي يكون قياسه المركّب البعيد أكبر من القياس المركّب الخاص به هو المسار الذي تكون خطوته التالية "بعيدًا" عن الوجهة، كما تم قياسها بواسطة المقياس. تتم الإشارة إلى هذا باسم "مسار نقل البيانات إلى الخادم". عادةً ما يتوقع المرء أن يؤدي استخدام القياسات إلى منع اختيار المسارات الأولية. من السهل ملاحظة أن مسار نقل البيانات إلى الخادم لا يمكن أن يكون الأفضل على الإطلاق. ومع ذلك، إذا تم السماح بتباين كبير، فيمكن استخدام مسارات أخرى غير أفضلها. يمكن أن يكون بعض هؤلاء انتقال البيانات إلى الخادم.
تقوم الخطوة E بحساب المسار المطلوب استخدامه. المسارات التي لا يقل قياسها عن بُعد عن قياساتها المركبة. إذا كان هناك أكثر من مسار مقبول، فسيتم استخدام هذه المسارات في شكل مُرجّح لتناوب راوند روبن. يتناسب التكرار الذي يتم استخدامه مع المسار عكسيًا مع القياس المركب الخاص به.
يصف الشكل 5 معالجة تحديث التوجيه الذي تم استلامه من عبّارة مجاورة. تتكون هذه التحديثات من قائمة إدخالات، يوفر كل منها معلومات عن وجهة واحدة. يمكن أن يحدث أكثر من إدخال واحد للوجهة نفسها في تحديث توجيه واحد، لاستيعاب أنواع متعددة من الخدمات. تتم معالجة كل إدخال من هذه الإدخالات على حدة، كما هو موضح في الشكل 5. إذا كان الإدخال موجودا في القسم الخارجي من التحديث، فسيتم تعيين العلامة الخارجية للوجهة إذا تمت إضافتها نتيجة لهذه العملية.
يجب تكرار العملية الموضحة في الشكل 5 مرة واحدة لكل نوع من أنواع الخدمات التي تدعمها العبّارة، باستخدام مجموعة معلومات الوجهة/المسار المرتبطة بهذا النوع من الخدمة. وهذا موضح في الحلقة الخارجية في الشكل 5. يجب معالجة تحديث التوجيه بالكامل مرة واحدة لكل نوع من الخدمات. (لاحظ أن التنفيذ الحالي لبروتوكول IGRP لا يدعم أنواعًا متعددة من الخدمات، لذا لا يتم تنفيذ أبعد تكرار حلقي خارجي بالفعل.)
في الخطوة أ، يتم إجراء اختبارات القبول الأساسية على المسار. وينبغي أن يتضمن ذلك اختبارات المعقولية للوجهة. يجب رفض أرقام الشبكات المستحيلة ("مارتن"). (ارجع إلى RFC 1009 وRFC 1122 للحصول على مزيد من المعلومات.)
كما يتم رفض التحديثات إذا كانت الوجهة التي تشير إليها في وضع الإيقاف المؤقت، أي أن وقت انتهاء الصلاحية غير صفري وأحدث من الوقت الحالي.
في الخطوة B، يتم البحث في جدول التوجيه لمعرفة ما إذا كان هذا الإدخال يصف مسارًا معروفًا بالفعل. يتم تحديد مسار في جدول التوجيه بواسطة الوجهة المرتبطة به، والخطوة التالية مُدرجة كجزء من المسار، وواجهة الإخراج المُراد استخدامها للمسار، ومصدر المعلومات (العنوان الذي جاء منه التحديث—من الناحية العملية، عادةً ما يكون هو نفس الخطوة التالية). يصف الإدخال من حزمة التحديث مسارًا تم إدراج وجهته في الإدخال، وواجهة الإخراج الخاصة به هي الواجهة التي جاء فيها التحديث، وتكون الخطوة التالية ومصدر المعلومات الخاص به هو عنوان العبّارة التي أرسلت التحديث ("المصدر" S).
في الخطوة H والخطوة T، تمت جدولة عملية التحديث الموضحة في الشكل 7. سيتم تشغيل هذه العملية بالفعل بعد انتهاء العملية الموضحة في الشكل 5. أي أن عملية التحديث الموضحة في الشكل 7 لن تحدث إلا مرة واحدة، حتى إذا تم تشغيلها عدة مرات أثناء المعالجة الموضحة في الشكل 5. علاوة على ذلك، يجب إتخاذ إحتياطات لمنع إصدار التحديثات بشكل متكرر، إذا كانت الشبكة تتغير بسرعة.
يتم تنفيذ الخطوة K إذا كانت الوجهة الموضحة في الإدخال الحالي في حزمة التحديث موجودة بالفعل في جدول التوجيه. يقارن K القياس المركب الجديد المحسوب من البيانات الموجودة في حزمة التحديث بأفضل قياس مركب للوجهة. لاحظ أنه لا تتم إعادة حساب أفضل قياس مركب في هذا الوقت، لذلك، إذا كان المسار قيد النظر موجودًا بالفعل في جدول التوجيه، فقد يقارن هذا الاختبار القياسات الجديدة والقديمة للمسار نفسه.
يتم تنفيذ الخطوة L للمسارات الأسوأ من أفضل مقياس مركب موجود. يتضمن هذا كلاً من المسارات الجديدة الأسوأ من المسارات الموجودة والمسارات الموجودة التي قد زاد قياسها المركّب. تختبر الخطوة L ما إذا كان المسار الجديد مقبولاً. لاحظ أن ذلك الاختبار ينفذ كلاً من الاختبار لمعرفة ما إذا كان المسار الجديد جيدًا بما يكفي للاحتفاظ به أم لا، والتحديث الهادم للمسار. لكي يكون مقبولاً، يجب ألا تكون قيمة التأخير هي القيمة الخاصة التي تشير إلى وجهة يتعذر الوصول إليها (لتنفيذ IP الحالي، جميع الوحدات الموجودة في حقل 24 بت)، ويجب أن يكون القياس المركب (محسوبًا على النحو المحدد في الشكل 8) مقبول. لتحديد ما إذا كان القياس المركب مقبولاً أم لا، قارنه بالقياسات المركبة لجميع المسارات الأخرى إلى الوجهة. دع M يكون الحد الأدنى من هذه. يُعد المسار الجديد مقبولاً إذا كان <VXM، حيث V هو الإعداد الذي تم تعيينه عند بدء العبّارة. إذا كان V = 1 (والذي يكون صحيحًا دائمًا اعتبارًا من إصدار Cisco 8.2)، فلن يتم قبول أي قياس أسوأ من الرقم الموجود. هناك إستثناء واحد لهذا: إذا كان المسار موجودا بالفعل وكان المسار الوحيد إلى الوجهة، فسيتم الاحتفاظ بالمسار إذا لم يتم زيادة القياس بأكثر من 10٪ (أو حيث يتم تعطيل عمليات الرفض، إذا لم يتم زيادة عدد الخطوات).
تتم الخطوة V عندما تشير المعلومات الجديدة لمسار ما إلى أنه سيتم تقليل القياس المركب. تتم مقارنة القياسات المركبة لجميع المسارات إلى الوجهة D. في هذه المقارنة، يتم استخدام القياس المركب الجديد لـ P، بدلاً من القياس الذي يظهر في جدول التوجيه. يتم حساب الحد الأدنى للقياس المركب M. ثم يتم فحص جميع المسارات إلى D مرة أخرى. إذا كان القياس المركب لأي مسار> M×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—تفاصيل الحسابات القياسية
يصف هذا القسم إجراء حساب القياسات وتعداد الخطوات من تحديث توجيه قادم. والإدخال إلى هذه الوظيفة هو الإدخال الخاص بوجهة معينة في حزمة تحديث توجيه. الإخراج هو متجه للقياسات التي يمكن استخدامها لحساب القياس المركب، وعدد الخطوات. إذا تمت إضافة هذا المسار إلى جدول التوجيه، فسيتم إدخال متجه القياسات بالكامل في الجدول. معلّمات الواجهة المستخدمة في التعريفات التالية هي تلك التي تم تعيينها عند تهيئة العبّارة، للواجهة التي وصل إليها تحديث التوجيه، باستثناء أن إشغال القناة والموثوقية يعتمدان على المتوسط المتحرك لحركة المرور التي تم قياسها عبر الواجهة.
التأخير = التأخير من الحزمة + التأخير الهيكلي للواجهة
عرض النطاق الترددي = الحد الأقصى (النطاق الترددي من الحزمة، عرض النطاق الترددي للواجهة)
الموثوقية = الحد الأدنى (الموثوقية من الحزمة، موثوقية الواجهة)
إشغال القناة = الحد الأقصى (إشغال القناة من الحزمة، إشغال قناة الواجهة)
(يتم استخدام الحد الأقصى لعرض النطاق الترددي لأنه يتم تخزين قياس النطاق الترددي في شكل عكسي. من الناحية المفاهيمية، نريد الحد الأدنى للنطاق الترددي.) لاحظ أنه يجب حفظ إشغال القناة الأصلي من الحزمة، حيث ستكون هناك حاجة لإعادة حساب إشغال القناة الفعّال كلما تغير إشغال قناة الواجهة.
ما يلي ليس جزءًا من المتجه القياسي، ولكنه يتم الاحتفاظ به أيضًا في جدول التوجيه كخصائص للمسار:
عدد الخطوات = عدد الخطوات من الحزمة.
وحدة الحد الأقصى للنقل =الحد الأدنى (وحدة الحد الأقصى للنقل من الحزمة، وحدة الحد الأقصى للنقل للواجهة).
القياس المركّب عن بُعد = محسوب من المعادلة 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.
يصف هذا القسم تنسيقات الحزمة المستخدمة بواسطة IGRP من Cisco. يتم إرسال 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 = طلب.
هذا يشير إلى نوع الرسالة. سيتم تقديم تنسيق نوعي الرسائل أدناه.
الإصدار هو رقم تسلسلي يزداد كلما حدث تغيير في جدول التوجيه. (يتم إجراء ذلك في تلك الحالات التي يشير فيها الرمز الزائف أعلاه إلى تشغيل تحديث للتوجيه.) يتيح رقم الإصدار للعبّارات تجنب معالجة التحديثات التي تحتوي على المعلومات التي تم الاطّلاع عليها بالفعل. (لم يتم تنفيذ هذا حاليًا. أي، يتم إنشاء رقم الإصدار بشكل صحيح، ولكن يتم تجاهله عند الإدخال. ونظرًا لإمكانية إسقاط الحزم، فليس من الواضح ما إذا كان رقم الإصدار كافيًا لتجنب المعالجة المكررة. سيكون من الضروري التأكد من معالجة جميع الحزم المرتبطة بالإصدار.)
Asystem هو رقم النظام الذاتي. في تنفيذ Cisco، يمكن أن تشارك العبّارة في أكثر من نظام مستقل واحد. يقوم كل نظام بتشغيل بروتوكول IGRP الخاص به. من الناحية المفاهيمية، توجد جداول توجيه منفصلة تمامًا لكل نظام مستقل. يتم إرسال المسارات التي تصل عبر IGRP من نظام مستقل واحد فقط في تحديثات النظام الذاتي (AS) هذا. يتيح هذا الحقل للعبّارة تحديد مجموعة جداول التوجيه المطلوب استخدامها لمعالجة هذه الرسالة. إذا تلقت العبّارة رسالة IGRP لنظام ذاتي لم يتم تكوينها من أجلها، فسيتم تجاهلها. في الواقع، يتيح تنفيذ Cisco المعلومات "التي يتم تسريبها" من نظام تشغيل ذاتي (AS) إلى آخر. ومع ذلك، فأنا أعتبر ذلك أداة إدارية، وليس جزءًا من البروتوكول.
يشير [Ninterior]، و[ nsystem، وndirectory إلى عدد الإدخالات في كل قسم من الأقسام الثلاثة لرسائل التحديث. تم وصف هذه الأقسام أعلاه. لا يوجد تعيين حدود آخر بين الأقسام. يتم اعتبار إدخالات ninterior الأولى على أنها داخلية، وإدخالات nsystem التالية على أنها نظامية، وإدخالات nexterior التالية على أنها خارجية.
المجموع الاختباري هو المجموع الاختباري لبروتوكول الإنترنت (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.)
وحدة الحد الأقصى للنقل تكون بالبايت.
الموثوقية تعطى كجزء من 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
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
1.0 |
04-Sep-2002 |
الإصدار الأولي |