ساختار اینترنت
قبل از بحث در مورد پروتکلهای مسیریابی تکپخشی، باید ساختار فعلی اینترنت را درک کنیم. اینترنت از ساختاری درختمانند با یک ستون فقرات، به ساختاری چند ستونه که توسط شرکتهای خصوصی مختلف اداره میشود تغییر کرده است. اگرچه امروزه ارائه یک نمای کلی از اینترنت دشوار است، اما میتوان گفت که اینترنت ساختاری مشابه آنچه در شکل ۱ مشاهده میکنید دارد.
همانگونه که مشاهده میکنید، چند ستون فقرات وجود دارد که توسط شرکتهای ارتباطی خصوصی مدیریت میشود تا اتصال جهانی امکانپذیر شود. این ستونها توسط برخی نقاط همتا به هم متصل میشوند که اتصال بین ستون فقرات را امکانپذیر میکنند. در سطح پایینتر، برخی شبکههای ارائهدهنده خدمات وجود دارند که از ستون فقرات برای برقراری ارتباطات جهانی استفاده میکنند و علاوه بر این، خدماتی را به کاربران اینترنتی ارائه میدهند. در نهایت، شبکههای مصرفکننده وجود دارند که از خدمات ارائهشده توسط شبکههای ارائهدهنده استفاده میکنند. هر یک از این سه موجودیت (کارگزار، شبکه ارائهدهنده و شبکه کلاینت) را میتوان «ارائهدهنده خدمات اینترنت» (ISP) نامید که خدماتی در سطوح مختلف ارائه میکنند.
اینترنت فعلی از تعداد زیادی شبکه و روتر تشکیل شده که توسط تجهیزات دیگری شبکههای محلی و گسترده را به یکدیگر متصل میکنند. بدیهی است که مسیریابی در اینترنت با استفاده از یک پروتکل به دو دلیل مقیاسپذیری و پیچیدگی مدیریتی امکانپذیر نیست. به بیان دقیقتر، اگر تنها از یک پروتکل استفاده شود دستیابی به مقیاسپذیری غیرممکن میشود، زیرا اندازه جداول فوروارد بزرگ میشود، جستوجوی مقصد در جداول انتقال زمانبر میشود و بهروزرسانی حجم عظیمی از جداول، ترافیک سنگینی را ایجاد میکند. همانگونه که شکل ۱ نشان میدهد، هر ISP توسط یک مرجع مدیریتی اداره میشود که باید کنترل کاملی بر زیرساختهای خود داشته باشد. همچنین، سازمانی که مسئولیت مدیریت بخش مشخصی را برعهده دارد باید تعدادی زیرشبکه و روتر را کنترل کند. این سازمان ممکن است به این جمعبندی کلی برسد که بهتر است روترهای مستقر در یک بخش کلیدی تنها توسط یک سازنده خاص تولید شوند، یک الگوریتم مسیریابی خاص برای رفع مشکلات استفاده شود یا خطمشیهای مشخصی برای ترافیک عبوری ISPها تعریف شود.
شکل 1
مسیریابی سلسله مراتبی بهمعنای در نظر گرفتن هر ISP بهعنوان یک «سیستم مستقل» (AS) سرنام Autonomous System است. هر AS میتواند یک پروتکل مسیریابی را برای پاسخگویی به نیازهای خود فراخوانی و اجرا کند، اما اینترنت از پروتکلهای سراسری برای متصل کردن همه سیستمهای خودمختار در حال اجرا استفاده میکند. پروتکل مسیریابی مورد استفاده در هر AS بهعنوان پروتکل مسیریابی درونسازمانی یا به عبارت دقیقتر، «پروتکل دروازه داخلی» (IGP) نامیده میشود. در نقطه مقابل، پروتکل مسیریابی جهانی بهعنوان پروتکل مسیریابی بین سیستمهای خودمختار یا «پروتکل دروازه خارجی» (EGP) نامیده میشود. ما میتوانیم چند پروتکل مسیریابی دروندامنهای داشته باشیم و به هر سیستم خودمختار اجازه دهیم گزینه مدنظر خود را انتخاب کند، اما بدیهی است که ما باید فقط یک پروتکل بین دامنهای داشته باشیم که مسیریابی بین این گرهها را مدیریت کند. در حال حاضر، دو پروتکل رایج مسیریابی درون دامنهای RIP و OSPF و پروتکل مسیریابی بین دامنهای BGP بهشکل گسترده مورد استفاده قرار میگیرند. لازم به توضیح است که هر زمان پروتکل IPv6 فراگیر شود، ممکن است شرایط تغییر کند.
سیستمهای خودمختار
همانگونه که اشاره شد، هر ISP یک سیستم مستقل برای مدیریت شبکهها و روترهای تحت کنترل خود است. اگرچه ممکن است سیستمهای خودمختار کوچک، متوسط و بزرگ داشته باشیم، اما به هر سیستم خودمختار یک شماره مستقل (ASN) توسط سازمان ICANN اختصاص داده میشود. هر ASN یک عدد صحیح بدون علامت 16 بیتی است که بهطور منحصربهفرد یک سیستم خودمختار را تعریف میکند. با این حال، سیستمهای خودمختار بر اساس بزرگی یا کوچکی طبقهبندی نمیشوند. آنها بر اساس نحوه اتصال به دیگر سیستمهای خودمختار طبقهبندی میشوند. بر همین اساس، امروزه سیستمهای خودمختار کوچک یا خرد، گذرا و چند خانهای (Multi-Home) داریم.
- سیستمهای خودمختار خرد (Stub Autonomous Systems): یک سیستم خودمختار خرد میتواند تنها با یک سیستم خودمختار دیگر مرتبط باشد. در بیشتر موارد، ترافیک داده محصور در خود سیستم خودمختار است و ارسال ترافیک دادهای را پشتیبانی نمیکند. یک مثال خوب از یک سیستم خودمختار خرد، یک شبکه کلاینتی است که منبع یا مخزن دادهای است که تنها برای پاسخگویی به نیازهای کلاینتهای خاص طراحی شده است.
- سیستم خودمختار چندخانهای (Multi-home Autonomous Systems): سیستمی است که میتواند بیش از یک اتصال به دیگر سیستمهای خودمختار داشته باشد، اما اجازه نمیدهد ترافیک داده از طریق آن عبور کند. یک مثال خوب در این زمینه، سامانههای خودمختاری کلاینتی هستند که از سرویسهای بیش از یک شبکه ارائهدهنده خدمات استفاده کنند، اما خطمشی آنها اجازه نمیدهد دادهها از طریق آنها انتقال پیدا کنند.
- سیستم خودمختار گذارا (Transient Autonomous Systems): یک سیستم خودمختار گذرا به سیستمهای مختلفی متصل است و اجازه ارسال ترافیک را میدهد. شبکههای ارائهدهنده خدمات و ستون فقرات اینترنت نمونههای خوبی از سیستمهای خودمختار گذرا هستند.
پروتکل اطلاعات مسیریابی (RIP)
پروتکل اطلاعات مسیریابی (Routing Information Protocol) یکی از پرکاربردترین پروتکلهای مسیریابی درون دامنهای است که بر اساس الگوریتم مسیریابی بردار فاصله توسعه پیدا کرده است. RIP بهعنوان بخشی از شبکه ارتباطی شرکت زیراکس (Xerox Network System) توسعه پیدا کرد، اما در ادامه تغییراتی بر مبنای توزیع نرمافزار برکلی (Berkeley Software Distribution) یونیکس در آن اعمال شد تا RIP بهشکل گستردهای مورد استفاده قرار گیرد.
Hop Count
از آنجایی که یک روتر در یک سیستم خودمختار باید بداند که چگونه یک بسته را به شبکههای مختلف (زیر شبکه) در یک سیستم خودمختار ارسال کند، باید هزینه دسترسی به شبکههای مختلف را بر مبنای تئوری گرافها محاسبه کند تا هزینه بین روتر و شبکهای را که میزبان مقصد در آن قرار دارد پیدا کند.
برای ساده کردن این فرآیند (فارغ از معیارهای عملکردی روترها و لینکها، مانند تاخیر و پهنای باند)، هزینه بر مبنای تعداد هاپهایی که بسته از میان آنها عبور کرده محاسبه میشود. به بیان دقیقتر، فاصله میان روتر منبع و مقصد محاسبه میشود. نکته مهمی که باید به آن دقت کنید این است که شبکهای که میزبان منبع در آن قرار دارد محاسبه نمیشود، زیرا میزبان منبع از جدول ارسال استفاده نمیکند. در شکل ۲ تعداد هاپها برابر با مقدار ۳ است، به این معنا که سه روتر میان میزبان مبدا و میزبان مقصد قرار دارند. در RIP، حداکثر هزینه یک مسیر میتواند 15 باشد و در نتیجه مقادیر بالاتر از 15 بهعنوان بینهایت در نظر گرفته میشود (بدون اتصال). به همین دلیل، RIP را میتوان فقط در سیستمهای خودمختار که تعداد هاپهای آنها بیشتر از 15 نیست استفاده کرد.
شکل 2
جداول ارسال (Forwarding Tables)
اگرچه الگوریتم بردار فاصله پیرامون ارسال بردارهای فاصله بین گرههای همسایه کار میکند، اما روترها در یک سیستم مستقل باید جداول ارسالی بهمنظور ارسال دقیق بستهها به شبکههای مقصد را حفظ کنند. جدول ارسال در RIP یک جدول سه ستونی است که در آن ستون اول آدرس شبکه مقصد، ستون دوم آدرس روتر بعدی که بسته باید به آن ارسال شود و ستون سوم هزینه (تعداد هاپها) تا رسیدن به شبکه مقصد است. در شکل ۳، نمونهای از جداول ارسال روترها را مشاهده میکنید. همانگونه که مشاهده میکنید ستونهای اول و سوم اطلاعات مشابهی در ارتباط با بردار فاصله دارند و تعداد هاپها تا رسیدن به شبکه مقصد را نشان میدهند.
شکل 3
اگرچه یک جدول فوروارد در RIP فقط روتر بعدی در ستون دوم را تعریف میکند، اما اطلاعات کل درخت کمهزینه را بر اساس ویژگی دوم درختها نشان میدهد. بهطور مثال، R1 تعریف میکند که مسیریاب بعدی برای مسیر N4، R2 است. R2 تعریف میکند که روتر بعدی به N4، R3 است. R3 تعریف میکند که هیچ روتر بعدیای برای این مسیر وجود ندارد. بنابراین درخت بهصورت R1 → R2 → R3 → N4 خواهد بود. سوالی که اغلب در مورد جدول فوروارد پرسیده میشود این است که کاربرد ستون سوم چیست. ستون سوم برای ارسال بسته مورد نیاز نیست، اما برای بهروزرسانی جدول فوروارد زمانی که تغییری در مسیر ایجاد میشود نیاز است.
پیادهسازی RIP
RIP بهعنوان فرآیندی پیادهسازی میشود که از سرویس پروتکل دیتاگرام کاربر (UDP) روی پورت520 استفاده میکند. در BSD، پروتکل RIP پردازهای را که Daemon نام دارد اجرا میکند. درست است که RIP یک پروتکل مسیریابی است که به IP کمک میکند دیتاگرامهای خود را از طریق سیستم خودمختار ارسال کند، اما پیامهای RIP در پروتکل UDP کپسوله میشوند. جالب آنکه خود پروتکل UDP به نوبه خود در دیتاگرامهای IP محصور میشود. بهعبارت دیگر، RIP در لایه کاربرد اجرا میشود، اما در ادامه جداول ارسال را برای IP در شبکه ایجاد میکند. تاکنون دو نسخه از RIP بهنامهای RIP-1 و RIP-2 منتشر شدهاند که نسخه دوم با نسخه اول سازگار است.
پیامهای RIP
فرآیندهای RIP نیاز به تبادل پیام دارند. قالب پیامهای RIP-2 در شکل ۴ نشان داده شده است. بخشی از پیام که ما آنرا ورودی مینامیم، میتواند در صورت نیاز در یک پیام تکرار شود. هر ورودی شامل اطلاعات مربوط به یک خط در جدول فوروارد روتر است که پیام را ارسال میکند.
شکل 4
RIP دو نوع پیام درخواست و پاسخ دارد. یک پیام درخواست توسط روتری که بهتازگی اجرا شده یا توسط روتری که دارای برخی از ورودیهای دارای بازه زمانی است ارسال میشود. یک پیام درخواست در مورد ورودیهای خاص یا همه ورودیها سوال میکند. یک پیام پاسخ (یا بهروزرسانی) میتواند درخواستی یا ناخواسته باشد. یک پیام پاسخ درخواستی فقط در پاسخ به یک پیام درخواست ارسال میشود و شامل اطلاعاتی در مورد مقصد مشخصشده در پیام درخواست مربوطه است. از سوی دیگر، یک پیام پاسخ ناخواسته بهصورت دورهای، هر 30 ثانیه یا زمانی که تغییری در جدول ارسال ایجاد میشود ارسال میشود.
الگوریتم RIP
RIP الگوریتم مسیریابی بردار فاصله را پیادهسازی میکند. با این حال، دو تغییر در الگوریتم ایجاد میکند تا روتر بتواند جدول ارسالی خود را بهروز کند:
1. یک روتر بهجای آنکه تنها بردارهای فاصله را ارسال کند، باید کل محتویات جدول فوروارد خود را در یک پیام پاسخ ارسال کند.
2. گیرنده یک هاپ به هر هزینه اضافه میکند و فیلد روتر بعدی را به آدرس روتر ارسالکننده تغییر میدهد. ما هر مسیری در جدول انتقال اصلاحشده را «مسیر دریافتی» (Received Route) و هر مسیر در جدول انتقال قدیمی را «مسیر قدیمی» (Old Route) مینامیم. در این حالت، روتر دریافتکننده مسیرهای قدیمی را بهعنوان مسیرهای جدید انتخاب میکند. تنها سه استثنا بهشرح زیر وجود دارد:
- اگر مسیر دریافتی در جدول انتقال قدیمی وجود نداشته باشد به مسیر اضافه میشود.
- اگر هزینه مسیر دریافتی کمتر از هزینه مسیر قبلی باشد، مسیر دریافتی باید بهعنوان مسیر جدید انتخاب شود.
- اگر هزینه مسیر دریافتی بیشتر از هزینه مسیر قبلی باشد، اما بهدلیل وجود برخی معیارها هر دو مسیر هزینه یکسانی برای روتر بعدی داشته باشند، مسیر دریافتی باید بهعنوان مسیر جدید انتخاب شود. این حالت، تنها زمانی اتفاق میافتد که در گذشته روتر از همان مسیر استفاده کرده، اما اکنون وضعیت آن تغییر کرده است. بهطور مثال، فرض کنید همسایهای قبلا مسیری را به مقصدی با هزینه 3 ارسال کرده است، اما اکنون مسیری بین این همسایه و مقصد وجود ندارد. همسایه این مقصد را با ارزش هزینه بینهایت (16 در RIP) ارسال میکند. روتر گیرنده نباید این مقدار را نادیده بگیرد، حتا اگر مسیر قدیمی آن هزینه کمتری برای همان مقصد داشته باشد. در این حالت، جدول ارسال جدید باید بر اساس مسیر مقصد مرتب شود. شکل ۵ عملکرد RIP در یک سیستم خودمختار را نشان میدهد.
- ابتدا، قالب تمام جداول فوروارد پس از بوت شدن همه روترها در وضعیت یکسان است.
- در ادامه، تغییراتی در برخی از جداول هنگامیکه برخی پیامهای بهروزرسانی ارسال و دریافت میشوند اعمال میشود.
- در نهایت، جداول فوروارد تثبیتشده تا زمانی که تغییری بهوجود نیاید، ساخته میشوند.
شکل 5
تایمر در RIP
RIP از سه تایمر برای حفظ عملکرد استفاده میکند.
- اولین تایمر، تایمر دورهای (Periodic Timer) است که فرآیند ارسال پیامهای بهروزرسانی را کنترل میکند. هر روتر دارای یک تایمر دورهای است که بهطور تصادفی روی عددی بین 25 تا 35 ثانیه تنظیم میشود (برای جلوگیری از ارسال پیامهای همه روترها بهطور همزمان و ایجاد ترافیک اضافی).
- دومین تایمر، شمارش معکوس (Timer Counts Down) است. هنگامی که به صفر رسید، پیام بهروزرسانی ارسال میشود و تایمر یک بار دیگر بهطور تصادفی تنظیم میشود.
- سومین تایمر، تایمر انقضا (Expiration Timer) است که اعتبار یک مسیر را بررسی میکند. هنگامیکه روتر اطلاعات بهروزرسانی یک مسیر را دریافت میکند، تایمر انقضا برای یک مسیر خاص روی 180 ثانیه تنظیم میشود. هر بار که یک بهروزرسانی جدید برای مسیر دریافت میشود، تایمر دوباره تنظیم میشود. اگر در اینترنت مشکلی وجود داشته باشد و در مدت زمان 180 ثانیه بهروزرسانی دریافت نشود، مسیر «ازدسترفته» در نظر گرفته میشود و تعداد هاپهای مسیر روی 16 تنظیم میشود که به معنی غیرقابل دسترس بودن مقصد است. هر مسیر دارای تایمر انقضای خاص خود است.
تایمر «جمعآوری زباله» (Garbage Collection Timer) برای پاکسازی یک مسیر از جدول انتقال استفاده میشود. هنگامی که اطلاعات یک مسیر نامعتبر میشود، روتر بلافاصله آن مسیر را از جدول خود پاک نمیکند، بلکه به انتشار مسیر با مقدار متریک 16 ادامه میدهد. در همان زمان، تایمر جمعآوری زباله برای آن مسیر روی 120 ثانیه تنظیم میشود. هنگامیکه شمارش به صفر رسید، مسیر از جدول پاک میشود. این تایمر به همسایگان این امکان را میدهد که قبل از پاکسازی از نامعتبر بودن یک مسیر آگاه شوند.
عملکرد پروتکل RIP
هنگامیکه صحبت از پیادهسازی RIP بهمیان میآید، عملکرد موضوع مهمی است که نباید بهسادگی از کنار آن عبور کرد. در این زمینه سه مفهوم مهم وجود دارد که باید هنگام پیادهسازی RIP به آن دقت کرد:
- بهروزرسانی پیامها (Update Messages): پیامهای بهروزرسانی در RIP قالب سادهای دارند و رویکرد محلی دارند. به بیان دقیقتر، گرههای مجاور این پیامها را برای یکدیگر ارسال میکنند و در نتیجه ترافیکی ایجاد نمیکنند، زیرا روترها سعی میکنند این پیامها را بهطور همزمان ارسال نکنند.
- همگرایی جداول ارسال :(Convergence Of Forwarding Tables) RIP از الگوریتم بردار-فاصله استفاده میکند تا اگر دامنهای بزرگ بود بهشکل تدریجی همگرا شود. با توجه به اینکه RIP تنها 15 هاپ در یک دامنه را مجاز میداند مشکلی از بابت همگرایی وجود ندارد. تنها مشکلی که ممکن است بر روند همگرایی تاثیر منفی بگذارد، حلقههای ایجاد شده در دامنه یا شماره تا بینهایت است. راهکارهایی مثل poison-reverse و split-horizon برای حل این مشکل به پروتکل RIP افزوده شدهاند.
- یکپارچگی (Integrity): همانگونه که اشاره کردیم، مسیریابی بردار فاصله بر اساس این مفهوم است که هر روتر آنچه در مورد کل دامنه میداند برای همسایگان خود ارسال کند. این حرف بدان معنا است که محاسبه جدول ارسالی به اطلاعات دریافتی از همسایگان مستقیم بستگی دارد که به نوبه خود اطلاعات خود را از همسایگان خود دریافت میکنند. در نتیجه، اگر یک روتر مشکلی داشته باشد، مشکل به همه روترها منتقل میشود و بر فرآیند فوروارد هر روتر تاثیر منفی میگذارد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