Skip to content

Commit

Permalink
Chapter 6 finisssshed
Browse files Browse the repository at this point in the history
  • Loading branch information
minmit committed Jun 27, 2014
1 parent aae7a5e commit bb488a8
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
4 changes: 2 additions & 2 deletions resources/abstracts/acknowledge.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
هم{سپاس}
\end{center}

از استاد بزرگوارمان، پروفسور موفق که با کمک‌ها و راهنمایی‌های بی‌دریغشان، ما را در انجام این پروژه یاری داده‌اند، تشکر و قدردانی می‌کنیم.
از استاد بزرگوارمان، پروفسور موقر که با کمک‌ها و راهنمایی‌های بی‌دریغشان، ما را در انجام این پروژه یاری داده‌اند، تشکر و قدردانی می‌کنیم.

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

فحه‌جدید
13 changes: 11 additions & 2 deletions resources/chapters/6.tex
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@

از آن‌جایی که مجموعه‌ی مربوط به DA برای هر مسیریاب برای انتشار بسته‌های DA تولید شده توسط آن تعریف می‌شوند، تنها برنامه‌ای که نیاز دارد به مجموعه شی اضافه کند یا از آن حذف کند، خود مسیریاب است و نه همسایه‌های آن. بلکه برای همسایه‌های آن تنها کافی است که مجموعه‌ی خود را با آن همگام کنند، پیغام‌های درون مجموعه‌ی داده بخوانند، و FIB خود را بر اساس آن به‌روزرسانی کنند. به همین دلیل تنها مسیریابی می‌تواند در یک مجموعه‌ی داده‌ی مربوط به DA بنویسد که نام آن در نام مجموعه‌ی داده وجود دارد. در نتیجه، عامل‌های همگام‌ساز همسایه‌ها را به گونه‌ای تغییر می‌دهیم تا در اجرای پروتکل Sync هنگامی که متوجه می‌شوند که داده‌ای از مجموعه‌ی داده حذف شده است، آن را از مجموعه‌ی داده‌ی خود حذف کنند. هم‌چنین یک عامل همگام‌ساز یک مسیریاب در صورتی که در اجرای پروتکل Sync متوجه شد که مجموعه‌ی داده‌ی مخصوص خودش برای بسته‌های DA، از مجموعه‌های داده‌ی همسایگان داده‌ای کم دارد، آن را اضافه نمی‌کند، بلکه منتظر می‌ماند که آن‌ها داده را از مجموعه‌ی خود حذف کنند تا مقدار درهم‌ساز در درخواست‌های بعدی مشورت ریشه یکی شود.

در مورد بسته‌های PA موضوع اندکی متفاوت است. از آن‌جایی که هر مسیریابی می‌توانند به تولید و انتشار بسته‌های PA بپردازد، نمی‌توان مسئله‌ی حذف را با محدود کردن حق شروع تغییر به یک مسیریاب، حل کرد. به همین دلیل هر گاه مسیریابی بخواهد یک بسته‌ی PA را از مجموعه‌ی داده‌ی مربوط به آن حذف کند، علاوه بر حذف آن، یک بسته با همان نام که یک \کج{/delete} به انتهای آن اضافه شده است و با همان محتوا به مجموعه اضافه خواهد کرد. حال در صورتی که در اجرای پروتکل Sync یکی از عامل‌های همگام‌ساز متوجه شود که مجموعه‌ی داده‌ی آن، داده‌ای کمتر از مجموعه‌ی داده‌ی همسایه دارد، ابتدا بررسی می‌کند که داده‌ای با همان نام و پسوند \کج{/delete} در مجموعه‌ی همسایه وجود دارد یا نه. البته توجه به این نکته ضروری است که داده‌های اضافه‌تر مجموعه‌ی همسایه در حین اجرای پروتکل اصلی Sync مشخص خواهند شد. در صورتی که چنین داده‌ای وجود داشته باشد، عامل همگام‌ساز داده‌ی موردنظر یا همان بسته‌ی PA حذف شده را، بدون اضافه‌کردن داده با پسوند \کج{/delete}، از مجموعه‌ی داده‌ی خود حذف خواهد کرد. از طرفی اگر عامل همگام‌ساز مسیریابی که بسته را حذف کرده، در حین اجرای پروتکل متوجه شد که داده‌ای کمتر از مجموعه‌ی داده‌ی همسایه دارد، وجود داده‌ای با همان نام و پسوند \کج{/delete} را بررسی خواهد کرد و در صورت وجود این داده، داده‌ی حذف شده را از مجموعه‌ی همسایه واکشی نخواهد کرد.
در مورد بسته‌های PA موضوع اندکی متفاوت است. از آن‌جایی که هر مسیریابی می‌توانند به تولید و انتشار بسته‌های PA بپردازد، نمی‌توان مسئله‌ی حذف را با محدود کردن حق شروع تغییر به یک مسیریاب، حل کرد. به همین دلیل هر گاه مسیریابی بخواهد یک بسته‌ی PA را از مجموعه‌ی داده‌ی مربوط به آن حذف کند، علاوه بر حذف آن، یک بسته با همان نام که یک \کج{/delete} به انتهای آن اضافه شده است و با همان محتوا به مجموعه اضافه خواهد کرد. حال در صورتی که در اجرای پروتکل Sync یکی از عامل‌های همگام‌ساز متوجه شود که مجموعه‌ی داده‌ی آن، داده‌ای کمتر از مجموعه‌ی داده‌ی همسایه دارد، ابتدا بررسی می‌کند که داده‌ای با همان نام و پسوند \کج{/delete} در مجموعه‌ی همسایه وجود دارد یا نه. البته توجه به این نکته ضروری است که داده‌های اضافه‌تر مجموعه‌ی همسایه در حین اجرای پروتکل اصلی Sync مشخص خواهند شد. در صورتی که چنین داده‌ای وجود داشته باشد، عامل همگام‌ساز داده‌ی موردنظر یا همان بسته‌ی PA حذف شده را از مجموعه‌ی داده‌ی خود حذف خواهد کرد. از طرفی اگر عامل همگام‌ساز مسیریابی که بسته را حذف کرده، در حین اجرای پروتکل متوجه شد که داده‌ای کمتر از مجموعه‌ی داده‌ی همسایه دارد، وجود داده‌ای با همان نام و پسوند \کج{/delete} را بررسی خواهد کرد و در صورت وجود این داده، داده‌ی حذف شده را از مجموعه‌ی همسایه واکشی نخواهد کرد.

