تبیان، دستیار زندگی
در شبکه‌های کوچک، و در نقاطی که انتقال اطلاعات معمولا مستقیم است، مسیریابی چندان جدی گرفته نمی‌شود. اما هنگامی که شبکه‌ها از حالت‌های ایستگاه‌های کاری خارج می‌شوند و کمی پیچیده‌تر می‌شوند، در این مقاله به معرفی ویژگی های مسیر یابی بهینه اشاره می کنیم.
بازدید :
زمان تقریبی مطالعه :

الگوریتم‌های مسیریابی

در شبکه‌های کوچک، و در نقاطی که انتقال اطلاعات معمولا مستقیم است، مسیریابی چندان جدی گرفته نمی‌شود. اما هنگامی که شبکه‌ها از حالت‌های ایستگاه‌های کاری خارج می‌شوند و کمی پیچیده‌تر می‌شوند، در این حالت، مسیریابی و انتخاب مسیر بهینه برای ارسال بسته‌های اطلاعاتی، به یک امر مهم بدل می‌شود. در شبکه‌های بزرگ، دستگاه‌هایی به‌عنوان مسیریاب (1)  وجود دارند که عمل مسیریابی را انجام می‌دهند.

الگوریتم مسیریابی‌ای مناسب است که 6 ویژگی زیر را داشته باشد: صحت عملکرد(2) ، سادگی(3)، قابلیت اطمینان(4)، پایداری(5)، عدالت(6) و بهینگی(7).

بدیهی است که الگوریتمی بهتر است که صحت عملکرد بالایی داشته باشد و در عین حال ساده باشد، اما چه الگوریتمی قابلیت اتکای خوبی دارد؟ الگوریتمی مناسب است که در گذشت زمان، با تغییر نرم‌افزارها و سخت‌افزارهای شبکه و تغییر پروتکل‌ها، همچنان مسیریابی درستی ارائه دهد. همچنین مهم است که بعد از یک مدت زمان خاص، الگوریتم مسیریابی به حالتی پایدار برسد و همزمان با آن، مسیریابی بهینه‌ای داشته باشد و در ارسال بسته‌ها عدالت را رعایت کند.

شبکه

الگوریتم کوتاه‌ترین مسیر

ساده‌ترین روش مسیریابی، روش کوتاه‌ترین مسیر است. هدف اصلی از این الگوریتم، این است که گراف‌ زیرشبکه را طوری تشکیل بدهیم که در آن هر گره را یک مسیریاب فرض کنیم و هر یال را یک خط ارتباطی میان دو مسیریاب. در این حالت، هر یال یک وزن خواهد داشت و با توجه به الگوریتم کوتاه‌ترین مسیر دایجسترا(8) می‌توان کوتاه‌ترین مسیر ممکن را محاسبه کرد.

الگوریتم سیل‌آسا

در این روش، هر بسته ورودی که به یک مسیریاب می‌رسد، از تمام کانال‌های خروجی مسیریاب خارج می‌شود. بدین‌ترتیب تعداد زیادی بسته تکراری وجود خواهد داشت و عملا میزان آن بی‌نهایت خواهد بود. بنابراین باید برای خاتمه این تعداد بسته‌ها راهکاری اندیشید. راهکارهای پیشنهادی برای این روش، استفاده از یک شمارنده گام است. بدین صورت که در سرآیند(9) هر بسته یک شمارنده بگذاریم و در هر گام یک شماره از آن کم کنیم تا به صفر برسد و بسته حذف شود. در این صورت مبدا باید طول شبکه را بداند و در بدترین حالت، طول شبکه را طولانی‌ترین فاصله در نظر بگیرد.

یک روش دیگر، استفاده از حالتی نیمه‌منطقی است. مسیریاب در این روش، بسته را به تمام کانال‌های خروجی نمی‌فرستد. بلکه به کانال‌هایی می‌فرستد که احتمال رسیدن آنها به مقصد وجود دارند. در این صورت اگر بسته‌ای به سمت غرب بخواهد برود، نبایستی از کانال‌های شرقی مسیریاب استفاده کرد، مگر اینکه مسیریاب از ساختار شبکه مطلع باشد و بداند که این کانال‌ها به کجا منتهی می‌شوند.

