TeneGuamanEfren Trabajo Practico1.Aux

4
TUTORIAL ns-3 Efren Mauricio Tene Guaman ,Miguel Santiago Gonzales Neira January 8, 2014 Abstract 1 INTRODUCCI ´ ON Los simuladores ns en general son simuladores de redes que se basan en eventos discretos. Pueden trabajar con protocolos unicast tanto como con protocolos multicast. Fue desarrollado a partir del simulador REAL. La primera version fue ns-2 que se desarroll´ o en C++ y provee una interfaz Orientada a Objetos. El usuario describe una topolog´ ıa de red por medio de scripts OTcl, y luego el programa principal de ns-2 simular dicha topolog´ ıa utilizando los par´ ametros definidos. la variante ns-3 se crea en el a˜ no 2005 , se decidi´ o realizar una nueva versi´ on desde cero, utilizando el lenguaje de programaci ´ on C++. La base de desarrollo fue el paquete yans (Yet Another Network Simulator). La infraestructura de ns-3 permite el desarrollo de modelos de simulaci´ on de alto desempe˜ no, lo que habilita el uso de la herramienta como emulador. ns-3 soporta simulaci´ on de redes IP, no IP; as´ ı como redes inal´ ambricas tales como Wi-Fi, WiMAX, o LTE , adem´ as de un diferentes protocolos de ruteo entre los que se destacan OLSR y AODV. NS-3 esta dise˜ nado para sistemas operativos Linux, FreeBSD, Solaris, Mac OS X. 2 INSTALACION 1. Instalar alguna version de Linux. Para el caso de este tutorial se ha instalado Lubuntu 12.04, que se puede descargar de la pagina: http://releases.ubuntu.com/precise/,el proceso de instalaci ´ on de Lubuntu no se explicar´ a con de- talle ya que es relativamente al final de la tendremos una interfaz como se muestra en la figura 1. Figure 1: Entorno Lubuntu 2. INSTALAR ECLIPSE: Una ves instalado lubuntu se procede a la instalacion de eclipse, eclipse cdt que es el que tiene el entorno de c++, ojo es muy importante que sea cdt, de lo contrario no se pueden ejecutar los 1

Transcript of TeneGuamanEfren Trabajo Practico1.Aux

Page 1: TeneGuamanEfren Trabajo Practico1.Aux

TUTORIAL ns-3

Efren Mauricio Tene Guaman ,Miguel Santiago Gonzales Neira

January 8, 2014

Abstract

1 INTRODUCCION

Los simuladores ns en general son simuladores de redes que se basan en eventos discretos. Puedentrabajar con protocolos unicast tanto como con protocolos multicast. Fue desarrollado a partir delsimulador REAL.La primera version fue ns-2 que se desarrollo en C++ y provee una interfaz Orientada a Objetos. Elusuario describe una topologıa de red por medio de scripts OTcl, y luego el programa principal dens-2 simular dicha topologıa utilizando los parametros definidos.la variante ns-3 se crea en el ano 2005 , se decidio realizar una nueva version desde cero, utilizandoel lenguaje de programacion C++. La base de desarrollo fue el paquete yans (Yet Another NetworkSimulator).La infraestructura de ns-3 permite el desarrollo de modelos de simulacion de alto desempeno, loque habilita el uso de la herramienta como emulador. ns-3 soporta simulacion de redes IP, no IP; asıcomo redes inalambricas tales como Wi-Fi, WiMAX, o LTE , ademas de un diferentes protocolos deruteo entre los que se destacan OLSR y AODV. NS-3 esta disenado para sistemas operativos Linux,FreeBSD, Solaris, Mac OS X.

2 INSTALACION

1. Instalar alguna version de Linux.Para el caso de este tutorial se ha instalado Lubuntu 12.04, que se puede descargar de la pagina:http://releases.ubuntu.com/precise/,el proceso de instalacion de Lubuntu no se explicara con de-talle ya que es relativamente al final de la tendremos una interfaz como se muestra en la figura1.

Figure 1: Entorno Lubuntu

