Вы находитесь на странице: 1из 376

Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura

Trabajo Final de Aplicación

PROTOCOLOS DE ENRUTAMIENTO Un Simulador Didáctico

PROTOCOLOS DE ENRUTAMIENTO Un Simulador Didáctico María Julieta Goitia - L.U.: 28.430 Prof. Coordinador: Agr.

María Julieta Goitia - L.U.: 28.430

Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Expto. José A. Carballo

Licenciatura en Sistemas Corrientes - Argentina

2003

A mis padres

Prefacio

Teniendo en cuenta las necesidades y los avances producidos en una socie- dad sumamente compleja, que ha dado en llamarse Sociedad de la Información

y el Conocimiento, resulta de gran importancia destacar tanto la transmisión

e…ciente de información, como la necesidad de que ésta llegue a destino en el

momento preciso mediante el uso de las redes de datos.

El proceso de digitalización de todas las técnicas de comunicación, trans-

misión (cable, satélite) y recepción, producen nuevas convergencias entre dife-

rentes sectores (cultura, comunicación, lengua, educación, telecomunicaciones, etc.), pero muy especialmente lo que producen es la transformación de los es- pacios de comunicación, los límites y las fronteras y, como consecuencia, la transformación de los espacios de intercambios culturales. De hecho, todas las sociedades, por de…nición, han sido y serán sociedades de la comunicación.

Los principales cambios estructurales de la sociedad se producen ahora entorno del tratamiento y de la transmisión de la información.

El punto más importante de este estudio es mostrar las diferentes solu- ciones que se pueden encontrar hoy día utilizando simuladores de redes que permitan la de…nición de redes por parte de los distintos usuarios, teniendo la posibilidad de ser ellos mismos los modi…cadores de distintos escenarios de carga de trá…co.

El problema que ha motivado la elaboración de este trabajo ha sido prin-

cipalmente afrontar las di…cultades que surgen a la hora de poder plantearse de forma grá…ca y dinámica, en un entorno simulado amigablemente, esta se- rie de alternativas que pueden presentarse en el routing (encaminamiento) de paquetes, ya sea por las modi…caciones en los enlaces o en los nodos.

Puede decirse que el protocolo de ruteo IP es hoy día una solución clásica

y estándar al transporte de información en las redes. Aceptado por toda la

comunidad de Internet, junto con el TCP, han sido hasta hoy una solución aceptable para el envío de información, utilizando routing de paquetes con

ciertas garantías de entrega.

A su vez, los avances en el hardware y una nueva visión a la hora de

manejar las redes, están dando lugar al empleo creciente de tecnologías, que incluyen velocidad, calidad de servicio y facilidad en la gestión de los recursos de la red.

vi

Para estudiar con detalle la idea desarrollada, se utiliza una herramienta de simulación que permite observar el comportamiento de las redes ante diversos supuestos. Esta herramienta es la denominada Flan (Funciones de Simulación:

Enlaces y Nodos) y es:

² Con…gurable: existe una manera de alterar los parámetros de la red y los parámetros del trá…co que circula por la misma.

² Grá…ca: permite sacar conclusiones en un golpe de vista.

² Rigurosa: genera resultados predecibles y justi…cables, siendo de com- portamiento estable.

² Analizable: los resultados revelan el comportamiento de la red y los posibles problemas que pueden surgir.

² Portable: a ser posible, deberá ser código abierto y fácil de ejecutar en varios sistemas operativos. Para dar pie a posibles colaboraciones en el futuro.

La herramienta de simulación puede tener múltiples funcionalidades co- mo el análisis del comportamiento del trá…co y de la red, o como escenario para probar cambios en la topología de la red, o en el comportamiento de los algoritmos de encaminamiento.

Los elementos más característicos que esta herramienta de simulación em- plea son:

² Entrada de trá…co IP.

² Circulación de datos IP.

² Modi…cación del número de nodos de la red.

² Modi…cación de los enlaces entre los nodos de la red.

