Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/minmit/BS-Thesis
Browse files Browse the repository at this point in the history
  • Loading branch information
setareh7 committed Jun 26, 2014
2 parents 8b6af6b + 9334e1d commit 59108d2
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 5 deletions.
6 changes: 3 additions & 3 deletions resources/chapters/5.tex
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@

از اولین پروتکل‌های مسیریابی که برای شبکه‌های NDN پیشنهاد شد، در مقاله‌ی Dai و بقیه \ref{two-layer} بود. در این پروتکل از یک معماری دو لایه استفاده می‌شود. لایه‌ی زیرین که لایه‌ی نگهدار توپولوژی شبکه \زیرنوشت{Topology Maintaining Layer} (TM) است، با پروتکلی مشابه OSPF توپولوژی شبکه را به دست آورده و به روز نگه می‌دارد و کوتاه‌ترین مسیرها را به دست می‌آورد. در این لایه از بسته‌های درخواست و داده‌ی NDN استفاده نمی‌شود بلکه مشابه شبکه‌های مبتنی بر IP به هر مسیریاب یک شناسه نسبت می‌دهد و هر مسیریاب در صورت تغییر وضعیت یکی از پیوند‌‌های مجاور خود به همسایگانش یک بسته‌ی خبری وضعیت پیوند \زیرنوشت{Link State Advertisement} (LSA) می‌فرستد تا تغییر وضعیت را به آن‌ها اطلاع دهد. در واقع در صورتی که از این پروتکل روی یک شبکه‌ی مبتنی بر IP استفاده شود، شناسه‌ی مسیریاب‌ها همان آدرس IP آن‌ها خواهد بود. لایه‌ی بالایی لایه‌ای است که برای توزیع محتوا مورد استفاده قرار می‌گیرد و لایه‌ی اعلام پیشوند \زیرنوشت{Prefix Announcing Layer} )PA) نام دارد. در این لایه پیشوند‌های نام داده‌ها در دو حالت فعال و غیرفعال را توزیع می‌کند تا پایگاه اطلاعات ارسال (FIB) با استفاده از آن‌ها ساخته شود. در این لایه نیز از بسته‌های درخواست و داده‌ی NDN استفاده نمی‌شود. این امر سبب می‌شود که از خصوصیات ذاتی NDN مانند امضای دیجیتالی بسته‌ها بهره ببرند.

از دیگر کارهایی که در زمینه‌ی مسیریابی در شبکه‌های NDN انجام شده است، ارائه‌ی پروتکل OSPFN توسط Zhang و بقیه \ref{ospfn} است. این پروتکل در واقع گسترش‌یافته‌ی پروتکل OSPF برای شبکه‌های مبتنی بر IP است. در این پروتکل یک بسته‌ی خبری وضعیت پیوند جدید تعریف می‌کند تا پیشوند‌ها را در پیغام‌های مسیریابی حمل کنند. هم‌چنین بهترین مسیر به هر پیشوند در FIB ثبت می‌شود و اپراتورهای شبکه می‌توانند به صورت دستی چند مسیر جایگزین برای مسیریاب تعریف کنند تا در صورت نیاز از آن‌ها استفاده کند. با وجود این‌که OSPFN در نهایت می‌تواند FIB را به صورت پویا با پیشوندها پر کند، با محدودیت‌های جدی روبه‌رو است. این پروتکل نیز مانند پروتکل قبلی از آدرس IP به عنوان شناسه‌ی مسیریاب‌ها استفاده می‌کند و در نتیجه بهره‌ای از بسته‌های درخواست و داده‌ی NDN نمی‌برد. هم‌چنین تنها اولین بهترین مسیر را برای هر پیشوند در نظر می‌گیرد و استفاده از قابلیت چندمسیری ارسال بسته‌ها در NDN تنها با مسیرهایی وارد شده توسط اپراتور شبکه امکان‌پذیر است و در واقع از ارسال چندمسیری پشتیبانی نمی‌کند.
از دیگر کارهایی که در زمینه‌ی مسیریابی در شبکه‌های NDN انجام شده است، ارائه‌ی پروتکل OSPFN توسط Zhang و بقیه \cite{ospfn} است. این پروتکل در واقع گسترش‌یافته‌ی پروتکل OSPF برای شبکه‌های مبتنی بر IP است. در این پروتکل یک بسته‌ی خبری وضعیت پیوند جدید تعریف می‌کند تا پیشوند‌ها را در پیغام‌های مسیریابی حمل کنند. هم‌چنین بهترین مسیر به هر پیشوند در FIB ثبت می‌شود و اپراتورهای شبکه می‌توانند به صورت دستی چند مسیر جایگزین برای مسیریاب تعریف کنند تا در صورت نیاز از آن‌ها استفاده کند. با وجود این‌که OSPFN در نهایت می‌تواند FIB را به صورت پویا با پیشوندها پر کند، با محدودیت‌های جدی روبه‌رو است. این پروتکل نیز مانند پروتکل قبلی از آدرس IP به عنوان شناسه‌ی مسیریاب‌ها استفاده می‌کند و در نتیجه بهره‌ای از بسته‌های درخواست و داده‌ی NDN نمی‌برد. هم‌چنین تنها اولین بهترین مسیر را برای هر پیشوند در نظر می‌گیرد و استفاده از قابلیت چندمسیری ارسال بسته‌ها در NDN تنها با مسیرهایی وارد شده توسط اپراتور شبکه امکان‌پذیر است و در واقع از ارسال چندمسیری پشتیبانی نمی‌کند.

