PROTOCOLOS DE ENRUTAMIENTO. UnSimulador Didáctico

Documentos relacionados
PROTOCOLOS DE ENRUTAMIENTO

TELECOMUNICACIONES Y REDES

Universidad de Antioquia Juan D. Mendoza V.

Protocolos de Enrutamiento Para la Capa de Red en Arquitecturas de Redes de Datos

Unidad I: La capa de Red

Introducción a la Administración de una Red bajo IP

REDES INFORMATICAS: Protocolo IP


Sistemas Operativos. Sesión 5: Protocolos de enrutamiento vector distancia

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

CCNA 2 Conceptos y Protocolos de Enrutamiento

Introducción a las Redes

Enrutamiento. Emilio Hernández. Carlos Figueira

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Direcciones IP y máscaras de red

WAN y Enrutamiento WAN

FUNDAMENTOS DE REDES CONCEPTOS DE LA CAPA DE RED

Jhon Jairo Padilla Aguilar, PhD.

Qué son los protocolos de enrutamiento Dinámico?

Conmutación. Conmutación telefónica. Justificación y definición.

VLSM y CIDR con IP v4

4.1 Introducción a los protocolos por vector distancia.

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking

CONVERSIÓN DE UN NÚMERO EN BINARIO A DECIMAL Y VICEVERSA

Capas del Modelo ISO/OSI

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas. Capa de Red. Mérida - Venezuela Prof. Gilberto Díaz

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Redes de Computadoras La capa de red

Unidad IV: TCP/IP. 4.1 Modelo Cliente-Servidor

ESCUELA NORMAL PROF. CARLOS A CARRILLO

Problemas sobre Dispositivos de Interconexión Sistemas Telemáticos I

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

INTRODUCCION. Ing. Camilo Zapata Universidad de Antioquia

1.- FUNCION DE UNA RED INFORMATICA

Introducción al Tema SISTEMAS OPERATIVOS 2

Introducción a IP versión 4

DIRECCIONAMIENTO IPv4

CSIR2121. Administración de Redes I

El Protocolo IP. Tema 3. Servicio y Protocolo IP. Aplicaciones en Redes Locales 05/06

UNLaM REDES Y SUBREDES DIRECCIONES IP Y CLASES DE REDES:

Operación Microsoft Access 97


IP v6. :: Redes :: Redes : : IP v6. transporte. red. enlace. física. aplicación. Versión 28/02/11

(decimal) (hexadecimal) 80.0A.02.1E (binario)

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

WINDOWS : TERMINAL SERVER

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Componentes de Integración entre Plataformas Información Detallada

Concentradores de cableado

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ADOLFO LÓPEZ MATEOS - ZACATENCO

ROUTERS MÓDULO 2 PARTE 1

Capa de red de OSI. Semestre 1 Capítulo 5 Universidad Cesar Vallejo Edwin Mendoza emendozatorres@gmail.com

Práctica 8: Ruteo Dinámico

UNIVERSIDAD DE ALCALÁ - DEPARTAMENTO DE AUTOMÁTICA Área de Ingeniería Telemática LABORATORIO DE COMUNICACIÓN DE DATOS (CURSO 2011/2012)

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

SISTEMAS DE INFORMACIÓN II TEORÍA

UNIDADES DE ALMACENAMIENTO DE DATOS

MACROS. Automatizar tareas a través del uso de las macros.

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS

Protocolos de enrutamiento dinamico RIP, OSPF, BGP

7. VLSM. IST La Recoleta

CELERINET ENERO-JUNIO 2013 ESPECIAL

Práctica de laboratorio 9.6.2: Práctica de laboratorio de reto de configuración de EIGRP

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

INSTITUTO TECNOLÓGICO DE SALINA CRUZ

4. Programación Paralela

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

Dispositivos de Red Hub Switch

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

LAS TIC. Cintyha Lizbeth Gómez Salazar. Lic. Cruz Jorge Fernández Aramburo. 0 1 / 0 8 /

Solución de actividad 2.2.5: Uso de NeoTrace para ver Internetworks

Redes (4º Ing. Informática Univ. Cantabria)

18. Camino de datos y unidad de control

Roles y Características

Utilidades de la base de datos

Windows Server 2012: Infraestructura de Escritorio Virtual

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Redes de Área Local: Configuración de una VPN en Windows XP