² Velocidad de envío de IP.

² Modi…cación de los parámetros especí…cos de IP en cada nodo (tabla de routing).

vii

Dicho esto, el objetivo de este trabajo es que el lector conozca las prin- cipales ventajas de trabajar con un simulador que tenga una interfaz lo su- …cientemente amigable como para que pueda ser capaz de aplicar diferentes alternativas de redes, teniendo la posibilidad de razonar los resultados median- te un análisis visual de los datos que se emiten pudiendo arribar a conclusiones que ayuden a la resolución de distintos problemas.

Seguidamente se detallan los objetivos generales y particulares del trabajo:

Generales:

1. Estudiar el funcionamiento del Simulador Flan.

2. Desarrollar una aplicación que permita crear distintas topologías de re- des con formato XML, para permitir la incorporación automática de con…guraciones de redes para el Simulador.

3. Publicar el trabajo en la Web para que distintas entidades académicas puedan utilizarlo como material didáctico en la enseñanza de las redes de datos.

Particulares:

1. Estudiar los problemas y consideraciones a tener en cuenta en el mo- delado e implementación de distintas topologías de redes con distintos tipos de eventos (carga de trá…co).

2. Realizar una aplicación en Java para facilitar la creación de archivos XML que contengan distintas de…niciones de redes, y una interfaz ami- gable para el usuario.

3. Aprovechar todas las ventajas de utilizar archivos XML.

M. Julieta Goita Licenciatura en Sistemas Universidad Nacional del Nordeste

Índice General

1 Protocolos de Enrutamiento

 

1

1.1 Introducción

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

1

1.2 Algoritmos de Enrutamiento

 

.

.

.

.

.

.

.

2

1.3 Clasi…cación de Algoritmos de Enrutamiento

 

.

.

.

.

.

.

.

.

.

.

2

1.4 Principio de Optimización

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

3

1.5 Algoritmos Estáticos

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

4

1.5.1 Enrutamiento por Trayectoria Más Corta

.

.

.

.

.

.

.

.

4

1.5.2 Inundación

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

5

1.5.3 Enrutamiento Basado en Flujo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.6 Algoritmos Dinámicos

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

6

1.6.1 Enrutamiento Vector de Distancia

.

.

.

.

.

.

.

.

.

.

.

.

6

1.6.2 Enrutamiento por Estado de Enlace

.

.

.

.

.

.

.

.

.

.

.

10

1.6.3 Enrutamiento Jerárquico

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

1.6.4 Enrutamiento por Difusión

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

13

1.6.5 Sistemas Autónomos

 

.

.

.

.

.

.

.

.

.

.

.

.

14

1.6.6 La Capa de Red en Internet .

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

1.7 Protocolo IP

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

15

1.8 Subredes

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

19

1.9 OSPF

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

21

1.10 BGP .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

26

1.11 Conclusiones

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

27

2 J AVA

2 9

2.1 Introducción al Lenguaje

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

29

2.1.1 Bibliotecas de Clases Estándares de Java

 

.

.

.

.

.

.

.

.

31

2.1.2 Java es Multiplataforma

 

.

.

.

.

.

.

.

.

.

.

.

.

31

2.1.3 Características del Lenguaje Java

 

32

2.2 Estructura General de un Programa Java

 

.

.

.

.

.

.

.

.

.

.

.

.

34

2.3 Conceptos Básicos

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

 

ix

x

ÍNDICE GENERAL

2.3.1

Clase

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

35

2.3.2 Herencia

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

36

2.3.3 Interface

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

36

Package

2.3.4 .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

37

2.3.5 La Jerarquía de Clases de Java (API)

.

.

.

.

.

.

.

.

.

.

38

2.4 Variables Dentro del Lenguaje Java

 

38

2.4.1

Visibilidad y Vida de las Variables

.

.

.

.

.

.

.

.

.

.

.

.

41

2.5 Operadores en Java

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

42