مقاله‌ی Torres و بقیه \ref{controller} یک پروتکل مسیریابی مبتنی بر کنترل‌کننده پیشنهاد می‌دهد. در این پروتکل برای پیشگیری از زیاد شدن بیش از اندازه‌ی حجم FIB عنصر جدیدی به نام کنترل‌کننده به شبکه اضافه می‌کند که مسئولیت نگهداری مکان داده‌ها و مسیریابی را به عهده دارند. در مرحله‌ی راه‌اندازی این پروتکل کنترل‌کننده‌ها توپولوژی را به دست می‌آورند و مسیرهای بین مسیریاب‌ها را محاسبه می‌کنند. این کنترل‌کننده‌ها علاوه بر کوتاه‌ترین مسیرها، مسیر‌های جایگزین با هزینه‌ی بیشتر را نیز برای کنترل ترافیک شبکه محاسبه خواهند کرد. پس از راه‌اندازی، داده‌های نام‌گذاری شده و مکان آن‌ها در کنترل‌کننده‌ها ثبت می‌شوند و در نتیجه کنترل‌کننده‌ها می‌توانند مسیرهای موردنیاز را در مسیریاب‌ها کارگذاری کنند. هم‌چنین مسیریاب‌ها می‌توانند برای مسیریابی داده‌های جدید به کنترل‌کننده‌ها درخواست دهند. هم‌چنین برای جلوگیری از انفجار داده‌های مربوط به مکان داده‌ها در کنترل‌کننده‌ها از جدول توزیع‌شده‌ی درهم‌سازی \زیرنوشت{Distributed Hash Table} (DHT) استفاده می‌شود. با وجود این که این پروتکل روی NDN و با بسته‌های درخواست و داده‌ی آن کار می‌کند، به دلیل استفاده از بسته‌های درخواست با قالب خاصی برای جستجوی کنترل‌کننده‌ها، ممکن است با سربار زیادی مواجه شود.
مقاله‌ی Torres و بقیه \cite{controller} یک پروتکل مسیریابی مبتنی بر کنترل‌کننده پیشنهاد می‌دهد. در این پروتکل برای پیشگیری از زیاد شدن بیش از اندازه‌ی حجم FIB عنصر جدیدی به نام کنترل‌کننده به شبکه اضافه می‌کند که مسئولیت نگهداری مکان داده‌ها و مسیریابی را به عهده دارند. در مرحله‌ی راه‌اندازی این پروتکل کنترل‌کننده‌ها توپولوژی را به دست می‌آورند و مسیرهای بین مسیریاب‌ها را محاسبه می‌کنند. این کنترل‌کننده‌ها علاوه بر کوتاه‌ترین مسیرها، مسیر‌های جایگزین با هزینه‌ی بیشتر را نیز برای کنترل ترافیک شبکه محاسبه خواهند کرد. پس از راه‌اندازی، داده‌های نام‌گذاری شده و مکان آن‌ها در کنترل‌کننده‌ها ثبت می‌شوند و در نتیجه کنترل‌کننده‌ها می‌توانند مسیرهای موردنیاز را در مسیریاب‌ها کارگذاری کنند. هم‌چنین مسیریاب‌ها می‌توانند برای مسیریابی داده‌های جدید به کنترل‌کننده‌ها درخواست دهند. هم‌چنین برای جلوگیری از انفجار داده‌های مربوط به مکان داده‌ها در کنترل‌کننده‌ها از جدول توزیع‌شده‌ی درهم‌سازی \زیرنوشت{Distributed Hash Table} (DHT) استفاده می‌شود. با وجود این که این پروتکل روی NDN و با بسته‌های درخواست و داده‌ی آن کار می‌کند، به دلیل استفاده از بسته‌های درخواست با قالب خاصی برای جستجوی کنترل‌کننده‌ها، ممکن است با سربار زیادی مواجه شود.

