ان اس (شبیه‌ساز)

تاریخچه

قبل از ns شبیه‌سازی به نام REAL وجود داشته که قدمت آن به سال ۱۹۸۹ بر می‌گردد.

ns-1

اولین ورژن ns به نام ns-1، در آزمایشگاه ملی لارنس برکلی (LBNL) در بازه زمانی ۱۹۹۵-۹۷ توسط استیو مک کین، سالی فلوید، کوین فال و همکارانشان توسعه داده شده‌است. که به نام شبیه‌ساز شبکه LBNL شناخته شد که از شبیه‌ساز قبلی خود به نام REAL توسط s. keshav گرفته شده‌است. هسته شبیه‌ساز با C++ نوشته شده و سناریوهای شبیه‌سازی با اسکریپت TCL. توزیع‌های بلند مدت آن همچنین از پروؤه‌های سان مایکروسیستمز و UC Berkeley Daedelus و Carnegie Mellon Monarch نیز می‌آمدند.

ns-2

در سال ۱۹۹۶-۹۷ کار بر روی نسخه دوم ns (ns-2) برپایه بازسازی استیو مک کین انجام شد. استفاده از tcl با tcl شی گرا (otcl) جایگزین شده بود. هسته ns-2 نیز با C++ نوشته شده بود اما اشیا شبیه‌سازی c++ به اشیا سایه در otcl وصل هستند و متغیرها می‌توانند بین این دو حوزه زبان بهم وصل شوند. اسکریپت‌های شبیه‌سازی به زبان OTCL نوشته شده‌اند. این ساختار اجازه می‌دهد شبیه‌سازی‌ها در یک محیط تفیسر شده نوشته واصلاح شوند بدون دوباره کامپایل کردن شبیه‌ساز وقتی که ساختارش تغییر کرد. در فاصله زمانی که ns-2 معرفی شد دو راحتی چشمگیر را فراهم کرد اجتناب از دوباره کامپایل کردن‌های وقت گیر و همچنین علائم اسکریپتی ساده برای توصیف شبیه‌سازی. Ns-2 یک انیمیشن همراه به نام انیماتور شبکه   nam-1 دارد که توسط مارک هندلی نوشته شده‌است برای بصری سازی شبیه‌سازی خروجی و تنظیمات گرافیکی (محدود) برای سناریوهای شبیه‌سازی.
در سال ۱۹۹۷ پروژه the DARPA Virtual InterNetwork Testbed (VINT) دارپا شامل LBNL، زیراکس پارک، UC Berkeley، and USC's Information Sciences Institute (ISI) آغاز شد. بخش عمده توسعه ns-2 در این فاصله زمانی اتفاق افتاد. همچنین فعالیت‌های نگهداری نرم‌افزار در این دوره به isi مهاجرت کرد و سرانجام به John Heidemann. بعد از جمع بندی پروژه VINT، ns-2 همچنان در فاصله زمانی ۰۴-۲۰۰۱ توسط DARPA SAMAN و NSF CONSER awards to USC/ISI بودجه بندی می‌شد.
در حال حاضر، ns-2 شامل بیشتر از ۳۰۰۰۰۰ خط سورس کد است. و احتمالاً شامل کدهای توزیعی قابل ملاحظه‌ای دیگری که به‌طور مستقیم با توزیع اصلی یکپارچه نشده‌اند. نرم‌افزار بر روی لینوکس، فری‌بی‌اس‌دی، سولاریس، اواس‌ده و Windows 95/98/NT/2000/XP قابل اجرا است که توسط ورژن ۲ پروانه عمومی همگانی گنو لایسنس شده‌اند.

طراحی

Ns-3 با استفاده از سی++ و پایتون ساخته شد و اسکریپت‌نویسی با هر دو زبان موجود است. کتابخانه ns-3 به لطف کتابخانه pybindgen به پایتون پیچیده شد که ملزم به جدا کردن هدر c++ ns -3 به gccxml و pygccxml می‌کند. تا به صورت خودکار اتصال c++ را برقرار سازد. این فایل‌های تولید شده خودکار c++ سرانجام به ماژول پایتون ns-
3 کامپایل می‌شوند که به کاربران اجازه می‌دهد که با ماژول‌های c++ ns-3 و هسته از طریق اسکریپت‌های پایتون ارتباط برقرار کنند.

محتویات

Ns-3 به بیش از چندین جفت ماژول تقسیم می‌شود که شامل یک یا بیشتر ماژول برای ابزار یا پروتکل‌های شبکه دنیای واقعی است.

انتقاد

Ns-2 بسیاری از اوقات انتقاد می‌شود زیرا مدلسازی آن خیلی پیچیده و یک فرایند زمان بر است و چون محیط گرافیکی ندارد باید زبان اسکریپت نویسی، تئوری صف و تکنیک‌های مدلسازی یاد گرفته شود. و هم چنین اخیراً شکایاتی مبنی بر اینکه نتایج سازگار نیستند وجود دارد (احتمالاً بخاطر تغییرات متناوب کد آن) وپروتکل‌های خاص آن مملو از باگ هستند.
Ns-3 بیشتر بخاطر کمبود پشتیبانی از پروتکل‌هایی که در ns-2 پشتیبانی می‌شدند مورد انتقاد قرار می‌گیرند که بخاطر سازگار نبودن آن با Ns-2 است. همانند ns-2، ns-3 نیز برای یادگیری و استفاده زمان بر است در مقایسه با شبیه‌سازهای دارای رابط گرافیکی.