2.5.1 Operadores Aritméticos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

42

2.5.2 Operadores de Asignación

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

42

2.5.3 Operadores Unarios

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

2.5.4 Operadores Incrementales

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

2.5.5 Operadores Relacionales

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

43

2.5.6 Operador de Concatenación de Cadenas de Caracteres

 
 

(+) .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

45

2.5.7

Precedencia de Operadores

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

45

2.6 Estructuras de Programación

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

45

2.6.1 Sentencias o Expresiones

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

46

2.6.2 Comentarios

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

47

2.6.3 Bifurcaciones

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

48

2.6.4

Bucles

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

49

2.7 Clases en Java

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

52

2.7.1 Características Importantes de las Clases

.

.

.

.

.

.

.

.

52

2.7.2 Métodos o Funciones Miembros

 

53

2.8 Algunas Clases de Utilidad

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

55

2.8.1 Clase Arrays

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

55

2.8.2 Clases String y StringBu¤er

 

56

2.8.3 Clase Double

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

57

2.8.4 Clase Integer

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

58

2.9 El AWT (Abstract Windows Toolkit)

 

58

2.9.1 Qué es el AWT

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

58

2.9.2 Creación de una Interface Grá…ca de Usuario

.

.

.

.

.

.

58

2.9.3 Objetos “event source” y Objetos “event listener”

.

.

.

59

2.9.4 Proceso a Seguir Para Crear Una Aplicación Interactiva

 
 

(Orientada a Eventos)

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

60

2.10 Errores Frecuentes de Programación

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

61

2.10.1 Scheduling de Hilos de Ejecución

.

.

.

.

.

.

.

.

.

.

.

.

.

61

2.10.2 Errores en el Uso de las Características de Portabilidad

 
 

de Java

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

63

ÍNDICE GENERAL

xi

2.10.3 Uso de Directorios De…nidos

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

63

2.10.4 Carga de Drivers JDBC

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

66

2.10.5 Terminación de Líneas .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

67

2.10.6 Entrada/Salida por Archivo

 

68

2.10.7 Fuentes de Caracteres

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

68

3 XML

69

3.1 Introducción a XML

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

69

3.2 Conceptos Básicos de XML

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

71

3.3 De…nición del Tipo de Documento (DTD)

.

.

.

.

.

.

.

.

.

.

.

.

74

3.4 Entidades en XML

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

79

3.5 EL Modelo de Objetos de Documentos DOM

.

.

.

.

.

.

.

.

.

.

80

3.6 Usos de XML

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

82

3.6.1 Creación de un documento

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

82

3.6.2 Análisis y Manipulación (SAX, DOM)

.

.

.

.

.

.

.

.

.

.

82

3.6.3 Validación

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

83

3.6.4 Transformación

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

83

3.7 Java y XML

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

84

3.8 Aplicaciones de XML

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

85

3.8.1 Preparación de Documentos

 

85

3.8.2 Creación de Páginas Web

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

86

3.8.3 Bases de Datos

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

88

3.9 Uso de XSLT con Java

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

89

4 Manual de Uso del Simulador Flan

 

91

4.1 Introducción

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

91

4.2 Notas Para el Uso de Este Manual

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

92

4.3 Conceptos Acerca de Flan

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

93

4.4 Dar Comienzo a la Simulación .

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

94

4.4.1

Requerimientos del Sistema

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

94

4.5 Uso del Flan

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

95

4.5.1 Ventana Principal del Flan

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

95

4.5.2 Consola

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

101

4.5.3 Caja de Diálogo de un Nodo

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

102

4.5.4 Caja de Diálogo de un Link

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

104

4.5.5 Ventana de Información Sobre un Nodo

.

.

.

.

.

.

.

.

.

105

4.5.6 Caja de Diálogo del Protocolo IP

 

105

4.6 Ejemplo de una Sesión de Flan

 

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

107

4.6.1 Creación de un Nuevo Nodo .

.

.

.

.

.

.

.