ns (del simulador de red ) es el nombre de una serie de simuladores de red de eventos discretos , específicamente ns-1 , ns-2 y ns-3 . Todos son simuladores de redes informáticas de eventos discretos, que se utilizan principalmente en la investigación [3] y la docencia.
Versión inicial | 30 de junio de 2008 [1] |
---|---|
Lanzamiento estable | 3.33 / 9 de enero de 2021 [2] |
Repositorio | |
Escrito en | C ++ (núcleo), Python (enlaces) |
Sistema operativo | Linux , FreeBSD , macOS |
Plataforma | IA-32 , x86-64 |
Tipo | Simulador de red |
Licencia | GNU GPL |
Sitio web | www |
Historia
ns-1
La primera versión de ns, conocida como ns-1, fue desarrollada en el Laboratorio Nacional Lawrence Berkeley (LBNL) en el período 1995-97 por Steve McCanne, Sally Floyd, Kevin Fall y otros colaboradores. Esto se conocía como el simulador de red LBNL y se derivaba en 1989 de un simulador anterior conocido como REAL por S. Keshav.
ns-2
Ns-2 comenzó como una revisión de ns-1. De 1997 a 2000, el desarrollo de ns fue apoyado por DARPA a través del proyecto VINT en LBL, Xerox PARC, UCB y USC / ISI. En 2000, el desarrollo de ns-2 fue apoyado a través de DARPA con SAMAN y a través de NSF con CONSER, ambos en USC / ISI, en colaboración con otros investigadores, incluido ACIRI.
Ns-2 incorpora contribuciones sustanciales de terceros, incluido el código inalámbrico de los proyectos UCB Daedelus y CMU Monarch y Sun Microsystems.
ns-3
En 2003, un equipo dirigido por Tom Henderson, George Riley, Sally Floyd y Sumit Roy, solicitó y recibió fondos de la Fundación Nacional de Ciencias de EE. UU. (NSF) para construir un reemplazo para ns-2, llamado ns-3. Este equipo colaboró con el proyecto Planete de INRIA en Sophia Antipolis, con Mathieu Lacage como líder de software, y formó un nuevo proyecto de código abierto.
En el proceso de desarrollo de ns-3, se decidió abandonar por completo la compatibilidad con versiones anteriores de ns-2. El nuevo simulador se escribiría desde cero, utilizando el lenguaje de programación C ++ . El desarrollo de ns-3 comenzó en julio de 2006.
El estado actual de las tres versiones es:
- El desarrollo de ns-1 se detuvo cuando se fundó ns-2. Ya no se desarrolla ni se mantiene.
- El desarrollo de ns-2 se detuvo alrededor de 2010. Ya no se desarrolla ni se mantiene.
- ns-3 se está desarrollando y manteniendo activamente.
Diseño
ns-3 está construido usando C ++ y Python con capacidad de scripting. La biblioteca ns está envuelta por Python gracias a la biblioteca pybindgen que delega el análisis de los encabezados ns C ++ a castxml y pygccxml para generar automáticamente el correspondiente enlace de enlace C ++. Estos archivos de C ++ generados automáticamente finalmente se compilan en el módulo ns Python para permitir a los usuarios interactuar con los modelos y el núcleo de C ++ ns a través de scripts de Python. El simulador ns presenta un sistema integrado basado en atributos para administrar valores predeterminados y por instancia para los parámetros de simulación.
Flujo de trabajo de simulación
El proceso general de creación de una simulación se puede dividir en varios pasos:
- Definición de topología : Para facilitar la creación de instalaciones básicas y definir sus interrelaciones, ns-3 cuenta con un sistema de contenedores y ayudantes que facilita este proceso.
- Desarrollo de modelos: se agregan modelos a la simulación (por ejemplo, UDP, IPv4, dispositivos y enlaces punto a punto, aplicaciones); la mayor parte del tiempo esto se hace usando ayudantes.
- Configuración de nodos y enlaces : los modelos establecen sus valores predeterminados (por ejemplo, el tamaño de los paquetes enviados por una aplicación o MTU de un enlace punto a punto); la mayoría de las veces esto se hace utilizando el sistema de atributos.
- Ejecución : Las facilidades de simulación generan eventos, se registran los datos solicitados por el usuario.
- Análisis de rendimiento : una vez finalizada la simulación y los datos están disponibles como un seguimiento de eventos con marca de tiempo. Luego, estos datos se pueden analizar estadísticamente con herramientas como R para sacar conclusiones.
- Visualización gráfica : los datos sin procesar o procesados recopilados en una simulación se pueden graficar utilizando herramientas como Gnuplot , matplotlib o XGRAPH.
Ver también
Referencias
- ↑ Henderson, Tom (9 de junio de 2012). "próxima versión ns-3.1" (lista de correo). Estudiantes ns-3 GSoC 2015. Archivado desde el original el 27 de marzo de 2012 . Consultado el 31 de mayo de 2013 .
- ^ "ns-3.33 | ns-3" . nsnam.org . Consultado el 21 de abril de 2021 .
- ^ "Copia archivada" . Archivado desde el original el 22 de febrero de 2013 . Consultado el 30 de agosto de 2012 .Mantenimiento de CS1: copia archivada como título ( enlace )