\begin{figure}[h!]
\centering
Expand All @@ -108,8 +108,17 @@
\end{figure}


نکته‌ای که در مورد داده‌های با پسوند \کج{/delete} وجود دارد این است که این بسته‌ها در مجموعه‌ی داده باقی می‌مانند. در صورتی که در یک اجرای پروتکل Sync، یک عامل همگام‌ساز متوجه شد که مجموعه‌ی داده‌ی آن در یک داده با پسوند \کج{/delete} بدون داده‌ی اصلی و بدون پسوند، با مجموعه‌ی داده‌ی همسایه متفاوت است، بسته‌ی با پسوند \کج{/delete} را واکشی نخواهد کرد. علاوه بر آن برای جلوگیری از انفجار مجموعه‌های داده در بازه‌های مشخص و به نسبت طولانی هر مسیریاب داده‌های با پسوند \کج{/delete} موجود در مجموعه‌های داده‌ی خود را پاک خواهد کرد. بنابراین اگر در حین اجرای پروتکل، عامل همگام‌ساز متوجه شد که مجموعه‌ی موردنظر در یک بسته با پسوند \کج{/delete} با مجموعه‌ی همسایه تفاوت دارد و داده‌ی اصلی و بدون پسوند در مجموعه‌ی خودش وجود ندارد، داده‌ی با پسوند را از مجموعه پاک خواهد کرد. بدین‌ترتیب داده‌های با پسوند \کج{/delete} که در واقع همان بسته‌های اعلام‌کننده‌ی پیشوند حذف‌شده هستند، در مجموعه‌ی داده‌ها باقی نخواهند ماند. شکل ~\ref{fig:Sync2} نمونه‌ای از حذف یک بسته‌ی PA را از مجموعه‌ی داده‌ی مربوط به آن نشان می‌دهد.
نکته‌ای که در مورد داده‌های با پسوند \کج{/delete} وجود دارد این است که این بسته‌ها در مجموعه‌ی داده باقی می‌مانند. برای جلوگیری از انفجار مجموعه‌های داده در بازه‌های مشخص هر مسیریاب داده‌های با پسوند \کج{/delete} موجود در مجموعه‌های داده‌ی خود را پاک خواهد کرد. بنابراین در صورتی که در یک اجرای پروتکل Sync، یک عامل همگام‌ساز متوجه شد که مجموعه‌ی داده‌ی آن در تنها در یک داده با پسوند \کج{/delete} با مجموعه‌ی داده‌ی همسایه متفاوت است، یعنی داده‌ی اصلی و بدون پسوند را ندارد ولی همان داده با پسوند \کج{/delete} در مجموعه‌ی همسایه وجود دارد، بسته‌ی با پسوند \کج{/delete} را واکشی نخواهد کرد. بدین‌ترتیب داده‌های با پسوند \کج{/delete} که در واقع همان بسته‌های اعلام‌کننده‌ی پیشوند حذف‌شده هستند، در مجموعه‌ی داده‌ها باقی نخواهند ماند. شکل ~\ref{fig:Sync2} نمونه‌ای از حذف یک بسته‌ی PA را از مجموعه‌ی داده‌ی مربوط به آن نشان می‌دهد.


