Ns (simulator)

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
ns-3 Network Simulator
ns-3 logo
ТипNetwork simulator
Розробникиns-3 project[note 1]
Перший випуск30 червня 2008
Стабільний випуск3.26 (3 жовтня 2016; 8 років тому (2016-10-03))
Нестабільний випускMercurial repository
ПлатформаIA-32, x86-64
Операційна системаLinux, FreeBSD, macOS
Мова програмуванняC++ (core) Python (bindings)
Стан розробкиActive
ЛіцензіяGPLv2
Онлайн-документаціяnsnam.org/documentation/latest/
Репозиторійgitlab.com/nsnam/ns-3-dev.git
Вебсайтwww.nsnam.org

NS (від  симулятор мережі) — назва низки мережевих симуляторів дискретних подій, зокрема, NS-1, NS-2 та NS-3. Всі вони є дискретно-подієвими комп'ютерними мережевими тренажерами, в основному використовується в дослідженнях і викладанні. NS-3-це безкоштовна програма, у відкритому доступі під ліцензією GNU gplv2 — ліцензія на дослідження, розробку і використання.

Мета проекту NS-3-це створити відкрите середовище моделювання для дослідження комп'ютерних мереж, які будуть використовуватися всередині наукового співтовариства:[джерело?]

  • Він повинен бути узгоджений з потребами моделювання сучасних дослідницьких мереж.
  • Він повинен заохочувати внесок співтовариства, експертної оцінки і перевірки програмного забезпечення.

Оскільки процес створення мережевого симулятора, який містить достатню кількість високоякісних перевірених, протестованих моделями, які активно підтримуються вимагає багато роботи, ns-3 проект поширює це навантаження на велику групу користувачів і розробників.

Історія

[ред. | ред. код]

Перша версія ns, відома як ns-1, була розроблена в Національній лабораторії Лоренса Берклі  в 1995-97 роках Стівом МакКенні, Саллі Флойдом, Кевіном Фолом, та іншими учасниками. Вона була відома як LBNL Network Simulator і була отримана з попереднього симулятора, відомого як REAL С. Кешава.

ns почалося як варіант реального мережного симулятора в 1989 році і суттєво еволюціонував за останні кілька років. У 1995 році розвиток ns був за підтримки DARPA через проект VINT у LBL, компанії Xerox Parc, UCB, і USC/ISI. В даний час ns розвивається за рахунок   підтримки DARPA із SAMAN і NSF з CONSER, і у співробітництві з іншими дослідниками, в тому числі ACIRI. ns завжди включала істотний код UCB Daedelus і  проект CMU Monarch і Sun Microsystems. Документації про останні зміни див. у розділі версії 2 журнал змін.

Команда на чолі з Томом Хендерсоном, у складі Джорджа Райлі, Саллі Флойд, і Суміт Рой, подала заявку і отримала фінансування від американського Національного наукового Фонду (NSF), щоб побудувати заміну для ns-2, що називається ns-3. Ця команда співпрацювала з Planete [Архівовано 14 квітня 2017 у Wayback Machine.] проект INRIA в Sophia Antipolis, з Матьє Лакаж як керівника програмного забезпечення, і створив новий проект з відкритим вихідним кодом.

У процесі розробки ns-3, було вирішено повністю відмовитися від зворотної сумісності з ns-2. Новий тренажер був написаний з нуля, використовуючи мову програмування C++. Розвиток ns-3 почався в липні 2006 року.

Перший випуск, ns-3.1 був зроблена в червні 2008 року, а потім проект продовжував випускати версії програмного забезпечення кожного кварталу, а останнім часом перейшла на три релізи в рік. ns -3 зробив свій двадцять перший випуск (ns-3.21) у вересні 2014 року.

Поточний стан трьох версій:

  • ns-1 більше не розроблена і не ведеться,
  • ns-2 не активно (активна розробка припинена в 2010 році, але добровольці зі спільноти користувачів, як і раніше, розвивають його )
  • ns-3 активно розвивається (але не сумісне для роботи на ns-2).

Дизайн

[ред. | ред. код]

NS-3 побудована з використанням мови C++ і Python для скриптових можливостей. NS-3 бібліотеки обгорнуті Python завдяки pybindgen бібліотеки, яка відправляє розкладені C++ заголовки NS-3 на  gccxml і pygccxml, щоб автоматично генерувати відповідну C++ зв'язуючу вставку.  Ці автоматично згенеровані  файли C++ остаточно компілюються в модуль Python середовища NS-3 , щоб дозволити користувачам взаємодіяти з С++ NS-3 моделлю  і ядром за допомогою скриптів Python. NS-3 тренажер має вбудований атрибут-системи для управління за замовчуванням і для кожного екземпляра значення для моделювання параметрів.


Критика

[ред. | ред. код]

NS-2 часто критикують [ким?] тому що моделювання-це дуже складна і трудомістка задача, так як він не має GUI і потрібно вивчати скриптову мову програмування, теорію масового обслуговування і методи моделювання. Також останнім часом були скарги на те, що результати не послідовні (можливо, через постійні зміни коду) і що деякі протоколи мають неприпустимі помилки. [джерело?]

NS-3 часто критикують [ким?] за відсутність підтримки протоколів (наприклад, WSN, MANET і т. д.) які були підтримані в NS-2, а також через відсутність зворотної сумісності з NS-2. Як і NS-2, NS-3 є також трудомістким в освоєнні і використанні, в порівнянні з  симуляторами на основі GUI .

Див. також

[ред. | ред. код]
  • GloMoSim
  • NetSim
  • OMNeT++

Примітки

[ред. | ред. код]
  1. а б Tom Henderson, Mathieu Lacage, George Riley, Mitch Watrous, Gustavo Carneiro, Tommaso Pecorella and others.

Примітки

[ред. | ред. код]
  1. а б ns-3.26 released. ns-announce.[недоступне посилання з лютого 2019]
  2. ns-3-dev. ns-3 project. Архів оригіналу за 22 лютого 2013. Процитовано 26 грудня 2012.