تبلیغات
همه چی از همه جا، همه جور - Router روتر ها محرم

روتر ها چگونه كار می كنند؟


انتقال و مسیریابی ایمیل وقتی ایمیلی را به دوستتان در آنسوی كشور ارسال می كنید ، چگونه این پیغام از بین میلیون ها كامپیوتر در جهان تنها به دست دوست شما می رسد؟ كار اصلی روتر رساندن پیغام ها از كامپیوتری به كامپیوتر دیگر است ، آنها اجزای بسیار مهمی هستند كه پیغام ها را در بین شبكه ها به جریان می اندازند. حال با یك مثال طرز كار یك روتر را با یكدیگر مرور خواهیم كرد: شركت كوچكی را تصور كنید كه برای شبكه های تلویزیونی انیمیشن سازی می كند. شركت مذكور دارای ده كارمند بوده كه هر یك از آنها صاحب یك كامپیوتر می باشد چهار نفر از آنها انیماتور و بقیه كارمندان فروش ، حسابداری و مدیریت هستند. انیماتورها لازم است تا در حین انجام پروژه ها ، تعدادی فایل حجیم را به فرد دیگری ارسال و یا از آن دریافت كنند. برای انجام این كار ، همگی از شبكه استفاده می كنند. زمانیكه یكی از انیماتورها فایلی را برای دیگری می فرستد ، این فایل حجیم از بیشترین ظرفیت شبكه استفاده می كند كه در نهایت منجر به كاهش سرعت شبكه می گردد ، یكی از دلایل این است كه كاربری با حجم كاری بالا می تواند كل شبكه را تحت تاثیر قرار دهد. هر بسته اطلاعاتی كه در شبكه محلی از سوی كامپیوتری ارسال می شود توسط كاربران دیگر قابل روئیت می باشد. هر یك از كامپیوترها بسته ها را امتحان می كند تا ببینید آیا بسته های مذكور برای آنها فرستاده شده یا نه؟ كه این عامل باعث می شود تا ترافیك شبكه بالا رفته و مشكل باقی بماند و با گسترش شبكه و یا افزایش میزان فعالیت شبكه ها كارایی آن تحت تاثیر قرار خواهد گرفت. به منظور جلوگیری از تداخل در كار انیماتورها با سایر كارمندان ، شركت در صدد بر می آید تا دو شبكه جدا از هم یكی برای انیماتورها و دیگری را برای كارمندان دیگر طراحی كند و آن دو شبكه را با یك روتر به هم متصل كند. كنترل ترافیك روتر تنها قطعه و وسیله ای است كه می تواند پیغام های ارسالی از سوی كامپیوترها را داخل شبكه معنی و ردیابی كند. وقتی انیماتوری بخواهد فایل حجیمی را به انیماتور دیگری ارسال كند ، روتر آدرس گیرنده را بررسی كرده و ترافیك حاصل از حركت فایل مذكور را در شبكه انیماتورها نگه می دارد. هرگاه انیماتوری بخواهد پیغامی را برای دفتر دار بفرستد تا در مورد مبلغ چك پرداخت شده از ایشان سوال كند در این صورت روتر پس از بررسی آدرس گیرنده ، پیغام را به شبكه دوم راهنمایی و هدایت می كند. یكی از ابزارهایی كه توسط روتر مورد استفاده قرار می گیرد تا مسیر یك بسته (Packet ) را مشخص كند جدولی موسوم به Configuration Table می باشد. یك روتر دو كار جدا از هم انجام می دهد كه این كارها به هم مربوطند. • اول اینكه مراقب است تا مبادا اطلاعات به جایی كه نیاز نباشد ارسال شوند. • دوم از رسیدن اطلاعات به مقصد مورد نظر اطمینان حاصل می نماید. روترها با انجام این دو كار می توانند در ارتباط دادن دو شبكه كامپیوتری مجزا مفید واقع شوند. روترها با ایجاد ارتباط بین دو شبكه مجزا ، اطلاعات را از یك سوی شبكه به شبكه دیگر انتقال می دهند و در برخی مواقع ، پروتكل های مختلفی را بین دو شبكه انتقال می دهند. همچنین روتر با توجه به اینكه دارای سیستم عامل ، پردازنده و دستورات كنترلی بوده می تواند از ورود ترافیك و بسته های بی مورد به شبكه جلوگیری می كند. با افزایش تعداد شبكه هایی كه به یكدیگر وصل می باشند ، جدول مذكور نیز برای كنترل ترافیك موجود در بین شبكه ها توسعه می یابد و همسو با این تغییرات ، قدرت پردازش روتر نیز افزایش می یابد. از آنجایی كه اینترنت مجموعه عظیمی از ده ها هزار شبكه كوچك و بزرگ می باشد ، استفاده از روتر امری ضروری می باشد. انتقال بسته ها فرض كنید می خواهید با شخصی كه در آن سوی كشور اقامت دارد تماس تلفنی داشته باشید.در این صورت بین تلفن شما و شخص دوم یك مدار ثابت برقرار میشود كه این مدار از 5 یا 6 مرحله و شاید بیشتر تشكیل شده است : كابل های مسی ، سوییچ ، فیبر نوری ، میكرو ویوها ( امواج كوتاه ) و ماهواره ها. البته این مراحل تا اتمام مكالمه برقرار می باشند و كیفیت خط ارتباطی مدار مذكور در طول مدت زمان تماس ثابت باقی می ماند. اما اگر در یكی از قسمت های مدار مشكلی بوجود آید مثلاً درختی بشكند و بر روی خط ارتباطی بیفتد و یا سوییچ با مشكل برق روبرو شود در این صورت تماس شما قطع می شود. اما اگر بخواهید ایمیلی را به همراه یك ضمیمه (Attachment ) به آنسوی كشور خود بفرستید ، در این صورت فرآیند آن كاملا متفاوت می باشد. دیتاهای اینترنتی اعم صفحات وب ، فایل و یا ایمیل برای جابجایی از سیستمی موسوم بهPacket-Switching Network استفاده می كنند در این سیستم دیتاهای موجود در یك پیغام یا فایل به بسته های 1500 بایتی تقسیم می شوند. هر یك از این بسته ها دارای اطلاعاتی از قبیل آدرس فرستنده ، آدرس گیرنده ، محل بسته اطلاعاتی و همچنین حصول اطمینان از صحت و سقم بسته های واصله می باشند. هر كدام از این بسته ها را packet می نامند كه برای رسیدن به مقصد از مسیری مناسب استفاده می كنند و در صورت بروز مشكل در یك مسیر ، روتر مسیر دیگری را برای ارسال بسته ها پیشنهاد می كند ممكن است یك مسیر توسط بسته های دیگر نیز استفاده شود . همانطور كه مشاهده كردید فرآیند مذكور در مقایسه با مدارات مخابراتی در یك ارتباط تلفنی كاملا متفاوت است. انواع روتر از نظر كارایی روترها قسمت های اصلی اینترنت را تشكیل می دهند كه قادرند بسته های اطلاعاتی را از نو بازسازی كرده و اطلاعات آنها را مورد بررسی قرار داده و یكدیگر ( یعنی روترهای همسایه ) را در جریان شرایط مسیر قرار دهند. این شرایط می توانند مواردی باشند از قبیل: تاخیر در دریافت یا ارسال بسته و وضعیت ترافیك در قسمت های مختلف شبكه. وظایف روترها در رده های مختلف یكسان نیستند به همین خاطر روترها دارای اندازه های مختلفی می باشند به عنوان مثال: • اگر بین دو سیستم عامل Windows XP گزینه Internet Connection Sharing را فعال سازید ، یكی از آن دو به عنوان روتر ساده شروع به كار می كند كه در این حالت روتر كار بسیار ساه ای انجام می دهد یعنی برای تعیین مقصد ، دیتا را مورد بررسی قرار می دهد. این كار در پس زمینه سیستم اتفاق می افتد بدون اینكه سایر برنامه های در حال اجرا را تحت تاثیر قرار دهد به عبارت دیگر یك نوع روتر نرم افزاری است. • روترهایی كه برای اتصال یك شبكه كوچك اداری به اینترنت مورد استفاده قرار میگیرند بسیار متفاوتند و كار بیشتری انجام می دهند. این روترها قوانین امنیتی را برای شبكه اعمال می كنند ( سعی دارند تا شبكه را از حملات خاص مصون نگه دارند ) همچنین آنها می توانند ترافیك را هدایت كنند. این روترها عموماً قطعات مستقلی هستند كه بدون وابستگی به سیستم عامل سرور در شبكه مشغول به كار می باشند. • دسته دیگری از روترها بزرگ تر می باشند كه در نقاط ویژه ترافیكی مشغول به جابجایی دیتا بوده و در یك لحظه میلیون ها بسته اطلاعاتی را جابجا می كنند و به صورت موثرتری شبكه را مرتب می سازند. این روترها وجوه مشترك زیادی با ابركامپیوترها دارند. مسیریابی روتر در این قسمت به نحوه كار روتر با سایز متوسط نگاهی می اند��زیم. روتری را در نظر بگیرید كه در یك اداره متوسط استفاده می شود و قرار است ارتباط شبكه محلی ( LAN) را با اینترنت برقرار سازد. بنابراین روتر با دو شبكه در ارتباط است: • نخست شبكه ای مشتمل بر 50 كامپیوتر و تجهیزات دیگر كه همان شبكه محلی یا LAN می باشد. • دوم شبكه اینترنت. شبكه اداری یا LAN به كمك یك اتصال كابل شبكه با روتر در ارتباط است. اما بین روتر و مركز ISP دو نوع ارتباط وجود دارد: • ارتباط از طریق خطوط T1 كه سرعت آن معادل 5/1 مگا بیت ثانیه است. • خطوطISDN كه سرعت آن معادل 128 كیلو بیت در ثانیه می باشد. جدول Configuration Table در درون روتر وظیفه دارد بسته های ارسالی از داخل به خارج را از خط ارتباطی T1 مسیریابی كرده و به بیرون بفرستد مگر در مواقعی كه خط مذكور به علت نقص فنی قابل استفاده نباشد در آن صورت ترافیك به سمت خط ISDN هدایت می شود به عبارت دیگر خط ISDN به عنوان پشتیبان برای T1 عمل می كند و در مواقعی كه خط T1 دچار مشكل باشد جدول Configuration درون روتر خود می داند چه كاری باید انجام دهد. روترها علاوه بر هدایت بسته های اطلاعاتی از نقطه ای به نقطه دیگر دارای قوانین محدود كننده می باشند كه نحوه ارتباط و دسترسی كامپیوترهای بیرون از شبكه را به كامپیوترهای درون شبكه مشخص می سازد. هرچند اكثر شركت ها برای حفظ امنیت شبكه از قطعات سخت افزاری و یا نرم افزاری موسوم به Firewall یا دیواره آتش استفاده می كنند اما با این وجود جدولConfiguration در روترها نیز برای حفظ امنیت شبكه موجود در شركت دارای دستوراتی می باشند. یكی دیگر از وظایف روتر انتقال بسته ها ( Packet ) در شبكه محلی می باشد. برای تحقق آن ، روتر از طریق Subnet Mask متوجه می شود كه آیا بسته باید به خارج برود یا با كامپیوتری در شبكه محلی و داخلی كار دارد. آگاهی از مقصد دیتا همانطور كه عنوان شد روترها یكی از ابزارهایی می باشند كه شبكه های كامپیوتری را به هم متصل می كنند. هاب ها ، سوئیچ ها و روترها همگی سیگنال ها را از كامپیوترها می گیرند وآنها را به سمت كامپیوترهای دیگر هدایت می كنند با این تفاوت كه روترها تنها ابزاری هستند كه دیتا را در حین عبور ، امتحان كرده و در مورد مقصد دقیق آن تصمیم می گیرد. برای اتخاذ این تصمیم روترها می باید آدرس ها و ساختار شبكه را بشناسند. آدرس های منطقی و فیزیكی آدرس منطقی یا Logical همان آدرسی است كه باعث هدایت اطلاعات به كامپیوتر شما می شود. به عبارت دیگر آدرس های منطقی همان IP Address می باشد.هر یك از تجهیزات متصل به شبكه اعم از اداری و یا اینترنت دارای آدرس Physical بوده كه این آدرس تنها مختص به همان قطعه ای می باشد كه به كابل شبكه متصل است به طور مثال اگر كامپیوتر شما دارای یك كارت شبكه ( Network Interface Card ) باشد در این صورت آدرس Physical در حافظه مخصوص كارت شبكه نگهداری می شود. این آدرس را با نام Media Access Control ( MAC ) نیز می شناسند، آدرس مذكور دارای دو قسمت می باشد كه طول هر قسمت 3 بایت است. اولین بخش 3 بایتی معرف شركت سازنده كارت شبكه بوده و دومین قسمت 3 بایتی شماره سریال كارت شبكه را نشان می دهد. هر كارت شبكه می تواند فقط یك آدرس فیزیكال داشته باشد اما در مورد آدرس لاجیكال متفاوت است یعنی كامپیوتر شما می تواند دریك زمان چندین آدرس Logical یا آیپی آدرس ( IP Address ) داشته باشد. MAC Address اگر بخواهید آدرس MAC و آدرس Logical را كه توسط پروتكل ( Internet Protocol ) IP در محیط سیستم عامل ویندوز ببینید ، فقط كافی است برنامه ساده ای كه توسط شركت مایكروسافت تهیه شده است را راه اندازی كنید. در ویندوز98 ابتدا به منوی Start بروید روی گزینه Run كلیك كرده و در قسمت مربوطه دستور winipcfg را تایپ كنید و در ویندوزXP یا 2000 با تایپ دستور CMD و ورود به محیط داس ، دستور ipconfig /all را تایپ كنید. این برنامه اطلاعاتی به شما می دهد. این اطلاعات به نحوه دقیق اتصال شما به اینترنت بستگی دارند اما آدرس Physical همان MAC Address آداپتور می باشد. آدرس منطقی یا IP Address نیز همان آدرسی است كه توسط مركز ISP یا توسط مدیر شبكه تعیین می شود و به كامپیوتر شما تخصیص داده می شود. آشنایی با دستور Tracert اگر از سیستم عامل های مایكروسافت استفاده می كنید ، می توانید به كمك برنامه ای موسوم به Traceroute تعداد روترهایی موجود در شبكه را مشاهده كنید همچنین برنامه مذكور ، مسیری را كه اطلاعات طی می كنند تا از كامپیوتر شما به كامپیوتر مقصد برسند را نیز نشان می دهند. برای اجرای این برنامه كافی است در پرامپت داس دستور tracert را تایپ نمایید و جلوی آن سایت مورد نظر را بنویسید. همانطور كه مشاهده می كنید آیپی آدرس هر یك از روترهای سر راه و زمان رسیدن به آن و اطلاعات دیگری با این دستور نمایش داده می شود. میتوانید از این برنامه برای شمارش تعداد روترهای موجود بین كامپیوتر خودتان و هر كامپیوتری كه آدرس IP address آن را می دانید استفاده كنید. حملات Denial of Service ( DoS ) در اولین فصل از سال 2001 ، شاهد چندین حمله به معروف ترین وب سایت ها بودیم حملاتی موسوم به Denial of Serviceكه مانع از دریافت خدمات توسط مشتریان از وب سایت های مورد نظر می شدند ( برای اطلاعات بیشتر به در خصوص حملات داس به شماره 10 ماهنامه مراجعه نمایید) . اما چگونه این كار را انجام می دادند؟ ویروس نویسان و هكر ها با ارسال حجم زیادی از درخواست های مكرر سرورها را زیر فشار سنگینی قرار می دهند كه در پی آن سرور ها دیگر قادر به پاسخگویی به درخواست كاربران نخواهند بود. بیشتر روترها در درون Configuration Table دارای دستوراتی می باشند كه مانع از ارسال میلیون ها درخواست توسط فرستنده مشابه می شوند. اگر روتر درخواست های مكرری را از جانب یك آدرس مشابه در یك فاصله زمان كوتاه دریافت كند به راحتی درخواست ها را كنار می گذارد و از نفوذ آنها جلوگیری می كند. عاملین این حملات به این موضوع اشراف دارند بنابراین برنامه هایی را به صورت غیر قانونی روی چندین كامپیوتر نصب می كنند. زمانیكه برنامه های مذكور شروع به كار می كنند ، همزمان اقدام به ارسال هزاران درخواست به سوی سرور می كنند همچنین این برنامه ها هر یك از بسته های اطلاعاتی را با IP Address های دروغین و اشتباه می فرستند بنابراین دستورات امنیتی روترها قادر به عكس العمل نمی باشند. وقتی سیلی از بسته های اطلاعاتی شبكه را فرا می گیرد میلیون ها درخواست به سوی سرور روانه می شوند. مسیر اصلی اینترنت برای اینكه تمام كاربران قادر به استفاده از شبكه اینترنت باشند میلیون ها بسته اطلاعاتی می باید همزمان فرستاده شوند. برخی از شركت های بزرگ سازنده روتر مانند شركتCisco System كه به صورت تخصصی در زمینه سخت افزار شبكه مشغول به فعالیت می باشند ، اقدام به ساخت روترهای بزرگ كرده اند. یكی از روترهای ساخت این شركت سری Gigabit Switch Router 12000 می باشد كه از آن به عنوان Backbone در شبكه ها استفاده می شوند. این روترها شبیه قدرتمندترین ابر كامپیوترها می باشد. در طراحی این روترها از پردازنده های مختلف به همراه یك سری سوئیچ های سرعت بالا استفاده می شود. سری 12000 دارای پردازنده 200MHz MIPS R5000 می باشد. پردازنده مذكور از نوع پردازنده هایی بوده كه در زمینه حركت سازی انیمیشن و جلوه های ویژه فیلم مورد استفاده قرار می گیرند. بزرگترین مدل از این سری مدل 12016 می باشد. این سری از روترها به همراه سوئیچ هایی با سرعت 320 میلیارد بیت در ثانیه كار می كنند همچنین قادرند 60 میلیون بسته اطلاعاتی را در یك ثانیه به حركت درآوردند. به علت قدرت پردازش در این پردازشگرها ، روترها قادرند اطلاعات زیادی را اداره كنند. علی رغم قدرت پردازش بالا در روترهای بزرگ ، چگونه می توانند از بین مسیرهای ممكن ، مقصد یك بسته را مشخص سازند؟ جواب این سوال در جدول Configuration Table نهفته است. روتر با بررسی آدرس مقصد و با توجه به قوانین این جدول IP Address مورد نظر را می یابد. دستورات موجود در این جدول مسیر بسته های واقع در گروه مشخصی از آدرس ها را معین می سازند و به كمك یك سری از دستورات دیگر نحوه كار اولین اتصال موجود در مسیر را محك می زند. اگر Performance آن به حد كافی مناسب باشد بسته ارسال شده و نوبت به بسته بعدی می رسد در صورتیكه مسیر مذكور كارایی خوبی نداشته باشد مسیر دیگری انتخاب می شود و در نهایت روتر موفق به یافتن بهترین مسیر می شود كه این مسیر بهترین كارایی را در مدت زمان تعیین شده دارد. تمام این مراحل در كسر كوچكی از ثانیه اتفاق می افتد. آگاهی از نحوه ارسال بسته یكی از مهمترین وظایف روترهاست. سخن آخر همانطور كه در متن اشاره شده است روتر خود دارای پردازنده ، RAM ، ROM و در نهایت سیستم عامل منحصر به خود می باشد كه آشنایی با آن ها و دستورات آن خود نیاز به گذراندن دوره ها و مطالعه كتاب هایی می باشد.