قابل‌توجه‌ترین و جدیدترین کاری که در زمینه‌ی مسیریابی در شبکه‌های NDN انجام شده است، کاری است که Zhang و دوستان \ref{nlsr} انجام داده‌اند. در این کار یک پروتکل مبتنی بر وضعیت پیوند \زیرنوشت{Link State}به نام NLSR ارائه می‌شود که روی NDN اجرا می‌شود، به این معنی که از بسته‌های درخواست و داده‌ی آن برای مسیریابی استفاده می‌کند. همانند OSPF که یک پروتکل مبتنی بر وضعیت پیوند است، در این پروتکل نیز از بسته‌های خبری وضعیت پیوند برای گسترش وضعیت پیوندها در سرتاسر شبکه استفاده می‌‌شود. هر مسیریاب توپولوژی شبکه را از روی این بسته‌ها برای خود می‌سازد و مسیرها را از روی آن محاسبه می‌کند. از جمله ویژگی‌های مثبت این پروتکل پشتیبانی از چندمسیری است. در حقیقت هر مسیریاب مسیرهای منتهی به یک پیشوند را از تمامی واسط‌ها محاسبه کرده و آن‌ها را رتبه‌بندی می‌کند و در FIB قرار می‌دهد تا ارسال بر اساس آن‌ها انجام بگیرد. هم‌چنین در NLSR دیگر از آدرس IP مسیریاب‌ها به عنوان شناسه استفاده نمی‌شود بلکه هر مسیریاب نیز مانند داده‌ها یک نام دارد و با آن شناخته می‌شود. علاوه بر آن به دلیل استفاده از بسته‌های درخواست و داده‌ی خود NDN، این پروتکل می‌تواند از مکانیزم صحت‌سنجی NDN یا همان امضای بسته‌ها برای اطمینان از درستی بسته‌ها استفاده کند. در کنار آن، این پروتکل یک مکانیزم اعتماد نیز برای توزیع و مدیریت کلید‌های مسیریاب‌ها پیشنهاد می‌کند.
قابل‌توجه‌ترین و جدیدترین کاری که در زمینه‌ی مسیریابی در شبکه‌های NDN انجام شده است، کاری است که Zhang و دوستان \cite{nlsr} انجام داده‌اند. در این کار یک پروتکل مبتنی بر وضعیت پیوند \زیرنوشت{Link State}به نام NLSR ارائه می‌شود که روی NDN اجرا می‌شود، به این معنی که از بسته‌های درخواست و داده‌ی آن برای مسیریابی استفاده می‌کند. همانند OSPF که یک پروتکل مبتنی بر وضعیت پیوند است، در این پروتکل نیز از بسته‌های خبری وضعیت پیوند برای گسترش وضعیت پیوندها در سرتاسر شبکه استفاده می‌‌شود. هر مسیریاب توپولوژی شبکه را از روی این بسته‌ها برای خود می‌سازد و مسیرها را از روی آن محاسبه می‌کند. از جمله ویژگی‌های مثبت این پروتکل پشتیبانی از چندمسیری است. در حقیقت هر مسیریاب مسیرهای منتهی به یک پیشوند را از تمامی واسط‌ها محاسبه کرده و آن‌ها را رتبه‌بندی می‌کند و در FIB قرار می‌دهد تا ارسال بر اساس آن‌ها انجام بگیرد. هم‌چنین در NLSR دیگر از آدرس IP مسیریاب‌ها به عنوان شناسه استفاده نمی‌شود بلکه هر مسیریاب نیز مانند داده‌ها یک نام دارد و با آن شناخته می‌شود. علاوه بر آن به دلیل استفاده از بسته‌های درخواست و داده‌ی خود NDN، این پروتکل می‌تواند از مکانیزم صحت‌سنجی NDN یا همان امضای بسته‌ها برای اطمینان از درستی بسته‌ها استفاده کند. در کنار آن، این پروتکل یک مکانیزم اعتماد نیز برای توزیع و مدیریت کلید‌های مسیریاب‌ها پیشنهاد می‌کند.

