پروتکلهای مسیریابی تکپخشی (Unicast) نقش مهمی در ساختار اینترنت دارند. این پروتکلها با ارائه یک مکانیزم بهینه ارسال و دریافت بستهها، نرخ ازدسترفتن دادهها را بهحداقل میرسانند. پروتکلها با تعریف دامنه عملیاتی مخصوص به خود، توانایی مدیریت پیامها و برقراری ارتباط روترها با یکدیگر را دارند. علاوه بر این، پروتکلها برای مسیریابی و ارسال بستهها از گرههای مبدا به مقصد با یکدیگر در ارتباط هستند. امروزه، پروتکل «اطلاعات مسیریابی» (RIP)بر مبنای الگوریتم بردار فاصله، «ابتدا کوتاهترین مسیر را انتخاب کن» (OSPF)بر اساس الگوریتم حالت پیوند، و پروتکل «دروازه مرزی» (BGP) بر مبنای الگوریتم بردار مسیر، بیشتر از پروتکلهای دیگر در اینترنت مورد استفاده قرار میگیرند.
قبل از بحث در مورد پروتکلهای مسیریابی تکپخشی، باید ساختار فعلی اینترنت را درک کنیم. اینترنت از ساختاری درختمانند با یک ستون فقرات، به ساختاری چند ستونه که توسط شرکتهای خصوصی مختلف اداره میشود تغییر کرده است. اگرچه امروزه ارائه یک نمای کلی از اینترنت دشوار است، اما میتوان گفت که اینترنت ساختاری مشابه آنچه در شکل ۱ مشاهده میکنید دارد.
همانگونه که مشاهده میکنید، چند ستون فقرات وجود دارد که توسط شرکتهای ارتباطی خصوصی مدیریت میشود تا اتصال جهانی امکانپذیر شود. این ستونها توسط برخی نقاط همتا به هم متصل میشوند که اتصال بین ستون فقرات را امکانپذیر میکنند. در سطح پایینتر، برخی شبکههای ارائهدهنده خدمات وجود دارند که از ستون فقرات برای برقراری ارتباطات جهانی استفاده میکنند و علاوه بر این، خدماتی را به کاربران اینترنتی ارائه میدهند. در نهایت، شبکههای مصرفکننده وجود دارند که از خدمات ارائهشده توسط شبکههای ارائهدهنده استفاده میکنند. هر یک از این سه موجودیت (کارگزار، شبکه ارائهدهنده و شبکه کلاینت) را میتوان «ارائهدهنده خدمات اینترنت» (ISP) نامید که خدماتی در سطوح مختلف ارائه میکنند.
اینترنت فعلی از تعداد زیادی شبکه و روتر تشکیل شده که توسط تجهیزات دیگری شبکههای محلی و گسترده را به یکدیگر متصل میکنند. بدیهی است که مسیریابی در اینترنت با استفاده از یک پروتکل به دو دلیل مقیاسپذیری و پیچیدگی مدیریتی امکانپذیر نیست. به بیان دقیقتر، اگر تنها از یک پروتکل استفاده شود دستیابی به مقیاسپذیری غیرممکن میشود، زیرا اندازه جداول فوروارد بزرگ میشود، جستوجوی مقصد در جداول انتقال زمانبر میشود و بهروزرسانی حجم عظیمی از جداول، ترافیک سنگینی را ایجاد میکند. همانگونه که شکل ۱ نشان میدهد، هر ISP توسط یک مرجع مدیریتی اداره میشود که باید کنترل کاملی بر زیرساختهای خود داشته باشد. همچنین، سازمانی که مسئولیت مدیریت بخش مشخصی را برعهده دارد باید تعدادی زیرشبکه و روتر را کنترل کند. این سازمان ممکن است به این جمعبندی کلی برسد که بهتر است روترهای مستقر در یک بخش کلیدی تنها توسط یک سازنده خاص تولید شوند، یک الگوریتم مسیریابی خاص برای رفع مشکلات استفاده شود یا خطمشیهای مشخصی برای ترافیک عبوری ISPها تعریف شود.
مسیریابی سلسله مراتبی بهمعنای در نظر گرفتن هر ISP بهعنوان یک «سیستم مستقل» (AS) سرنام Autonomous است. هر AS میتواند یک پروتکل مسیریابی را برای پاسخگویی به نیازهای خود فراخوانی و اجرا کند، اما اینترنت از پروتکلهای سراسری برای متصل کردن همه سیستمهای خودمختار در حال اجرا استفاده میکند. پروتکل مسیریابی مورد استفاده در هر AS بهعنوان پروتکل مسیریابی درونسازمانی یا به عبارت دقیقتر، «پروتکل دروازه داخلی» (IGP) نامیده میشود. در نقطه مقابل، پروتکل مسیریابی جهانی بهعنوان پروتکل مسیریابی بین سیستمهای خودمختار یا «پروتکل دروازه خارجی» (EGP) نامیده میشود. ما میتوانیم چند پروتکل مسیریابی دروندامنهای داشته باشیم و به هر سیستم خودمختار اجازه دهیم گزینه مدنظر خود را انتخاب کند، اما بدیهی است که ما باید فقط یک پروتکل بین دامنهای داشته باشیم که مسیریابی بین این گرهها را مدیریت کند. در حال حاضر، دو پروتکل رایج مسیریابی درون دامنهای RIP و OSPF و پروتکل مسیریابی بین دامنهای BGP بهشکل گسترده مورد استفاده قرار میگیرند. لازم به توضیح است که هر زمان پروتکل IPv6 فراگیر شود، ممکن است شرایط تغییر کند.
همانگونه که اشاره شد، هر ISP یک سیستم مستقل برای مدیریت شبکهها و روترهای تحت کنترل خود است. اگرچه ممکن است سیستمهای خودمختار کوچک، متوسط و بزرگ داشته باشیم، اما به هر سیستم خودمختار یک شماره مستقل (ASN) توسط سازمان ICANN اختصاص داده میشود. هر ASN یک عدد صحیح بدون علامت 16 بیتی است که بهطور منحصربهفرد یک سیستم خودمختار را تعریف میکند. با این حال، سیستمهای خودمختار بر اساس بزرگی یا کوچکی طبقهبندی نمیشوند. آنها بر اساس نحوه اتصال به دیگر سیستمهای خودمختار طبقهبندی میشوند. بر همین اساس، امروزه سیستمهای خودمختار کوچک یا خرد، گذرا و چند خانهای (Multi-Home) داریم.
پروتکل اطلاعات مسیریابی (Routing Information Protocol) یکی از پرکاربردترین پروتکلهای مسیریابی درون دامنهای است که بر اساس الگوریتم مسیریابی بردار فاصله توسعه پیدا کرده است. RIP بهعنوان بخشی از شبکه ارتباطی شرکت زیراکس (Xerox Network ) توسعه پیدا کرد، اما در ادامه تغییراتی بر مبنای توزیع نرمافزار برکلی (Berkeley Software Distribution) یونیکس در آن اعمال شد تا RIP بهشکل گستردهای مورد استفاده قرار گیرد.
از آنجایی که یک روتر در یک سیستم خودمختار باید بداند که چگونه یک بسته را به شبکههای مختلف (زیر شبکه) در یک سیستم خودمختار ارسال کند، باید هزینه دسترسی به شبکههای مختلف را بر مبنای تئوری گرافها محاسبه کند تا هزینه بین روتر و شبکهای را که میزبان مقصد در آن قرار دارد پیدا کند.
برای ساده کردن این فرآیند (فارغ از معیارهای عملکردی روترها و لینکها، مانند تاخیر و پهنای باند)، هزینه بر مبنای تعداد هاپهایی که بسته از میان آنها عبور کرده محاسبه میشود. به بیان دقیقتر، فاصله میان روتر منبع و مقصد محاسبه میشود. نکته مهمی که باید به آن دقت کنید این است که شبکهای که میزبان منبع در آن قرار دارد محاسبه نمیشود، زیرا میزبان منبع از جدول ارسال استفاده نمیکند. در شکل ۲ تعداد هاپها برابر با مقدار ۳ است، به این معنا که سه روتر میان میزبان مبدا و میزبان مقصد قرار دارند. در RIP، حداکثر هزینه یک مسیر میتواند 15 باشد و در نتیجه مقادیر بالاتر از 15 بهعنوان بینهایت در نظر گرفته میشود (بدون اتصال). به همین دلیل، RIP را میتوان فقط در سیستمهای خودمختار که تعداد هاپهای آنها بیشتر از 15 نیست استفاده کرد.
شکل 2
اگرچه الگوریتم بردار فاصله پیرامون ارسال بردارهای فاصله بین گرههای همسایه کار میکند، اما روترها در یک سیستم مستقل باید جداول ارسالی بهمنظور ارسال دقیق بستهها به شبکههای مقصد را حفظ کنند. جدول ارسال در RIP یک جدول سه ستونی است که در آن ستون اول آدرس شبکه مقصد، ستون دوم آدرس روتر بعدی که بسته باید به آن ارسال شود و ستون سوم هزینه (تعداد هاپها) تا رسیدن به شبکه مقصد است. در شکل ۳، نمونهای از جداول ارسال روترها را مشاهده میکنید. همانگونه که مشاهده میکنید ستونهای اول و سوم اطلاعات مشابهی در ارتباط با بردار فاصله دارند و تعداد هاپها تا رسیدن به شبکه مقصد را نشان میدهند.
شکل 3
اگرچه یک جدول فوروارد در RIP فقط روتر بعدی در ستون دوم را تعریف میکند، اما اطلاعات کل درخت کمهزینه را بر اساس ویژگی دوم درختها نشان میدهد. بهطور مثال، R1 تعریف میکند که مسیریاب بعدی برای مسیر N4، R2 است. R2 تعریف میکند که روتر بعدی به N4، R3 است. R3 تعریف میکند که هیچ روتر بعدیای برای این مسیر وجود ندارد. بنابراین درخت بهصورت R1 → R2 → R3 → N4 خواهد بود. سوالی که اغلب در مورد جدول فوروارد پرسیده میشود این است که کاربرد ستون سوم چیست. ستون سوم برای ارسال بسته مورد نیاز نیست، اما برای بهروزرسانی جدول فوروارد زمانی که تغییری در مسیر ایجاد میشود نیاز است.
RIP بهعنوان فرآیندی پیادهسازی میشود که از سرویس پروتکل دیتاگرام کاربر (UDP) روی پورت520 استفاده میکند. در BSD، پروتکل RIP پردازهای را که Daemon نام دارد اجرا میکند. درست است که RIP یک پروتکل مسیریابی است که به IP کمک میکند دیتاگرامهای خود را از طریق سیستم خودمختار ارسال کند، اما پیامهای RIP در پروتکل UDP کپسوله میشوند. جالب آنکه خود پروتکل UDP به نوبه خود در دیتاگرامهای IP محصور میشود. بهعبارت دیگر، RIP در لایه کاربرد اجرا میشود، اما در ادامه جداول ارسال را برای IP در شبکه ایجاد میکند. تاکنون دو نسخه از RIP بهنامهای RIP-1 و RIP-2 منتشر شدهاند که نسخه دوم با نسخه اول سازگار است.
فرآیندهای RIP نیاز به تبادل پیام دارند. قالب پیامهای RIP-2 در شکل ۴ نشان داده شده است. بخشی از پیام که ما آنرا ورودی مینامیم، میتواند در صورت نیاز در یک پیام تکرار شود. هر ورودی شامل اطلاعات مربوط به یک خط در جدول فوروارد روتر است که پیام را ارسال میکند.
شکل 4
RIP دو نوع پیام درخواست و پاسخ دارد. یک پیام درخواست توسط روتری که بهتازگی اجرا شده یا توسط روتری که دارای برخی از ورودیهای دارای بازه زمانی است ارسال میشود. یک پیام درخواست در مورد ورودیهای خاص یا همه ورودیها سوال میکند. یک پیام پاسخ (یا بهروزرسانی) میتواند درخواستی یا ناخواسته باشد. یک پیام پاسخ درخواستی فقط در پاسخ به یک پیام درخواست ارسال میشود و شامل اطلاعاتی در مورد مقصد مشخصشده در پیام درخواست مربوطه است. از سوی دیگر، یک پیام پاسخ ناخواسته بهصورت دورهای، هر 30 ثانیه یا زمانی که تغییری در جدول ارسال ایجاد میشود ارسال میشود.
RIP الگوریتم مسیریابی بردار فاصله را پیادهسازی میکند. با این حال، دو تغییر در الگوریتم ایجاد میکند تا روتر بتواند جدول ارسالی خود را بهروز کند:
1. یک روتر بهجای آنکه تنها بردارهای فاصله را ارسال کند، باید کل محتویات جدول فوروارد خود را در یک پیام پاسخ ارسال کند.
2. گیرنده یک هاپ به هر هزینه اضافه میکند و فیلد روتر بعدی را به آدرس روتر ارسالکننده تغییر میدهد. ما هر مسیری در جدول انتقال اصلاحشده را «مسیر دریافتی» (Received Route) و هر مسیر در جدول انتقال قدیمی را «مسیر قدیمی» (Old Route) مینامیم. در این حالت، روتر دریافتکننده مسیرهای قدیمی را بهعنوان مسیرهای جدید انتخاب میکند. تنها سه استثنا بهشرح زیر وجود دارد:
شکل 5
RIP از سه تایمر برای حفظ عملکرد استفاده میکند.
تایمر «جمعآوری زباله» (Garbage Collection Timer) برای پاکسازی یک مسیر از جدول انتقال استفاده میشود. هنگامی که اطلاعات یک مسیر نامعتبر میشود، روتر بلافاصله آن مسیر را از جدول خود پاک نمیکند، بلکه به انتشار مسیر با مقدار متریک 16 ادامه میدهد. در همان زمان، تایمر جمعآوری زباله برای آن مسیر روی 120 ثانیه تنظیم میشود. هنگامیکه شمارش به صفر رسید، مسیر از جدول پاک میشود. این تایمر به همسایگان این امکان را میدهد که قبل از پاکسازی از نامعتبر بودن یک مسیر آگاه شوند.
هنگامیکه صحبت از پیادهسازی RIP بهمیان میآید، عملکرد موضوع مهمی است که نباید بهسادگی از کنار آن عبور کرد. در این زمینه سه مفهوم مهم وجود دارد که باید هنگام پیادهسازی RIP به آن دقت کرد: