دانلود کتاب آموزشی شبیه ساز NS2 

بدون ديدگاه

 دانلود کتاب آموزش شبیه ساز NS2 به زبان فارسی خانه شبیه ساز NS2 آموزش شبیه سازی شبکه با NS2 کتاب آموزش

NS (نسخه 2) یک شبیه ساز شبکه محور رویداد گسسته شیء گرا است که در UC Berkely در C ++ و OTcl نوشته شده است. NS در درجه اول برای شبیه سازی شبکه های محلی و گسترده مفید است. اگرچه NS پس از آشنایی با شبیه ساز ، استفاده از آن نسبتاً آسان است ، اما برای اولین بار برای کاربر بسیار دشوار است ، زیرا تعداد کمی کتابچه راهنمای کاربر پسند وجود دارد. حتی اگر اسناد زیادی توسط توسعه دهندگان نوشته شده است که توضیحات عمیق شبیه ساز را دارند ، اما با عمق یک کاربر ماهر NS نوشته شده است. هدف از این پروژه ارائه یک ایده اصلی در مورد چگونگی کار همزمان ، چگونگی راه اندازی شبکه های شبیه سازی ، به جایی است که به دنبال اطلاعات بیشتر در مورد اجزای شبکه در کدهای شبیه ساز ، چگونگی ایجاد مؤلفه های جدید شبکه و غیره بطور عمده می باشد. با ارائه مثال های ساده و توضیحات مختصر بر اساس تجربیات ما. اگرچه ممکن است تمام استفاده از شبیه ساز یا مجموعه های ممکن شبیه سازی شبکه در این پروژه پوشانده نشود ، اما این پروژه باید به یک کاربر جدید کمک کند تا سریعاً شروع به کار کند.

NS یک شبیه ساز شبکه رویداد است که در UC Berkeley ساخته شده است و انواع شبکه های IP را شبیه سازی می کند. این پروتکل های شبکه مانند TCP و UPD ، رفتار منبع ترافیک مانند FTP ، Telnet ، وب ، CBR و VBR ، مکانیسم مدیریت صف روتر مانند Drop Tail ، RED و CBQ ، الگوریتم های مسیریابی مانند Dijkstra و موارد دیگر را پیاده سازی می کند. NS همچنین چندین پروتکل لایه ای MAC را برای شبیه سازی LAN پیاده سازی می کند. پروژه NS اکنون بخشی از پروژه VINT است که ابزارهایی را برای نمایش نتایج ، شبیه سازی نمایش ، تجزیه و تحلیل و مبدلهایی ایجاد می کند که توپولوژی های شبکه تولید شده توسط ژنراتورهای شناخته شده را به فرمت های NS تبدیل می کند. در حال حاضر ، NS (نسخه 2) که به زبان C ++ و OTcl نوشته شده است (زبان اسکریپت Tcl با پسوندهای شی گرا توسعه یافته در MIT) در دسترس است. این سند به طور خلاصه در مورد ساختار اساسی NS صحبت می کند ، و به طور مفصل نحوه استفاده از NS را بیشتر با ارائه مثال توضیح می دهد. اکثر ارقامی که در توصیف ساختار اساسی NS و مؤلفه های شبکه مورد استفاده قرار می گیرند ، از اسلایدهای پنجم آموزش VINT / NS Simulator Tutorial / Workshop و دفترچه NS (که قبلاً به آن “NS Notes and Documentation” گفته می شد) ، کمی در صورت نیاز اصلاح شده اند. برای کسب اطلاعات بیشتر در مورد NS و ابزارهای مرتبط ، به صفحه اصلی پروژه VINT مراجعه کنید.

 

در یک دیدگاه ساده کاربر ، NS مفسر اسکریپت Tcl (OTcl) شی گرا است که دارای یک برنامه ریزی رویداد شبیه سازی و کتابخانه های اشیاء مؤلفه شبکه ، و کتابخانه های ماژول راه اندازی شبکه (لوله کشی) است (در واقع ، ماژول های لوله کشی اجرا می شوند) به عنوان توابع عضو شی شبیه ساز پایه). به عبارت دیگر ، برای استفاده از NS ، شما به زبان اسکریپت OTcl برنامه ریزی می کنید. برای راه اندازی و اجرای یک شبکه شبیه سازی ، یک کاربر باید یک اسکریپت OTcl را بنویسد که برنامه ریزی یک رویداد را آغاز می کند ، توپولوژی شبکه را با استفاده از اشیاء شبکه و توابع لوله کشی در کتابخانه تنظیم می کند و به منابع راهنمایی و رانندگی می گوید که چه زمانی شروع و متوقف کردن انتقال بسته ها از طریق برنامه ریز رویداد. اصطلاح “لوله کشی” برای راه اندازی شبکه استفاده می شود ، زیرا راه اندازی شبکه لوله کشی مسیرهای ممکن داده در بین اشیاء شبکه با تنظیم نشانگر “همسایه” یک شیء به آدرس یک شی مناسب است. هنگامی که کاربر می خواهد یک شیء جدید شبکه بسازد ، می تواند به راحتی با نوشتن یک شی جدید یا با ساختن یک شیء مرکب از کتابخانه شیء ، یک شیء را ایجاد کند و مسیر داده را از طریق آن شیء کند. این ممکن است مانند کار پیچیده به نظر برسد ، اما ماژول های لوله کشی OTcl در واقع کار را بسیار آسان می کنند. قدرت NS از این لوله کشی به دست می آید.

یکی دیگر از مؤلفه های اصلی NS در کنار اشیاء شبکه ، برنامه ریزی رویداد است. یک رویداد در NS یک شناسه بسته است که برای یک بسته با زمان برنامه ریزی شده و اشاره گر به یک شیء که این رویداد را انجام می دهد بی نظیر است. در NS ، یک برنامه ریز رویداد ، زمان شبیه سازی را ردیابی می کند و با استناد به مؤلفه های مناسب شبکه ، که معمولاً کسانی هستند که این رویدادها را صادر کرده اند ، تمام وقایع موجود در صف رویداد را که برای زمان فعلی برنامه ریزی شده است ، شلیک می کند و به آنها اجازه می دهد تا اقدامات مناسبی را انجام دهند. بسته اشاره شده توسط این رویداد. اجزای شبکه با بسته های عبوری دیگر ارتباط برقرار می کنند ، اما این زمان شبیه سازی واقعی را مصرف نمی کند. کلیه مؤلفه های شبکه که نیاز به صرف زمان شبیه سازی برای مدیریت یک بسته دارند (یعنی نیاز به تأخیر دارند) از برنامه زمانبندی رویداد با صدور یک رویداد برای بسته استفاده می کنند و منتظرند تا قبل از انجام اقدامات بیشتر بسته بندی ، این رویداد را به سمت خود اخراج کند. به عنوان مثال ، یک مؤلفه سوئیچ شبکه که یک سوییچ را با 20 میکروثانیه از تأخیر در تعویض شبیه سازی می کند ، یک رویداد را برای یک بسته به عنوان برنامه ریزی شده به عنوان یک رویداد 20 میکرو ثانیه ثانویه ایجاد می کند. برنامه زمانبند بعد از 20 میکرو ثانیه این رویداد را خاموش می کند و آن را به قسمت سوئیچ سوخته می کند ، که سپس بسته را به یک مؤلفه لینک خروجی مناسب منتقل می کند. استفاده دیگر از برنامه ریز رویدادها تایمر است. به عنوان مثال ، TCP به یک تایمر برای پیگیری زمان انتقال بسته برای ارسال مجدد (انتقال یک بسته با همان شماره TCP بسته اما شناسه بسته های مختلف NS) نیاز دارد. تایمرها از برنامه ریز رویدادها به روشی مشابه استفاده می کنند که تأخیر انجام می دهد. تنها تفاوت این است که تایمر مقدار زمانی مرتبط با یک بسته را اندازه گیری می کند و یک عمل مناسب در رابطه با آن بسته را بعد از گذشت مدت مشخص انجام می دهد و تأخیر را شبیه سازی نمی کند.