سمت{کشف شکست و ترمیم}

برای اطمینان در درستی پیوند یا پردازه‌ی مسیریاب در گره همسایه، مشابه بسیاری از پروتکل‌های دیگر، هر مسیریاب در بازه‌های مشخصی از زمان بسته‌های درخواست سلام\زیرنوشت{Hello Interest} به هر یک از همسایه‌های خود می‌فرستد. همسایه نیز در صورت دریافت یک درخواست سلام، آن را با بسته‌ی داده‌ی سلام\زیرنوشت{Hello Data} پاسخ خواهد داد. در صورتی که یک درخواست سلام، با پاسخی مواجه نشود، مسیریاب چند بار دیگر در بازه‌های کوتاه‌تری با فرستادن بسته‌های درخواست برای برقراری ارتباط تلاش می‌کند و در صورتی که موفق نشود، پیوند را غیرفعال فرض می‌کند، FIB را به‌روزرسانی می‌کند و در صورت تغییر بهترین مسیرش تا سایر مسیریاب‌ها پیغام‌های DA مربوطه را به همسایگانش می‌فرستد.

برای اطلاع از ترمیم یک پیوند غیرفعال، مسیریاب در بازه‌های طولانی‌تری با فرستادن بسته‌های درخواست سلام فعال شدن پیوند را بررسی می‌کند. این بازه‌ها طولانی انتخاب می‌شوند تا سربار زیادی برای شبکه نداشته باشند. در صورتی که یک پیوند فعال شود، مسیریاب FIB خود را به روز‌رسانی می‌کند و در صورتی که استفاده از این پیوند فعال‌شده مسیرهای بهتری را برایش امکان‌پذیر کرده باشد، پیغام‌های DA مربوطه را به همسایگانش ارسال می‌کند.

سمت{مسئله‌ی شمارش بی‌انتها}

یکی از مشکلاتی که در مسیریابی‌های مبتنی بر بردار فاصله وجود دارد مسئله‌ی شمارش بی‌انتهاست که در بخش ؟؟؟‌ به آن اشاره شد. برای مقابله با این مسئله در پروتکل پیشنهادی خود، روشی مشابه پروتکل RIP\زیرنوشت{Routing Information Protocol} در پیش گرفته‌ایم. در این روش که سم معکوس\زیرنوشت{Poison Reverse} نامیده می‌شود، اگر مسیریاب «الف» بهترین مسیر خود به مسیریاب «ب» را از طریق مسیریاب «پ» در همسایگی خود داشته باشد، برای جلوگیری از شمارش بی‌انتها، فاصله‌ی خود از مسیریاب «ب» را به مسیریاب «پ» بی‌نهایت اعلام خواهد کرد. به عبارت دیگر، یک مسیریاب، مسیری که از همسایه‌ی خود فراگرفته است، به خود او تبلیغ نخواهد کرد.

لازم به ذکر است که سم معکوس تنها مشکل را بین دو مسیریاب حل خواهد کرد و امکان بروز مشکل مشابه با بیش از دو مسیریاب نیز وجود دارد. برای رفع این مشکل به طور کلی پروتکل‌های مبتنی بر بردار فاصله‌ی دیگری نیز برای مسیریابی در شبکه‌های مبتنی بر IP به وجود آمده‌اند که پیچیدگی زیاد آن‌ها، استفاده از این پروتکل‌ها را با مشکل مواجه می‌کند. به همین دلیل، در پروتکل پیشنهادی خود تنها به استفاده از سم معکوس بسنده می‌کنیم. هم‌چنین برای کم کردن اثر شمارش بی‌انتها بر زمان همگرایی، مشابه پروتکل RIP، در زمان پیکربندی بیشینه‌ی فاصله با توجه به ویژگی‌های شبکه برای الگوریتم مسیریابی تعیین می‌شود تا فاصله‌های بیشتر از آن را بی‌نهایت در نظر بگیرد و در نتیجه شمارش بی‌انتها زودتر به نهایت برسد و پایان یابد.
Binary file modified resources/figures/Sync2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions thesis.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\documentclass[oneside]{book}

\input{./base/common.tex}
\input{./base/common.tex}

\begin{document}

Expand Down Expand Up @@ -29,7 +29,7 @@

\input{./base/set-font-farsi.tex}

\include{./resources/chapters/1}
%\include{./resources/chapters/1}
\include{./resources/chapters/2}
\include{./resources/chapters/3}
\include{./resources/chapters/4}
Expand Down

0 comments on commit bb488a8

Please sign in to comment.