Ns (simulator)
Erstveröffentlichung | 30. Juni 2008[1] |
---|---|
Stabile Version | 3.36.1[2] ![]() |
Repository | |
Geschrieben in | C ++ (Ader), Python (Bindungen) |
Betriebssystem | Linux, Freebsd, Mac OS |
Plattform | IA-32, x86-64 |
Typ | Netzwerksimulator |
Lizenz | Gnu gpl |
Webseite | www![]() |
ns (aus Netzwerksimulator) ist ein Name für eine Reihe von Diskretes Ereignis Netzwerksimulatoren, speziell NS-1, NS-2, und NS-3. Alle sind diskrete Simulatoren für Computer-Netzwerk-Simulatoren, die hauptsächlich in der Forschung verwendet werden[3] und Lehre.
Geschichte
NS-1
Die erste Version von NS, bekannt als NS-1, wurde bei entwickelt Lawrence Berkeley Nationales Labor (LBNL) im Zeitraum 1995-97 von Steve McCanne, Sally Floyd, Kevin Fall und andere Mitwirkende. Dies wurde als LBNL -Netzwerksimulator bekannt und 1989 von einem früheren Simulator abgeleitet, der als Real von S. Keshav bekannt war.
NS-2
NS-2 begann als Revision von NS-1. Von 1997 bis 2000 wurde die NS -Entwicklung von unterstützt von DARPA Durch das Vint -Projekt bei LBL, Xerox Parc, UCB und USC/ISI. Im Jahr 2000 wurde die NS-2-Entwicklung durch DARPA mit Saman und über NSF mit Conser bei USC/ISI in Zusammenarbeit mit anderen Forschern, einschließlich ACIRI, unterstützt.
Merkmale von NS2
1. Es ist ein diskreter Ereignissimulator für die Networking -Forschung.
2. Es bietet erhebliche Unterstützung, um eine Reihe von Protokollen wie TCP, FTP, UDP, HTTPS und DSR zu simulieren.
3. Es simuliert das drahtlose und drahtlose Netzwerk.
4. Es basiert in erster Linie auf Unix.
5. verwendet TCL als Skriptsprache.
6. OTCL: Objektorientierte Unterstützung
7. TCLCL: C ++ - und OTCL -Verknüpfung
8. Diskreter Ereignisplan
NS-2 enthält erhebliche Beiträge von Dritten, einschließlich drahtloser Code aus den Projekten UCB Daedelus und CMU Monarch-Projekte und Sun Microsystems.
NS-3
Im Jahr 2003 unter der Leitung von Tom Henderson, George Riley. Sally Floydund Sumit Roy beantragte und erhielt Finanzmittel von der US-amerikanischen National Science Foundation (NSF), um einen Ersatz für NS-2 mit dem Titel NS-3 zu bauen. Dieses Team arbeitete mit dem zusammen Planen Projekt von INRIA bei Sophia Antipolis mit Mathieu Lacage als Software leitete und bildete ein neues Open -Source -Projekt.
Bei der Entwicklung von NS-3 wurde beschlossen, mit NS-2 die Rückwärtskompatibilität vollständig aufzugeben. Der neue Simulator würde von Grund auf neu geschrieben werden C ++ Programmiersprache. Die Entwicklung von NS-3 begann im Juli 2006.
Der aktuelle Status der drei Versionen ist:
- Die NS-1-Entwicklung hörte auf, als NS-2 gegründet wurde. Es ist weder entwickelt noch aufrechterhalten.
- Die NS-2-Entwicklung wurde um 2010 gestoppt. Sie wird weder entwickelt noch aufrechterhalten.
- NS-3 wird aktiv entwickelt und aufrechterhalten.
Entwurf
NS-3 wird gebaut C ++ und Python mit Skriptfunktion. Die NS -Bibliothek wird von Python dank der Pybindgen -Bibliothek verpackt, die die Analyse der NS C ++ - Header an CastxML und PyGCCXML delegiert, um den entsprechenden C ++ - Bindungskleber automatisch zu generieren. Diese automatisch generierten C ++ - Dateien werden schließlich in das NS -Python -Modul zusammengestellt, damit Benutzer mit den C ++ NS -Modellen und Core über Python -Skripte interagieren können. Der NS-Simulator verfügt über ein integriertes Attribut-basiertes System zur Verwaltung von Standard- und Perinstanzwerten für Simulationsparameter.
Anforderungen
Um NS zu erstellen, benötigen Sie einen Computer und einen C ++ - Compiler. Wir entwickeln NS auf verschiedenen Arten von Unix (FreeBSD, Linux, Sunos, Solaris), sodass es dort reibungslos installiert wird, aber es sollte auf einem POSIX-ähnlichen Computer ausgeführt werden, möglicherweise mit einigen Optimierungen. NS baut und läuft auch unter Windows. Siehe dedizierte Windows / Cygwin -Seite. Einfache Szenarien sollten auf einer angemessenen Maschine ausgeführt werden, aber sehr große Szenarien profitieren von großen Mengen an Speicher.
NS ist ziemlich groß. Das Allinone -Paket erfordert etwa 320 MB Speicherplatz für den Bau. Das Aufbau von NS aus Teilen kann einen Speicherplatz sparen. (Wenn mehrere Personen Dateien im NS -Build -Baum freigeben möchten, um Platz zu sparen, können Sie ein einfaches Perl -Skript herunterladen. Befolgen Sie dann die Anweisung in seiner Readme. Es gibt detaillierte Anweisungen der CS599B -Klasse von USC. Möglicherweise finden Sie auch Diskussionen in der NS-User Mailing List Archiv nützlich.)
Herunterladen und Erstellen von NS
Ab November 2005 ist NS an diesem Standort Quellforge erhältlich.
NS erfordert eine bescheidene aktuelle Installation von TCL/TK (mit Header-Dateien) und zwei zusätzlichen Paketen: TCLCL und OTCL. Die meisten Betriebssysteminstallationen sind nicht mit vollständigen TCL/TK -Installationen oder diesen anderen Paketen ausgestattet, sodass Sie höchstwahrscheinlich mehrere Pakete installieren müssen.
Generische Linux-, BSD-, OS X- und Solaris -Anweisungen Es gibt zwei typische Möglichkeiten, NS zu erstellen: jede Komponente einzeln ("aus den Teilen") zu erstellen oder ein Skript auszuführen, das sie alle in einem Schuss ("Allinone") installiert. Wenn Sie es nur schnell ausprobieren möchten, können Sie das Allinone -Paket ausprobieren. Wenn Sie C-Level-Entwicklungen durchführen oder Download-Zeit oder Speicherplatz speichern oder Probleme mit Allinone haben möchten, sollten Sie sie aus den Teilen bauen.
Installieren des Allinone-Pakets: Dieses Paket verfügt über ein Installationsskript, das die Installation von TCL/TK, OTCL, TCLCL, NS-2, NAM-1 und anderen Paketen übernimmt. Aktualisieren von Allinone: Das "Allinone" -Paket wird nur für jede Version aktualisiert. Wenn Sie sich für die Bequemlichkeit des Allinone-Pakets für Ihre Plattform interessieren, aber an einer frischeren Schnappschuss des NS-2-Codes interessiert sind, ist diese Seite für Sie. Gebäude NS aus Quellen: Anweisungen (Hinweis: Die oben genannten Allinone und Stücke ISI -Seiten müssen wikifiziert und aktualisiert werden)
Im Folgenden finden Sie einige Anweisungen, die für verschiedene Systeme spezifisch sind.
Fedora Installation Guide Fedora Installation Guide Debian Installation Guide Debian Installation Guide Alternative Installation Guide für DEBIAN mit GCC 4.0.3 Ubuntu Installation Guide Wouter Horter hält eine PPA für NS/NAM, sodass Sie dort Deb-Pakete einsetzen können. Wenn Sie nach den Installationsanweisungen für Build-from-Sources aus irgendeinem Grund suchen, überprüfen Sie unten ...[4]
Simulationsworkflow
Der allgemeine Prozess der Erstellung einer Simulation kann in mehrere Schritte unterteilt werden:
- Topologie -Definition: Um die Schaffung grundlegender Einrichtungen zu erleichtern und ihre Wechselbeziehungen zu definieren, verfügt NS-3 über ein System von Containern und Helfern, das diesen Prozess erleichtert.
- Modellentwicklung: Modelle werden zur Simulation hinzugefügt (z. B. UDP, IPv4, Punkt-zu-Punkt-Geräte und -Links, Anwendungen). Meistens wird dies mit Helfern erledigt.
- Knoten- und Linkkonfiguration: Modelle setzen ihre Standardwerte (z. B. die Größe der Pakete, die von einer Anwendung oder MTU eines Punkt-zu-Punkt-Links gesendet werden); Meistens erfolgt dies mit dem Attributsystem.
- Ausführung: Simulationseinrichtungen generieren Ereignisse, die vom Benutzer angeforderten Daten werden protokolliert.
- Performance-Analyse: Nach Abschluss der Simulation und Daten sind als zeitgestempelte Ereignisspur verfügbar. Diese Daten können dann statistisch mit Tools wie statistisch analysiert werden R Schlussfolgerungen ziehen.
- Grafische Visualisierung: Roh- oder verarbeitete Daten, die in einer Simulation gesammelt wurden Gnuplot, Matplotlib oder xgraph.
Siehe auch
Verweise
- ^ Henderson, Tom (2012-06-09). "bevorstehende NS-3.1-Veröffentlichung" (Mailingliste). NS-3 GSOC 2015 Studenten. Archiviert von das Original Am 2012-03-27. Abgerufen 2013-05-31.
- ^ "NS-3.36.1 veröffentlicht"; Autorenname String: Tom Henderson; Veröffentlichungsdatum: 23. Mai 2022; Abgerufen: 24. Mai 2022.
- ^ "Archivierte Kopie". Archiviert von das Original Am 2013-02-22. Abgerufen 2012-08-30.
{{}}
: CS1 Wartung: Archiviertes Kopie als Titel (Link) - ^ http://nsnam.sourceforge.net/wiki/index.php/user_information