دسته بندی پروتکل های مسیریابی Routing Protocol Categories
با توجه به مواردی که درپست قبل در مورد انتخاب پروتکل های مسیریابی گفته شد ، لازم به ذکر است که پروتکل های مسیریابی را می توان در سه دسته مختلف تقسیم بندی کرد .
- Distance-Vector Routing Protocol : این پروتکل ها یک کوپی کامل از جدول مسیریابی (Routing Table ) خود را برای روترهای مجاور که بصورت مستقیم (Directed Connected ) متصل شده اند می فرستند ، از ویژگیهای دیگراین نوع پروتکل ها این می باشد که درصورتی که هیچ تغییری در ساحنارشبکه ایجاد نشده باشند نیز اقدام به فرستادن اطلاعات در دورهای زمانی مشخص می کند که اینکار باعث مصرف شدن منابه شبکه می گردد (CPU, RAM, Bandwidth,….) . به صورت عادی زمانی ما نیاز به فرستادن جدول مسیریابی خود بصورت کامل را داریم که درابتدا هر روتر هیچ گونه اطلاعاتی از روتره مجاور خود ندارد و بعد ازانجام یک سری از مراحل روترها اقدام به فرستادن جدول مسیریابی خود به صورت کامل می کنند و بعد از آن ما فقط زمانی نیاز به فرستادن جدول مسیریابی داریم که اطلاعاتی درشبکه تغییرکرده باشند ( بطورمثال یکی از اینترفیسهای روتر به هر دلیلی قطع شده باشند ) . یکی دیگر از مشکلات این دسته از پروتکل ها پائین بودن سرعت زمان همگرایی (Convergence Time) آنها درشبکه می باشد ، درواقع زمانی که نیاز است این پروتکل ها به روز رسانی تغییرات رادرشبکه اعلام کنند تا زمانی که تجهیزاتی که این پروتکل ها برروی آنها تنظیم شده اند همه با هم یکسان شوند بالا می باشد. برای حل این موضوع از روشی به نام Hold-Down Timer استفاده می شود . بااستفده ازاین روش زمانی که یک روتر از تغییرات شبکه خبرمی شود و این تغییرات را اعمال می کند و با استفاده ازروش Hold-Down Timer تا یک مدت مشخص از دریافت و به روز رسانی ها ی بعدی جلوگیری می شود . از ویژگی های دیگر این پروتکل می توان به مفهومی به نام HOP Count اشاره کنیم که درواقع یک مقداری است تعداد روترهای بین مسیر مبدا تا مقصد را مشخص می کند .
همانطور که درشکل بالا مشاهدم می شود اگر روتر شماره ای 3 قصدارسال اطلاعات برای یک دستگاه خاص با آدرس 24/10.1.1.0 که به شبکه روتر 1 متصل شده است بفرستد می تواندد این آدرس را با HOP Count 2 در جدول مسیریابی خود پیداکند که این عدد نماینگر تعداد روترهای است که در طول مسیر یک بسته از انها عبورکند . یکی دیگرازمسائل مربوط به پروتکل های Distance-Vector این است که باید توسط یک روشی از امکان به وجود آمدن حلقه (LOOP) در شبکه ها جلوگیری کنند . بطورمثال فرض کنید روتر 2 شروع به دریافت جدول مسیریابی از روتر 3 می کند و بعد از دریافت و اضافه کردن آن به جدول مسیریابی خود شروع به ارسال این اطلاغت برای روترهای مجاور خود می کند که این عمل جزء وظایف پروتکل ها مسیریابی می باشد . همزمان بر حسب اتفاق Interface FastEthernet 1/0 روتر 3 به هر دلیلی مشکل پبدا می کند و روتر 3 اطلاعات مربوط به این روتر را از جدول خود پاک می کند . بعد از گذشت یک بازه ای زمانی مشخص تمام روترها شروع به فرستادن کل جدول مسیریابی خود به روترهای مجاور خود اقدام می کنند دراین حالت روتر 2 به روتر 3 اعلام می کند که من 10.1.4.0/24 را در جدول موجود خودم با HOP count 1 دارم و روتر 3 هم این اطلاعات را به جدول مسیریابی خودش اضافه می کند و مقدار Metric آن را 1 واحد افزایش می دهد که در واقع باعث به وجود آمدن یک حلقه درشبکه می گردد چون در هر بازه ای زمانی مشخص روترها شروع به ارسال اطلاعات خود به یکدیگر می کنند.
برای حل مشکل فوق در پروتکل های Distance-Vector از دو روش زیر استفاده می شود :
- Split-Horizon : در این روش اگر یک روتر آدرسی ( یک یا چند آدرس) را از یک اینترفیس خود که بصورت Directly Connected به روتر مجاور خود وصل شده است دریافت کند و بعد از اضافه کردن آدرس به جدول مسیریابی خود از فرستادن این آدرس ها به سمت اینترفیسی که این آدرسها را از ان دریافت کرده است جلوگیری می کند . برای درک بهتر به شکل زیرتوجه کنید.
- Poison Revers : در این روش روتر آدرسهای را که از طریق یک اینترفیس خود که بصورت Directly Connected متصل شده اند را بعد از اضافه کردن به جدول مسیریابی خود با یک Metric بی نهایت از همان اینترفیسی که آدرسها رادریافت کرده است برمی گرداند . بطور مثال روتر 2 آدرس 1.4.0/24 را با یک Metric برابر 16 به روتر 3 برمی گرداند
- Link-State :دراین پروتکل های مسیریابی بعدازاینک هرروتر توانستند روترهای مجاورخودراشناسایی کنند اقدام به ارسال کامل جدول مسیریابی خود میکنند (فقط یکبار جدول مسیریابی بصورت کلی ارسال می شود) و در زمانهای که تغییراتی درشبکه ایجاد شده باشد اقدام به فرستادن تغییرات می کنند که این روش باعث بالارفتن سرعت همگرایی در پروتکل های که براساس Link-State طراحی شده اند می شوند . ازمزایایی این نوع پروتکل های مسیریابی این است که هر روتر یک توپولوژی کامل از شبکه را درخود دارد (در مبحث OSPF مفصلا به این موضوع خواهیم پرداخت) برای درک بهتر می توانیم مثالی از شبکه مکان یابی خودرها Global System Position)GPS) اشاره کنیم . در واقع پروتکل های مسیریابی که براساس Link-State طراحی شده اند و از مباحث ریاضی Graph , Tree استفاده می کنند .یک Graph در حقیقت از تعدادی نقاط تشکیل شده است که هرنقطه توسط یک خط به نقطه ای بعدی متصل شده است. پروتکل مسیریابی که براساس Link-State طراحی شده اند می توان به IS-IS , OSPF اشاره کرد .
- Path-Vector : این پروتکل های مسیریابی شامل یک مسیرمشخص ازمبدا تامقصد می باشند که توسط Autonomous System مشخص می شوند که می توان به Border Gateway Protocol )BGP) اشاره کرد که تنها الگوریتم مسیریابی از این نوع است.
یکی از تفاوتهای بین پروتکل های مسیریابی Link-Stated و Distance-Vector دراین است که پروتکل های مسیریابی Link-stated براساس لینک عمل مسیریابی راانجام می دهند یعنی هرروتر اطلاعات مربوط به هر لینک را در یک فایل ذخیره می کنند و همچنین مشخصات لینک ها را در پیغامهای خود استفاده می کند در صورتیکه پروتکل مسیریابی که براسای Distance-Vector طراحی شده اند اطلاعات مربوط به جدول مسیریابی (Routing Base) را درپیغامهای خود برای روترهای مجاور ارسال می کنند . یکی دیگرازتفاوت های این دوپروتکل مسیریابی مربوط به روشهای پردازش اطلاعات برای انتخاب بهترین مسیرمی باشد . از دیگر تفاوت بین این دو پروتکل مسیریابی این می باشد که پروتکل های Distance-Vector پیام های خود را بصورت Broadcast(255.255.255.255) ارسال می کنند ولی Distance-Vector پیامهای خود رابصورت Multicast(224.0.0.5) ارسال میکنند. درپروتکل های مسیریابی Link-Stated از روش Shortest Path First که براساس الگوریتم Dijkstra طراحی شده اند استفاده می شود که این روش توسط Edsger W. Dijkstra ابداء گردیده است . ولی پروتکل های Distance-Vector براساس الگوریتم های bellman ford طراحی شده اند که این روش توسط Richard E.Bellman پایه گذاری شده است .
در الگوریتم های Distance-Vector از یک واژه ای بنام Routing By Rumor استفاده می شود و به این نکته اشاره می کند که پروتکل های Distance-Vector اطلاعات خود درموردشبکه براساس اطلاعاتی که از روترهای مجاور می شنوند (directly Connected Router) به دست می آورند و خود روتر تلاشی برای به دست آوردن اطلاعات ساختاری شبکه و یا توپولوژی شبکه انجام نمی دهد .