lida_star
21st March 2009, 02:43 PM
شروع به کار این شبیهساز به پیش از پروژه VINT مربوط میگردد، شبیهساز NS در سال ۱۹۸۹ توسط گروه تحقیقات شبکه NRG در آزمایشگاه LBNL و براساس شبیهساز شبکهی دیگری موسوم به REAL طراحی شده است که توسعهی آن تا امروز ادامه داشته و به خصوص پس از انتخاب شدن به عنوان ابزار شبیهساز پروژهی VINT جدیت و سرعت بیشتری یافته است.
● پیشینه:
شروع به کار این شبیهساز به پیش از پروژه VINT مربوط میگردد، شبیهساز NS در سال ۱۹۸۹ توسط گروه تحقیقات شبکه NRG در آزمایشگاه LBNL و براساس شبیهساز شبکهی دیگری موسوم به REAL طراحی شده است که توسعهی آن تا امروز ادامه داشته و به خصوص پس از انتخاب شدن به عنوان ابزار شبیهساز پروژهی VINT جدیت و سرعت بیشتری یافته است.
آخرین نسخة موجود آن در زمان نگارش این گزارش (اردیبهشت ۱۳۷۸) تحت عنوان NS. ۲.۱b۵ روی شبکهی اینترنت در دسترس میباشد.
پروژهی VINT یک کار مشترک تحقیقاتی بین چهار گروه از دانشگاه برکلی کلمبیا ، آزمایشگاه LBNL ، مرکز USC/ISI و بالاخره موسسه Xeroc میباشد که از سال ۱۹۹۶ تحت سرپرستی آژانس تحقیقات پیشرفتهی دفاعی DARPA در جریان بوده است.
هدف این پروژه ایجاد یک محیط شبیهسازی جهت انجام پارهای تحقیقات روی پروتکلهای انتقال در شبکههای گسترده (با تمرکز روی TCP در شبکهی اینترنت) میباشد، تحقیقاتی که به خلق تکنیکهای طراحی نوین برای این پروتکلها و در نهایت اعمال آنها منجر خواهد شد، VINT در واقع پاسخی است که به نیاز اجتماع اینترنت در برخورد با مشکلات ناشی از گسترش روزافزون این شبکه داده میشود، طبق نظر متولیان این پروژه افزایش Inter Networking در سالهای اخیر مشکلاتی برای پروتکل TCP به لحاظ کارآیی به وجود آورده که انجام تحقیقات در جهت اصلاح، تکمیل و یا حتی جایگزینی این پروتکل را لازم گردانیده.
● ابزارهای پروژهی VINT
VINT بر ایجاد یک محیط شبیهسازی کاملاً ساخت یافته و قابل گسترش تأکید دارد، محیطی که با تکیه بر یک موتور شبیهساز کارآ، ساختاری را فراهم کند تا محققان به راحتی قادر به هرگونه تغییر در پروتکلها و عناصر آن (به خصوص در سطح لایهی انتقال) باشند و با این هدف نرمافزار شبیهسازی آزمایشگاه تحقیقاتی LBNL موسوم به NS را به عنوان پایهای برای ایجاد محیط مورد نظر خود انتخاب کرد، DARPA با انجام برخی تغییرات در این شبیهساز که رأس آن شیگرا نمودن ساختار آن میباشد، نسخهی جدیدی از این شبیهساز را تحت عنوان NS (v۲) ایجاد نموده که در حال حاضر نیز مراحل تکمیلی را پشت سر میگذارد.
البته علاوه بر این شبیهساز، ابزارهای دیگری نیز برای این پروژه تهیه شدهاند که از آن میان میتوان به نرمافزار مصورساز موسوم به NAM اشاره کرد که کاملاً با خروجیهای NS سازگار میباشد و قادر است فرآیند حرکت پاکتها را از میان توپولوژی شبکه به نمایش گذارد.
● معماری درونی NS
NS۲ از گونهی شبیهسازهای رویدادگردان میباشد و از طریق پیگیری رخدادهای در طول زمان گسسته ، شبیهسازی را به پیش میبرد، این شبیهساز در دو محیط برنامهنویسی OTCL , C ++ و به صورت شیگرا طرح شده، NS بر اساس مدلی موسوم به VuSystem کار میکند که در ادامه به طور خلاصه در مورد آن توضیح میدهیم:
● مدل VuSystem
شبیهسازهای شبکه عمدتاً از دو بخش با تمایلات گوناگون تشکیل یافتهاند:
۱) گروهی از بلوکهای سازنده که عناصری همچون گرهها، لینکها، صفها (بافرها)، مولدهای ترافیک و پروتکلها را شبیهسازی میکنند.
۲) یک رابطه که معمولاً از آن تحت عنوان زبان تشریح شبیهسازی یا SDL یاد میشود و وظیفه دارد بلوکهای سازنده فوق را در فرآیند شبیهسازی به یکدیگر متصل سازد.
در مورد این دو بخش یک مشکل اساسی پیش روی طراحان شبیهسازهای شبکه وجود دارد، در حالیکه برای بلوکهای سازنده کارآیی و سرعت اجرا هدف اصلی میباشد، SDL نیازمند انعطاف و سهولت تغییر در پیکربندی میباشد و نیل به این دو هدف با یک محیط برنامهریزی واحد مشکل مینماید، بنابراین مدل VuSystem که توسط David Wetherall در دانشگاه MIT پیشنهاد شده، راه حل را در استفاده از دو محیط برنامهنویسی جداگانه برای دو بخش فوق میداند.
مطابق این مدل بلوکهای سازنده با یک زبان کامپایلی (برای مثال C++) و بخش رابط آنها در یک محیط مفسری (مانند OTCL) پیادهسازی میشوند.
طراحان NS-۲ با به کارگیری مجموعهای از اشیا موسوم به اشیاء دو تکه موفق به اعمال مدل VuSystem در شبیهساز خویش گشتهاند. مطابق این مدل، NS-۲ متشکل از مجموعهای از اشیاء میباشد که در محیط دوگانهی کامپایلی/ مفسری و از طریق فراخوانی متدهای یکدیگر، ارتباط برقرار میکنند.
نوع تفکیک بین دیتا و کنترل در مدل VuSystem وجود دارد و در حالیکه عناصر موتور شبیهساز که با پردازش دیتا سر و کار دارند، با زبان C++ پیادهسازی شدهاند، کنترل و ارتباط کاربران با این عناصر از طریق مجموعهای از اشیاء در محیط OTCL انجام میپذیرد.
البته ساختار فوق در کنار تمام مزایایی که دارد، کار را برای محققانی که قصد توسعهی NS را دارند مشکل میگرداند، چرا که هرگونه تغییری باید در هر دو محیط به صورت همزمان انجام گیرد که این به معنای نیاز به شناخت دو محیط برنامهنویسی متفاوت میباشد.
یزدان بهرامی نیا
● پیشینه:
شروع به کار این شبیهساز به پیش از پروژه VINT مربوط میگردد، شبیهساز NS در سال ۱۹۸۹ توسط گروه تحقیقات شبکه NRG در آزمایشگاه LBNL و براساس شبیهساز شبکهی دیگری موسوم به REAL طراحی شده است که توسعهی آن تا امروز ادامه داشته و به خصوص پس از انتخاب شدن به عنوان ابزار شبیهساز پروژهی VINT جدیت و سرعت بیشتری یافته است.
آخرین نسخة موجود آن در زمان نگارش این گزارش (اردیبهشت ۱۳۷۸) تحت عنوان NS. ۲.۱b۵ روی شبکهی اینترنت در دسترس میباشد.
پروژهی VINT یک کار مشترک تحقیقاتی بین چهار گروه از دانشگاه برکلی کلمبیا ، آزمایشگاه LBNL ، مرکز USC/ISI و بالاخره موسسه Xeroc میباشد که از سال ۱۹۹۶ تحت سرپرستی آژانس تحقیقات پیشرفتهی دفاعی DARPA در جریان بوده است.
هدف این پروژه ایجاد یک محیط شبیهسازی جهت انجام پارهای تحقیقات روی پروتکلهای انتقال در شبکههای گسترده (با تمرکز روی TCP در شبکهی اینترنت) میباشد، تحقیقاتی که به خلق تکنیکهای طراحی نوین برای این پروتکلها و در نهایت اعمال آنها منجر خواهد شد، VINT در واقع پاسخی است که به نیاز اجتماع اینترنت در برخورد با مشکلات ناشی از گسترش روزافزون این شبکه داده میشود، طبق نظر متولیان این پروژه افزایش Inter Networking در سالهای اخیر مشکلاتی برای پروتکل TCP به لحاظ کارآیی به وجود آورده که انجام تحقیقات در جهت اصلاح، تکمیل و یا حتی جایگزینی این پروتکل را لازم گردانیده.
● ابزارهای پروژهی VINT
VINT بر ایجاد یک محیط شبیهسازی کاملاً ساخت یافته و قابل گسترش تأکید دارد، محیطی که با تکیه بر یک موتور شبیهساز کارآ، ساختاری را فراهم کند تا محققان به راحتی قادر به هرگونه تغییر در پروتکلها و عناصر آن (به خصوص در سطح لایهی انتقال) باشند و با این هدف نرمافزار شبیهسازی آزمایشگاه تحقیقاتی LBNL موسوم به NS را به عنوان پایهای برای ایجاد محیط مورد نظر خود انتخاب کرد، DARPA با انجام برخی تغییرات در این شبیهساز که رأس آن شیگرا نمودن ساختار آن میباشد، نسخهی جدیدی از این شبیهساز را تحت عنوان NS (v۲) ایجاد نموده که در حال حاضر نیز مراحل تکمیلی را پشت سر میگذارد.
البته علاوه بر این شبیهساز، ابزارهای دیگری نیز برای این پروژه تهیه شدهاند که از آن میان میتوان به نرمافزار مصورساز موسوم به NAM اشاره کرد که کاملاً با خروجیهای NS سازگار میباشد و قادر است فرآیند حرکت پاکتها را از میان توپولوژی شبکه به نمایش گذارد.
● معماری درونی NS
NS۲ از گونهی شبیهسازهای رویدادگردان میباشد و از طریق پیگیری رخدادهای در طول زمان گسسته ، شبیهسازی را به پیش میبرد، این شبیهساز در دو محیط برنامهنویسی OTCL , C ++ و به صورت شیگرا طرح شده، NS بر اساس مدلی موسوم به VuSystem کار میکند که در ادامه به طور خلاصه در مورد آن توضیح میدهیم:
● مدل VuSystem
شبیهسازهای شبکه عمدتاً از دو بخش با تمایلات گوناگون تشکیل یافتهاند:
۱) گروهی از بلوکهای سازنده که عناصری همچون گرهها، لینکها، صفها (بافرها)، مولدهای ترافیک و پروتکلها را شبیهسازی میکنند.
۲) یک رابطه که معمولاً از آن تحت عنوان زبان تشریح شبیهسازی یا SDL یاد میشود و وظیفه دارد بلوکهای سازنده فوق را در فرآیند شبیهسازی به یکدیگر متصل سازد.
در مورد این دو بخش یک مشکل اساسی پیش روی طراحان شبیهسازهای شبکه وجود دارد، در حالیکه برای بلوکهای سازنده کارآیی و سرعت اجرا هدف اصلی میباشد، SDL نیازمند انعطاف و سهولت تغییر در پیکربندی میباشد و نیل به این دو هدف با یک محیط برنامهریزی واحد مشکل مینماید، بنابراین مدل VuSystem که توسط David Wetherall در دانشگاه MIT پیشنهاد شده، راه حل را در استفاده از دو محیط برنامهنویسی جداگانه برای دو بخش فوق میداند.
مطابق این مدل بلوکهای سازنده با یک زبان کامپایلی (برای مثال C++) و بخش رابط آنها در یک محیط مفسری (مانند OTCL) پیادهسازی میشوند.
طراحان NS-۲ با به کارگیری مجموعهای از اشیا موسوم به اشیاء دو تکه موفق به اعمال مدل VuSystem در شبیهساز خویش گشتهاند. مطابق این مدل، NS-۲ متشکل از مجموعهای از اشیاء میباشد که در محیط دوگانهی کامپایلی/ مفسری و از طریق فراخوانی متدهای یکدیگر، ارتباط برقرار میکنند.
نوع تفکیک بین دیتا و کنترل در مدل VuSystem وجود دارد و در حالیکه عناصر موتور شبیهساز که با پردازش دیتا سر و کار دارند، با زبان C++ پیادهسازی شدهاند، کنترل و ارتباط کاربران با این عناصر از طریق مجموعهای از اشیاء در محیط OTCL انجام میپذیرد.
البته ساختار فوق در کنار تمام مزایایی که دارد، کار را برای محققانی که قصد توسعهی NS را دارند مشکل میگرداند، چرا که هرگونه تغییری باید در هر دو محیط به صورت همزمان انجام گیرد که این به معنای نیاز به شناخت دو محیط برنامهنویسی متفاوت میباشد.
یزدان بهرامی نیا