2. INSTALAR ECLIPSE:Una ves instalado lubuntu se procede a la instalacion de eclipse, eclipse cdt que es el que tieneel entorno de c++, ojo es muy importante que sea cdt, de lo contrario no se pueden ejecutar los

1

Page 2: TeneGuamanEfren Trabajo Practico1.Aux

proyectos.Podemos descargar eclipse desde Synaptic que viene incluido en la version 12.04 de lubuntu, ala cual podemos acceder digitando su nombre en el Terminal.Ingresamos el nombre de Eclipse cdt y lo instalamos.

Figure 2: Synaptic para descargar Eclipse cdt

3. DESCARGAR ns-3:Siempre que se tenga instalado el mercurial se puede descargar los archivos de ns-3 de maneradirecta desde el terminal digitando el siguiente codigo:

hg clone http://code.nsnam.org/ns-3-dev

3 EJECUTAR LOS EJEMPLOS:

Los ejemplos se pueden ejecutar desde eclipse o desde el terminal de ubuntu. En este tutorial seexplicara la manera de hacerlo desde el terminal.

• asegurarse de que se tiene instalado g++ necesario para correr los ejemplos.

sudo apt-get install g++

• Nos ubicamos en la carpeta que contiene los archivos ns-3, para nuestro caso:

cd workspacecd ns-3-dev

• Habilitamos los ejemplos, y mandamos a construir el proyecto.

./waf configure debug –enable-examples

./waf build

Este ultimo paso es el que toma mas tiempo, luego de esto ya se pueden correr los ejemplos quese encuentran en la carpeta /examples/tutorial, los cuales seran explicados de mejor maneraen la siguiente seccion, para correr los ejemplos debemos hacerlo de la siguiente manera:

2

Page 3: TeneGuamanEfren Trabajo Practico1.Aux

./waf –run first

En este caso se esta corriendo el primer ejemplo.

4 CODIGO EJEMPLOS

A continuacion se dara una breve de cada uno de los ejemplos que contiene en la carpeta de tutorialesde ns-3

El codigo de este ejemplo se encuentra en el archivo first.ccEn la primera parte se hacen las importaciones de los paquetes necesarios para correr el proyecto

include ”ns3/core-module.h”include ”ns3/network-module.h”include ”ns3/internet-module.h”include ”ns3/point-to-point-module.h”include ”ns3/applications-module.h

Luego hace uso de algunas clases que se encuentran en el paquete de ns-3, los cuales son los quepracticamente hacen todo el trabajo, por ejemplo:

NodeContainer nodes;nodes.Create (2);

PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute (”DataRate”, StringValue(”5Mbps”));pointToPoint.SetChannelAttribute (”Delay”, StringValue(”2ms”));

NetDeviceContainer devices;devices = pointToPoint.Install (nodes);

En este caso se hace uso de las clase PointToPointHelper y se crea una variable pointToPoint en lacual se hacen uso de los metodos para asignar atributos como la velocidad de transmision y el tiempode espera.El primer ejemplo sirve para ver como se envıan paquetes en una red que esta conectada punto apunto. La ejecucion del programa se presenta en la figura 3.

Figure 3: Ejecucion first.cc

3

Page 4: TeneGuamanEfren Trabajo Practico1.Aux

Este script es un ejemplo de CSMA. En telecomunicaciones, se entiende por Acceso Multiple porDeteccion de Portadora (Carrier Sense Multiple Access) el escuchar el medio para saber si existepresencia de portadora en los momentos en los que se ocupa el canal. El fin es evitar colisiones, esdecir que dos host hablen al mismo tiempo.

Figure 4: Ejecucion second.cc

Son algunos los paquetes que se usan para poder correr los ejemplos, estos dependen de la apli-cacion que se desea.

4.1 CONCLUSIONES

Se espera que el presente tutorial sirva como un fundamento para iniciar con las aplicaciones. Esnecesario tener en cuenta por ejemplo que es estrictamente necesario que la version de eclipse seacdt.El simulador ns-3 es una herramienta muy eficiente y de gran ayuda para analizar estos eventos deredes. %

4