مسیریابی لایه شبکه – راهنمای جامع
هنگامی که دستگاهی چندین مسیر برای رسیدن به یک مقصد دارد، همواره مسیری را که نسبت به دیگران ترجیح دارد انتخاب میکند. این فرایند انتخاب به نام «مسیریابی» (Routing) شناخته میشود. مسیریابی لایه شبکه از طریق دستگاههای خاص شبکه به نام مسیریاب یا روتر اجرا میشود. همچنین میتوان به وسیله پردازشهای نرمافزاری نیز مسیریابی کرد. این روترهای مبتنی بر نرمافزار کارکردها و حوزه عمل محدودی دارند.
یک روتر همواره با یک مسیر پیشفرض پیکربندی شده است. مسیر پیشفرض به روتر اعلام میکند که در صورت عدم وجود هیچ مسیر خاصی برای یک مقصد خاص، بستههای داده را باید به کجا ارسال کند. در حالتی که چندین مسیر برای رسیدن به مقصد یکسان وجود داشته باشند، روتر میتواند بر اساس اطلاعاتی مانند تعداد Hop، پهنای باند، Metric، طول Prefix و تاخیر تصمیمگیری کند.
روترها میتوانند به صورت استاتیک پیکربندی شوند و یا به صورت دینامیک آموزش ببینند. بدین ترتیب میتوان یک مسیر را طوری پیکربندی کرد که نسبت به مسیرهای دیگر ارجحیت داشته باشد.
مسیریابی Unicast
اغلب ترافیک روی اینترنت و اینترانتها به صورت دادههای Unicast یا ترافیک Unicast هستند که با مقصد خاصی ارسال میشوند. مسیریابی دادههای Unicast روی اینترنت به نام مسیریابی Unicast شناخته میشود. این سادهترین شکل از مسیریابی است، زیرا مقصد از قبل شناخته شده است. بدین ترتیب کافی است روتر اقدام به بررسی جدول مسیریابی کرده و بسته را به hop بعدی ارسال کند.
مسیریابی Broadcast
بستههای Broadcast به صورت پیشفرض از سوی مسیریابهای روی شبکه، مسیریابی یا فوروارد نمیشوند. روترها دامنههای Broadcast ایجاد میکنند، اما آن را میتوان طوری پیکربندی کرد که Broadcast-ها را در حالتهای خاص فوروارد کند. یک پیام Broadcast به همه دستگاههای شبکه انتشار مییابد.
مسیریابی Broadcast به دو روش (الگوریتم) اجرا میشود:
- یک روتر بستههای دادهای را ایجاد و سپس آن را به صورت یک به یک به هر کدام از میزبانها ارسال میکند. در این حالت، روتر چندین کپی از بستههای منفرد دادهها با آدرسهای مقصد متفاوت ایجاد میکند. همه بستهها به صورت Unicast ارسال میشوند، اما از آنجا که به همه ارسال میشوند، طوری شبیهسازی میشوند که گویی روتر در حال Broadcast کردن است. این روش پهنای باند زیادی مصرف میکند و روتر باید آدرس هر گره را بداند.
- در وهله دوم، زمانی که روتر یک بسته داده را که Broadcast شده دریافت میکند، آنها را به همه اینترفیسها ارسال میکند. همه مسیریاب به همین ترتیب پیکربندی میشوند.
این روش از نظر پردازنده روتر آسان است، اما موجب بروز مشکلاتی در خصوص بستههای تکراری دریافتی از روترهای مجاور میشود.
فوروارد کردن مسیر معکوس، تکنیکی است که در آن روتر از قبل در مورد روتر قبل خود که باید Broadcast را از آن دریافت کند اطلاع دارد. این تکنیک برای شناسایی و رد کردن بستههای تکراری استفاده میشود.
مسیریابی Multicast
مسیریابی Multicast حالت خاصی از مسیریابی Broadcast است که البته تفاوتها و چالشهای مهمی دارد. در مسیریابی Broadcast، بستههای داده به همه گرهها ارسال میشوند، حتی اگر آن را نخواهند. اما در مسیریابی Multicast، دادهها صرفاً به گرههایی ارسال میشوند که خواستار دریافت بستهها هستند.
روتر باید بداند گرههایی وجود دارند که انتظار دریافت بستهها (یا استریم) Multicast را دارند و فقط به آنها فوروارد کند. مسیریابی Multicast در پروتکل درخت پوشا کار میکند تا از ایجاد حلقه جلوگیری کند.
مسیریابی Multicast از تکنیک فوروارد کردن مسیر معکوس نیز استفاده میکند که برای شناسایی و رد کردن موارد تکراری و حلقهها کاربرد دارد.
مسیریابی Anycast
فوروارد کردن بسته Anycast سازوکاری است که در آن چند میزبان میتوانند آدرس منطقی یکسانی داشته باشند، بستهای که برای این آدرس منطقی ارسال شده است، به میزبانی ارسال خواهد شد که در توپولوژی مسیریابی در نزدیکترین فاصله قرار دارد.
مسیریابی Anycast به کمک سرور DNS اجرا میشود. هر زمان که یک بسته دریافت میشود از DNS پرسوجو میشود که باید به کجا ارسال شود. در این حالت، DNS آن آدرس IP را که نزدیکترین IP پیکربندی شده روی آن قرار دارد ارائه میکند.
پروتکلهای مسیریابی Unicast
دو نوع پروتکل مسیریابی برای مسیریابی بستههای Unicast وجود دارد که یکی پروتکل مسیریابی بُردار مسافت و دیگری پروتکل مسیریابی حالت لینک است.
پروتکل مسیریابی بردار مسافت: «بردار مسافت» (Distance Vector) یک پروتکل مسیریابی ساده است که تصمیم مسیریابی را روی چند hop بین مبدأ و مقصد اتخاذ میکند. یک مسیر با تعداد کمتر hop به عنوان بهترین مسیر تصور میشود. هر روتر مجموعه بهترین مسیرهای خود را به روترهای دیگر اطلاع میدهد. در نهایت همه روترها توپولوژی شبکه خود را بر مبنای این اطلاعرسانی مسیرهای جفتهایشان میسازند. نمونهای از این نوع پروتکل، به نام پروتکل اطلاعات مسیریابی (RIP) شناخته میشود.
پروتکل مسیریابی حالت لینک: پروتکل حالت لینک پروتکل نسبتاً پیچیدهتری نسبت به بردار مسافت است. این پروتکل دو حالت لینکها را برای همه مسیرها در یک شبکه میگیرد. این تکنیک به مسیرها کمک میکند که یک گراف مشترک از کل شبکه به دست آورند. همه روترها بهترین مسیر خود را به منظور مسیریابی برآورد میکنند. برای نمونه پروتکل «اول کوتاهترین مسیر باز» (Open Shortest Path First) به اختصار OSPF و همچنین پروتکل «سیستم میانجی به سیستم میانجی» (Intermediate System to Intermediate System) با اختصار ISIS دو مورد از این نوع پروتکلها محسوب میشوند.
پروتکلهای مسیریابی Multicast
پروتکلهای مسیریابی Multicast از گرافها استفاده میکنند، در حالی که پروتکلهای مسیریابی Multicast از درختها استفاده میکنند یعنی برای اجتناب از حلقه یک درخت پوشا تشکیل میدهند. درخت بهینه به نام درخت پوشای کوتاهترین مسیر شناخته میشود.
- DVMRP - مسیریابی Multicast بردار مسافت
- MOSPF - ابتدا کوتاهترین مسیر باز
- CBT – درخت مبتنی بر هسته
- PIM – حالت Multicast مستقل از پروتکل
مورد اخیر یعنی Multicast مستقل از پروتکل، در حال حاضر بیشترین کاربرد را دارد و دارای دو گونه است:
- حالت Dense Mode: در این حالت از درختهای مبتنی بر مبدأ استفاده میشود و در محیطهای فشردهای مانند LAN استفاده میشود.
- حالت PIM Sparse: این حالت از درختهای مشترک استفاده میکند و در محیطهای پراکنده مانند WAN مورد استفاده قرار میگیرد.
الگوریتمهای مسیریابی
الگوریتمهای مسیریابی به شرح زیر هستند.
Flooding
Flooding سادهترین روش فوروارد کردن بسته محسوب میشود. زمانی که یک بسته دریافت میشود، روترها آن را به همه اینترفیسها به جز آن که از آن دریافت کردهاند، ارسال میکنند. این کار فشار بسیار زیادی روی شبکه وارد میکند و بستههای تکراری زیادی در شبکه پراکنده میشوند.
میتوان از پارامتر «زمان حیات» (TTL) برای اجتناب از تشکیل حلقههای نامتناهی از سوی بستهها استفاده کرد. رویکرد دیگری نیز برای Flooding وجود دارد که Flooding گزینشی نام دارد و موجب کاهش سربار شبکه میشود. در این روش، روتر بسته را به همه اینترفیسها ارسال نمیکند، بلکه تعداد منتخبی از آنها را هدف میگیرد.
کوتاهترین مسیر
تصمیم مسیریابی در شبکهها به طور عمده بر مبنای هزینه بین مبدأ و مقصد اتخاذ میشود. تعداد hop نقش عمدهای در این فرایند دارد. «کوتاهترین مسیر»، تکنیکی است که در آن از الگوریتمهای مختلف برای تصمیمگیری در مورد مسیر با کمترین تعداد hop استفاده میشود.
رایجترین الگوریتمهای کوتاهترین مسیر به شرح زیر هستند:
- الگوریتم «دکسترا» (Dijkstra)
- الگوریتم «بلمن فورد» (Bellman Ford)
- الگوریتم «فلوید وارشال» (Floyd Warshall)
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای کامپیوتری
- گنجینه آموزش های شبکههای کامپیوتری
- مجموعه آموزشهای ابزارهای مهندسی کامپیوتر
- سوئیچینگ در شبکه های کامپیوتری — به زبان ساده
- لایه شبکه چیست؟ — به زبان ساده
- آموزش مانیتورینگ شبکه | راهنمای کامل و رایگان — به زبان ساده
==
با سلام و خسته نباشید . ممنونم از توضیحاتتون
من فقط ارتباط الگوریتم های مسیر یابی رو با مسیریاب های پخشی و… که در بالاتر توضیح داده شده بود رو متوجه نشدم.