در NLSR دو نوع بسته‌ی خبری وضعیت پیوند تعریف و استفاده می‌شود. نوع اول بسته‌هایی هستند که برای تبادل پیغام‌های مربوط به توپولوژی به کار می‌روند. این بسته‌ها در حقیقت وظیفه‌ای مشابه بسته‌های مسیریابی در پروتکل‌های مبتنی بر وضعیت پیوند در شبکه‌های IP دارد و اطلاعات مربوط به پبوند‌های فعال را جابه‌جا می‌کنند. نوع دوم بسته‌ها برای توزیع و تبلیغ پیشوند‌ها به کار می‌روند. هر یک از این بسته‌ها شامل یک پیشوند و نام مسیریابی است که این بسته را ایجاد کرده و در نتیجه این پیشوند را تبلیغ می‌کند. برخلاف شبکه‌های مبتنی بر IP که در آن خود مسیریابی که تغییر وضعیت در آن رخ داده، با ارسال LSA ها فرآیند به‌روزرسانی را آغاز می‌کند و یا به اصطلاح تغییرات مسیریابی را به سایر مسیریاب‌ها Push می‌کند، در NDN به دلیل استفاده از بسته‌ها درخواست و داده این کار ممکن نیست زیرا ارسال داده‌ تنها با درخواست آغاز می‌شود و در اصطلاح مسیریاب‌ها باید تغییرات را از دیگران Pull کنند. راهکاری که برای این مسئله، و در حقیقت انتشار LSAها در NLSR پیشنهاد می‌شود استفاده از مخزن \زیرنوشت{Repository} و پروتکل Sync است که در CCNx پیاده‌سازی شده‌اند. CCNx پروژه‌ای است که برای توسعه، ترویج، و ارزیابی معماری مبتنی بر محتوا یا همان داده به وجود آمده است و به نوعی نقطه‌ی آغازین پروژه‌ی NDN نیز به شمار می‌رود. CCNx این امکان را به برنامه‌ها می‌دهد تا مجموعه‌هایی از داده‌های نام‌گذاری شده ایجاد کنند و با استفاده از پروتکل Sync آن‌ها را مجموعه‌های هم‌نام خود در گره‌های مجاور هم‌گام نگه دارند. در NLSR بسته‌های مربوط به مسیریابی در یک مجموعه قرار می‌گیرند که در مخزن‌های تمام گره‌ها تعریف می‌شود و با هم‌گام‌سازی این مجموعه‌ها توسط پروتکل Sync این بسته‌ها در سرتاسر شبکه توزیع می‌شوند. ما نیز برای توزیع بسته‌ها در پروتکل پیشنهادی خود با تغییراتی از پروتکل Sync استفاده می‌کنیم و به همین دلیل در بخش بعد به طور مفصل‌تر به این پروتکل خواهیم پرداخت.

Expand Down
Loading

0 comments on commit 59108d2

Please sign in to comment.