TEMA 3. SERVICIO DHCP

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

Universidad Popular Autónoma del Estado de Puebla

Capitulo V Administración de memoria

Capitulo I. Introducción

Introducción a la Firma Electrónica en MIDAS

Universidad Popular Autónoma del Estado de Puebla

Análisis de los datos

Protocolo ARP. Address Resolution Protocol

Fig.1 Redes conectadas a Internet a través de routers IP

Capítulo 5. Cliente-Servidor.

Tutorial de Subneteo Clase A, B, C - Ejercicios de Subnetting CCNA 1

Informàtica i Comunicacions Plaça Prnt. Tarradellas, FIGUERES (Girona) Tel Fax

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Formularios. Formularios Diapositiva 1

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Redes y Servicios. Módulo I. Fundamentos y modelos de red. Tema 2. Fundamentos. Parte C. Nivel de red

La Tecnología líder en Simulación

Práctica de laboratorio 7.5.2: Reto de configuración de RIPv2

Transcripción:

Universidad Nacional del Nordeste Facultad deciencias Exactas, Naturales yagrimensura Trabajo Final de Aplicación PROTOCOLOS DE ENRUTAMIENTO UnSimulador Didáctico 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 sociedad sumamente compleja, que ha dado enllamarse Sociedadde 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, transmisión (cable, satélite) y recepción, producen nuevas convergencias entre diferentes sectores (cultura, comunicación, lengua, educación, telecomunicaciones, etc.), pero muy especialmente lo que producen es la transformación de los espacios 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 soluciones 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 principalmente 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 serie 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 incluyenvelocidad, calidadde servicio y facilidaden la gestión de losrecursos 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 (Funcionesde 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 comportamiento 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 como 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ónemplea 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 principales 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 mediante 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 redes 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 modelado 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 amigable para el usuario. 3. Aprovechar todas las ventajas de utilizar archivos XML. M. Julieta Goita Licenciatura en Sistemas Universidad Nacional del Nordeste

ÍndiceGeneral 1 ProtocolosdeEnrutamiento 1 1.1 Introducción... 1 1.2 AlgoritmosdeEnrutamiento... 2 1.3 Clasi cación dealgoritmosdeenrutamiento... 2 1.4 Principiode Optimización... 3 1.5 AlgoritmosEstáticos... 4 1.5.1 EnrutamientoporTrayectoriaMásCorta... 4 1.5.2 Inundación... 5 1.5.3 EnrutamientoBasadoenFlujo... 6 1.6 AlgoritmosDinámicos... 6 1.6.1 EnrutamientoVectorde Distancia... 6 1.6.2 EnrutamientoporEstadodeEnlace... 10 1.6.3 EnrutamientoJerárquico... 13 1.6.4 EnrutamientoporDifusión... 13 1.6.5 SistemasAutónomos... 14 1.6.6 LaCapadeReden Internet... 15 1.7 ProtocoloIP... 15 1.8 Subredes... 19 1.9 OSPF... 21 1.10 BGP... 26 1.11 Conclusiones... 27 2 JAVA 29 2.1 IntroducciónalLenguaje... 29 2.1.1 BibliotecasdeClasesEstándaresdeJava... 31 2.1.2 JavaesMultiplataforma... 31 2.1.3 CaracterísticasdelLenguaje Java... 32 2.2 EstructuraGeneraldeunProgramaJava... 34 2.3 ConceptosBásicos... 35 ix

x ÍNDICE GENERAL 2.3.1 Clase............................ 35 2.3.2 Herencia........................... 36 2.3.3 Interface........................... 36 2.3.4 Package........................... 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ónInteractiva (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................ 107 4.6.2 Creación de un Nuevo Link................ 109

xii ÍNDICE GENERAL 4.6.3 Agregando Nodos a la Hoja de Dibujo.......... 110 4.6.4 Remover Nodos de la Hoja de Dibujo.......... 111 4.6.5 Ligando Nodos Juntos.................. 112 4.6.6 Remover Links de la Hoja de Dibujo.......... 113 4.6.7 Con guración del Nodo.................. 113 4.6.8 Con guración del Link.................. 117 4.6.9 Agregando un Evento Nuevo............... 118 4.6.10 Funcionamiento de la Simulación............. 120 4.6.11 Pausar la Simulación.................... 121 4.6.12 Usando la Consola..................... 121 4.6.13 Caminando sobre el Simulador.............. 122 4.6.14 Inhabilitar un Nodo.................... 123 4.6.15 Inhabilitar un link..................... 123 4.6.16 Habilitando un Nodo Inhabilitado............ 125 4.6.17 Habilitando un Link Inhabilitado............. 125 4.6.18 Parar la Simulación.................... 127 4.6.19 Guardar una Red..................... 127 4.6.20 Abrir una Red....................... 127 4.6.21 Open / Save as XML................... 128 4.6.22 Salir de Programa..................... 128 4.7 Algunas De niciones........................ 128 4.7.1 El Proceso de Simulación................. 128 4.7.2 Links Inhabilitados..................... 129 4.7.3 Nodos Inhabilitados.................... 129 4.7.4 El Apilador de Eventos (Event Snack).......... 130 4.8 Codi car............................... 130 4.8.1 Paquetes.......................... 130 4.8.2 Eventos de Usuarios.................... 132 4.9 Clases................................ 137 4.9.1 Eventos........................... 137 4.9.2 Manejadores........................ 139 4.9.3 Eventos Internos...................... 141 4.9.4 Simulador.......................... 143 4.9.5 Frontend.......................... 145 5 Manual de Uso del GFlan 147 5.1 Introducción............................. 147 5.2 Dar Comienzo a la Aplicación................... 148 5.2.1 Requerimientos del Sistema................ 148

ÍNDICE GENERAL xiii 5.2.2 Uso del GFlan....................... 149 5.3 Ventana Principal del GFlan................... 149 5.3.1 Barra de Menú....................... 149 5.3.2 Consola........................... 152 5.4 Caja de Diálogo de un Nodo.................... 152 5.5 Caja de Diálogo de un Nuevo Enlace.............. 154 5.6 Caja de Diálogo de Quitar un Nodo............... 155 5.7 Caja de Diálogo de Quitar un Enlace.............. 155 5.8 Estructura de Datos del Documento XML............ 157 5.8.1 Interface del Nodo..................... 157 5.8.2 Interface del Enlace.................... 159 6 Código Fuente de la Aplicación GFlan 169 6.1 Clase GFlan.class.......................... 169 6.2 Clase FrameNuevoNodo.class................... 178 6.3 Clase FrameNuevoEnlace.class.................. 188 6.4 Clase FrameQuitarNodo.class................... 195 6.5 Clase FrameQuitarEnlace.class.................. 198 6.6 Clase FrameConsola.class..................... 202 6.7 Clase GuardarXML.class..................... 203 6.8 Clase ConversorDeDireccion.class................. 209 7 Análisis de Datos 211 7.1 De nición del Modelo....................... 211 7.2 Clasi cación de la Simulación................... 212 7.3 Diseño de los Experimentos.................... 213 7.3.1 Eventos Poisson...................... 213 7.3.2 Eventos RIP (Routing Information Protocol)...... 287 8 Conclusiones y Perspectivas 349 Bibliografía 351 Índice de Materias 353

ÍndicedeFiguras 1.1 (a)subred. (b)árboldedescensoparaelenrutadorb... 4 1.2 (a) Subred. (b) Entrada de A, I, H, K, yla nueva Tabla de EnrutamientodeJ.... 8 1.3 ProblemadelConteoaIn nito.... 9 1.4 (a)nueve EnrutadoresyunaLAN.(b)ModelodelGrafode(a). 10 1.5 (a)subred. (b)paquete deestadodeenlaceparaestasubred. 11 1.6 LaInternetcomoConjuntoInterconectadodemuchasRedes.. 15 1.7 DatagramaIP.... 17 1.8 Direcciones Especiales deip.... 19 1.9 (a)sistemas Autónomo. (b)representación congrafosde(a). 23 1.10 (a)relaciónentrelos AS,losbacbones ylasáreasenelospf. 25 3.1 Relación entrelosdistintoslenguajesdeprogramación.... 70 3.2 Jerarquíasdeun DocumentoXML.... 77 4.1 Botón On-BotónO.... 93 4.2 Hojade Dibujo... 96 4.3 BarradeHerramientas.... 96 4.4 CajadeDiálogodelNodo....102 4.5 CajadeDiálogodelLink....104 4.6 Ventanade Informaciónde unnodo....106 4.7 CajadeDialogodelProtocoloIP...106 4.8 PantallaPrincipalque dacomienzoaflan....108 4.9 Hojade Dibujocon Nodos....111 4.10 EjemplodeunaRed con NodosConectados...112 4.11 CuadrodelProtocoloIPantes desercon gurado....115 4.12 CajadeDiálogodelEvento....118 4.13 CajadeDiálogodeun EventoCon gurado....120 4.14 ConsolaconDatos....122 4.15 Unared con un NodoInhabilitado....124 xv

xvi ÍNDICE DE FIGURAS 4.16 Una Red con un Nodo y un Link Inhabilirado.......... 125 4.17 Un ejemplo de una Red....................... 126 5.1 Ventana Principal del GFlan.................... 149 5.2 Opciones del Menú Archivo..................... 150 5.3 Opciones de Menú Red....................... 150 5.4 Opciones de Menú Ayuda...................... 151 5.5 Caja de Diálogo para Crear los Nodo............... 152 5.6 Caja de Diálogo para Crear los Enlaces.............. 154 5.7 Caja de Diálogo de Quitar Nodos................. 156 5.8 Caja de Diálogo de Quitar Enlaces................. 156 5.9 Diagrama de Jerarquía del Elemento InterfaceNodo....... 160 5.10 Diagrama de Jerarquía del Elemento InterfaceLink....... 162 5.11 Modelo de Red............................ 162 7.1 Red N o 1............................... 215 7.2 Cuadro de Diálogo del Evento Poisson............... 216 7.3 Grá co de Coordenadas de la Simulación 1.1........... 222 7.4 Grá co de Coordenadas de la Simulación 1.2........... 229 7.5 Red N o 2............................... 230 7.6 Grá co de Coordenadas de la Simulación 2.1........... 240 7.7 Grá co de Coordenadas de la Simulación 2.2........... 249 7.8 Red N o 3............................... 250 7.9 Grá co de Coordenadas de la Simulación 3.1........... 267 7.10 Grá co de Coordenadas de la Simulación 3.2........... 286 7.11 Promedios de Paquetes de Datos por Cada Simulación...... 288 7.12 Caja de Diálogo del Evento RIPRefreshAllEvent......... 293 7.13 Relación entre la Cantidad de Paquetes de Actualización y la Cantidad de Nodos......................... 347 7.14 Relación entre el N o de Enlaces de la Red y el Trá co de Paquetes en la Red........................... 347 7.15 Relación entre el N o de Componentes de la Red y el Trá co de Paquetes en la Red......................... 348

Índice de Tablas 2.1 Tipos de Variables.......................... 39 2.2 Categorías de Variables....................... 40 2.3 Tipos Primitivos de Variables.................... 40 2.4 Operadores de asignación...................... 42 2.5 Operadores relacionales....................... 44 2.6 Precedencia de Operadores..................... 46 4.1 Descripción de datos del paquete CreatePacketEvent....... 137 4.2 Ejemplo de Tabla de Ruteo IP................... 140 4.3 Ejemplo de un Paquete de Datos del tipo RIP.......... 141 7.1 Resultados de las Simulaciones de Eventos Poisson........ 287 7.2 Resultados Promedios por Red................... 287 xvii

Capítulo 1 Protocolos deenrutamiento Los protocolos de enrutamiento para la capa de red son usados para resolver peticiones de servicios de envío de paquetes de datos a través de diferentes redes de datos. El punto más importante de este capítulo es mostrar los diferentes algoritmos de enrutamiento que resuelven esta cuestión, y a su vez compararlos en forma cualitativa para conocer cuáles son sus fortalezas y cuáles son sus puntos débiles. 1.1 Introducción La capa de Red, dentro de una arquitectura de redes de datos, es la que se encarga de llevar los paquetes de datos desde el origen (estación transmisora) hasta el destino (estación receptora). Llegar a destino, en tiempo y forma, puede requerir que el algoritmo de ruteo, que es el encargado de escoger las rutas y las estructuras de datos, cumpla conciertas propiedades que aseguren la e ciencia de su trabajo. Estas propiedades son: corrección, estabilidad, robustez, equitatividad, sencillez y optimalidad [Tan97, Tanenbaum]. La corrección y la sencillez casi no requieren comentarios; no así la necesidad de robustez, la cual se re ere a que el algoritmo debe ser diseñado para que funcione dentro de la red por años, sin fallas generales. El algoritmo deberá estar preparado para manejar cambios de topología y trá co sin requerir el aborto de las actividades o el rearranque de la red. 1

2 CAPÍTULO 1. PROTOCOLOS DE ENRUTAMIENTO La equitatividad y la optimalidad resultan con frecuencia contradictorias, ya que muchas veces se requiere una concesión entre la e cacia global (optimización) y la equitatividad; es decir, antes de intentar encontrar un justo medio entre estas dos, se debe decidir qué es lo que se busca optimizar. Minimizar el retardo de los paquetes (disminuyendo escalas y ancho de banda) y maximizar el rendimiento total de la red sería la combinación más apropiada para un algoritmo de ruteo. 1.2 Algoritmos deenrutamiento La capa de Red proporciona la dirección lógica que permite que dos sistemas dispares que se encuentran en redes lógicas diferentes determinen una posible ruta para comunicarse. En la capa de red es donde residen los algoritmos que implementan los protocolos de enrutamiento. En la mayoría de las subredes, los paquetes requerirán varias escalas para completar el viaje. La excepción serían las redes de difusión, pero aún aquí es importante el enrutamiento, ya que el origen y el destino pueden no estar en la misma red. El algoritmo de enrutamiento es la parte del software de la capa de red encargada de decidir la línea de salida por la que se transmitirá un paquete de entrada. Si la subred usa datagramas entonces esta decisión debe hacerse cada vez que llega un paquete de datos de entrada, debido a que la mejor ruta podría haber cambiado desde la última vez. Si la subred utiliza circuitos virtuales internamente, las decisiones de enrutamiento se tomarán sólo al establecerse el circuito y los paquetes seguirán la ruta previamente establecida. 1.3 Clasi cación dealgoritmos deenrutamiento Algoritmos No adaptables : No basan sus decisiones de enrutamiento en mediciones o estimaciones del trá co ni en la topología. La decisión de qué

1.4. PRINCIPIO DE OPTIMIZACIÓN 3 ruta tomar de I a J se calcula por adelantado, fuera de línea y se cargan en los routers al iniciar la red. Éste procedimiento se llama enrutamiento estáticos. La desventaja de este tipo de algoritmos es que no es posible responder a situaciones cambiantes como por ejemplo saturación, exceso de trá co o fallo en una línea. Enunconjunto de redes complejas, se necesita cierto grado de cooperación dinámica entre los dispositivos de encaminamiento. En particular se deben evitar aquellas porciones de red que sufren congestión, entendiéndose esto como aquella situación donde hay demasiados paquetes en alguna parte de la subred, y como consecuencia el rendimiento de ésta baja. Para poder tomar estas decisiones de encaminamiento dinámicas, los dispositivos involucrados en el ruteo deben intercambiar información usando algoritmos de encaminamiento especiales para este propósito. La información que se necesita sobre el estado del conjunto de redes tiene que venir expresada en términos de qué redes son accesibles a través de qué dispositivos y en términos de las características de retardo de varias rutas. Algoritmos Adaptables : En contraste con los algoritmos no adaptables, éstos cambian sus decisiones de enrutamiento para re ejar los cambios de topología y de trá co. Di eren de los algoritmos estáticos en el lugar de obtención de su información (ej. localmente, en los routers adyacentes o de todos), el momento del cambio de sus rutas (ej. cada t seg., o cuando cambia la carga) y la métrica usada para la optimalidad (ej. distancia, n o de escalas, tiempo estimado del tránsito). Este tipo de algoritmos no pueden ser demasiado complejos ya que son implementados en los routers y deben ejecutarse en tiempo real con recursos de CPU y la memoria con que el router dispone. 1.4 Principio de Optimización Este postulado establece que, si el enrutador J está en la trayectoria óptima del enrutador I al enrutador K, entonces la trayectoria óptima de J a K también está en la misma ruta. Haciendo referencia a la Fig. 1.1 de la pág. 4, llamemos r 1 a la parte de la ruta de I a J, y r 2 al resto de la ruta. Si existiera una ruta mejor que r 2 entre J y K, podría concatenarse con r 1 para mejorar la ruta entre I y K, contradiciendo nuestra aseveración de que r 1 y r 2 es óptima. Como consecuencia directa del principio de optimalidad, podemos ver que

4 CAPÍTULO 1. PROTOCOLOS DE ENRUTAMIENTO Figura 1.1: (a)subred. (b) Árbol de Descenso para el enrutador B. el grupo de trayectorias óptimas de todas las de orígenes a un destino dado forma un árbol con raíz en el destino. Ese árbol que se forma, se llama árbol de descenso, donde la métrica de distancia es el número de escalas. El árbol de descenso puede no ser único, pueden existir otros árboles con las mismas longitudes de trayectoria. La meta de todos los algoritmos de enrutamiento es descubrir y usar los árboles de descenso para todos los enrutadores. Dado que un árbol de descenso ciertamente es un árbol, no contiene ciclos, por lo que cada paquete será entregado con un número de escalas nito y limitado. En la práctica, no siempre sucede esto, los enlaces y los enrutadores pueden caerse y reactivarse durante la operación, por lo que diferentes enrutadores pueden tener ideas distintas sobre la topología actual de la subred. El n último de los algoritmos de ruteo es descubrir y usar los árboles de descenso de todos los enrutadores. 1.5 Algoritmos Estáticos 1.5.1 Enrutamiento por Trayectoria Más Corta Esta es una técnica de amplio uso en muchas formas, ya que es sencilla y fácil de entender. La idea es armar un grafo de la subred en el que cada nodo representa

1.5. ALGORITMOS ESTÁTICOS 5 un enrutador y cada arco del grafo una línea de comunicación (enlace). Para seleccionar la ruta entre un par dado de enrutadores, el algoritmo simplemente encuentra en el grafo la trayectoria más corta entre ellos [Sta97, Stallings]. El concepto de trayectoria más corta se debe a que la forma de medir la longitud de la ruta es usando alguna métrica, entendiéndose por métrica al peso relativo que se da a cada uno de los factores que intervienen en el cálculo de la distancia en una red, los cuales podrían ser el número de saltos, la distancia física, el retraso de transmisiónpor un paquete de prueba, el ancho de banda, el trá co promedio, el costo de comunicación, etc. Se conocen varios algoritmos de cálculo de la trayectoria más corta entre dos nodos de un grafo. Cada nodo se etiqueta (entre paréntesis) con su distancia al nodo de origen a través de la mejor trayectoria conocida. Inicialmente no se conocen trayectorias, por lo que todos los nodos tienen la etiqueta in - nito. A medida que avanza el algoritmo y se encuentran trayectorias, pueden cambiar las etiquetas, re ejando mejores trayectorias. Una etiqueta puede ser tentativa o permanente. Inicialmente todas las etiquetas son tentativas. Al descubrirse que una etiqueta representa la trayectoria más corta posible del origen a ese nodo, se vuelve permanente y no cambia más [Tan96, Tanenbaum]. 1.5.2 Inundación Otro algoritmo estático es la inundación, en la que cada paquete de entrada se envía por cada una de las líneas de salida, excepto aquella por la que llegó. La inundación evidentemente genera grandes cantidades de paquetes duplicados, de hecho, una cantidad in nita a menos que se tomen algunas medidas para limitar ese proceso. Una de tales medidas puede ser un contador de escalas contenido en la cabecera de cada paquete, el cual disminuye en cada escala, descartándose al llegar el contador a cero. Idealmente el contador debe inicializarse a la longitud de la trayectoria; puede inicializar el contador en el peor de los casos, es decir, el diámetro de la subred. Una variación de la inundación, un poco más práctica es la inundación selectiva. En este algoritmo, los enrutadores no envían cada paquete de entrada por todas las líneas, sino sólo por aquellas que van aproximadamente en la dirección correcta. La inundación no es práctica en la mayoría de las aplicaciones, pero tiene algunos usos. Por ejemplo, en aplicaciones militares y en las aplicaciones de

6 CAPÍTULO 1. PROTOCOLOS DE ENRUTAMIENTO bases de datos distribuidas a veces es necesario actualizar concurrentemente todas las bases de datos, en cuyo caso puede ser útil la inundación. 1.5.3 Enrutamiento Basado en Flujo Los algoritmos vistos hasta ahora sólo toman en cuenta la topología; no consideran la carga. Si por ejemplo, siempre hay una gran cantidad de trá co entre un nodo A y un nodo B, ambos adyacentes, podría ser mejor enrutar el trá co de ambos por caminos alternativos un poco más largos tal vez. Seguidamente veremos un algoritmo estático; el enrutamiento basado en ujo usa tanto la topología como la carga para el enrutamiento. La idea en que se basa el análisis es que, para una línea dada, si se conocen la capacidad y el ujo promedio, es posible calcular el retardo promedio de los paquetes en esa línea a partir de la teoría de colas. De los retardos promedio de todas las líneas, es directo el cálculo de un promedio ponderado por el ujo para obtener el retardo de paquete medio de la subred completa. El problema de enrutamiento se reduce entonces a encontrar el algoritmo de enrutamiento que produzca el retardo promedio mínimo para la subred. Para usar esta técnica, debe conocerse por adelantado cierta información: primero, la topología de la subred, segundo debe estar dada la matriz de trá co y tercero debe estar disponible la matriz de capacidad, donde se especi ca la capacidad de cada línea en bps. Por último, debe escogerse algún algoritmo tentativo de enrutamiento. 1.6 Algoritmos Dinámicos 1.6.1 Enrutamiento Vector de Distancia Los algoritmos de enrutamiento por vector de distancia operan haciendo que cada enrutador mantenga una tabla (por ejemplo, un vector) que da la mejor distancia conocida a cada destino y la línea a usar para llegar ahí. Estas tablas se actualizan intercambiando información con vecinos. Este algoritmo recibe otros nombres como: algoritmo de enrutamiento Bellman-Ford distribuido y el algoritmo Ford-Fullkerson, en reconocimiento a los investigadores que lo desarrollaron.

1.6. ALGORITMOS DINÁMICOS 7 En el enrutamiento por vector de distancia, cada enrutador mantiene una tabla de enrutamiento indizada por, y conteniendo un registro de, cada enrutador de la subred. Esta entrada comprende dos partes: la línea preferida de salida hacia ese destino y una estimación del tiempo o distancia a ese destino. La métrica usada podría ser la cantidad de escalas, el retardo de tiempo en milisegundos, el número total de paquetes encolados por la trayectoria, o algo parecido. Se supone que cada enrutador conoce la distancia a cada uno de sus vecinos. Si la métrica es de escalas, la distancia simplemente es una escala. Si la métrica es la longitud de la cola, el enrutador simplemente examina cada cola. Si la métrica es el retardo, el enrutador puede medirlo directamente con paquetes especiales de ECO que el receptor simplemente marca con la hora y envía de regreso tan rápido como puede. Supóngase que se usa como métrica el retardo y que el enrutador conoce el retardo a cada uno de sus vecinos. Cada T mseg, cada enrutador envía a todos sus vecinos una lista de los retardos estimados a cada uno de los destinos. También recibe una lista parecida de cada vecino. Imagine que una de estas tablas acaba de llegar del vecino X, siendo X i la estimación de X respecto al tiempo que le toma llegar al enrutador i a través de X en X i + m mseg vía X. Efectuando este cálculo para cada vecino, un enrutador puede encontrar la estimación que parezca ser la mejor y usar esa estimación y la línea correspondiente en su nueva tabla de enrutamiento. Este proceso de actualización se ilustra en la Fig. 1.2 de la pág. 8. En la parte (a) se muestra una subred. En las primeras cuatro columnas de la parte (b) aparecen los vectores de retardo recibidos de los vecinos del enrutador J. A indica tener un retardo de 12 mseg a B, un retardo de 25 mseg a C, un retado de 40 mseg a D, etc. Suponiendo que J ha medido o estimado el retardo de sus miembros, A, I, H y K en 8, 10, 12 y 16 mseg, respectivamente. Considere la manera en que J calcula su nueva ruta al enrutador G. Sabe que puede llegar a A en 8 mseg, y A indica ser capaz de llegar a G en 18 mseg, por lo que J sabe que puede contar con un retador de 26 mseg a G si enviaría a A los paquetes destinados a G. Del mismo modo, J calcula el retardo a G a través de I, H y K en 41 (31+10), 18 (6+12) y 37 (31+6 ) mseg, respectivamente. El mejor de estos valores es 18, por lo que escribe una entrada en su tabla de enrutamiento indicando que el retardo a G es de 18 mseg, y que la ruta a usar es vía H. Se lleva a cabo el mismo cálculo para los demás destinos, y la nueva tabla de enrutamiento se muestra en la última