Static routing این قابلیت را به مدیریت شبکه می دهد که بتواند بصورت دستی یک سری Route های خاص را در Routing Table روتر ایجاد کند. Dynamic Routing از پروتکل های مسیریابی یا Routing Protocol برای شناسایی شبکه ها و مقصدها و همچنین پیدا کردن بهترین مسیر برای رساندن بسته اطلاعاتی به مقصد استفاده می کنند.
Dynamic Routing این قابلیت را به Routing Table می دهد که بتواند زمانیکه یک Router خاموش است یا در دسترس نیست یا اینکه یک شبکه جدید به مجموعه اضافه می شود این تغییرات را در Routing Table ها اضافه کند. Dynamic Routing با استفاده از Routing Protocol ها این قابلیت را دارند که بصورت مستمر با شبکه تبادل اطلاعات داشته باشند و وضعیت هر یک از Router های شبکه را بررسی کنند و با استفاده از Broadcast و یا Multicast با هم ارتباط برقرار کنند و اطلاعات Routing Table را بروز کنند. با این روش همیشه توپولوژی شبکه بروز باقی می ماند و همگی دستگاه های روتر شبکه از آخرین Routing Table بروز استفاده می کنند. از پروتکل های Dynamic Routing می توان به Routing Information Protocol یا RIP ، Enhanced Interior Gateway Routing Protocol یا EIGRP و Open Shortest Path First یا OSPF اشاره کرد.
اما بصورت کلی ما Routing Protocol ها ره به سه دسته کلی تقسیم بندی می کنیم:
Routing Protocol های Distance-Vector : پروتکل های Distance Vector از معیار Hop Count یا تعداد روترهای مسیر برای Metric در Routing Table های خود استفاده می کنند. الگوریتم مورد استفاده در اینگونه از پروتکل ها بسیار ساده است و Routing Table با محاسبات ساده ریاضی ایجاد می شود. پروتکل های Distance Vector معمولا برای شبکه های کوچکی که کمتر از 16 عدد Router در آنها وجود دارد مورد استفاده قرار می گیرند در واقع این نوع پروتکل ها با کم کردن تعداد Router های مسیر از به وجود آمدن Loop در شبکه یا بهتر بگوییم Routing Loop در شبکه جلوگیری می کنند. این پروتکل ها در وهله های زمانی معین Routing Table های خود را با یکدیگر یکسان سازی می کنند ، یکی از مشکلات الگوریتم های Distance Vector در این است که کلیه اطلاعات موجود در Routing Table را حتی با کوچکترین تغییر برای سایر روترهای مجموعه ارسال می کنند و Incremental Update را در واقع پشتیبانی نمی کردند که در نسخه های جدید الگوریتم های Distance Vector این مشکل حل شد. الگوریتم های مسیریابی مثل RIPv1 و IGRP از این نوع Routing protocol ها هستند.
Routing Protocol های Link-State : در پروتکل های Routing ای که بصورت Link State کار می کنند تفاوت محسوسی با حالت Distanced Vector وجود دارد. الگوریتم های مورد استفاده در این نوع پروتکل ها نسبت به Distanced Vector ها کاملا متفاوت عمل می کند و دارای پیچیدگی های خاص خود می باشد، در این الگوریتم ها از فاکتورهایی مثل Hop Count ، فاصله ، سرعت لینک و ترافیک بصورت همزمان برای تعیین بهترین مسیر و بهترین cost برای انجام عملیات Routing استفاده می شود. آنها از الگوریتمی به نام Dijkstra برای تعیین پایینترین cost برای Route ها استفاده می کنند. روترهایی که از پروتکل های Link State استفاده می کنند فقط زمانی Routing Table های همدیگر را یکسان سازی می کنند که چیز جدیدی به Routing Table یکی از Router ها اضافه شده باشد. به همین دلیل هم کمترین ترافیک را در هنگام یکسان سازی Routing Table با همدیگر ایجاد می کنند. الگوریتم های مسیریابی مثل OSPF و IS-IS از این نوع پروتکل های Link State هستند.
Routing Protocol های Hybrid : همانطور که از نام این نوع پروتکل Routing نیز پیداست این نوع پروتکل ترکیبی از پروتکل های Distance Vector و Link State است و در واقع مزایای هر یک از این نوع پروتکل ها را در خود جای داده است. زمانیکه صحبت از قدرت پردازشی روترها می شود از قابلیت های Distance Vector ها (به دلیل پردازش کمتر) و زمانیکه صحبت از تبادل Routing Table ها در شبکه می باشد از قابلیت های Link State ها استفاده می کند. امروزه تقریبا همه شبکه های بزرگ در دنیا از پروتکل های Hybrid استفاده می کنند ، الگوریتم مسیریابی مثل EIGRP از انواع پروتکل های Hybrid Routing هستند.
معرفی پروتکل های روتینگ Distance Vector
همانطور که گفته شد پروتکل های مسیریابی به سه دسته Distance Vector و Link State و Hybrid تقسیم بندی می شوند ، در این نکته قصد داریم پروتکل های مسیریابی یا روتینگ Distance Vector که ساده ترین نوع پروتکل های مسیریابی هستند را برای شما تشریح کنیم. همانطور که از نام اینگونه پروتکل ها نیز پیداست از دو فاکتور Distance یا مسافت و Vector یا جهت برای پیدا کردن مقصد استفاده می کنند. روترهایی که از پروتکل های مسیریابی Distance Vector استفاده می کنند به روترهای همسایه یا Neighbor های خود در خصوص توپولوژی شبکه و تغییراتی که در وهله های زمانی متفاوت انجام می شود اطلاع رسانی می کنند ، این اطلاع رسانی با استفاده از Broadcast انجام می شود و از آدرس IP ای به شکل 255.255.255.255 برای اینکار استفاده می کند. پروتکل های Distance Vector از الگوریتم Bellman-Ford برای پیدا کردن بهترین مسیر برای رسیدن به مقصد استفاده می کنند. روترهای مورد استفاده در توپولوژی های Distance Vector برای اینکه از اطلاعات موجود در Routing Table های روترهای همسایه خود مطلع شوند بر روی Interface های خود درخواست را Broadcast می کنند ، همچنین این پروتکل ها برای Share کردن اطلاعات Routing Protocol خود نیز از ساختار Broadcasting استفاده می کنند.
الگوریتم های Distance Vector تغییراتی که در Routing Table انجام می شود را بلافاصله برای روترهای همسایه خود در همه جهات ( روی همه Interface ) ارسال می کنند. با هر تبادلی که انجام می شود ، روتر Distance Value مربوط به Route دریافت شده را افزایش می دهد و Distance Value خودش را نیز بر روی Route های جدید قرار می دهد. روتری که این تغییرات یا Update ها را دریافت می کند نیز به همین ترتیب Route های خودشان را بر روی این Table قرار می دهند و برای روترهای باقی مانده ارسال می کنند ، این فرآیند به همین شکل ادامه پیدا می کند. پروتکل های Distance Vector به این موضوع توجه نمی کنند که چه کسی به Update هایی که ارسال می شوند گوش می کند ، جالب اینجاست بدانید پروتکل های Distance Vector حتی در صورتیکه هیچ تغییری در Routing Protocol خود نداشته باشند نیز بصورت متناوب Routing Table خود را Broadcast می کنند ، یعنی حتی اگر توپولوژی شبکه شما تغییر هم نکرده باشد Broadcasting انجام می شود.
پروتکل های Distance Vector ساده ترین نوع از پروتکل های مسیریابی یا Dynamic Routing هستند که در مجموعه سه تایی که عنوان شد قرار می گیرند. پیاده سازی و رفع ایراد این نوع از پروتکل ها بسیار ساده است ، همچنین روتر برای انجام فرآیند های پردازشی نیاز به منابع بسیار کمتری دارد. منطق کاری Distance Vector ها ساده است ، آنها Routing Update ها را دریافت می کنند ، مقدار Metric را افزایش می دهند ، نتایج را با مقدادیر موجود در Routing Table خود مقایسه می کنند و در صورت نیاز Routing Table را Update می کنند. پروتکل هایی مثل Routing Information Protocol یا RIP نسخه یک و Interior Gateway Routing Protocol یا IGRP از مهمترین و معروف ترین پروتکل های Dynamic Routing موجود در روترهای امروزی می باشند.
معرفی پروتکل های مسیریابی Link State
در اینجا قصد داریم به شما پروتکل های مسیریابی Link state را معرفی کنیم و تفاوت های آن با پروتکل های Distance Vector را نیز عنوان کنیم. پروتکل های Link State بر خلاف پروتکل های Distance Vector شبکه ها را در قالب Hop Count و تعداد روترهای موجود در آن نمی بینند در عوض یک دیدگاه جامع و کامل در خصوص توپولوژی های مورد استفاده در شبکه ایجاد می کنند که همه جزئیات شبکه های موجود در توپولوژی را در خود دارد ، تمامی روترها با Cost های آنها در این دید جامع و کامل وجود خواهند داشت.
در پروتکل های Link State هر یک از روترهایی که از یکی از پروتکل های Link State استفاده می کند اطلاعات کاملی در خصوص خود روتر ، لینک های مستقیم متصل شده به آن و وضعیت آن لینک ها را در اختیار شبکه قرار می دهد. این اطلاعات توسط پیام های Multicast به همه روترهای موجود در شبکه ارسال می شود دقیقا بر خلاف پروتکل های مسیریابی Distance Vector که اینکار را به وسیله استفاده از فرآیند Broadcast انجام می دادند. فرآیند مسیریابی Link State به گونه ای است که با ایجاد شدن کوچکترین تغییری در توپولوژی شبکه های موجود بلافاصله این تغییر بصورت Incremental برای سایر روترها هم ارسال می شود تا توپولوژی شبکه روی همه روترها همیشه بروز باشد. هر کدام از روترهای موجود در شبکه های Link State یک کپی از این توپولوژی شبکه را در خود دارند و آن را تغییر نمی دهند ، بعد از اینکه آخرین تغییرات شبکه ها را دریافت کردند هر روتر بصورت کاملا مستقل به محاسبه بهترین مسیرها برای رسیدن به شبکه های مقصد می پردازد.
پروتکل های مسیریابی Link State بر اساس الگوریتمی به نام Shortest Path First یا SFP برای پیدا کردن بهترین مسیر برای رسیدن به مقصد پایه ریزی شده اند. نام دیگر این الگوریتم Dijkstra است. در الگوریتم Shortest Path First یا SPF زمانیکه وضعیت یک لینک ارتباطی تغییر می کند ، یک Routing Update که به عنوان Link-State Advertisement یا LSA شناخته می شود ایجاد می شود و بین تمامی روترهای موجود تبادل می شود. زمانیکه یک روتر LSA Routing Update را دریافت می کند ، الگوریتم Link-State با استفاده از آن کوتاه ترین مسیر را برای رسیدن به مقصد مورد نظر محاسبه می کند. هر روتر برای خود یک نقشه کامل از شبکه ها ایجاد می کند. نمونه ای از پروتکل مسیریابی Link-State پروتکل ای به نام Open Shortest Path First یا OSPF است. چند واژه مهم در خصوص پروتکل های Link State وجود دارد که بد نیست با آنها آشنا شوید:
- Link-State Advertisement یا LSA : یک Packet کوچک اطلاعاتی است که در آن اطلاعات مربوط به Routing بین روترها رد و بدل می شود
- Topological Database : مجموعه اطلاعاتی که از LSA ها دریافت می شود
- الگوریتم SPF یا Dijkstra : الگوریتمی است که محاسبات بر روی database های موجود در SPF Tree را انجام می دهد
- Routing Table : یک لیست از مسیرها و Interface های شناسایی شده است
پروتکل های مسیریابی Link State در عین اینکه به مدت زمان کمتری برای Converge شدن نسبت به پروتکل های مسیریابی Distance Vector برخوردارند در مقابل بوجود آمدن Routing Loop هم نسبت به Distance Vector ها مقاوم تر هستند و کمتر موردی پیش می آید که Routing Loop در پروتکل های Link State ایجاد شود. اما از طرفی دیگر الگوریتم های مورد استفاده در پروتکل های Link State به قدرت پردازشی CPU و حافظه RAM به نسبت پروتکل های Distance Vector نیاز دارند. پروتکل های Link State از یک ساختار سلسله مراتبی و موروثی استفاده می کنند که این ساختار باعث کاهش فاصله ها و نیاز کمتر به انتقال LSA ها می شود. پروتکل های Link State از مکانیزم Multicast برای اشتراک گذاری اطلاعات مسیریابی استفاده می کنند ، فقط روترهایی که از پروتکل های مسیریابی Link State استفاده می کنند این Routing Update ها را پردازش می کنند. Link State ها فقط زمانی اطلاعات روتر را ارسال می کنند که در شبکه تغییری ایجاد شده باشد و صرفا همان تغییر را برای سایر روترها ارسال می کنند ، پیاده سازی پروتکل های مسیریابی Link-State پیچیده تر و پر هزینه تر از پیاده سازی پروتکل های Distance Vector می باشد و هزینه نگهداری آنها نیز به نسبت بیشتر است.
بسیار عالی
ممنون ادمین
سلام
خواهش میکنم 🙂
بسیار عالی و روان و خوب توضیح داده شده بود … سپاسگزارم
با سلام ضمن تشکر از مطالب مفید سایت خوبتون
خواهشا امکان این است درباره path vector کمی توضیح بدید؟؟
سلام ممنون از مطالب خوبتون میشه اطلاعاتی در مورد الگوریتم های
Tri-Based_Geometric_Heuristic_TCAM Based_Hardware Based
به من بدید من راجع به کل الگوریتم ها سرچ کردم ولی به هم چین مواردی برخورد نکردم از طرفی استادمون می گه اینا هم هست و باید در مورد اینا هم گفته بشه ممنون می شم راهنماییم کنید.