از میان زیر فهرست های ns-allinone-2.1b ، ns-2 مکانی است که کلیه پیاده سازی های شبیه ساز (یا در C ++ یا OTcl) را دارد ، تست اعتبار سنجی اسکریپت های OTcl و نمونه اسکریپت های OTcl. در این فهرست ، کلیه کدهای OTcl و اسکریپت های تست / نمونه در زیر زیر دایرکتوری به نام tcl قرار دارند و بیشتر کد C ++ که برنامه ریز رویدادها و کلاس های اصلی جزء شبکه را اجرا می کند ، بجز کپی های مربوط به WWW ، در اصلی قرار دارند. سطح. به عنوان مثال ، اگر می خواهید اجرای عامل UDP را ببینید ، باید به فهرست “ns-allinone-2.1b / ns-2” بروید و “udp.h” ، “udp.cc” و پرونده ها را باز کنید. که شامل اجرای کلاس های اجداد UDP در صورت لزوم است. برای سلسله مراتب طبقاتی قطعات شبکه ، به بخش 6 در بخش “مؤلفه های شبکه” مراجعه کنید. از این پس فرض بر این است که شما در حال حاضر در فهرست “ns-allinone-2.1b” قرار دارید.

دایرکتوری tcl دارای زیر شاخه هایی است که از این میان ، فهرست دایرکتوری lib که حاوی کدهای منبع OTcl برای ابتدایی ترین و اساسی ترین قسمت های اجرای NS (نماینده ، گره ، پیوند ، بسته ، آدرس ، مسیریابی و …) می باشد. به عنوان یک کاربر یا به عنوان یک توسعه دهنده بیشترین بازدید را خواهد کرد. توجه داشته باشید که کدهای منبع OTcl برای اجرای LAN ، Web و Multicast در زیر شاخه های جداگانه tcl قرار دارند. در زیر لیستی جزئی از پرونده ها در فهرست “ns-2 / tcl / lib” وجود دارد.

ns-lib.tcl: کلاس شبیه ساز و بسیاری از تعاریف عملکرد عضو آن به جز موارد LAN ، وب و Multicast در اینجا قرار دارند. اگر می خواهید بدانید که عملکردهای عضو کلاس شی Simulator در دسترس هستند و چگونه کار می کنند ، این مکانی برای جستجو است.

ns-default.tcl: مقادیر پیش فرض پارامترهای قابل تنظیم برای اجزای مختلف شبکه در اینجا قرار دارد. از آنجا که بیشتر اجزای شبکه در C ++ پیاده سازی می شوند ، پارامترهای قابل تنظیم در واقع متغیرهای C ++ هستند که از طریق یک تابع اتصال OTcl در دسترس هستند ، اتصال (C ++ _ variable_name ، OTcl_variable_name) در دسترس OTcl. نحوه ایجاد پیوندهای OTcl از کد C ++ در بخش بعدی توضیح داده شده است.

ns-packet.tcl: پیاده سازی اولیه سازی فرمت هدر بسته در اینجا قرار دارد. هنگامی که یک هدر بسته جدید ایجاد می کنید ، باید در این پرونده هدر را ثبت کنید تا مراحل ابتدایی هدر بسته باعث شود تا هدر خود را در قالب پشته هدر قرار دهید و جبران هدر خود را در پشته به دست آورید. عنوان ایجاد عنوان جدید در بخش “افزودن برنامه جدید و نماینده” نشان داده شده است.

سایر پرونده های OTcl: سایر پرونده های OTcl در این فهرست ، حاوی اجرای OTcl اشیاء شبکه مرکب یا قسمت جلویی (قسمت کنترل) اشیاء شبکه در C ++ هستند. برنامه FTP کاملاً در OTcl پیاده سازی شده است و کد منبع در “ns-source.tcl” قرار دارد.

دو زیر دایرکتوری tcl که ممکن است برای کاربری که می خواهد بداند چگونه یک شبیه سازی خاص را طراحی کند ، جالب باشد ، ex و test هستند. دایرکتوری قبلی شامل اسکریپت های شبیه سازی نمونه های مختلف و دومی شامل اسکریپت های شبیه سازی است که با اجرای شبیه سازی های مختلف و مقایسه نتایج با نتایج مورد انتظار ، NS نصب شده در دستگاه شما را تأیید می کند.

نوشتن دیدگاه

نشانی ایمیل شما منتشر نخواهد شد.

پانزده − یک =