الگوریتم سیل‌آسا به جز چند مورد خاص، از جمله سیستم‌های توزیعی که عملکردهای موازی در آنها نیاز است، کاربرد علمی دیگری ندارد.

الگوریتم بردار فاصله

در این روش، مسیریاب‌ها در خود جدولی (برداری) ذخیره می‌کنند با عنوان بردار فاصله که در آن بهترین فاصله تا هر مسیریاب دیگر در شبکه را ذخیره می‌کنند. در این صورت، تصمیم‌گیری بهتری هنگام مسیریابی اتخاذ می‌شود. این جدول‌ها با اطلاعات مسیریاب‌های همسایه به‌روز می‌شود. هر یک از عناصر این جدول‌ها یک درایه دوبخشی دارند که یکی از آنها نشانگر خط خروجی مناسب برای رسیدن به مسیریاب مورد نظر و دیگری تخمین فاصله زمانی تا آن مسیریاب است.

الگوریتم حالت لینک

مسیریابی بردار فاصله مسیریابی خوبی بود و حتی در شبکه آرپانت(10) تا سال 1979 نیز عملیاتی بود، اما دو مشکل اساسی داشت. نخست اینکه معیار تاخیر در این الگوریتم، طول صفی از مسیریاب‌ها بود و دوم اینکه پهنای باند هر یک از خطوط در محاسبات دخالت داده نمی‌شد. بنابراین حتی اگر جای فاصله را با پهنای باند در جداول مسیریاب عوض می‌کردند، زمان همگرایی این مسیریاب‌ها به یک نتیجه درست، به بی‌نهایت میل می‌کرد.

الگوریتم حالت لینک، ساده است و می‌توان به‌صورت زیر آن را بیان کرد:

1. هر مسیریاب باید همسایه‌های خود را شناسایی کرده و آدرس‌های شبکه‌شان را داشته باشد.

2. میزان هزینه و یا تاخیر همسایه‌های خود را بداند.

3. اطلاعاتی که از همسایه‌ها بدست آورده است را برای تمام مسیریاب‌های دیگر بفرستد.

4. کوتاه‌ترین مسیر برای رسیدن به دیگر مسیریاب‌ها را محاسبه کند.

شناسایی همسایه‌ها به‌این صورت انجام می‌گیرد که پس از راه‌اندازی مسیریاب (بوت‌شدن) یک بسته سلام(11) به تمام همسایه‌ها ارسال می‌شود. مسیریاب‌های همسایه مشخصات خود را برای این مسیریاب می‌فرستند.

برای تخمین هزینه و تاخیر همسایه‌ها، از بسته‌ای به نام Echo استفاده می‌شود. وقتی مسیریاب این بسته را برای همسایه می‌فرستد، آن مسیریاب فورا باید پاسخ آن را ارسال کند، پس از محاسبه زمان رفت و برگشت و تقسیم آن بر عدد 2، میزان نسبی تاخیر بدست می‌آید. سپس این اطلاعات را در قالب بسته‌ای برای دیگر مسیریاب‌ها ارسال می‌کند تا آنها نیز از وضعیت این مسیریاب مطلع باشند.

بدین ترتیب هر مسیریاب با دریافت اطلاعات کامل از تمام مسیریاب‌های شبکه، می‌تواند همواره بهترین مسیر را انتخاب کند و کوتاه‌ترین مسیر ممکن را برای ارسال بسته‌ها در نظر بگیرد و شش شرط یک الگوریتم را رعایت کند. روش‌های دیگر مسیریابی نیز وجود دارند که به‌ آنها نیز خواهیم پرداخت.

پیوست:

1. Router

2. Correctness

3. Simplicity

4. Robustness

5. Stability

6. Fairness

7. Optimality

8. Dijkstra

9. Header

10. ARPANET

11. Hello Packet

منبع:

Andrew S. Tanenbaum, Computer Networks, 4th Edition, Prentice Hall, 2002

http://en.wikipedia.org/wiki/Link-state_routing_protocol

تالیف: میلاد پیکانی

تنظیم برای تبیان: فاطمه مجدآبادی