الگوریتم کار روترها

اصول عملكرد 
روترها از الگوریتمهای مسیریابی،برای یافتن بهترین مسیر تا مقصد استفاده مینمایند هنگامی كه ما در مورد بهترین مسیر صحبت میكنیم،پارامترهایی همانند تعداد  hopها (مسیری كه یك بسته از یك روتر دیگر در شبكه منتقل میشود).زمان تغییر و هزینه ارتباطی ارسال بسته را در نظر میگیریم. 
مبتنی بر اینكه روترها چگونه اطلاعاتی در مورد ساختار یك شبكه جمع آوری مینمایند و نیز تحلیل آنها از اطلاعات برای تعیین بهترین مسیر،ما دو الگوریتم مسیر یابی اصلی را در اختیار داریم:الگوریتم مسیر یابی عمومی و الگوریتمهای مسیر یابی غیر متمركز. 
در الگوریتم های مسیر یابی غیر متمركز،هر روتر اطلاعاتی در مورد روترهایی كه مستقیما به آنها متصل میباشند در اختیار دارد. در این روش هر روتر در مورد همه روتر های موجود در شبكه،اطلاعات در اختیار ندارد.این الگوریتمها تحت نام الگوریتمهای  (DV (distance vectorمعروف هستند.در الگوریتمهای مسیریابی عمومی،هر روتر اطلاعات كاملی در مورد همه روترهای دیگر شبكه و نیز وضعیت ترافیك شبكه در اختیار دارد.این الگوریتمها تحت نام الگوریتمهای(LS(Link state معروف هستند.ما در ادامه مقاله به بررسی الگوریتمهای  LS میپردازیم  
الگوریتمهای  LS 
در الگوریتمهای  LS ،هر روتر میبایست مراحل ذیل را به انجام رساند: 
روترهای را كه به لحاظ فیزیكی به آنها متصل میباشد را شناسایی نموده و هنگامی كه شروع به كار میكند آدرسهایIP آنها بدست آورد. این روتر ابتدا یك بسته  HELLO را روی شبكه ارسال میكند. هر روتری كه این بسته را دریافت میكند از طریق یك پیام كه دارای آدرس  IP خود این روتر میباشد به پیام  HELLO پاسخ میدهد. 
زمان تاخیر مربوط به روترهای مجاور را اندازه گیری نماید(یا هر پارامتر مهم دیگری از شبكه همانند ترافیك متوسط) 
برای انجام این كار ،روترها بسته های  echo را روی شبكه ارسال میكنند. هر روتری كه این بسته ها را دریافت میكند با یك بسته  echo reply به آن پاسخ میدهد.با تقسیم زمان مسیر رفت و برگشت به دو،روترها میتوانند زمان تاخیر را محاسبه كنند.(زمان مسیر رفت و برگشت،سنجشی از تاخیر فعلی روی یك شبكه میباشد)توجه داشته باشید كه این زمان شامل زمانهای ارسال و پردازش میباشد. 
اطلاعات خود را در مورد شبكه،برای استفاده سایر روترها منتشر نموده و اطلاعات روترهای دیگر را دریافت كند. 
در این مرحله همه روترها دانش خود را با روتر های دیگر به اشتراك گذاشته و اطلاعات مربوط به شبكه را با یكدیگر مبادله میكنند.با این روش هر روتر میتواند در مورد ساختار و وضعیت شبكه اطلاعات كافی بدست آورد. 
با استفاده از این الگوریتم مناسب،بهترین مسیر بین هر دو گره از شبكه راشناسایی كند. 
در این مرحله،روترها بهترین مسیر تا هر گره را انتخاب میكنند.آنها این كار را با استفاده از یك الگوریتم همانند الگوریتم كوتاهترین مسیر  Dijkstra انجام میدهند.در این الگوریتم،یك روتر مبتنی بر اطلاعاتی كه از سایر روترها جمع آوری نموده است،گرافی از شبكه را ایجاد مینماید.این گراف مكان روترهای موجود در شبكه و نقاط پیوند آنها را به یكدیگر نشان میدهد.هر پیوند با یك شماره به نام  Costیاweight مشخص میشود.این شماره تابعی از زمان تاخیر،متوسط ترافیك و گاهی اوقات تعداد  hopهای بین گره ها میباشد.برای مثال اگر دو پیوند بین یك گره و مقصد وجود داشته باشد،روتر پیوندی با كمترین  Weight را انتخاب میكند. 
الگوریتم  Dijkstra دارای مراحل ذیل میباشد: 
روتر گرافی از شبكه را ایجاد نموده و گره های منبع و مقصد(برای مثال  V۱ وV۲)را شناسایی میكند.سپس یك ماتریس به نام ماتریس  adjacency را میسازد.در این ماتریس یك مختصه مبین  Weight میباشد.برای مثال[i,j]،وزن یك پیوند بین  Viو  Vj میباشد.در صورتی كه هیچ پیوند مستقیمی بین  Vi وVj وجود نداشته باشد این وزن (ویت) بصورت  infinity در نظر گرفته میشود. 
روتر یك مجموعه ركورد وضعیت را برای هر گره روی شبكه ایجاد مینماید این ركورد دارای سه فیلد میباشد: 
فیلد  Predecessor:اولین فیلدی كه گره قبلی را نشان میدهد. 
فیلد  Length:فیلد دوم كه جمع وزنهای از منبع تا آن گره را نشان میدهد

فیلد Label:آخرین فیلد كه وضعیت گره را نشان میدهد.هر گره میتواند دارای یك مود وضعیت باشد:tentative  یا permanent  
روتر،پارامترهای مجموعه ركورد وضعیت برای همه گره ها را آماده سازی اولیه نموده و طول آنها را در حالت  infinity و  Labelآن را در وضعیت  tentative قرار میدهد. 
روتر،یك گره  T را ایجاد میكند.برای مثال اگر  V۱ میبایست گره  T منبع باشد،روتر برچسب  V۱را در وضعیت  permanent قرار میدهد.هنگامی كه یك  Label به حالت  permanent تغییر میكند دیگر هرگز تغییر نخواهد كرد. یك گره  T در واقع یك  agent میباشد. 
روتر،مجموع ركورد وضعیت مربوط به همه گره های  Tentative را كه مستقیما به گره  T منبع متصل هستند،روز آمد مینماید. 
روتر همه گره های  Tentative را بررسی نموده و گرهای را كه وزن آن تا  V۱ كمترین مقدار را دارد انتخاب میكند.سپس این گره،گره  Tمقصد خواهد بود  
اگر این گره،V۲ نباشد(گره مقصد)روتر به مرحله  ۵باز میگردد. 
اگر این گره  V۲ باشد،روتر گره قبلی آن را از مجموع ركورد وضعیت استخراج نموده و این كار را انجام میدهد تا به  V۱ برسد،این فرست از گره ها،بهترین مسیر از  V۱تاV۲را نشان میدهد. 
این مراحل بصورت یك فلوچارت در شكل نشان داده شده است ما از این الگوریتم بعنوان یك مثال در ادامه مقاله استفاده خواهیم نمود. 
مثال  
الگوریتم  Dijkstra 
در اینجا ما میخواهیم بهترین مسیر بین گره های  A و  E را پیدا كنیم همانطور كه میبینید  ۶  مسیر بین  A و  E وجود دارد.(ACDBE ،ABDCE ، ACDE، ABDE، ACE،ABE)و واضح است كه  ABDEبهترین مسیر میباشد زیرا كمترین وزن را دارد اما همیشه به این سادگی نیست و برخی موارد پیچیده وجود دارد كه در آن ما مجبوریم از الگوریتم هایی برای یافتن بهترین مسیر استفاده كنیم. 
همانطور كه در تصویر ذیل مشاهده میكنید،گره منبع(A)بعنوان گره  Tانتخواب شده و بنابراین برچسب آن، Permanent میباشد. (ما گره های  Permanent را با دایره های تو پر و گره های  Tرا با یك پیكان نشان میدهیم) 
در این مرحله شما میبینید كه مجموع ركورد وضعیت گره های  Tentative كه مستقیما به گره(T (C،Bمتصل شده اند،تغییر یافته است.همچنین از آنجایی كه گره  Bكمترین وزن را دارد،بعنوان گره  T انتخاب شده و برچسب آن به حالت  Permanent تغییر كرده است. 
در این مرحله همانند مرحله قبل دو مجموعه ركورد وضعیت گره هایی كه  Tentative دارای اتصال مستقیم به گره  T میباشد(E،D)تغییر كرده است.همچنین از آنجایی كه گره  D وزن كمتری دارد،بعنوان گره  T انتخاب شده و برچسب آن به وضعیت  Permanent تغییر كرده است. 
در این مرحله ما هیچ گره  Tentative نداریم بنابراین فقط گره  T بعدی را شناسایی میكنیم.از آنجایی كه  Eدارای كمترین وزن میباشد بعنوان گرهTانتخاب میشود. 
E گره مقصد بوده بنابر این كار ما در اینجا تمام میشود.اكنون ما كار شناسایی مسیر را به انتها رسانده ایم.گره قبلی  Eگره  D،گره  B میباشد و گره قبلی  B،گره  A میباشد.بنابر این بهترین مسیر  ABDE است در این مورد وزن كل مسیر،(۱+۲+۱)۴میباشد. 
با وجودی كه این الگوریتم بخوبی كار میكند اما آنقدر پیچیده است كه زمان پردازش آن برای روتر طولانی بوده و راندمان شبكه را كاهش میدهد.همچنین اگر یك روتر اطلاعات غلطی را به روترهای دیگر بدهد،همه تصمیمات مسیر یابی نادرست خواهد بود. 
الگوریتمهای  DV 
الگوریتمهای  DVبا نامهای الگوریتمهای مسیریابی  Bellman-Ford و  ford-fulkerson نیز یاد میشوند.در این الگوریتمها،هر روتر دارای یك جدول مسیریابی میباشد كه بهترین مسیر تا هر مقصد را نشان میدهد.یك گراف معمولی و جدول مسیریابی مربوط به روتر  G در شكل زیر نشان داده شده است. 
همانطور كه در جدول مشاهده میكنید،اگر روتر  G بخواهد بسته هایی را به روتر  D ارسال كند،میبایست آنها را به روتر  H ارسال نماید.هنگامی كه بسته ها به روتر  H رسیدند،این روتر جدول خود را بررسی نموده و روی چگونگی ارسال بسته ها بهDestination Weight Line  
A ۸ A 
B ۲۰ A 
C ۲۸ I 
D ۲۰ H 
E ۱۷ I 
F ۳۰ I 
G ۱۸ H 
H ۱۲ H 
I ۱۰ I 
J ۰ - 
K ۶ K 
L ۱۵ K 
در الگوریتمهای  DV،هر روتر میبایست مراحل ذیل را انجام دهد: 
وزن لینكهای مستقیما متصل به آن را اندازه گرفته و این اطلاعات را در جدول خود ذخیره كند. 
در یك دوره زمانی خواص،روتر جدول خود را به روترهای مجاور ارسال نموده و جدول مسیریابی هر یك از روترهای مجاور خود را دریافت میكند. 
مبتنی بر اطلاعات بدست آمده از جداول مسیریابی روترهای مجاور،جدول خود را روز آمدسازی مینماید. 
یكی از مهمترین مشكلات،هنگام كار با الگوریتمهای  DV،مشكل ‍‍Count to infinity اجازه بدهید این مشكل را با ذكر یك مثال روشن كنیم. 
همانطور كه در قسمت ذیل نشان داده شده است یك شبكه را در ذهن خود تصور كنید.همانطور كه در این جدول میبینید،فقط یك پیوند بین  A و سایر بخشهای شبكه وجود دارد.در اینجا شما میتوانید،این گراف و جدول مسیریابی همه گره ها را مشاهده كنید: 
A B C D 
A ۰,- ۱,A ۲,B ۳,D 
B ۱,B ۰,- ۲,C ۳,D 
C ۲,B ۱,C ۰,- ۱,C 
D ۳,B ۲,C ۱,D ۰,- 
اكنون تصور كنید كه پیوند بین  A و  B قطع شود.در این هنگام، B جدول خود را تصحیح میكند بعد از یك مدت زمان خاص،روترها جداول خود را مبادله نموده و بنابراین  B جدول مسیریابی  C را دریافت میكند. از آنجایی كه  C نمیداند چه اتفاقی برای پیوند بین  A و  B رخ داده است این اطلاعات را حفظ میكند.B این جدول را دریافت نموده و فكر میكند كه یك پیوند جداگانه بین  Cو  A وجود دارد،بنابراین جدول خود را تصحیح نموده مقدار  infinity را به  ۳  تغییر میدهد.به همین شكل دوباره روترها جداول خود را مبادله میكنند.هنگامی كه  C،جدول مسیریابی  B را دریافت میكند،مشاهده میكنید كه  B وزن پیوند خود تا  A را از  ۱به  ۳  تغییر داده است،بنابراین  C ،جدول خود را روزآمد نموده و وزن پیوند خود تا  Aرا به  ۴  تغییر میدهد.این پروسه تكرار میشود تا همه گره ها وزن پیوند خود را تا  A در وضعیت  infinity قرار دهند.این وضعیت در جدول زیر نشان داده شده است. 
B C D 
Sum of weight to A after link cut ∞,A ۲,B ۳,C 
Sum of weight to B after ۱st updating ۳,C ۲,B ۳,C 
Sum of weight to A after ۲nd updating ۳,C ۴,B ۳,C 
Sum of weight to A after ۳rd updating ۵,C ۴,B ۵,C 
Sum of weight to A after ۴th updating ۵,C ۶,B ۵,C 
Sum of weight to A after ۵th updating ۷,C ۶,B ۷,C 
در این روش متخصصین میگویند،الگوریتمهای  DV دارای یك سرعت همگرایی پایین هستند.یك روش برای حل این مشكل در مورد روترها،ارسال اطلاعات فقط به روترهایی میباشد كه دارای پیوند انحصاری تا مقصد نیستند.برای مثال در این مورد،C نمیبایست هیچ اطلاعاتی را به گره  B در مورد  A ارسال كند زیرا  B فقط یك مسیر تا  A را در اختیار داردمسیریابی سلسله مراتبی 
همانطور كه شما میبینید،در هر دو الگوریتم  LS و  DV،هر روتر مجبور به ذخیره نمودن اطلاعات مربوط به روترهای دیگر میباشد.هنگامی كه اندازه شبكه رشد میكند،تعداد روترهای شبكه افزایش می یابد در نتیجه اندازه جداول مسیریابی نیز افزایش می یابد و روترها نمیوانند ترافیك شبكه را به طور موثر كنترل كنند.ما از مسیریابی سلسله مراتبی برای برطرف كردن این مشكل استفاده میكنیم.اجازه بدهید این موضوع با ذكر یك مثال روشن كنیم: 
ما از الگوریتمهای  DV برای یافتن بهترین مسیر بین گره ها استفاده میكنیم در وضعیت نشان داده شده در ذیل،هر گره از شبكه مجبور به نگهداری یك جدول مسیریابی با  ۱۷  ركورد میباشد.در اینجا یك گراف معمولی و جدول مسیریابی مربوط به  A ارائه شده است. 
Destination Line Weight 
A - - 
B B ۱ 
C C ۱ 
D B ۲ 
E B ۳ 
F B ۳ 
G B ۴ 
H B ۵ 
I C ۵ 
J C ۶ 
K C ۵ 
L C ۴ 
M C ۴ 
N C ۳ 
O C ۴ 
P C ۲ 
Q C ۳ 
در مسیریابی سلسله مراتبی،روترها در گروههایی به نام  regions طبقه بندی میشوند.هر روتر دارای اطلاعاتی فقط در مورد روترهایی كه در  region آنها قرار دارد در اختیار داشته و هیچ گونه اطلاعاتی در مورد  region های دیگر ندارند. 
در این مثال ما شبكه خود را به پنج  region تقسیم میكنیم.اگر  A بخواهد بسته ها را به هر روتر در  region۲ ارسال كند،آنها را به  B ارسال میكند و الی آخر. 
Destination Line Weight 
A - - 
B B ۱ 
C C ۱ 
Region ۲ B ۲ 
Region ۳ C ۲ 
Region ۴ C ۳ 
Region ۵ C ۴ 
در این نوع مسیریابی،جداول را میتوان خلاصه نمود بنابراین راندمان شبكه بهبود مییابد.مثال بالا مسیریابی سلسله مراتبی دو سطحی را نشان میدهد همچنین میتوان از مسیریابی سلسله مراتبی  ۳  سطحی و  ۴  سطحی استفاده كرد.در مسیریابی سلسله مراتبی  ۳سطحی،شبكه به تعدادی كلاستر تقسیم بندی میشود.هر كلاستر متشكل از تعدادی  region و هر  region دارای تعدادی روتر میباشد.مسیریابی سلسله مراتبی به طور وسیعی در مسیریابی اینترنت مورد استفاده قرار میگیرد و استفاده از چندین پروتكل مسیریابی را ممكن می سازد.