Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación “El Aprendizaje Electrónico y Auto-Evaluación de TCP/IP” Alumna: Silvana María Marino Pezzarini LU: 30590 Prof. Coordinador: Agr. Castor F. Hermann Prof. Orientador: Mgter. David L. la Red Martínez Licenciatura en Sistemas de Información Corrientes - Argentina 2007 A Mamá y a Papá, por la precencia, el esfuerzo, el sacrificio, el honor... con Amor. A mi esposo, por el apoyo y la presencia incondicional... por el futuro juntos. A mi hija, Ana Paula... por su vida. PREFACIO En muchos países, Internet es ya un término doméstico. Mientras la sociedad comienza a emplear el término de superautopistas de la información, las computadoras interconectadas son ya algo cotidiano. De alguna manera se está desarrollando la “Cultura de Internet”: todo el mundo habla de ella. Por supuesto, las redes han existido desde mucho antes. La conexión de computadoras para formar una red local se hace habitual desde hace mucho, bien para pequeñas instalaciones, o bien para grandes empresas que intercomunican sus redes locales usando líneas de comunicación proporcionadas por compañías telefónicas. Internet se ha convertido en una forma de vida para facilitar el crecimiento empresarial ante todo. Hablar de redes siempre implica hablar de Protocolos de Comunicación. Por supuesto, el más importante es TCP/IP. Partiendo de esta realidad, e intentando trasladarla a la educación; para este trabajo se realizó un análisis sobre los requerimientos de un alumno interesado en el protocolo, fundamentando la aplicación mediante la utilización de metodología UML (Lenguaje Unificado Modificado). Respecto de la implementación del sistema; el mismo parte del estudio de software de base que permite el desarrollo de aplicaciones Web multiplataforma con acceso a bases de datos y el desarrollo de una aplicación Web de autoevaluación, seguimiento de exámenes propios y aplicación de la tecnología e-learning. El alumno podrá acceder al sistema aplicativo y hacer uso de éste fácil y rápidamente. Se encarga del registro de las evaluaciones, es decir la información que brinda el registro de los alumnos, evaluaciones y notas que se generan en las mismas. Objetivos El objetivo inicialmente planteado fue la realización de una aplicación Web multiplataforma desarrollada en Java, mediante la cual el alumno interesado en TCP/IP pudiera contar con un medio de ayuda para evaluar a distancia su nivel, mediante autoevaluaciones, sobre conocimientos propios o los que v pudiera incorporar o ampliar a través de temas que la aplicación le ofrece. Etapas de Desarrollo • Se ha efectuado una amplia recopilación bibliográfica específica de la metodología para el análisis de requerimientos, y los productos de software que se emplearon para la concreción del Trabajo Final. • Basados en la metodología de análisis UML, se utilizaron Diagramas de Casos de Uso y Enterprise Architect como Herramienta Case, para los que se han realizado los estudios necesarios y así emplearlos de forma correcta. • Como consecuencia de las gestiones realizadas por el Profesor Orientador ante IBM Argentina se han recibido materiales tanto en CD’s como en libros de dicha empresa, en el marco del Scholars Program de la misma, necesarios para la realización del presente Trabajo Final los referentes a productos de software tales como el WebSphere Studio Application Developer versión 5.0 y 5.1.2, como así también el DB2 UDB WorkGroup Server Edition versión 8.1.0 y DB2 UDB Personal Edition versión 8.1.0. • Se ha realizado un detallado estudio del lenguaje Java, utilizándose la versión JDK 1.5. • Se ha estudiado el entorno de trabajo Scientific WorkPlace 2.5.0 para la escritura del libro correspondiente al informe final. • Se ha hecho un estudio de la plataforma integrada de desarrollo de aplicaciones Web, WebSphere Studio Application Developer. • Se ha realizado el estudio del Manejador de Bases de Datos (DBMS) multiplataforma DB2 UDB. • Se ha realizado el desarrollo de la aplicación utilizando páginas HTML y Servlets de Java en el marco de la herramienta WebSphere Studio Application Developer en el entorno Windows. • Se ha comprobado el correcto testeo de la aplicación, utilizando una máquina como servidor y otra como cliente. • Al concluir el trabajo se realizó la grabación de un DVD del material correspondiente al trabajo final: una versión de la aplicación, otra del libro en formato LaTex y el PDF generado, el análisis realizado y el diagrama presentado en la Herramienta CASE elegida. vi • Se anexaron los instaladores de los productos utilizados para el desarrollo de la aplicación, siendo estos: DB2 UDB y WebSphere Studio Application Developer. Objetivos Logrados Las expectativas han sido satisfechas cumpliendo así con el objetivo inicial planteado para este trabajo. Organización del Informe Final Para el informe final se ha impreso un libro y grabado un DVD, a los que se anexan un resumen y un resumen extendido. La impresión del libro está constituida en seis (6) capítulos, indicados a continuación: Capitulo 1 - Introducción a la Familia TCP/IP: Contempla la historia del protocolo, y sus temas relacionados. Capitulo 2 - Introducción al e-learning: Se señalan los principales conceptos referidos a e-learning. Capitulo 3 - Familia de Protocolos TCP/IP: Se hace referencia al protocolo TCP/IP específicamente. Capitulo 4 - Protocolos más Importantes de TCP/IP: Se señalan todos los aspectos y características que describen al protocolo TCP y al protocolo IP. Capitulo 5 - Análisis de Seguridad en TCP/IP: Se detallan las falencias del protocolo con respecto a la seguridad, los tipos de ataque y sus soluciones. Capitulo 6 - Descripción del Sistema: Se detallan los aspectos más significativos de la aplicación desarrollada. Capitulo 7 - Conclusiones: Se presentan las conclusiones a las que se han llegado al finalizar el trabajo y las posibles líneas futuras. El DVD, adjunto al libro impreso, contiene: • Instaladores del software utilizado. • Resúmenes del trabajo realizado. • Libro del informe final. vii • Presentación para la defensa final. • Copia de seguridad de la base de datos de la aplicación. • Aplicación desarrollada. Marino Pezzarini, Silvana María Licenciatura en Sistemas de Información Universidad Nacional del Nordeste Corrientes; 25 de septiembre 2007 viii Índice General 1 Introducción 1.1 ¿Cómo surge TCP/IP? . . . . . . . . . . . . . 1.1.1 Interredes . . . . . . . . . . . . . . . . 1.1.2 Internet en Japón . . . . . . . . . . . 1.1.3 Uso Comercial de Internet . . . . . . . 1.1.4 La Super Autopista de la Información 1.2 Conocimientos Básicos . . . . . . . . . . . . . 1.2.1 Puertos y Zócalos . . . . . . . . . . . . 1.2.2 Puentes, “Routers” y Pasarelas . . . . 1.2.3 Modelo OSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 8 9 10 11 11 13 15 2 Introducción al E-LEARNING 21 2.1 Definición de Aprendizaje Electrónico . . . . . . . . . . . . . . 21 2.1.1 Ventajas del e-learning . . . . . . . . . . . . . . . . . . . 22 2.1.2 ¿Tendencias Futuras del e-learning? . . . . . . . . . . . 24 2.1.3 La Gestión del conocimiento . . . . . . . . . . . . . . . 24 2.1.4 Nuevas Formas de Enseñar . . . . . . . . . . . . . . . . 25 2.1.5 La Enseñanza Virtual . . . . . . . . . . . . . . . . . . . 25 2.1.6 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . 31 2.1.7 Desafío . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1.8 Solución . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.1.9 Capacitación . . . . . . . . . . . . . . . . . . . . . . . . 34 2.1.10 Ventajas . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.1.11 Desventajas . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1.12 El Uso de Tecnologías de Aprendizaje Electrónico para Ayudar a Mejorar el Desempeño . . . . . . . . . . . . . 36 3 Familia TCP/IP 47 3.1 ¿Qué es TCP/IP? . . . . . . . . . . . . . . . . . . . . . . . . . 47 ix x ÍNDICE GENERAL 3.1.1 Redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Estructura Interna . . . . . . . . . . . . . . . . . . . . . Protocolos de Aplicación . . . . . . . . . . . . . . . . . . . . . . 48 50 52 3.2.1 Características de las Aplicaciones [7] . . . . . . . 3.2.2 TELNET (“Emulación de Terminal”) . . . . . . . 3.2.3 FTP (“Transferencia de Ficheros”) . . . . . . . . . 3.2.4 DNS (“Domian Name Service”) . . . . . . . . . . . 3.2.5 SMTP (“Simple Mail Transfer Protocol”) . . . . . 3.2.6 MIME (“Multipurpose Internet Mail Extensions”) 3.2.7 Protocolos Para el Acceso a Internet . . . . . . . . 3.2.8 Protocolos Para La Gestión de Red . . . . . . . . . 3.2.9 Otros Protocolos de Aplicación . . . . . . . . . . . Protocolos de la Capa de Enlace [11] . . . . . . . . . . . . 3.3.1 La Capa de Enlace de Datos en Internet . . . . . . 3.3.2 Ejemplos de Protocolos de Enlace de Datos . . . . . . . . . . . . . . . . 52 52 53 54 57 59 61 68 77 81 81 82 4 Protocolos de TCP/IP 4.1 Protocolos de la Capa de Transporte . . . . . . . . . . . . . . . 4.1.1 UDP: “Protocolo de Datagrama de Usuario” . . . . . . 4.1.2 TCP: “Protocolo de Control de Transporte” . . . . . . . 4.2 Protocolos de la Capa de Interred . . . . . . . . . . . . . . . . . 4.2.1 ARP: “Protocolo de Resolución de Direcciones” . . . . . 4.2.2 RARP “Protocolo de Resolución de Direcciones Inverso” 4.2.3 IP: “Protocolo de Internet” . . . . . . . . . . . . . . . . 4.3 TCPMON: “Analizador de Protocolos TCP/IP” . . . . . . . . 4.3.1 Motivación . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Estructura Interna de TCPMON . . . . . . . . . . . . . 4.3.3 Características del PC . . . . . . . . . . . . . . . . . . . 4.3.4 Características del Programa Analizador TCP/IP . . . 4.3.5 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . 85 85 85 86 104 104 110 112 143 143 144 146 146 148 5 Análisis de Seguridad de TCP/IP [9] 5.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 IP Versión 6 . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Historias de las vulnerabilidades . . . . . . . . . . . . . . 5.4 Vulnerabilidades Genéricas . . . . . . . . . . . . . . . . . 5.4.1 Footprinting . . . . . . . . . . . . . . . . . . . . . 5.4.2 Fingerprinting . . . . . . . . . . . . . . . . . . . . 5.4.3 Escaneo de Puertos-Vulnerabilidades . . . . . . . . 5.4.4 Escaneo de Puertos Basado en el Protocolo ICMP 151 151 152 153 155 156 157 158 160 3.2 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ÍNDICE GENERAL . . . . . . . . . . . . . . . . . 162 163 163 164 164 165 166 167 168 169 169 170 171 171 172 173 174 6 Descripción del Sistema 6.1 Análisis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 UML (Lenguaje Unificado de Modelado) . . . . . . . . . 6.1.2 Herramienta CASE (Ingeniería de Software Asistida por Computador): Entreprise Architect . . . . . . . . . . . . 6.2 Desarrollo: Sistema de Autoevaluación sobre TCP/IP . . . . . 6.2.1 Módulos del Sistema de Autoevaluación . . . . . . . . . 6.2.2 Estructuras de Datos Utilizadas . . . . . . . . . . . . . . 6.2.3 Código Fuente Utilizados: Ejemplos . . . . . . . . . . . 177 177 177 5.5 5.6 5.7 5.4.5 Sniffing . . . . . . . . . . . . . . . . . . 5.4.6 TCP Initial Sequence Number . . . . . 5.4.7 DNS . . . . . . . . . . . . . . . . . . . . 5.4.8 IPSec . . . . . . . . . . . . . . . . . . . 5.4.9 Comunicaciones Inalámbricas: Wireless Protecciones y Herramientas . . . . . . . . . . . 5.5.1 Footprinting . . . . . . . . . . . . . . . 5.5.2 Fingerprinting . . . . . . . . . . . . . . 5.5.3 Escaneo de Puertos-Vulnerabilidades . . 5.5.4 Escaneo Basado en el Protocolo ICMP . 5.5.5 Sniffing, Eavesdropping y Snooping . . . 5.5.6 IP Spoofing . . . . . . . . . . . . . . . . 5.5.7 TCP Initial Sequence Numbers . . . . . 5.5.8 DNS . . . . . . . . . . . . . . . . . . . . 5.5.9 IPSec . . . . . . . . . . . . . . . . . . . Futuro . . . . . . . . . . . . . . . . . . . . . . . Conclusiones . . . . . . . . . . . . . . . . . . . xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 186 188 199 202 7 Conclusión 225 7.1 Conclusiones del Trabajo realizado . . . . . . . . . . . . . . . . 225 7.2 Líneas Futuras de Acción . . . . . . . . . . . . . . . . . . . . . 226 Bibliografía 227 Índice de Materias 229 Índice de Figuras 1.1 1.2 1.3 1.4 Llamadas del sistema para zócalos para un protocolo orientado a conexión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modelo de Capas: OSI . . . . . . . . . . . . . . . . . . . . . . . Cabeceras Multiples Anidadas. . . . . . . . . . . . . . . . . . . Correlación de capas TCP y OSI . . . . . . . . . . . . . . . . . 14 16 17 19 2.1 2.2 2.3 2.4 2.5 Personas practicando E-Learning. . . . . El Mundo Conectado . . . . . . . . . . . Formarse es parte de la solución . . . . Productos para e-learning. . . . . . . . . Organización que trabaja con e-learning. . . . . . 22 25 34 40 45 3.1 Dos conjuntos interconectados de redes, cada uno visto una red lógica. . . . . . . . . . . . . . . . . . . . . . . . Capas y Protocolos del Modelo TCP/IP. . . . . . . . . . Modelo SMTP . . . . . . . . . . . . . . . . . . . . . . . SMTP-RSCS/NJE Mail Gateway. . . . . . . . . . . . . . MIME (Multipurpose Internet Mail Extensions) . . . . . Firewall: Proxy . . . . . . . . . . . . . . . . . . . . . . . Topología Típica . . . . . . . . . . . . . . . . . . . . . . Definición de un objeto contenido en el MIB. . . . . . . Definición de grupo. . . . . . . . . . . . . . . . . . . . . Indetificador de Objetos. . . . . . . . . . . . . . . . . . . Componentes de SNMP. . . . . . . . . . . . . . . . . . . Componentes de CMIP sobre TCP/IP. . . . . . . . . . . LPP (Lightweight Presentation Protocol). . . . . . . . . Descripción del DPI de SNMP. . . . . . . . . . . . . . . Formato del Mensaje SNMPv2. . . . . . . . . . . . . . . Componentes del Protocolo NDB. . . . . . . . . . . . . como . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 51 59 59 60 66 67 69 71 72 73 74 75 76 78 79 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 3.12 3.13 3.14 3.15 3.16 xiii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv ÍNDICE DE FIGURAS 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 4.31 4.32 4.33 4.34 4.35 4.36 Conexión TCP- Procesos X e Y se comunican sobre una conexión TCP que emplea datagramas IP. . . . . . . . . . . . . . . El Principio de la Ventana . . . . . . . . . . . . . . . . . . . . . El Principio de la Ventana Aplicado a TCP. . . . . . . . . . . . Segmento TCP- Encapsulado en un datagrama IP- . . . . . . . Formato del Segmento TCP. . . . . . . . . . . . . . . . . . . . . Establecimiento de la Conexión. . . . . . . . . . . . . . . . . . . Finalización de la Conexión. . . . . . . . . . . . . . . . . . . . . Notación tcpdump. . . . . . . . . . . . . . . . . . . . . . . . . . Salida tcpdump. . . . . . . . . . . . . . . . . . . . . . . . . . . TCP Half-Close. . . . . . . . . . . . . . . . . . . . . . . . . . . Ejemplo TCP Half-Close. . . . . . . . . . . . . . . . . . . . . . Estados TCP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estados durante un Establecimiento y Finalización. . . . . . . . Nomenclatura. . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagrama de Transición entre Estados. . . . . . . . . . . . . . . Diagrama de Transición entre Estados. . . . . . . . . . . . . . . Apertura Simultánea. . . . . . . . . . . . . . . . . . . . . . . . Finalización Simultánea. . . . . . . . . . . . . . . . . . . . . . . Protocolo ARP. . . . . . . . . . . . . . . . . . . . . . . . . . . . Paquete de Petición/Respuesta ARP. . . . . . . . . . . . . . . . Recepción del Paquete ARP. . . . . . . . . . . . . . . . . . . . Host interconextados por un router. . . . . . . . . . . . . . . . Router Proxy-ARP. . . . . . . . . . . . . . . . . . . . . . . . . . Protocolo RARP. . . . . . . . . . . . . . . . . . . . . . . . . . . Paquete de Petición/Respuesta ARP. . . . . . . . . . . . . . . . El Protocolo IP . . . . . . . . . . . . . . . . . . . . . . . . . . . El Datagrama IP. . . . . . . . . . . . . . . . . . . . . . . . . . . Formato del Datagrama. . . . . . . . . . . . . . . . . . . . . . . Precedencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flag IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Un Sólo Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Más de un Bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ambos Casos . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algoritmo de Encaminamiento IP. . . . . . . . . . . . . . . . . El problema de la cuenta hasta infinito- Todos los enlaces tienen una métrica de 1 excepto por la ruta indierecta C a D que tiene de métrica 0- . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rutas de cada pasarela a la Red de Destino. . . . . . . . . . . . 87 90 91 92 93 94 95 96 96 97 98 99 99 100 100 101 103 103 104 106 107 109 110 111 112 113 114 115 115 116 118 118 119 124 126 127 ÍNDICE DE FIGURAS xv 4.37 El problema de la cuenta hasta infinito. . . . . . . . . . . . . . 4.38 Ejemplo de tabla de encaminamiento IP. . . . . . . . . . . . . . 4.39 Rutas IP- El host A tiene una ruta directa con B y D, y una indierecta con C. El host D es un router entre las redes 129.1 y 129.2- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.40 Opción LSR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.41 Opción SSR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.42 Opción RR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.43 Opción IT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.44 Arquitectura de Red de Windows9x. . . . . . . . . . . . . . . . 4.45 Configuración de la Captura. . . . . . . . . . . . . . . . . . . . 128 137 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 182 182 183 185 186 187 189 190 191 192 193 194 195 196 197 198 Diagrama de Casos de Uso-Actores . . . . . . . Diagramas de Casos de Uso-Caso de Uso . . . . Entreprise Architect . . . . . . . . . . . . . . . Actor-Enterprise Arquitect . . . . . . . . . . . Caso de Uso-Enterprise Arquitect . . . . . . . . Diagrama de Casos de Uso-Enterprise Architect Sistema de Autoevaluación-Página Principal . . Alumno-Identificación . . . . . . . . . . . . . . Profesor-Identificación . . . . . . . . . . . . . . Profesor-Ingreso de Datos . . . . . . . . . . . . Profesor-Modificación de Preguntas . . . . . . . Profesor-Tratamiento de Preguntas . . . . . . . Evaluación-Elección de tema . . . . . . . . . . Autoevaluación-Multiplechoise . . . . . . . . . Autoevaluación-Resultado del Exámen . . . . . Apuntes-Temas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 139 141 141 142 145 147 Capítulo 1 Introducción a la Familia TCP/IP 1.1 1.1.1 ¿Cómo surge TCP/IP? Interredes Los diseñadores originales de la pila de protocolos ARPANET, subvencionados por DARPA (“Defense Advanced Research Projects Agency”) introdujeron conceptos fundamentales tales como la estructura de capas y el de virtualidad en el mundo de las redes, bastante antes de que ISO se interesase en las redes [11] [5]. El organismo oficial de esos investigadores fue el grupo de trabajo en red (“Network Working Group”) llamado ARPANET, que tuvo su última reunión general en octubre de 1971. DARPA ha continuado su investigación en busca de una pila de protocolos de red, desde el protocolo host-a-host NCP ( “Network Control Program”) a la pila de protocolos TCP/IP, que adoptó la forma que tiene en la actualidad alrededor de 1978. En esa época, DARPA era un organismo famoso por ser pionero en la conmutación de paquetes a través de redes de radio y canales de satélite. La primera implementación real de Internet se produjo sobre 1980, cuando 1 2 CAPÍTULO 1. INTRODUCCIÓN DARPA comenzó a convertir las máquinas de su red de trabajo (ARPANET) a los nuevos protocolos de TCP/IP. En 1983 la transición fue completa y DARPA exigió que todos los ordenadores que quisieran conectarse a ARPANET usaran TCP/IP. DARPA contrató además a Bolt, Beranek, y Newman (BNN) para desarrollar una implementación de los protocolos TCP/IP para el UNIX de Berkeley sobre el VAX y dotaron a la Universidad de California en Berkeley para que distribuyese ese código de modo gratuito con su sistema operativo UNIX. El primer lanzamiento de la distribución del sistema de Berkeley que incluyó el protocolo TCP/IP estuvo disponible en 1983 (BSD 4.2). Desde ese momento, TCP/IP se ha difundido rápidamente entre universidades y centros de investigación y se ha convertido en el estándar de subsistemas de comunicación basados en UNIX. El segundo lanzamiento (BSD 4.3) se distribuyó en 1986, que se actualizó en 1988 (BSD 4.3 Tahoe) y en 1990 (BSD 4.3 Reno). BSD 4.4 fue distribuido en 1993. Debido a limitaciones de fondos, el BSD 4.4 será la última distribución que hará el grupo de investigación de sistemas informáticos (“Computer Systems Research Group”) de la Universidad de California en Berkeley. A medida que TCP/IP se extendía rápidamente, nuevas WANs se fueron creando y uniendo a ARPANET en los Estados Unidos. Por otro lado, redes de otros tipos, no necesariamente basadas en TCP/IP, se añadieron al conjunto de redes interconectadas. El resultado fue lo que hoy se conoce como Internet. Distintos ejemplos de redes que han jugado papeles clave en este desarrollo se describen en las siguientes secciones. Internet ¿Qué es exactamente?. En primer lugar, la palabra Internet es simplemente una contracción de la frase red interconectada. Sin embargo, escrita con mayúscula hace referencia a un conjunto mundial de redes interconectadas, de tal forma que Internet es una red interconectada, aunque no a la inversa. A Internet se le llama a veces “Interred Conectada” (“Connected Internet”). Internet está constituída por los siguientes grupos de redes: • Troncales: grandes redes que existen principalmente para interconec- 1.1. ¿CÓMO SURGE TCP/IP? 3 tar otras redes. Actualmente las redes troncales son NSFNET en US, EBONE en Europa y las grandes redes troncales comerciales. • Redes regionales: conectan, por ejemplo, universidades y colegios. • Redes comerciales: suministran acceso a troncales y suscriptores, y redes propiedad de organizaciones comerciales para uso interno que también tienen conexión con Internet. • Redes locales: como por ejemplo, redes a nivel de campus universitario. En muchos casos, particularmente en redes de tipo comercial, militar y gubernamental, el tráfico entre éstas y el resto de Internet está restringido. Esto conduce a la pregunta: ¿cómo sé si estoy conectado a Internet?. Un enfoque viable es preguntarse: ¿puedo hacer un ping al host ds.internic.net?. El ping es un programa usado para determinar si un host de una red es alcanzable; está implementado en cualquier plataforma TCP/IP. Si la respuesta es no, entonces no se está conectado. Esta definición no implica necesariamente que se esté totalmente aislado de Internet: muchos sistemas que fallarían en este test tienen, por ejemplo, pasarelas de correo electrónico a Internet. NSFNET NSFNET (“National Science Foundation Network”), es una red de tres niveles situada en los Estados Unidos y consistente en: • Una troncal : una red que conecta redes de nivel medio administradas y operadas por separado y centros de superordenadores fundados por el NSF. Esta troncal tiene además enlaces transcontinentales con otras redes como por ejemplo EBONE, la red troncal europea de IP. • Redes de nivel medio: de tres clases (regionales, basadas en una disciplina y redes formadas por un consorcio de superordenadores). • Redes de campus: tanto académicas como comerciales, conectadas a las de nivel medio. 4 CAPÍTULO 1. INTRODUCCIÓN La Primera Troncal Establecida originalmente por el NSF (“National Science Foundation”) como una red de comunicaciones para investigadores y científicos para acceder a los superordenadores del NSF, la primera troncal de NSFNET usaba seis microordenadores DEC LSI/11 como conmutadores de paquetes, interconectados por líneas arrendadas de 56Kbps. Existía una interconexión primaria entre la troncal de NSFNET y ARPANET en el Carnegie Mellon, que permitía el encaminamiento de datagramas entre usuarios conectados a esas redes. La Segunda Troncal La necesidad de una nueva troncal se manifestó en 1987, cuando la primera quedó sobrecargada en pocos meses (el crecimiento estimado en ese momento fue de un 100% anual). El NSF y Merit Inc., un consorcio de redes de ordenadores de ocho universidades estatales de Michigan, acordaron desarrollar y gestionar una nueva troncal de alta velocidad con mayores capacidades de transmisión y de conmutación. Para gestionarla definieron el IS (“Information Services”) que está compuesto del Centro de Información y el Grupo de Soporte Técnico. El Centro de Información es responsable de distribuir información, la gestión de recursos informativos y la comunicación electrónica. El grupo de soporte técnico proporciona apoyo técnico directamente sobre el campo de trabajo. El propósito de esto es suministrar un sistema integrado de información con interfaces fáciles de usar y administrar, accesible desde cualquier punto de la red y apoyado por toda una serie de servicios de formación. MERIT y NSF dirigieron este proyecto con IBM y MCI. IBM proporcionó el software, equipo para la conmutación de paquetes y la gestión de redes, mientras que MCI aportó la infraestructura para el transporte a largas distancias. Instalada en 1988, la nueva red usaba inicialmente circuitos arrendados de 448 Kbps para interconectar 13 sistemas nodales de conmutación (NSS ) 1.1. ¿CÓMO SURGE TCP/IP? 5 suministrados por IBM. Cada NSS estaba compuesto de nueve sistemas RT de IBM (que usaban una versión IBM del BSD 4.3) conectados a través de dos redes en anillo de IBM (por redundancia). En cada una de las 13 localizaciones se instaló un IDNX (“Integrated Digital Network Exchange”) de IBM, para permitir: • Encaminamiento dinámico alternativo. • Reserva dinámica de ancho de banda. La Tercera Troncal En 1989, la topología de los circuitos de NFSNET fue reconfigurada después de haber medido el tráfico y la velocidad de las líneas arrendadas se incrementó a T1 (1.544 Mbps) usando principalmente fibra óptica. Debido a la necesidad constantemente creciente de mejoras en la conmutación de paquetes y en la transmisión, se añadieron tres NSSs a la troncal y se actualizó la velocidad de las conexiones. La migración de NFSNET de T1 a T3 (45Mbps) se completo a finales de 1992. Advanced Network & Services Inc. (compañía fundada por IBM, MCI, Merit Inc.) es en la actualidad el organismo proveedor y gestor de NFSNET. La migración a niveles de gigabits ya ha empezado. EBONE EBONE (“Pan-European Multi-Protocol Backbone”) juega en el tráfico de Internet en Europa el mismo papel que NSFNET en US. EBONE tiene conexiones a nivel de kilobit y megabit entre cinco grandes centros. 6 CAPÍTULO 1. INTRODUCCIÓN CREN Completado en octubre de 1989, el organismo fusionador de las dos famosas redes CSNET (“Computer + Science Network”) y BITNET (“Because It’s Time Network”) formó el CREN (“Corporation for Research and Educational Networking”). CREN abarca la familia de servicios históricas de CSNET y BITNET para proporcionar una rica variedad de opciones en la conexión de redes. X.25 Net Es una red de CSNET conectada a Internet que suministra un servicio completo, usa protocolo TCP/IP sobre X.25 [7] [5]. Es habitual que los miembros internacionales se conecten a CSNET, ya que pueden usar su red pública de datos (“Public Data Network”) X.25 para alcanzar a Telenet en US. Aporta transferencia de ficheros, telnet, así como servicio inmediato de correo electrónico entre host de X.25Net. Cypress Cypress es una red sobre líneas arrendadas que permite tener un sistema de conmutación de paquetes de bajo coste e independiente del protocolo, usado principalmente para interconectar sitios pequeños a redes de Internet sobre TCP/IP. Establecido en origen como parte de un proyecto de investigación conjunto con CSNET, ahora es independiente de CSNET. No hay restricciones sobre su uso, aparte de las impuestas por otras redes. De este modo el tráfico comercial puede pasar entre dos sitios industriales a traves de Cypress. Los sitios industriales no pueden pasar tráfico comercial sobre Internet debido a restricciones impuestas por agencias gubernamentales que controlan las redes troncales (por ejemplo, NFSET). 1.1. ¿CÓMO SURGE TCP/IP? 7 DRI TWN (“Terrestrial Wideband Network”) o Red Terrestre de Banda Ancha es una WAN con el propósito de proporcionar una plataforma para la investigación con protocolos y aplicaciones en redes de alta velocidad (papel representado inicialmente por ARPANET). Este sistema incluye servicios tanto orientados a conexión como no orientados a conexión, broadcast y conferencia en tiempo real. La TWN fue construida y puesta en marcha por BNN Systems y Technologies Corporation durante la primera mitad de 1989 como parte de la fase inicial del DRI (“Defense Research Internet”). Su principal finalidad era transportar a lo largo y ancho del país el tráfico de datagramas asociado a proyectos subvencionados por DARPA. Estaba compuesto de pasarelas de Internet y conmutadores de paquetes WPSs (“Terrestrial Wideband Network packet switches”) que se comunicaban entre sí usando el HAP (“Host Access Protocol”) especificado en RFC 1221. Se usó el WB-MON (“Wideband Monitoring Protocol”) entre los WPSs y el centro de monitorización. La troncal soportaba también un entorno de investigación para conferencia multimedia y conferencia con voz y vídeo empleando pasarelas que utilizaban un protocolo orientado a conexión en tiempo real (ST-II - Stream Protocol RFC 1190) sobre un red no orientada a conexión. EARN EARN (“European Academic Research Network”) iniciada en 1983, fue la primera y mayor red en dar servicio a instituciones académicas y de investigación en Europa, Oriente Medio y África. EARN comenzó su trayectoria con la ayuda de IBM. Evolucionó para convertirse en una red sin ánimo de lucro y basada en tráfico no comercial que da servicio a instituciones académicas y de investigación. 8 CAPÍTULO 1. INTRODUCCIÓN RARE RARE (“Réseaux Associés pour la Recherche”) fundada en 1986, es la asociación de organizaciones de redes europeas y sus usuarios. La asociación tiene 20 FNM (“Full National Members”; todos países europeos), numerosos ASN (“Associate National Members”; algunos países europeos y asiáticos), IM (“International Members”; por ejemplo EARN) y LM (“Liason Members”; por ejemplo CREN). Soporta los principios de los sistemas abiertos tal como se definen en ISO además de un número de grupos principalmente europeos, como el EWOS (“European Workshop for Open Systems”) y el ETSI (“European Telecommunications Standards Institute”). RIPE El “Réseaux IP Européens” (RIPE) coordina las redes TCP/IP para la comunidad científica en Europa. Opera bajo los auspicios de RARE. RIPE lleva funcionando desde 1989. A comienzos de los ’90 más de 60 organizaciones participaban en este trabajo. El objetivo de RIPE es asegurar la coordinación administrativa y técnica necesaria para permitir el funcionamiento de la red IP pan-Europea. Se debe notar que RIPE no gestiona ninguna red de su propiedad. RIPE puede definirse como la actividad IP de RARE. Una de las actividades de RIPE es mantener una base de datos de redes IP europeas, dominios DNS y sus contactos. El contenido de esta base de datos se considera de dominio público. 1.1.2 Internet en Japón Japón tiene muchas redes distintas. Las siguientes son algunas de las principales: • La BITNET japonesa comenzó a funcionar en 1985. Fue fundada por la Universidad de la Ciencia de Tokyo y parte de sus miembros. Esta 1.1. ¿CÓMO SURGE TCP/IP? 9 red conecta con CUNY (“City University of New York”) a través de un enlace a 56 Kbps. • N-1net es gestionada por el NACSIS (“National Center for Science and Information Systems”), un instituto de investigación fundado por el Ministerio de Educación de Japón. Empezó a funcionar en 1980 usando una red de conmutación de paquetes X.25. N-1net tiene una conexión de 50 Kbps con el NSF en Washington. • El TISN (“International Science Network”) de Todai es usado por físicos y químicos. TISN tiene un enlace de 128 Kbps entre Todai y Hawaii. • WIDE (“Widely Integrated Distributed Environment”) es la versión japonesa de Internet. Comenzó como un proyecto de investigación en 1986. 1.1.3 Uso Comercial de Internet En años recientes Internet ha crecido en tamaño y extensión a una ritmo mayor de lo que nadie podría haber previsto. En particular, más de la mitad de los hosts conectados hoy a Internet son de carácter comercial. Esta es un área conflictiva, potencial y realmente, con los objetivos iniciales de Internet, que eran favorecer y cuidar del desarrollo de las comunicaciones abiertas entre instituciones académicas y de investigacién. Sin embargo, el crecimiento continuado en el uso comercial de Internet es inevitable por lo que será útil explicar como está teniendo lugar esta evolución. Una iniciativa importante a tener en cuenta es la de AUP (“Acceptable Use Policy”). La primera de estas políticas se introdujo en 1992 y se aplica al uso de NSFNET. En el fondo AUP es un compromiso “para apoyar la investigación y la educación abierta”. Bajo “usos inaceptables” está la prohibición de “uso para actividades lucrativas”, a menos que se hallen incluidas en el Principio General o como un uso específico aceptable. Sin embargo, a pesar de estas instancias aparentemente restrictivas, NSFNET se ha ido usando cada vez más para un amplio abanico de actividades, incluyendo muchas de naturaleza comercial. 10 CAPÍTULO 1. INTRODUCCIÓN Aparte del AUP de NSFNET, muchas de las redes conectadas a NSFNET mantienen sus propios AUPs. Algunos de ellos son relativamente restrictivos en su tratamiento de las actividades comerciales mientras que otros son relativamente liberales. Lo importante es que los AUP tendrán que evolucionar mientras continúe el inevitable crecimiento comercial en Internet. Se considerará ahora a los proveedores de servicios en Internet que han desarrollado mayor actividad en la introducción de usos comerciales de Internet. Dos dignos de mencionar son PSINet y UUNET, que a finales de los ’80 comenzaron a ofrecer acceso a Internet tanto a negocios como a individuos. Una compañía sin ánimo de lucro, ANS (“Advance Network and Services ”), fue formada por IBM, MCI y Merit,Inc. con el fin de operar conexiones troncales T1 para NSFNT. Este grupo ha permanecido activo e incrementando su presencia comercial en Internet. ANS formó también una subsidiaria orientada comercialmente denominada ANS CO+RE para proporcionar enlaces entre clientes comerciales y dominios educacionales y de investigación. ANS CO+RE suministra además acceso libre de AUPs a NSFNET al estar conectada a CIX. 1.1.4 La Super Autopista de la Información Una importante iniciativa ha sido la creación del Consejo Estadounidense de Asesoramiento sobre la Infraestructura Nacional de Información (“US Advisory Council on the National Information Infrastructure”) dirigido por Al Gore. En esencia, la iniciativa hace de la creación de una “red de redes” una prioridad nacional. Esta red debería ser similar a Internet en algunos aspectos, pero con el gobierno y la industria contribuyendo cada uno con lo mejor de sí mismo. Desde una perspectiva más internacional, el Grupo de los Siete (“The Group of Seven (G7)”) ministros se reunió en Bruselas en febrero de 1995 para discutir sobre la incipiente GII (“Global Information Infrastructure”). Los ministros de tecnología y economía de Canadá, el Reino Unido, Francia, Japón, Alemania, Italia, y los Estado Unidos acudieron a la conferencia, y se concentraron en las implicaciones tecnologicas, culturales y económicas concernientes al desarrollo de la infraestructura nacional. 1.2. CONOCIMIENTOS BÁSICOS 11 Una revista electrónica gratuita llamada G7 Live se utilizó para hacer llegar diariamente a los usuarios de Internet los comentarios y noticias sobre la conferencia. Aspectos específicos cubiertos por G7 Live incluyen los derechos de la propiedad intelectual, construcción de infraestructuras, consideraciones culturales y legislativas, y descripciones de las más de 100 exhibiciones tecnológicas presentes en la conferencia. Tanto el NII como el GII descritos anteriormente son iniciativas importantes que en última instancia deberían conducir a la “super autopista de la información” que es en la actualidad el objeto de tanta discusión en los medios de comunicación. 1.2 1.2.1 Conocimientos Básicos Puertos y Zócalos Puertos Cada proceso que se desea comunicar con otro se identifica en la pila de protocolos TCP/IP con uno o más puertos. Un puerto es un númro de 16 bits, empleado por un protocolo host - a host para identificar a qué protocolo del nivel superior o programa de aplicación se deben entregar los mensajer recibidos [6]. Como algunas aplicaciones son ya de por sí protocolos estandarizados, como TELNET y FTP, emplean el mismo número de puerto en todas las implementaciones TCP/IP. Estos puertos “asignados” se conocen como puertos bien conocidos, y a sus aplicaciones, aplicaciones bien conocidas. Estos puertos son controlados y asignados por IANA (“Internet Assigned Numbers Authority”) y en la mayoría de los sistemas sólo los pueden utilizar los procesos del sistema o del programa que ejecutan los usuarios privilegiados. Ocupan número de puerto comprendidos en el rango de 0-1023. Los puertos con números en el rango de 1024 a 65535 no los controla IANA y en la mayor parte de los sistemas los pueden usar programas de usuario. 12 CAPÍTULO 1. INTRODUCCIÓN La confusión que se produce cuando dos aplicaciones distintan intentan usar los mismos puertos en un host se evita haciendo que soliciten un puerto disponible a TCP/IP. Como este número se asigna dinámicamente, puede ser diferente en cada ejecución de una misma aplicación. UDP, TCP, y ISO TP-4 están todos basados en el mismo principio de uso de los puertos. En la misma medida de lo posible, se usan los mismos números para los servicios situados sobre UDP, TCP y ISO TP-4. Zócalos En primer lugar, conviene definir los siguientes términos [6]: • Un zócalo es un tipo especial de descriptor de ficheros que un proceso usa para solicitar servicios de red al sistema operativo. • Una dirección de zócalos es la tripleta: {protocolo, dirección local, proceso local}. • Una conversación es el enlace de comunicaciones entre dos procesos. • Una asociación es la quintupla que especifica completamente los dos procesos comprendidos en una conexión: {protocolo, dirección local, proceso local ,dirección exterior, preceso exterior}. • Una medio-asociación es: {protocolo, direción local, proceso local}. • La medio asociación se denomina también zócalo o dirección de transporte. Es decir, un zócalo es una de tantas APIs con los protocolos de comunicación. Se introdujo por primera vez en el UNIC BSDD 4.2. Aunque no ha sido estandarizada, se ha convertido en un estándar de facto. Llamadas Básicas de Zócalos A continuación se muestran algunas llamadas básicas de la interfaz de zócalos: • Inicializar un zócalo. • Registrar un zócalo en una dirección de puerto. 1.2. CONOCIMIENTOS BÁSICOS 13 • Indica disponibilidad para recibir conexiones. • Acepta una conexión. • Solicita la conexión con el servidor. • Envía o recibe datos. • Cierra un zócalo. Ejemplo: considérese las llamadas del sistema de zócalos para un protocolo orientado a conexión (ver figura 1.1 de la pág. 14). 1.2.2 Puentes, “Routers” y Pasarelas La formación de una red conectando múltiples redes se consigue por medio de los “routers”. Es importante distinguir entre un “router”, un puente y una pasarela [6]. Puente Interconecta segmentos de LAN a nivel de interfaz de red y envía tramas entre ellos. Un puente realiza la función de retransmisión MAC, y es independiente de cualquier capa superior (incluyendo el enlace lógico). Proporciona, si se necesita, conversión de protocolo a nivel MAC. Un puente es transparente para IP. Es decir, cuando un host envía un datagrama a otro host en una red con el que se conecta a través de un puente, envía el datagrama al host y el dar cruza el puente sin que el emisor se dé cuenta. Router Interconecta redes en el nivel de red y encamina paquetes entre ellas. Debe comprender la estructura de direccionamiento asociada con los protocolos que soporta y tomar la decisión de si se han de enviar, y cómo se ha de hacer, los paquetes. 14 CAPÍTULO 1. INTRODUCCIÓN Figura 1.1: Llamadas del sistema para zócalos para un protocolo orientado a conexión. 1.2. CONOCIMIENTOS BÁSICOS 15 Los “routers” son capaces de elegir las mejores rutas de transmisión así como tamaños óptimos para los paquetes. La función básica de encaminamiento está implementada en la capa IP. Por lo tanto, cualquier estación de trabajo que ejecute TCP/IP se puede usar como “router”. Un “router” es visible para IP. Es decir, cuando un host envía un dar IP a otro host en una red conectada por un “router”, envía el datagrama al “router” y no directamente al host de destino. Pasarela Interconecta redes a niveles superiores que los puentes y los “routers”. Una pasarela suele soportar el mapeado de direcciones de una red a otra, así como la transformación de datos entre distintos entornos para conseguir conectividad entre los extremos de la comunicación. Las pasarelas limitan típicamente la conectividad de dos redes a un subconjunto de los protocolos de aplicación soportados en cada una de ellas. Una pasarela es opaca para IP. Es decir, un host no puede enviar un datagrama IP a través de una pasarela: sólo puede enviarlo a la pasarela. La pasarela se ocupa de transmitirlo a la otra red con la información de los protocolos de alto nivel que vaya en él. Estrechamente ligado al concepto de pasarela, está el de cortafuegos (“firewall”) o pasarela cortafuegos, que se usa para restringir el acceso desde Internet a una red o un grupo de ellas, controladas por una organización, por motivos de seguridad. 1.2.3 Modelo OSI ¿Qué es OSI? Se han diseñado varias herramientas para ayudar a los diseñadores de protocolos a entender las partes del problema de la comunicación y planear la familia de protocolos. Una de estas herramientas y muy importante es el modelo de capas esto es solo una manera de dividir el problema de la comunicación en partes llamadas 16 CAPÍTULO 1. INTRODUCCIÓN capas. La familia de protocolos puede diseñarse especificando un protocolo que corresponda a cada capa. Así, la Organización Internacional de Normalización ISO definió uno de los modelos más importantes y muy utilizado Modelo de Capas: OSI (ver figura 1.2 de la pág. 16). Figura 1.2: Modelo de Capas: OSI Este modelo es conocido porque ofrece una explicación sencilla de la relación entre los complejos componentes del hardware y de protocolo de red. En él la capa inferior corresponde al hardware y las capas sucesivas al software que usa la red. Pilas: Software en Capas Cuando se diseña de acuerdo a un modelo de capas, el protocolo se apega a la organización en capas. El protocolo de cada computadora se divide en módulos, de los que cada 1.2. CONOCIMIENTOS BÁSICOS 17 uno corresponde a cada capa. Es más, las capas determinan las interacciones entre los módulos; en teoría cuando el software de protocolo envía o recibe datos, cada módulo sólo se comunica con el módulo de la siguiente capa más alta y el de la siguiente más baja. Así, los datos de salida pasan hacia abajo en cada capa y los de entrada suben por cada capa. Cada computadora contiene el software de una familia de protocolos. Los proveedores usan el término pila para referirse a este software, puesto que el modelo de capas del que se construye muchas veces se fibuja como un grupo de rectángulos. Como se ha dicho anteriormente cada capa de software de protocolo resuelve una parte del problema de comunicación, para hacerlo, el software de cada capa de la computadora transmisora también agrega información a los datos de salida y el sofware de la misma capa de la computadora receptora usa la información adicional para procesar los datos de entradas. En general, cada capa contiene información adicional en la cabecera antes de enviar los datos a una capa inferior, por lo tanto un cuadro que viaja por una red contiene una serie de cabeceras anidadas como se ilustra a continuación (ver figura 1.3 de la pág. 17). Figura 1.3: Cabeceras Multiples Anidadas. 18 CAPÍTULO 1. INTRODUCCIÓN TCP/IP y OSI Diferencias El modelo de internet sólo puede equipararse funcionalmente al modelo OSI de ISO, ya que existen diferencias básicas tales como: • En la pila de protocolos de internet, una capa representa un encapsulamiento de una función. La presepectiva de ISO, por otro lado, trata a las capas como grupos funcionales bastante reducidos, intentando forzar la modularidad al requerir capas adicionales para funciones adicionales. en los protocoos TCP/IP, un protocolo dado puede ser usado otros protocolos en la misma capa, mientras que en el modelo OSI se definiría dos capas en las mismas circunstancias. • Eficiencia y viabilidad. Las normas de OSI tienden a ser prescriptivas, mientras que los protocolos de TCP/IP tienden a ser descriptivos, y dejan un máximo de libertad a los implementadores. Una de las ventajas del enfoque de TCP/IP es que cada implementación concreta puede explotar características dependientes del sistema, de lo que suele derivarse una mayor eficacia, al mismo tiempo que asegura la interoperabilidad con otras aplicaciones. Otra forma de ver esto es que la mayoría de protocols de internet se han desarrollado primero antes de ser descritos lo que muestra claramente su viabilidad. Consideraciones con Respecto a la Comparación de TCP/IP y OSI • Se basan en el concepto de un gran Nro. de protocolos independientes. • Las capas por encima de la de transporte, incluída ésta, deben prestar un servicio de transporte de extremo a extremo. • Las capas sobre la de transporte son ususarios del servicio de transporte orientado a aplicaciones. • En OSI son fundamentales los conceptos de servicios, interfaces y protocolos. • Las ideas y conceptos fundamentales de OSI ajustan muy bien con las ideas modernas acerca de la Programación Orientada a Objetos. • TCP/IP originalmente no distinguía claramente entre servicio, interfaz y protocolo, pero luego se fue ajustando y se hizo más similar a OSI. 1.2. CONOCIMIENTOS BÁSICOS 19 • En OSI, se ocultan mejor los protocolos que en TCP/IP y se pueden reemplazar con relativa facilidad al cambiar la tecnología. • OSI se desarrolló antes que los protocolos: no se orientó a ningún protocolo y se ganó en generalidad, hubo dificultades para definir qué funcionalidad poner en cada capa. • TCP/IP se desarrolló después de los protocolos: no hubo que ajustar los protocolos al modelo, el modelo no se ajustaba a ninguna otra pila de protocolos por lo que se no gano en generalidad (ver figura 1.4 de pág. 19). Figura 1.4: Correlación de capas TCP y OSI Capítulo 2 Introducción al E-LEARNING 2.1 Definición de Aprendizaje Electrónico El término e-learning viene de dos siglas en inglés la e de e-learning se corresponde a la palabra electronic en inglés, así forma un sustantivo compuesto cuyo núcleo es la palabra learning que se traduce como aprendizaje [2] [8]. Ante esta combinación el término se traduce de manera apropiada como Aprendizaje Electrónico o aprendizaje por medios electrónicos [2]. Este nuevo concepto hace referencia al aprendizaje por medio de equipos electrónicos, como una computadora, el correo electrónico, equipos y servicios relacionados, la red WWW y la tecnología del CD-ROM; ofreciendo de esta forma, una nueva y mejor posibilidad de capacitar a los alumnos y al personal de una determinada organización, que necesitan aprender rápidamente nuevas técnicas y asimilar nueva información, para competir eficazmente en la actualidad y no mantenerse aislados. También es una de las formas que ha adoptado la llamada educación a distancia, al desarrollarse y masificarse las intranets y redes de área amplia, como es la Red Internet. (ver figura 2.1 de la pág. 22) 21 22 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING Figura 2.1: Personas practicando E-Learning. 2.1.1 Ventajas del e-learning Las principales ventajas se señalan a continuación: • Puede ampliar el aprendizaje a toda la organización. Con las tecnologías de aprendizaje electrónico, se puede llegar al personal gerencial y administrativo de todos los niveles con el mismo contenido de capacitación y apoyo educativo. Por ejemplo, al descentralizar sus servicios, las organizaciones tienen que desarrollar la capacidad del personal a nivel distrital y local. Con la infraestructura física adecuada, los administradores de esos niveles pueden recibir la capacitación y las herramientas gerenciales necesarias. • Puede llegar a un gran número de alumnos. El desarrollo gerencial y administrativo a menudo requiere que un gran número de administradores instituyan prácticas y técnicas nuevas. Las tecnologías de aprendizaje electrónico potencialmente pueden llegar y ayudar a capacitar, en el corto plazo, a esa masa crítica de administradores necesarios para un desarrollo eficaz. 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 23 • Puede adecuar las actividades de aprendizaje electrónico a la medida de los individuos. La instrucción que emplea una estrategia basada en el aprendizaje electrónico puede organizarse para permitir que los alumnos avancen a su propio ritmo, concentrándose en temas que se adecúen a sus necesidades individuales. Se pueden saltar las partes con las que ya están familiarizados o repetir las partes difíciles. • Puede facilitar ayuda por instructores entre sus colegas. Muchos creen que los tutores deben ser personas cuyo ejemplo se debe seguir, y éste es uno de los componentes más importantes en el desarrollo gerencial y de liderazgo. En los programas de las carreras universitarias tradicionales, los tutores actúan como tutores y las relaciones que se establecen con los estudiantes de por vida constituyen una base clave para desarrollar el potencial de liderazgo. El aprendizaje electrónico y las comunicaciones electrónicas brindan una mayor posibilidad de desarrollar relaciones a largo plazo entre los alumnos y sus educadores. • Puede facilitar los vínculos institucionales y profesionales. El intercambio profesional y el hecho de compartir experiencias son elementos cruciales para el desarrollo gerencial y el liderazgo. El aprendizaje electrónico proporciona una oportunidad para romper el aislamiento a nivel local, regional o en todo el país y suministrar y recibir información referente a las iniciativas de mejoras gerenciales exitosas. • Puede introducir herramientas gerenciales nuevas al software disponible. Así, fortalece las aptitudes del personal con respecto al uso de tecnologías de computación y de la Internet. Al utilizar herramientas gerenciales estandarizadas suministradas a través del programa de aprendizaje electrónico, las organizaciones pueden desarrollar una serie de aptitudes comunes y estandarizar los procedimientos y prácticas gerenciales. Las tecnologías de aprendizaje electrónico ofrecen los medios para: -Apoyar la capacitación e información para operaciones de sistemas. -Apoyar continuamente (por ejemplo, herramientas gerenciales suministradas a través de la Internet) con el fin de lograr mejoras gerenciales y administrativas. • Mejorar la calidad de los programas de capacitación. Mediante el uso de herramientas estandarizadas, probadas en el campo, en lugar de confiar en las intervenciones locales ad hoc. 24 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING 2.1.2 ¿Tendencias Futuras del e-learning? Hoy los educadores se debaten sobre la verdadera eficacia de las tecnologías de aprendizaje electrónico basadas en las computadoras. Por la evidencia existente se sugiere que los metodos de aprendizaje electrónico son tan eficaces para la enseñanza o aún más, que las aulas tradicionales. Más allá de esto, queda claro que las tecnologías de aprendizaje electrónico pueden proporcionar oportunidades de aprendizaje para personas que de otra manera no tendrían acceso a nuevos conocimientos. Los métodos de aprendizaje electrónico pueden ser más eficaces que otros para la enseñanza de algunos tipos de contenidos. Las combinaciones de aprendizaje en aulas y aprendizaje electrónico podrían constituir la mejor estrategia educativa. El e-learning es el negocio del futuro. Esto no significa la muerte de la educación presencial, ésta con el entrenamiento a distancia, siempre van a coexistir, pero en proporciones diferentes. Se está apostando fuertemente a las ventajas del e-learning, siendo las más relevantes las siguientes: • Aprovechar mejor el tiempo disponible. • Optimizar los procesos de aprendizaje. • Maximizar los resultados utilizando adecuadamente los recursos tecnológicos. • Quebrar las barrreras geográficas. 2.1.3 La Gestión del conocimiento Una forma destada mediante la cual las instituciones académicas materializan la gestión del conocimiento es a través de la enseñanza virtual porque permite colaborar, innovar y tener la capacidad de respuesta ante los cambios que se están produciendo en la sociedad. (ver figura 2.2 de la pág. 25 [8] 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 25 Figura 2.2: El Mundo Conectado 2.1.4 Nuevas Formas de Enseñar Se considera que la enseñanza tradicional debe evolucionar a la velocidad que lo hacen las tecnologías de la información, pero generalmente no es así, entonces es necesaria una nueva forma de enseñanza que manteniendo las ventajas de la enseñanza tradicional pueda satisfacer las nuevas demandas de la sociedad. [2] 2.1.5 La Enseñanza Virtual Con el transcurso de los años las formas alternativas de enseñanza, como la enseñanza a distancia, han evolucionado de los cursos por correspondencia a los cursos por videoconferencia o satélite. Sin embargo, nunca han llegado a los niveles de refinamiento de la enseñanza impartida en las aulas. Las posibilidades de conexión a Internet y una nueva generación de programas informáticos hacen posible un nuevo modelo de enseñanza en línea de mucha mayor calidad y flexibilidad que podría recibir el nombre, más apropiado de enseñanza virtual. 26 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING La enseñanza virtual, en la que participan tecnologías diversas, métodos de enseñanza, técnicas de colaboración e instructores ,̇ eleva la enseñanza virtual a niveles inalcanzables con los métodos tradicionales, sobre todo en lo que respecta a la flexibilidad y a disponibilidd. Esta nueva enseñanza permite entre otras cosas, crear material didáctico interactivo para apoyar la educación en cualquier tipo de escuela, por ejemplo, en el caso de los institutos de idiomas se pueden poner al alcance de los alumnos las mismas lecciones que se ven en clase o complementarias y así además crear un valor agregado en su servicio apoyando actividades de refuerzo a las clases. Esta una nueva opción de educación vía Web alcanza su máximo, si se desarrolla la tecnología hasta el punto en que pueda integrar los tres métodos de enseñanza: asíncrona, síncrona y autoformación. La Enseñanza Asíncrona Es el método de enseñanaza más flexible porque no impone horarios ya que los eventos ocurren en momentos distintos. La enseñanza asíncrona con instructor es mucho más eficaz que las iniciativas autodidactas, ya que estimula la comunicación entre el alumnado en todo momento mediante: • La celebración de debates. • La asignación de tareas grupales. • El contacto personalizado con los instructores. Esto se produce en un entorno que no impone horarios, ni espacios, sólo se necesita que en algún momento, tanto alumnos como instructores estén conectados a la red de comunicaciones. De esta forma empuja a los alumnos a tomar las riendas de su educación y ser más aplicados. El taller colaborativo asincrónico reúne a los alumnos y al instructor en la pantalla de la computadora, pero no es necesario que todos ellos estén en línea al mismo tiempo. El taller asincrónico brinda un foro conveniente para grupos de alumnos que viven en regiones con distintos husos horarios alrededor del mundo, porque les permite aprender en sus propios horarios. La capacitación asincrónica basada en la Red combina tecnologías como el correo electrónico, los grupos de discusión por correo electrónico, páginas 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 27 de la Red y programas para autodidactas para que los alumnos e instructores se comuniquen entre sí. Este tipo de capacitación es adecuado para sostenes discusiones, hacer presentaciones y realizar investigaciones, evaluaciones y proyectos de equipo con base en la Red. La Enseñanza Síncrona Es la más parecida a la enseñanza tradicional por que colabora y genera contacto entre los alumnos y profesores, pero difiere de ella en que las actividades docentes se producen sin que los alumnos concurran en un mismo sitio. El instructor y los alumnos interactúan entre sí en el mismo momento en un taller sincrónico. Este tipo de taller “en tiempo real” generalmente requiere de equipos especializados como micrófonos, cámaras de video, y programas de computación especiales. La computadora debe tener una conexión rápida con la Red Internet, lo que significa que la conexión debe tener una mayor amplitud de banda o capacidad para transmitir la información electrónica. La interacción en “vivo” entre los participantes en un taller virtual simula la interacción personal entre los estudiantes en un aula convencional. Loas alumnos deben estar preparados para interactuar oportunamente con sus compañeros de clase, de manera que el equipo especial y la amplitud de banda son vitales para mantener la agilidad de esta interacción. Conectándose unos con otros a través de sus computadoras, los alumnos participan en actividades como resolución de problemas, lluvias de ideas, debates, demostracines, presentaciones y dramatizaciones. Gracias a los nuevos avances tecnológicos se hace más factible la posibilidad de aprender en un aula virtual. Las herramientas que más se utilizan para este tipo de enseñanza son: • Audio y videoconferencia. • Pizarras electrónicas . • Compartimiento de aplicaciones. • Contenidos multimedia basados en Web. 28 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING • Conversaciones privadas y otras funciones de este tipo. • Salones de charla o chat rooms. • Los instructores controlan las presentaciones, formulan preguntas a los alumnos, los orientan y dirigen la comunicación durante la clase. Con estas tecnologías colaborativas los alumnos pueden expresar sus puntos de vista y compartir información o aplicaciones a través de ellas. Una pizarra blanca, es un tipo de tecnología que forma parte de un aula sincrónica. Es el equivalente electrónico de un pizarrón en un aula tradicional. La pizarra blanca es la pantalla sobre la cual los participantes y el instructor pueden turnarse para escribir sus mensajes y presentar información con una pizarra blanca para las actividades del grupo. Por ejemplo, un grupo de estudiantes, y su intructor pueden ingresar datos en una hoja de cálculo desde diferentes lugares alrededor del mundo. Al trabajar en línea al mismo tiempo, las personas pueden llenar celdas, corregir fórmulas, o modificar los encabezados de las columnas, mientras cada integrante del grupo pude ver exactamente lo que los demás están haciendo. Los salones de charla ofrecen medios estructurados para que los alumnos sostengan un diálogo escribiendo sus comentarios durante una discusión continua en línea a través del correo electrónico. Este tipo de capacitación basada en la Red permite que los grupos discutan, reflexionen problemas en foma conjunta a través del aprendizaje en tiempo real. Las video-conferencias y las audio-conferencias basadas en la Red son tecnologías empleadas en un aula sincrónica y conceptualmente son similares a la comunicación a través de imágnes visuales y sonido en las conferencias tradicionales. Ambas permiten que los alumnos se comuniquen de manera interactiva y escuchen y/o vean a otros participantes y a los instructores. Estas tecnologías permiten que los participantes tomen parte en los ejercicios de dramatización, que de otra manera no sería posible. La Autoformación Es el tipo de formación que eligen las personas que se instruyen a sí mismas empleando todo tipo de medios: 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 29 • Libros. • Videos. • Casetes. • Material informático. Actualmente uno de los sitios que reúne todos estos medios en uno es la World Wide Web, siendo otra posibilidad la utilización de Intranets. Productos y Servicios de la Enseñanza Virtual La enseñanza virtual se está configurando como una herramienta de gran utilidad porque presenta productos formativos: • Interactivos: Donde el usuario puede adoptar un papel activo en relación al ritmo y nivel de trabajo. • Multimedia: Por que incorpora textos, imágenes fijas, animaciones, videos, sonidos. • Abiertos: por que permite una actualización de los contenidos y de las actividades de forma permanente, lo que contrasta con el carácter estático del material impreso. • Sincrónicos y Asincrónicos: Por que permite que los alumnos puedan participar en tareas o actividades en el mismo momento independientemente del lugar en que se encuentren (sincrónico), o bien la realización de trabajo y estudio individual en el tiempo particular de cada alumno (asincrónico). • Accesibles: Lo que significa que no existen limitaciones geográficas, por que utiliza todas las potencialidades de la red Internet, de manera que los mercados de la formación sean abiertos. • Con recursos on-line: Que los alumnos puedan retomar sus aprendizajes en sus propios ordenadores personales. • Distribuidos: De manera que los recursos para la formación no tienen por qué concentrarse en un único espacio o institución. Las potencialidades 30 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING de la red permiten que los alumnos puedan utilizar recursos y materiales didácticos esparcidos por el mundo en diferentes servidores de Internet. Tambi´én permite poder recurrir a formadores que no necesariamente tienen que estar en el mismo espacio geográfico donde se dicte el curso. • Con un alto seguimiento: Del trabajo de los alumnos, ya que los formadores organizan la formación en base a tareas que los alumnos deben realizar y remitir en tiempo y forma establecida. • Comunicación horizontal : Entre los alumnos, debido a que la colaboración forma parte de las técnicas de formación. Ventajas de la Enseñanza Virtual Para el Alumno: • El trato es personalizado entre el profesor y sus compañeros. • Puede adaptar el estudio a su horario personal. • Puede participar de forma meditada gracias a la posibilidad de trabajar off-line. • El ritmo de trabajo marcado por sus profesores y sus compañeros puede seguirse, terminado el dictado. • El alumno tiene un papel activo, por que no se limita a recibir información sino que forma parte de su propia formación. • Todos los alumnos tienen acceso a la enseñanza, ya que no se perjudican aquellos que no pueden acudir periódicamente a clase por motivos como el trabajo, la distancia, etc. • Existe un feed-back de información, de manera que el profesor conoce si el alumno responde al método y alcanza los objetivos fijados inicialmente. • Se beneficia de las ventajas de los distintos métodos de enseñanza y medios didácticos tradicionales, evitando los inconvenientes de los mismos. Para la Universidad: 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 31 • Hace posible que se brinde formación a la sociedad sin los costos que suponen los desplazamientos, alojamientos y viáticos de sus empleados. • Permite ampliar su oferta de formación a aquellas personas o trabajadores que no pueden acceder a los cursos presenciales. • Hace posible que se supere la calidad de los cursos presenciales. • Aumenta la efectividad de los presupuestos que se destinan a la educación: En varios países los presupuestos de educación están congelados aunque la demanda aumenta. Mientras que la financiación disminuye, los gobiernos piden niveles más altos y mayor relevancia del factor profesionalizador de los cursos. • Responsabilidad del sistema educativo: Los gobiernos no sólo esperan que las instituciones educativas mejoren su relación costoeficacia, sino que también esperan que éstas justifiquen el uso que hacen del dinero público. La Enseñanza Virtual, los Empleos y el País. Debe hacerse mucho esfuerzo en varios países, en lo que respecta a la educación, para poder conseguir dar mejores condiciones de vida en esos países. Educar es una de esas palabras que permite crear esperanzas. La esperanza en algo, siempre es el mejor argumento de mercadeo disponible. La realidad es que hoy día lamentablemente, tener una profesión no garantiza que se conseguirá un trabajo. Por que en los tiempos en que vivimos, se dice que un profesional tendrá que cambiar de actividad por lo menos dos veces, para lograr subsistir adecuadamente. [1] 2.1.6 Antecedentes Los últimos años del siglo XX han visto la apertura de la economía global y el comienzo de la era de la información. Si bien se fomenta un crecimiento sin precedentes, fusiones y adquisiciones, la reciente eliminación de las barreras comerciales y los rápidos avances en tecnología han aumentado también drásticamente la volatilidad del mercado mundial. 32 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING Las compañías que desean seguir siendo competitivas deben responder eficazmente al cambio. Para ello, necesitan asegurarse de que los empleados puedan aprender rápidamente nuevas técnicas, actualizar las antiguas y asimilar grandes cantidades de información acerca de nuevos productos, mercados y competencias. El aprendizaje electrónico es una forma revolucionaria de dotar a la mano de obra con las técnicas y el conocimiento que necesitan para avanzar al mismo paso que los rápidos cambios del mercado. Las personas, las empresas y los países con mayores conocimientos, técnicas y capacidad de crear y compartir eficazmente la información son los que más probablemente alcancen el éxito en la economía de Internet basada en el conocimiento. 2.1.7 Desafío Las últimas dos décadas han demostrado la explosión de Internet, desde una pequeña red que enlazaba a científicos hasta el mayor forum de intercambio de ideas que la humanidad ha visto nunca. Para competir eficazmente en la actualidad, los hombres de negocios deben absorber grandes cantidades de información. Si bien Internet ofrece grandísimas también presenta desafíos: ¿Cómo puede una organización aprovechar a Internet antes que su competencia?. ¿Cómo puede cerrar las lagunas que dejan los métodos tradicionales de formación en los empleados?. Cuando hacen frente al rápido desarrollo tecnológico, a la desregulación de muchas industrias y a las presiones de la globalización, los ejecutivos deben preguntarse, tarde o temprano: ¿Pueden mis empleados hacer frente al ritmo de los cambios?. El reto para los ejecutivos es garantizar que los empleados puedan gestionar los cambios y no ser víctimas de ellos. Los empleados necesitan aprender rápidamente nuevas técnicas y asimilar nueva información, pero los métodos de formación tradicionales no son lo bastante flexibles para alcanzar los niveles de actualización permanente requeridos por el desarrollo acelerado de las nuevas técnicas y conocimientos. 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 2.1.8 33 Solución El aprendizaje electrónico es la solución a los desafíos de formación y comunicación que ha creado la economía de Internet, porque hace referencia a la educación que se mejora o proporciona a través de Internet. Comenzó en los departamentos de formación corporativos, escuelas y universidades como un suplemento a los métodos de enseñanza tradicionales. En la actualidad, abarca un gran grupo de soluciones que pueden usarse en toda una organización, desde las comunicaciones corporativas y el marketing a la documentación técnica, soporte al cliente, control de calidad, fabricación, ingeniería, relaciones públicas y relaciones de análisis para compartir información, experiencia e ideas. El aprendizaje electrónico puede ofrecer a los empleados la capacidad de transformar los cambios en ventajas aprovechando los recursos de conocimiento existentes y preparándolos en un formato centrado en el empleado, más personalizado y accesible. Los antiguos modelos de aprendizaje no se ajustan para satisfacer los nuevos desafíos del aprendizaje mundial. Los sistemas de aprendizaje electrónico pueden mejorar (en lugar de sustituir) los métodos y materiales de enseñanza tradicionales. Los sistemas de aprendizaje electrónico pueden incluir elementos como: • Objetos de contenido: El material se puede desarrollar en un formato modular, dividido en objetos que se extraen de una base de datos, se los trabaja para su aprendizaje y los resultados del mismo, se evalúan en una prueba interactiva. El resultado es un ruta de aprendizaje personalizada: los estudiantes sólo obtienen lo que necesitan y estudian a su propio ritmo. • Comunidades: Los estudiantes pueden desarrollar comunidades en línea para proporcionarse ayuda mutua y compartir información. • Experiencia en línea: Puede haber tutores o expertos disponibles en línea para ofrecer información y orientación a los educandos, responder preguntas y mediar las discusiones. • Oportunidades de colaboración: El software de reunión en línea permite un aprendizaje en colaboración sincrónico a través de distancias geográficas. 34 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING Figura 2.3: Formarse es parte de la solución • Multimedia: Las tecnologías de audio y video bajo demanda pueden presentar el material de una forma estimulante para cautivar activamente a los estudiantes. (ver figura 2.3 de la página 34) 2.1.9 Capacitación En esta nueva y cambiante economía global, todos los empresarios quieren garantizar competitividad en el mercado. Por ello, precisan invertir en actualización, entrenamiento y perfeccionamiento constante de los directivos y empleados, condicionarlos para el mejor desenvolvimiento, evitar rotación de personal y conseguir retener los talentos. Esta visión generó en los Estados Unidos una forma de conseguirlo por medio de la educación a distancia, especialmente desde 1997, utilizando las nuevas tecnologías telemáticas, con eficiencia y a muy bajo costo. El e-learning es una de las formas que ha adoptado la llamada educación a distancia, para actualizar personal, como complemento al aprendizaje presencial. Se ofrecen revistas digitales, cursos virtuales de diversos temas, entre otros. Las empresas de esta forma utilizan Internet para la capacitación y el 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 35 entrenamiento de personal. Cuando los primeros sistemas de e-learning se lanzaron en 1999 en Argentina, el mayor desafío fue la resistencia al cambio, tanto de las empresas como de los funcionarios. En el 2000, las inversiones en tecnologías de aprendizaje electrónico (e-learning) fueron muy bajas en comparación con otros segmentos de las Tecnologías de Información (TI). Para los próximos años se tienen expectativas mayores de inversión en e-learning, consiguiendo así, una expansión considerable, que beneficiará en forma decisiva el progreso de los negocios y del país. La conveniencia y flexibilidad de horarios del aprendizaje virtual, así como la ventaja de no exigir el traslado de los capacitandos, en un contexto amplio, son los beneficios más aparentes de esta forma de aprendizaje. Los empresarios ya conocen que la capacitación continua es fundamental para el éxito de las empresas, y que es una importante forma de mantener la competitividad de los negocios a largo plazo. Todas las empresas tienen ahora esa posibilidad con las facilidades que esa capacitación continua puede ser hecha por medio de Intranets o de la Internet. 2.1.10 Ventajas En todas las múltiples formas, el aprendizaje electrónico ofrece una multitud de beneficios de incalculable valor para los empleados y quienes les contratan: • Experiencia de aprendizaje personalizada: Las opciones de aprendizaje autodidacta permiten a los estudiantes avanzar a su propio ritmo, seleccionar el tipo de contenido y los vehículos de entrega con base en las preferencias individuales y ensamblar módulos de contenidos apropiados a sus necesidades. • Reducción de costos: Las empresas pueden reducir, e incluso suprimir, los gastos de viaje para formación, eliminar los costos de las aulas y reducir el tiempo que los empleados pierden lejos de la oficina y de sus obligaciones normales. • Acceso: Los usuarios pueden acceder a los contenidos en cualquier lugar que tenga una conexión a Internet. Esto significa que los contenidos de aprendizaje electrónico pueden llegar a una audiencia prácticamente 36 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING ilimitada y los estudiantes no están forzados por las diferencias en las zonas horarias. • Aprendizaje colaborativo: El aprendizaje electrónico tiene en cuenta la exposición del conocimiento y el soporte entre los grupos. • Responsabilidad: El seguimiento de graduación, prueba, evaluación y certificación están automatizados, de forma que todos los participantes puedan hacerse cargo de las responsabilidades en los procesos de aprendizaje. 2.1.11 Desventajas El reto que confronta todo consultor o nuevo líder, cuando quiere hacer mejoran en una organización es modificar una cultura arraigada que no se ajusta a las nuevas circunstancias comerciales o tecnológicas. Las culturas organizacionales demasiado arraigadas son una carga para la empresa que pretende adaptarse a los cambios del mercado y de entornos. Las culturas organizacionales profundamente arraigadas dan a las personas que se encuentran dentro de ellas una gran seguridad. Frente a cualquier cambio que se proponga por mínimo que sea, que modifique la cultura establecida, confronta rechazos inmediatos, aunque son para el beneficio de todos. La mayoría opina que es posible cambiar la cultura de una organización, pero es un proceso lento que puede durar muchos años, incluso si el cambio se llega a producir reconocen que será parcial. 2.1.12 El Uso de Tecnologías de Aprendizaje Electrónico para Ayudar a Mejorar el Desempeño Se puede tomar parte en el aprendizaje electrónico de muchas maneras, utilizando una computadora y la Red WWW . Se puede obtener información de una amplia gama de fuentes. Se puede intercambiar opiniones con otras personas en uno o varios grupos de discusión, y se puede inscribir a diversos tipos de talleres o “aulas virtuales” basadas en la Red. [1] 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 37 Con un CD-ROM y una computadora se puede también practicar nuevas aptitudes según convenga empleando tutorías para autodidactas. También se describe cómo se puede: • Acceder a recursos de información para la adopción de acciones administrativas. • Practicar métodos autodidactas de aprendizaje. • Colaborar en varios tipos de talleres. • Utilizar entrenadores electrónicos para mejorar los talleres reales “cara a cara”. • Beneficiarse de las prácticas de aprendizaje electrónico. 1. Accesos a los recursos para adoptar acciones administrativas. 2. Colaboración en los talleres basados en aomputadora. 3. Dirigir y guiar como instructor para mejorar la capacitación en persona “cara a cara”. 4. Sesiones prácticas de aprendizaje electrónico. Planificar e Implementar una Actividad de E-learning Suponiendo que la organización apoya los objeticos de aprendizaje electrónico, y que las condiciones en el lugar de trabajo son adecuadas para implementar una iniciativa de aprendizaje electrónico, se decide añadir un componente de aprendizaje electrónico al programa de capacitación [?]. Se pretende saber: ¿Cómo adoptar cursos de acción? ¿En qué se debería pensar? Entonces las siguientes preguntas ayudan a planificar e implementar una iniciativa de aprendizaje electrónico para una organización, con cinco pasos: 1. Determinar qué tipo de aprendizaje electrónico se podría ofrecer a la organización. 38 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING 2. Preparar a la organización para las actividades de aprendizaje electrónico. 3. Formar un equipo de aprendizaje electrónico. 4. Evaluar la experiencia con el aprendizaje electrónico. Determinación del Tipo de Aprendizaje Electrónico que se Puede Ofrecer a la Organización El aprendizaje electrónico trata primero y primordialmente sobre aprendizaje. Antes de introducir el aprendizaje electrónico a la organización, se debe determinar si el entorno de trabajo apoya el aprendizaje en el lugar de trabajo y en qué forma el aprendizaje electrónico puede appoyar los objetivos de capacitación y educación de la organización. Para comenzar el proceso se debe responder a: • ¿Fortalecería el aprendizaje electrónico al programa de capacitación de laorganización?. ¿Por qué?. • ¿Mejoraría el aprendizaje electrónico la calidad de laexperiencia de aprendizaje?. Si así fuera, ¿en qué forma?. • ¿Simplificaría el aprendizaje electrónico proporcionar instruccción que no estaría disponible de otra manera?. • ¿Reduciría el aprendizaje electrónico los costos de capcitación?. Preparar una Organización para el Aprendizaje Electrónico Para introducir efectivamente las actividades de aprendizaje electrónico a una organización, se debe lpreparar tanto al personal como a la organización en sí. El aprendizaje electróncio es un esfuerzo colaborativo y cooperativo, de manera que el personal debe comprender a fondo el propósito y el uso al cual está destinada la actividad de aprendizaje electróncio. La organización se responsabilizará de introducir la enseñanza electrónica a personal y explicar en qué forma puede ayudar a cubrir las necesidades 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 39 de capacitación y desarrollo profesional. Para que el aprendizaje electrónico sea introducido exitosamente, se deben instituir políticas nuevas, normas diferentes y un conjunto nuevo de recompensas. La organización debe encarar también otros aspectos como el acceso a las computadoras, la compra de equipos, la capacitación en el uso de tecnologías informáticas y el desarrollo de servicios de apoyo para las comunicaciones y la información con el objeto de obtener y mantener la infraestructura informática y de ocmputación así como una conexión a Internet. Tecnologías y Servicios Necesarios para el Aprendizaje Electrónico Debido a que las diferentes formas de aprendizaje electrónico requieren de distintas tecnologías, se debe identificar cuáles de los siguientes componentes estarían disponibles para una organización antes de seleccionar un enfoque de aprendizaje electronico específico. Actividades de Aprendizaje basadas en el Correo Electrónico • Servicio telefónico y suministro de energía eléctrica seguros. • Una computadora personal equipada con un programa de corereo electrónico. • Un modem para traducir las señales electrónicas entre la computadora y e sistema de telefonía. • Un proveedor de servicios de Internet, para transmitir y recibir los mensajes de correo electrónico y direcciones para la organización del personal. • Una impresora para imprimir los mensajes y otros documentos. Actividades de Aprendizaje basadas en el CD-ROM • Servicio telefónico y suministro de energía seguros. • Una computadora personal con un lector de CD-ROM, una tarjeta de sonido, una tarfeta de video y el softuare requerido para que éstos funcionen. 40 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING Actividades de Aprendizaje basados en la Red • Todos los compnentes detallados bajo las actividades de aprendizaje basados en el correo electrónico. • Una conexión a Internet de un PSI con una velocidad media. • Un navegador para explotar la Red. • Equipo de computación y software para generar y/o recibir señales de audio y video, para las actividades de aprendizaje con multimedia. (ver figura2.4 de la pág. 40) Figura 2.4: Productos para e-learning. Formación del Equipo de Aprendizaje Electrónico Para que el aprendizaje electrónico tenga éxito se requiere de un buen lider que comprenda y apoye el aprendizaje electrónico, así como un equipo eficaz de 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 41 profesionales seleccionados estratégicamente de los varios departamentos. El equipo de aprendizaje electrónico debería incluir representantes de los departamentos de capacitación, tecnología y finanzas de la organización, así como uno o dos de los partricipantes potenciales de la actividad de aprendizaje electronico. El equipo se responsabiliza de dirigir el esfuerzo y deberá: 1. Decidir cómo el aprendizaje electrónico beneficiará a la organización, paralelamente con la actividad de capacitación actual. 2. Establecer un proceso claro para la toma de decisiones referentes al aprendizaje electrónico. 3. Desarrollar un plan y un presupuesto para una actividad piloto de aprendizaje electrónico. 4. Seleccionar y dirigir la actividad piloto de aprendizaje electrónico. 5. Evaluar la experiencia que se logró con el aprendizaje electrónico. Dirección de la Primera Actividad de Aprendizaje Electrónico. Una buena manera de introducir el aprendizaje electróncio a una organización consiste en dirigir una actividad piloto de aprendizaje electrónico, con la ayuda de un equipo de aprendizaje electrónico recientemente conformado. Así se estará en condiciones de experimentar el aprendizaje electrónico desde la perspectiva de un alumno así como de un administrador. Para desarrollar el proyecto piloto de aprendizaje electrónico, se debe: • Determinar las necesidades de mejoramiento del desempeño de una organización. • Identificar los objetivos para la capacitación del personal que ayudarán a encarar las necesidades. • Determinar cómo el aprendizaje electrónico podría apoyar y ampliar los objetivos de capacitación. • Seleccionar las actividades de aprendizafe electrónico apropiadas para las tareas y para el entorno de trabajo. 42 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING Una vez seleccionada la actividad, se podrá organizar al personal clave que participará en el evento de aprenizaje apropiado. Selección de los programas de aprendizaje electrónico: Cuando se trabaja en la Red, es fácil perder de vista la distinción entre la comunicación y el aprendizaje. La mayoría de las páginas Web son similares a revistas, que son comunicadores de una sola dirección para un lector pasivo. Los productos de aprendizaje electrónico, por otro lado, son herramientas de comunicación de dos vías: logran la participación activa de los alumnos haciéndose tomar parte en el proceso de aprendizaje. En el mejor de los casos, el aprendizaje electrónico hace posible que los alumnos practiquen y apliquen nuevas aptitudes bajo la supervisión de un instructor experimentado. Al seleccionar un taller de aprendizaje electrónico o un curso en la Red, se debe considerar los objetivos de aprendizaje. Se puede emplear los siguientes criterios para seleccionar tecnologías y servicios de aprendizaje electrónico. Idealmente, las tecnologías y servicios de aprendizaje electrónico deberían: • Hacer participar activamente al alumno y basarse en el mismo. • Funcionar fluidamente con la infraestructura y la tecnología disponible. • Proporcionar ayuda en línea. • Incluir ejemplos que sean significativos para los alumnos. • Seguir estrategias de aprendizaje que se adecúen a los objetivos de Instrucción. • Funcionar a distintos niveles de aprendizafe, dependiendo de las necesidades e intereses de los alumnos. • Ser de uso fácil para el ususario. • Incluir los medios para evaluar la experiencia de aprendizaje. • Presentar conceptos en una diversidad de medios para adecuarse a los diferentes estilos de aprendizaje. • Tener una eficacia demostrada en escenarios similares a los de la organización. Los cursos adecuados basados en la Red generalmente: 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 43 • Permiten que los alumnos sostengan conferencias regulares con los instructores y otros expertos. • Apoyan la colaboraciónentre los diferentes alumnos. • Proporcionan vínculos con otras páginas de la Red que tienen un contenido afin. Evaluación de la Experiencia de Aprendizafe Electrónico El paso final para incoporar el aprendizaje electrónico al programa de capacitación de la organización consiste en evaluar el proyecto piloto. Se deben evaluar tres aspectos de la actividad: • En primer lugar, ¿fue efectiva la capacitación en términos de los objetivos y medida a través de los resultados actuales del aprendizaje electrónico y el impacto real de la actividad sobre el desempeño del personal? • En segundo lugar, ¿era la tecnología de aprendizaje electrónico apropiada para la tarea y funcionó correctamente?. • En tercer lugar, si los profesores o instructores estuvieron directamente involucrados, ¿proporcionaron instrucción y apoyo adecuados durante el curso? Empleo del Aprendizaje Electróncio para Encarar Retos Gerenciales En el entorno económico actual de los servicios de aulas, con costos operativos crecientes y demandas que compiten por los recursos presupuestarios, los administradores deben encontrar nuevas solucines para mantenerse al día con respecto a los conociemientos nuevos y seguir cubriendo las necesidades cambiantes de los clientes. Comunicaciones innovadoras están trayendo consigo nuevos recursos al alcance de la educación continua y del desarrolo profesional. Estos recursos ofrecen nuevas oportunidades a medida que se encuentran a disposición en 44 CAPÍTULO 2. INTRODUCCIÓN AL E-LEARNING el lugar de trabajo, para mejorar la prestación de srvicios y otros aspectos relativos al desempeño. La organización se puede beneficiar de estos recursos nuevos creando iniciativas de aprendizaje electrónico, para ayudar a desarrollar nuevas aptitudes y a tomar decisiones informadas. La calidad de los servicios puede mejorar, y la organización estará en mejores condiciones de lograr la misión. Al fin y la cabo, ése es el objetivo final de la iniciativa de aprendizaje electrónico. Lista de Verificación para una Actividad Piloto de Aprendizaje Electrónico La lista debería incluir lo siguiente: 1. Determinar en qué manera el aprendizaje electrónico podría mejorar el programa de capacitación de una organización. 2. Evaluar el estado de preparación tecnológica de la organización para un programa de aprendizaje electrónico. Tener el equipo de computación, software, los servicios de apoyo y la planta física de oficina requeridos. 3. Evaluar el estado de preparación de los colegas para comprometerse a actividades de aprendizaje electrónico. Tener aptitudes comprometedoras adecuadas así como una actitud y motivación apropiadas. 4. Establecer un equipo de aprendizaje electrónico, compuesto por personal de los departamento de capacitación, tecnología, informática y de finanzas y los participantes potenciales para el aprendizaje electrónico. 5. Hacer que el equipo organice e implemente un programa piloto de aprendizaje electrónico según los siguientes lineamientos: Paso 1 : Determinar las necesidades del desempeño en la organización. Paso 2 : Identificar los objetivos para la capacitación de personal que podría ayudar a encarar las necesidades. Paso 3 : Determinar en qué forma el aprendizaje electrónico apropiadas para las tareas y para el entorno de trabajo. Paso 4 : Seleccionar las actividades de aprendizaje electrónico apropiadas para las tareas y para el entorno de trabajo. Paso 5 : Dirigir la implementación de la actividad piloto. 2.1. DEFINICIÓN DE APRENDIZAJE ELECTRÓNICO 45 6. Evaluar la experiencia piloto con un equipo, incluyendolaefectividad del aprendizaje y la relación costo-beneficio de los esfuerzos organizacionales. 7. Considerar la formulación de plazos incorporar actividades de aprendizaje electrónico que beneficiarían mejor al programa de capcitación de la organización y al programa regular de trabajo. (ver figura 2.5 de la página 45) Figura 2.5: Organización que trabaja con e-learning. Capítulo 3 Familia de Protocolos TCP/IP 3.1 ¿Qué es TCP/IP? La pila TCP/IP se llama así por dos de sus protocolos más importantes: • TCP: Protocolo de Control de Transporte. [11] • IP: Protocolo de Internet. Otro nombre es Pila de Protocolos de Internet, y es la frase oficial usada en documentos oficiales de estándares. En este documento utilizaremos el término TCP/IP. La familia de Protocolos TCP/IP caracteriza un estándar de protocolos de comunicaciones entre sistemas informáticos. El protocolo TCP/IP actualmente constituye la infraestructura tecnológica más extendida y desarrollada sobre la que circulan las comunicaciones electrónicas (datos, voz, multimedia...). Su expansión se ha debido principalmente al desarrollo exponencial de la red mundial Internet. Dentro de los equipos que poseen una implementación de la pila de protocolos TCP/IP, se distinguen de forma más detallada dos grupos: 47 48 CAPÍTULO 3. FAMILIA TCP/IP • Sistemas: Son los equipos que engloban tanto a los clientes de un servicio o comunicación, ya sean PCs de sobremesa o estaciones de trabajo (que ejecutarán un sistema operativo cliente: Windows, Unix, MacOs...) así como dispositivos móviles (PDAs, teléfonos móviles,....), como a los servidores que proporcionan el servicio, típicamente ejecutando un sistema operativo servidor: Unix (incluyendo todas sus variantes: HP-UX, Linux, Solaris, AIX, ...), AS/400, Windows NT/2000, Novell Netware. Principalmente serán estos últimos el objetivo de los hackers, al contener información relevante. • Dispositivos de red: Son los encargados de que el tráfico de red fluya dentro o entre redes. Por tanto, engloban a los repetidores, puentes o bridges, concentradores o hubs, conmutadores o switches, encaminadores o routers, cortafuegos o firewalls, servidores de terminales y acceso (RAS) (que contienen un conjunto de módems o accesos RDSI), dispositivos de almacenamiento (storage appliance)...; los principales fabricantes son Cisco, 3com, Lucent, Nort, HP... TCP/IP está diseñado según una estructura de capas, fundamentada en el estándar de los protocolos de comunicaciones que diseñó la organización ISO, denominado OSI [9]. Cada una de las capas es responsable de llevar a cabo una tarea específica de la comunicación. 3.1.1 Redes La primera meta de diseño de TCP/IP fue construir una interconexión de redes que proporcionase servicios de comunicación universales: una red, o Internet. Cada red física tiene su propia interfaz de comunicaciones dependiente de la tecnología que la implementa, en la forma de una interfaz de programación que proporciona funciones básicas de comunicación (primitivas). Las comunicaciones entre servicios las proporciona el software que se ejecuta entre la red física y la aplicación de usuario, y da a estas aplicaciones una interfaz común, independiente de la estructura de la red física subyacente. La arquitectura de las redes físicas es transparente al usuario. 3.1. ¿QUÉ ES TCP/IP? 49 El segundo objetivo es interconectar distintas redes físicas para formar lo que al usuario le parece una única y gran red. Tal conjunto de redes interconectadas se denomina “Internetwork” o Internet. Para poder interconectar dos redes, se necesita un ordenador que esté conectado a ambas redes y que pueda retransmitir paquetes de una a la otra; tal máquina es un “router”. El término “router” en IP también se usa porque la función de encaminamiento es parte de la capa IP de la pila TCP/IP (ver figura 3.1 de la página 49). Figura 3.1: Dos conjuntos interconectados de redes, cada uno visto como una red lógica. Las propiedades básicas de un “router” son: • Desde el punto de vista de la red, es un host normal. • Desde el punto de vista del usuario, es invisible. El usuario sólo ve una gran red. 50 CAPÍTULO 3. FAMILIA TCP/IP Para ser capaz de identificar un host en la red, a cada se le asigna una dirección, la dirección IP. Cuando un host tiene múltiples adaptadores de red, cada adaptador tiene una dirección IP separada. La dirección IP consta de dos partes: dirección IP = <número de red><número de host> El número de red lo asigna una autoridad central y es unívoco en Internet. La autoridad para asignar el número de host reside en la organización que controla la red identificada por el número de red. 3.1.2 Estructura Interna El modelo básico de Internet es el modelo Cliente / Servidor . Modelo Cliente / Servidor [11] TCP es un protocolo orientado a conexión. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo Cliente / Servidor en las comunicaciones. Un Servidor es una aplicación que ofrece un servicio a usuarios de Internet; un Cliente es el que pide ese servicio. Una aplicación consta de una parte de servidor y una de cliente, que se pueden ejecutar en el mismo o en diferentes sistemas. Los usuarios invocan la parte cliente de la aplicación, que construye una solicitud para ese servicio y se la envía al servidor de la aplicación que usa TCP/IP como transporte. El servidor es un programa que recibe una solicitud, realiza el servicio requerido y devuelve los resultados en forma de una respuesta. Generalmente un servidor puede tratar múltiples peticiones (múltiples clientes) al mismo tiempo. La arquitectura de Internet está basada en capas. Esto hace más fácil implemetar nuevos protocolos. El conjunto de protocolos de TCP/IP, al estar integrado plenamente en Internet, también dispone de este tipo de arquitectura. 3.1. ¿QUÉ ES TCP/IP? 51 Según se ha desarrollado en el capítulo 1 el modelo de capas TCP/IP es algo diferente al propuesto por el modelo OSI. Su representación conduce al término pila de protocolos. Se puede usar para situar pero no para comparar funcionalmente TCP/IP con otras pilas como SNA y OSI. Capas de TCP/IP [10] La arquitectura de Internet está basada en capas. Esto hace más fácil de implementar nuevos protocolos. El conjunto de protocolos TCP/IP, al estar integrado plenamente en Internet, también dispone de este tipo de arquitectura. El modelo de capas de TCP/IP es algo diferente al propuesto por ISO (International Standard Organization) para la interconexión de sistemas abiertos OSI. Esta representación conduce al término pila de protocolos. Se puede usar para situar, pero no para comparar funcionalmente TCP/IP con otras pilas como SNA y OSI (ver figura 3.2 de la página 51). Figura 3.2: Capas y Protocolos del Modelo TCP/IP. 52 CAPÍTULO 3. FAMILIA TCP/IP 3.2 3.2.1 Protocolos de Aplicación Características de las Aplicaciones [7] Todos los protocolos de alto nivel tienen algunas características en común: • Pueden ser aplicaciones escritas por el usuario o aplicaciones estandarizadas y distribuidas con un producto TCP/IP. De hecho, la pila TCP/IP incluye protocolos de aplicación tales como: — TELNET para el acceso interactivo de una terminal a un host remoto. — FTP (“File Transfer Protocol”) para transferencias de alta velocidad de un disco a otro. — SMTP (“Simple Mail Tranfer Protocol”) como sistema de correo de Internet. Esas son aplicaciones implementadas más ampliamente, pero existen muchas otras. • Usan UDP o TCP como mecanismo de transporte. Recordar que UDP no es fiable ni ofrece control de flujo, por lo que en este caso la aplicación ha de proporcionar sus propias rutinas de recuperación de errores y de control de flujo. Suele ser más fácil desarrollar aplicaciones sobre TCP, un protocolo fiable, orientado a conexión. La mayoría de los protocolos de aplicación utilizan TCP, pero algunas aplicaciones se construyen sobre UDP para proporcionar un mejor rendimiento reduciendo la carga del sistema que genera el protocolo. La mayoría de ellas usa el modelo de interacción Cliente/Servidor. 3.2.2 TELNET (“Emulación de Terminal”) Una de las primeras utilidades que se encuentra a la interconexión de ordenadores es la posibilidad de acceder desde un único teclado y un único monitor (por comodidad), y con un único cable, a varios ordenadores, alguno de los cuales puede estar bastante distante (de manera que ciudadanos de un lado de un continente puedan acceder sin desplazarse a superordenadores especializados). 3.2. PROTOCOLOS DE APLICACIÓN 53 El estándar en acceso remoto es TELNET. Define un Terminal Virtual (NVT) y al inicio de la conexión negocia simétricamente (no hay cliente ni servidor en el protocolo, el cliente TELNET y el servidor se tratan como iguales) opciones del mismo, tales como Terminal Speed (1907), Terminal Type (1091), variables de entorno (1408). De esta manera en cada sentido se envía mensajes DL/WILL, DON‘T/WONT . Aunque pueda no parecerlo, se trata de un protocolo complejo (por su flexibilidad) aunque muy bien diseñado. Permite emular cualquier tipo de terminal, adaptándose a sus peculiaridades: manejo de la pantalla de distintos tamaños y con secuencias de control diferentes, manejo del teclado, juegos de caracteres, velocidades y temporizadores. De hecho probablemente en DARPA, cuando surge el proyecto Internet, vieran como un beneficio a corto plazo el simplificar sus complejas instalaciones con tantos ordenadores de tantas marcas. Utiliza NVT ASCII (7 bits), aunque hay opción para usar 8 bits. Las emulaciones más frecuentes son las (digital), y también es frecuente la IBM TN 3270 (que usa EBCDIC y zonas reservadas en pantalla). Hay muchas emulaciones para PC con distintas emulaciones de terminales concretos, definición de teclas de función, etc. Existe un carácter especial seleccionable para pasar a modo comando. Los comandos son close, open, mode, display, set echo... Se basa en TCP, soporta datos fuera de banda y utiliza el algoritmo de NAGLE (nunca más de un segmento sin asentir). 3.2.3 FTP (“Transferencia de Ficheros”) Permite intercambiar sobre TCP ficheros entre ordenadores con sistemas operativos diferentes UNIX, VMS, NT, DOS. Existen otras aplicaciones más simples como RCP (Remote Copy) o TFTP(sobre UDP, para cargar workstations sin disco). Pero FTP no es una simple aplicación de uso de TCP, tiene su complejidad 54 CAPÍTULO 3. FAMILIA TCP/IP al tener un interfaz de usuario (con comandos o gráfico) y haber de manejar distintos sistemas de ficheros (con sus directorios/.., ficheros de caracteres (de 7, 8 o 9 bits) u organizados en registros) y mecanismos de control de acceso. Tiene dos conexiones: Una es para transferir comandos de control (al puerto 21), gestionada por un autómata de estados, por lo que se procesa una transferencia de cada vez, y se establece otra en sentido opuesto (se debe tener cuidado con los firewalls) por cada fichero. El interfaz de usuario permite ejecutar comandos de conexión: open, close, user, password, de navegación por el sistema de directorio y transferencia. Algunos se transforman en órdenes para el servidor y otros son órdenes para ejecutar localmente. La semántica de las operaciones hay que entenderla desde el cliente: • get: traer al ordenador donde se está ejecutando el cliente. • put: para enviar un fichero local hacia el servidor comando. En general se supone que se está en el sistema de ficheros remoto: • dir: para obtener el contenido de un directorio del servidor. Hay versiones que permiten intercambio de ficheros entre dos máquinas remotas, sin pasar por el cliente, y la mayoría de los servidores recientes aceptan la orden reconnect, de manera que si se corta una transferencia, no es necesario empezar desde el principio. 3.2.4 DNS (“Domian Name Service”) Muchos usuarios prefieren utilizar un nombre que sea más fácil de recordar que una dirección numérica. Para hacer esto, un servidor debe transformar el nombre en la dirección correcta. Esto se hacía originalmente en Internet mediante una tabla única situada en un servidor central, donde estaban contenidos todos los nombres de host. 3.2. PROTOCOLOS DE APLICACIÓN 55 Esto era posible debido a que sólo existían unos cientos de servidores, pero debido a un gran aumento del número de servidores, fue necesario descentralizar el servidor de nombres y dividirlo en múltiples DNS (Servidores de Nombres de Dominio). Esto redujo el tiempo de respuesta del servidor, y disminuyó el tráfico en la red. La estructura del sistema de dominios es similar a la estructura de directorios del DOS o del UNIX. Es decir, es una estructura en forma de árbol, y los archivos están identificados con una ruta de acceso. La diferencia es que en el DNS la ruta empieza con el nombre del nodo en vez del directorio raíz. Además, las rutas en un servidor DNS se escriben en sentido inverso a las del DOS. Desde el punto de vista de un programa el funcionamiento de este servicio en muy simple. El programa proporciona un nombre de dominio, y el DNS le devuelve su direccion IP. Nombres de Dominio El programa de usuario proporciona el nombre de dominio como una secuencia de palabras. Las palabras están listadas de izquierda a derecha, y la que representa la zona más cercana al usuario es la primera. Los programas DNS manipulan el nombre del dominio proporcionado por el usuario de manera que sea fácilmente interpretado por otros programas. Para los programas, cada nombre de dominio contiene una secuencia de etiquetas, y cada etiqueta contiene un octeto de longitud seguido por una cadena de caracteres de un subconjunto de caracteres . Este subconjunto está formado por caracteres alfa (A-Z), dígitos (0-9) y un signo menos (-). Arquitectura del DNS DNS es un protocolo de la capa de aplicación y está clasificado como una utilidad por convenio entre los usuarios y el administrador del sistema, en vez de una parte integrada en los servicios de usuario. Elementos de Programas de DNS Siguiendo el modelo Cliente / Servidor, DNS consiste en un usuario, un cliente, un servidor de nombres local y un servidor de nombres remoto. En 56 CAPÍTULO 3. FAMILIA TCP/IP términos de las especificaciones, DNS consiste en un programa de usuario, un cliente, un servidor de nombres, y un servidor de nombres remoto. Cada host debe implementar un mecanismo utilizando el cliente DNS para convertir nombres de host en direcciones IP. Elementos de Datos de DNS Un nodo DNS se representa por una etiqueta en el interior del nombre de dominio, y todos los nodos tienen unos Archivos de Recursos (Resource Records (RRs)) que contienen información que habilita el programa DNS para encontrar el nombre de dominio solicitado. Funcionamiento del DNS Un programa manda una solicitud a un cliente (resolver) que contiene un nombre de dominio para el cual se quiere la dirección IP asociada. La solicitud se suele hacer con una subrutina, o un puntero hacia el nombre de dominio en la pila del sistema. Los nombres de dominio en el cache del Resolver (cliente) están en un formato estándar contenido en RRs. Existen tres posibles respuestas de un Resolver al programa de usuario: • Uno o más RRs conteniendo la dirección IP solicitada. En el caso de que el nombre proporcionado fuera un alias, el Resolver simplemente devuelve el nombre de dominio al que hace referencia el alias. • Un mensaje de error en el nombre, que significa que el nombre proporcionado no existe. • Un error de datos no encontrado, que significa que el nombre proporcionado existe, pero no se refiere a ninguna dirección IP. Formato de un Mensaje DNS El Protocolo DNS utiliza mensajes enviados por el UDP para trasladar solicitudes y respuestas entre servidores de nombres. La transferencia de zonas completas la hace el TCP. El formato de un mensaje DNS tiene cinco partes: • Cabecera define el formato de las otras partes. 3.2. PROTOCOLOS DE APLICACIÓN 57 • Pregunta es el objetivo a resolver. • Respuesta es la resolución del objetivo. • Autoridad es la referencia a un servidor autorizado. • Adicional es información relacionada, pero no la respuesta. 3.2.5 SMTP (“Simple Mail Transfer Protocol”) El corre electrónico (E-Mail) es probablemente la aplicación TCP/IP más usada. Los protocolos de correos básicos proporcionan intercambio de correo y mensajes entre hosts TCP/IP; se han añadido servicios para la transmición de datos que no se pueden representar con texto ASCII de 7 bits. Hay tres protocolos estándares que se aplican a este tipo de correo. Todos son recomendados. El término SMTP se emplea con frecuencia para referirse a la combinación de los tres protocolos, por su estrecha interrelación, pero estrictamente hablando, SMTP es sólo uno de los tres. Normalmente, el contexto hace evidente de cuál de los tres se está hablando. Cuando haya ambiguedad, se emplearán los números STD o RFC. Los tres estándares son: • Un estándar para el intercambio de correo entre dos ordenadores que especifica el protocolo usado para enviar correo entre hosts TCP/IP. Este estándar es SMTP. • Un estándar para el formato de los mensajes de correo, contenido en dos RFCs. Uno de ellos describe la sintaxis de las cabeceras y su interpretación, otro describe como un conjunto de documentos de tipos diferentes del texto ASCII plano se pueden usar en el cuerpo del correo. El nombre oficial para este estándar es MAIL. • Un estándar para el encaminamiento de correo usando el DNS . El nombre oficial del protocolo para éste es DNS-MX. El STD 10/RFC 821 establece que los dos datos enviados por SMTP son ASCII de 7 bits, con el bit de orden superior a cero. Esto es adecuado para 58 CAPÍTULO 3. FAMILIA TCP/IP mensajes en inglés, pero no para otros lenguajes o datos que no sean texto. Hay dos estrategias para superar estas limitaciones: • MIME (“Multipurpose Internet Mail Extensions”), definido en los RFCs 1521 y 1522, que especifica un mecanismo para codificar texto y datos binarios en ASCII de 7 bits. • SMTPSE (“SMTP Servie Extensions”), que define un mecanismo para extender las posibilidades de SMTP más allá de las limitaciones impuestas por RFC 821. Cómo funciona SMTP SMTP está basado en la entrega punto a punto; un cliente SMTP contactará con el servidor SMTP del host de destino directamente para entregar el correo. Guardará el correo hasta que se haya copiado con éxito en el receptor. Esto difiere del principio de retransmisión común a muchos sistemas de correo en las que el correo atraviesa un número de host intermedios de la misma red y donde una transmisión con éxito implica sólo que el correo ha alcanzado el host correspondiente al siguiente salto. En varias implementaciones, existe la posibilidad de intercambiar correo entre los sistemas de correo locales y SMTP. Estas aplicaciones se denominan pasarelas o puentes de correo. Enviar correo a través de una pasarela puede alterar la entrega punto a punto, ya que SMTP sólo garantiza la entrega fiable a la pasarela, no al host de destino, más allá de la red local. La transmisión punto SMTP en estos casos es host-pasarela, pasarela-host o pasarela-pasarela. SMTP no define lo que ocurre más allá de la pasarela. CSNET proporciona un interesante ejemplo de servicio de pasarela de correo. Diseñada en principio como un servicio barato para interconectar centros científicos y de investigación, CSNET opera una pasarela que permite a sus suscriptores enviar y recibir correo en Internet con sólo un módem con dial. La pasarela sondea a los suscriptores a intervalos regulares, les entrega su correo y recoge el correo de salida. A pesar de no ser una entrega punto-a -punto, ha demostrado ser un sistema muy útil (ver figura 3.3 de la página 59). Pasarela SMTP 3.2. PROTOCOLOS DE APLICACIÓN 59 Figura 3.3: Modelo SMTP Una pasarela SMTP es un host con dos conexiones a redes distintas. Las pasarelas SMTP se pueden implementar de forma que conecten distintos tipos de redes. Una pasarela SMTP-RSCS/NJE se configura utilizando un fichero de configuración SMTP como el que se muestra abajo. Para configurar un host que no es pasarela, no se debe especificar la sentencia GATEWAY (ver figura 3.4 de la página 59). Figura 3.4: SMTP-RSCS/NJE Mail Gateway. 60 CAPÍTULO 3. FAMILIA TCP/IP Figura 3.5: MIME (Multipurpose Internet Mail Extensions) 3.2.6 MIME (“Multipurpose Internet Mail Extensions”) MIME es un estándar que incluye mecanismos para resolver estos problemas en una forma con un alto grado de compatibilidad con los estándares RFC 822. Como el correo atraviesa una pasarela se puede dirigir a otras pasarelas, que pueden usar distintos protocolos de mensajería, en el caso general al emisor no le es posible determinar el mínimo común denominador de las capacidades de cada una de las etapas que atraviesa el mensaje. Por este motivo, MIME asume el caso: transporte ASCII de 7 bits, que puede no seguir estrictamente el RFC 821. No define ninguna extensión al RFC 821, sino que se limita sólo a las extensiones incluidas en el RFC 822. De esta forma, un mensaje MIME puede ser enrutado a través de cualquier número de redes capaces de transmitir mensajes RFC 821. Se describe en dos partes: • Protocolos para incluir objetos distintos de los mensajes de correo US ASCII , dentro de mensajes RFC 822. El RFC 1521 los describe. • Un protocolo para codificar texto no US ASCII en los campos de cabecera según el RFC 822. El RFC 1522 lo describe. Aunque el RFC 1521 proporciona un mecanismo adecuado para describir dato de texto de mensajes X.400 en una forma no compatible con el RFC 822 3.2. PROTOCOLOS DE APLICACIÓN 61 no dice cómo se han de mapear las partes de los mensajes X.400 a las de los mensajes MIME. Esta conversión está definida en los RFCs 1494, 1496 que actualizan los protocolos de conversión de RFC 822 a X.400. El MIME es un borrador. Su status es electivo. ¿Cómo funciona MIME? Un mensaje MIME debe contener un campo de cabecera con el siguiente texto: MIME-Version: 1.0 Como en el caso de las cabeceras RFC 822, los nombres de los campos de la cabecera MIME no son sensibles a mayúsculas y minúsculas, pero los valores de los campos pueden serlo, según su nombre y contexto. Los valores de los campos MIME señalados abajo no lo son, a menos que se diga lo contrario. La sintaxis general para los campos de la cabecera MIME es la misma que en RFC 822, por lo que el siguiente campo: MIME-Version: 1.0 (comentario). Es válido ya que las frases entre paréntesis se tratan como comentarios y se ignoran. En MIME se definen cinco campos de cabecera. 3.2.7 Protocolos Para el Acceso a Internet WWW (World Wide Web) [11] Es un sistema de información hipermedia que ha revolucionado Internet en los años 90. Se basa en un protocolo de transferencia de información (HTTP), que utilizan los programas cliente (navegador o browser) para recuperar datos en forma de páginas en un formato normalizado (HTTP) provenientes de servidores dispersos por Internet. El usuario puede seleccionar otras páginas definidas mediante URLs que aparecen resaltadas en las páginas como hiperenlaces mediante un interfaz amigable. La publicación es un método rápido (porque la actualización tiene efectos 62 CAPÍTULO 3. FAMILIA TCP/IP inmediatos en quienes acceden a la información) y económico de poner información a disposición de cualquiera (en todo el mundo) que toma la iniciativa (igualdad de oportunidades) de pedirla. El modelo inicial de navegar de página en página buscando información se ha enriquecido con la proliferación de herramientas de búsqueda (spiders, crawlers, robots) así como el acceso a páginas generadas dinámicamente como respuesta a consultas interactivas (CGI). Las capacidades iniciales de visualización se han extendido con la evolución de HTML y la aparición de otros lenguajes para representación de objetos tridimensionales (VRML), ejecución en local de aplicaciones (JAVA) aumentando la interactividad. La riqueza del entorno ha provocado una demanda para incorporarle características de seguridad mejorada (SSL) que permitan extender el modelo de acceso a la información a aspectos que pueden cambiar tanto el mundo como el comercio electrónico (SET). Protocolo HTTP (HyperText Transfer Protocol) Es un protocolo sin estado: el servidor no conoce anteriores consultas del clientes. No sabe qué ha pedido antes, ni qué puede pedir en el futuro. Para guardar el estado hay que usar cookies. El cliente navega libremente y en cada transacción trae un documento: • Inicia una conexión . • Se trae (si puede) el documento. • Cierra la conexión. Si la página tiene varios componentes (gráficos), cada uno supone una conexión (por defecto hacen 4 concurrentes) aunque sea contra el mismo servidor. Está pensado para sistemas de información hipermedia distribuido y colaborativo, aunque su uso se extiende a otras aplicaciones. Surge en WWW en 1990. La primera versión permitía simplemente transferencia de datos en bruto por Internet, HTTP siguiente mejora al incorporar formato tipo MIME con 3.2. PROTOCOLOS DE APLICACIÓN 63 metainformación respecto de los datos y modificadores en la semántica petición / respuesta. Pero causa problemas de prestaciones en el servidor backoff de cada conexión, una conexión por elemento de la página en lugar de una única. El cliente envía un método, URI y versión del protocolo, y después pueden ir modificadores de la petición en formato MIME con información sobre las capacidades del cliente y el posible contenido del cuerpo. Acaba la petición una línea en blanco. La evolución es constante, incorporando cosas como que el cliente no tenga que esperar a recibir una respuesta del servidor para enviar una nueva petición, que las cookies se normalicen o que se propongan un mecanismo de autenticación mediante extracto. Aunque no ha tenido mucha difusión, SUN propuso WebNFS, un protocolo alternativo para descargar bajo demanda sólo partes de la página a visualizar de manera que según el usuario avanza va descargando más partes del documento (con HTTP han de bajarse completas, y si los gráficos no tienen su tamaño definido, los visores no visualizan nada hasta tenerlos. Por todo ello, se recomienda que las páginas sean pequeñas y que para documentos grandes se emplee Acrobat o Envoy). HTTP es un protocolo rico y complejo que sigue en evolución. HTTPng tendrá características que permitan utilizarlo para aplicaciones distribuidas de otros tipos, con redirección a otros protocolos para audio/video (no necesariamente sobre transporte TCP) y con nivel de presentación. Protocolo HTML (Hyper Text MarkUp Lenguaje) Es un lenguaje basado en marcas para identificar las partes del documento. Define la estructura del documento, no su apariencia. El programa cliente interprerta el documento recibido (y recupera todos sus componentes gráficos sino se ha optado por prescindir de las imágenes) y lo visualiza, por lo que es el navegador quien decide la apariencia final. No todos los navegadores muestran igual documento. Es más, algunos si detectan algún defecto en la secuencia de códigos HTML de la página optan por no visualizarla. La documentación se genera con editores (basta uno de texto plano, aunque 64 CAPÍTULO 3. FAMILIA TCP/IP conforme se añade riqueza van siendo necesarios otros especializados y con capacidad de gestionar el conjunto de las páginas). Se almacena en los servidores y los clientes solicitan, recuperan y muestran el documento elegido. Además también pueden recuperarse para otros fines, como indexar la información. Es un meta-lenguaje formal sin semántica, que se concreta mediante DTDs (Document Type Definitions) que definen la información de estilo para formatear su presentación. Los datos y la estructura son independientes, esto es bueno cuando grupos de personas colaboran en introducir información que debe tener apariencia similar, a diferencia de los procesadores WYSIWYG. Extendiendo HTML Los documentos se pueden clasificar en: • Estáticos: Sólo cambian cuando el autor modifica el fichero. • Dinámicos: Páginas creadas por el servidor en el momento que le llega la petición, por programa que se ejecutan en el servidor (CGI), y que toman información, de una base de datos y la muestran mediante una página HTML. • Activos: Una aplicación en el cliente actualiza la presentación. La aplicación se descarga desde el servidor, con el que interactúa. Hay un tag para forzar que se refresque el contenido periódicamente (el browser vuelva a cargar las páginas). Puede utilizarse para recuperar páginas estáticas que se sabe que el servidor cambia cada cierto tiempo pero que no se generan dinámicamente en cada petición (por ejemplo, un servidor de teletipos). Alto gasto de ancho de banda. La generación de documentos activos se basa en que al descargarla se bajan instrucciones interpretadas por el navegador (scripts) o aplicaciones ejecutables. Los scripts permiten crear sencillas aplicaciones que respondan a ciertos eventos que captura el navegador y tienen el control sobre lo que visualiza o invoca. 3.2. PROTOCOLOS DE APLICACIÓN 65 Netscape incorporó a su navegador LiveScript, que junto con SUN hizo que evolucionara comercialmente a JavaScript. Sólo se parece a JAVA en la sintaxis y el nombre. Las instrucciones vienen en la propia página HTML en tags que solo interpretan algunos navegadores. La alternativa de Microsoft es VBScript. EXMAscript parece ser la vía hacia la normalización de esta rápida forma de aportar interactividad. Protocolo Firewalls (Cortafuegos) Uno de los principales problemas de seguridad son los accesos externos no autorizados a la información almacenada en los ordenadores, ya estén dedicados a servir información a Internet o bien estén en las redes privadas conectadas a Internet aunque sin intención de ser accedidos desde ella. Por ello hay que definir una política de accesos e implementarla, a ser posible en un punto único (es más fácil vigilar una puerta que cien) que deseablemente debe ser invisible e inaccesible desde el exterior. Los cortafuegos (firewalls) son sistemas o grupos de sistemas que implementan una política de control de acceso entre dos redes, prohibiendo o permitiendo explícitamente una determinada comunicación, en función del lugar de procedencia, el tipo de servicio o los parámetros que se configuren. Estos dispositivos se colocan en el acceso de una red considerada segura a otra que se considera insegura (como Internet), de modo que se controlan los mensajes que pasan de una a otra y se permite su progresión o no. Este control se realiza de muy diversas maneras (por tipo de servicio, por usuario, por direcciones de origen y/o destino) Además, la mayoría de los cortafuegos informan de los intentos de acceso no permitido, estableciendo acciones de alarma al detectarse actividades sospechosas, y generan estadísticas varias. El firewall constituye un punto único donde fijar toda la seguridad, en lugar de obligar a una más cuidadosa gestión de todos los sistemas, por ello debe ser un elemento de la máxima confianza, cuestión fundamental a la hora de su elección. Por ser los elementos más expuestos a ataques (deberían ser transparentes 66 CAPÍTULO 3. FAMILIA TCP/IP para evitarlo),deben someterse a auditorías periódicas, de manera que sean realmente eficaces en una detección precoz de problemas que puedan afectar la integridad (accesos fraudulentos) o a las prestaciones (tráfico que deteriore la capacidad del enlace con Internet). Tipos de Cortafuegos (Firewalls) Se podrían clasificar de la siguiente manera (aunque los productos concretos pueden cumplir varias de estas funciones simultáneamente): • Filtrado de paquetes: se trata de routers con reglas que permiten o impiden pasar a datagramas según ciertas características (entrantes, a puertos o deseados). Son muy rápidos (trabajan a muy bajo nivel). Los más sofisticados incluso entienden los protocolos FTP comprobando la secuencia de mensajes y el estado de las conexiones. Los routers bien configurados hacen esto: Nivel de aplicación (proxies): un host con dos interfaces (dual comed) pero que no encamina ofrece información al exterior y realiza las consultas que solicitan los clientes de la red privada como si partieran de él. Al ser intermediarios a muy alto nivel, han de configurarse para cada aplicación, y se consideran más seguros, seguramente porque un fallo por omisión supone una falta de servicio, no una filtración (ver figura 3.6 de la pág. 66). Figura 3.6: Firewall: Proxy Topología Típica Aspectos Fundamentales Los aspectos principales son: 3.2. PROTOCOLOS DE APLICACIÓN 67 Figura 3.7: Topología Típica • El firewall debe ser invisible (no se ataca lo inalcanzable). • Debe estar bien configurado (dado que confiamos en su buena configuración en lugar de en la configuración máquina por máquina): deshabilitarlo todo y luego ir habilitando lo que vaya haciendo falta: — A qué máquinas se puede acceder desde fuera (rutas, listas de control de acceso). — Qué servicios ofrecen las máquinas accesibles y desde dónde. — Quiénes pueden salir y cómo (proxies, socks). Las direcciones origen, incluso desde la red privada, deben ser direcciones InterNIC. — Pasarela de correo electrónico. • Monitorizar el tráfico para detectar plantillas de ataques. • Almacenar logs de acceso y comprobarlos. (Si ocurre lo peor, aún serlo más si no sabés cuánto te ha afectado). Suele ser necesario un filtrado automático y programar eventos. • Definir procedimientos de auditoría y ejecutarlos periódicamente. 68 CAPÍTULO 3. FAMILIA TCP/IP Protocolo GOPHER (Navegación por menús) Desarrollado en Minnesota, pretende ofrecer un acceso homogéneo a recursos distribuidos por la red. En esa universidad que tiene por mascota unas ardillas locales (), querían un interfaz sencillo para que los nuevos alumnos pudiesen acceder a toda información (directorios CSO, normas, etc). Y crearon este sistema para que fuera por (go fer) la información sin necesidad de entrenamiento previo. Su novedad es que su interfaz senillo abstrae recursos físicos. Objetos tipados distribuidos, seleccionados desde menú, con un visor para cada uno, se ven igual. Este objetivo de permitir un acceso homogéneo a recursos de red de tipos variados es similar (y coetáneo) al de Berners-Lee con su WWW. Pero en este caso el interfaz del cliente está basado en menús: basta seleccionar el número de la opción elegida. Fuerza una estructura jerárquica de la información: hay que registrar cada servidor para que aparezca en el menú y lo puedan elegir (quién es administrado, localización, tema), lo que supone, salvo que se pida lo contrario, ser enlazado en Verónica. La universidad de Minnesota es la autoridad mundial. En Europa el enganche principal está en funet.fi. También se parece en que maneja objetos tipados, pero o son directorios o son información, no mezcla contenido con referencias (y menos con gráficos entre enlaces). Tiene incluso bookmark para que anote sus enlaces favoritos, y no es case sensitive (no distingue mayúsculas de minúsculas). Hay clientes con capacidad gráfica y muestran cada objeto final en una ventana ( como WWW en su origen). Incluso en 1992 se incorpora con Gopher + que al seguir un enlace se pueda traer información con el tipo que quiera (texto, Postscript). Pero, igualmente no se compara con WWW, es mucho rival. 3.2. PROTOCOLOS DE APLICACIÓN 3.2.8 69 Protocolos Para La Gestión de Red SMI (“Structure and Identification of Management Information”) El SMI define las reglas para describir los objetos gestionados y cómo los protocolos sometidos a la gestión pueden acceder a ellos. La descripción de los objetos gestionados se hace utilizandos un subconjuneto de ASN.1 (“Abstract Syntax Notation 1”, Estándar ISO 8824) es un lenguaje de descripción de datos. La definición del tipo de objeto consta de cinco campos: • Objeto: Nombre textual, llamado descriptor del objeto, para el tipo del objeto, junto con su correspondiente identificador de objeto definido abajo. • Sintaxis: La sintaxis abstracta para el tipo de objeto. Las opciones son SimpleSyntax (entero, octeto de caracteres, identificador de objeto, Null), ApplicationSyntax (dirección de red, contador, escala, tick, opaco) y otro tipo de sintaxis de aplicación. • Definición: Descripción textual de la semántica del tipo. • Acceso: Sólo lectura, sólo escritura, lectura-escritura o inaccesible. • Status: obligatorio, opcional u obsoleto. Como ejemplo podemos tener: (ver figura 3.8 de la página 69) Este ejemplo muestra la definición de un objeto contenido en el MIB(“Management Information Base”). Su nombre es sysDescr y pertenece al grupo sistema. Un objeto gestionado no sólo ha de ser descrito, también debe ser identificado. Esto se hace utilizando el Identificador de Objetos (“Object Identifier”) ASN.1 como si fuera un número de teléfono, reservando grupos de números para distintas localizaciones. En el caso de la gestión de red para TCP/IP, el número fue 1.3.6.1.2 y SMI lo usa como base para la definición de nuevos objetos. Este número se obtiene al unir a grupos de números con el siguiente significado: • El primer grupo define al nodo administrador: 70 CAPÍTULO 3. FAMILIA TCP/IP Figura 3.8: Definición de un objeto contenido en el MIB. — (1) para ISO. — (2) para CCITT. — (3) para la unión ISO-CCITT. • El segundo grupo para el nodo administrador ISO define (3) para su uso por parte de otras organizaciones. • El tercer grupo define (6) para su uso por parte del DoS (“U.S. Departament of Defense”). • En el cuarto grupo, el DoD no ha indicado cómo ha de gestionarse su grupo correspondiente por lo que la comunidad de Internet ha asumido (1). • El quinto grupo fue aprobado por el IAB para ser: — — — — (1) (2) (3) (4) para para para para el uso del directorio OSI en Internet. la identificación de objetos con propósitos de gestión. la identificación de objetos con fines experimentales. la identificación de objetos para uso privado. MIB (“Management Information Base”) El MIB define los objetos que pueden ser gestionados para cada capa en el protocolo TCP/IP. Hay dos versiones, MIB-I and MIB-II, está clasificado 3.2. PROTOCOLOS DE APLICACIÓN 71 ahora como protocolo histórico con status no recomendado ( ver figura 3.9 de la página 71) Figura 3.9: Definición de grupo. Cada nodo gestionado soporta sólo los grupos apropiados. Por ejemplo, si no hay pasarela, el grupo EGP(“Protocolo de Puerta de Enlace Exterior”) no tiene por qué estar incluido. Pero si un grupo es apropiado, todos los objetos en ese grupo deben estar soportados. La lista de objetos gestionados definidos deriva de aquellos elementos considerados esenciales. Este enfoque; consistente en tomar sólo los objetos esenciales no es restrictivo, ya que el SMI proporciona mecanismos de extensibilidad tales como la definición de una nueva versión de MIB o de objetos privados o no estandarizados. El grupo de interfaces contiene dos objetos de nivel superior: el número de interfaces del nodo (ifNumber) y una tabla con información de estas (ifTable). Cada entrada de la tabla (ifentry) contienen los objetos de esa interfaz. Entre ellos, el tipo de interfaz (iftype) se identifica en el árbol MIB con notación ASN.1 como 1.3.6.1.2.1.2.2.1.3 (ver figura 3.10 de la página 72) 72 CAPÍTULO 3. FAMILIA TCP/IP Figura 3.10: Indetificador de Objetos. 3.2. PROTOCOLOS DE APLICACIÓN 73 SNMP (“Simple Network Management Protocol”) SNMP añadió las mejoras de muchos años de experiencia con SGMP y le permitió trabajar con los objetos definidos en el MIB con la representación del SIM. NMS (“Network Management Station”) se define como una estación que ejecuta aplicaciones de gestión de red (NMA) que monitorizan y controlan elementos de red (NE) como hosts, pasarelas, y servidores de terminales. Estos elementos usan un agente de gestión (MA) para realizar estas funciones. El SNMP para la comunicación de información entre las NMS y los MA (ver figura 3.11 de la página 73). Figura 3.11: Componentes de SNMP. Todas las funciones de los MA son sólo alteraciones (set) o consultas (get) de variables, limitando así el número de funciones esenciales a dos simplificando el protocolo. En la comunicación NE-NMS, se utlizan un número limitado de mensajes no solicitados (traps) para informar de eventos asíncronos. Del 74 CAPÍTULO 3. FAMILIA TCP/IP mismo modo, en un intento de mantener la sencillez, el intercambio de información requiere sólo un servicio de datagramas y cada mensaje se envía en un único datagrama. Esto significa que SNMP es adecuado para una gran vairedad de protocolos de transporte. Las entidades que residen en las NMS y los elementos de red que se comunican con otros a través de SNMP se denominan entidades de . Los procesos que las implementan son las entidades de protocolo. Un agente SNMP con un conjunto arbitrario de entidades es una comunidad SNMP, en la que cada entidad se nombra con un ristra de bytes que debe ser unívoca para esa comunidad. CMOT (“Common Management Information Protocol over TCP/IP”) CMOT es la arquitectura de gestión de red desarrollada con vistas a mantener una relación más estrecha con el CMIP (“Common Management Information Protocol”) de OSI (“Open System Interconnection”). Con esta premisa, CMOT se divide en un modelo organizacional, funcional e informacional. En los dos primeros el mismo concepto de OSI se usa en CMOT y SNMP. La identificación de objetos se efectúa empleando el subarbol relacionado con DoD(“U.S. Departament of Defense”) con subdivisiones en lo que respecta a gestión, derectorio, experimental y privado. Todos los objetos de gestión se definen en el MIB (“Management Information Base”), y se representan con el SMI (“Structure and Identification of Management Information”), un subconjunto de ASN.1 (“Abstract Syntax Notation 1 de OSI”) (ver figura 3.12 de la página 74). En el mundo OSI, la gestión sólo se puede producir sobre conexiones establecidas por completo entre managers y agentes. CMOT permite el intercambio de información de gestión usando servicios no orientados a conexión (datagramas). Pero para mantener la misma interfaz del servicio que requiere CMIP, llamada CMIS (“Common Management Information Services”) la arquitectura de CMOT define una nueva capa, el LPP (“Lightweigt Presentation Protocol”). Esta capa se ha definido para proporcionar los servicios de presentación quenecestia CMIP de tal forma que la totalidad de los estándares OSI para la gestión de red se adapten a la arquitectura TCP/IP de CMOT (ver figura 3.13 de la página 75). 3.2. PROTOCOLOS DE APLICACIÓN Figura 3.12: Componentes de CMIP sobre TCP/IP. Figura 3.13: LPP (Lightweight Presentation Protocol). 75 76 CAPÍTULO 3. FAMILIA TCP/IP El DPI de SNMP (“Dsitributed Programming Interface”)+ SNMP define un protocolo que permite efectuar operaciones en una serie de variables. Este conjunto de variables (el MIB) y un conjunto básico o núcleo está predefinidas. Sin embargo, el diseño del MIB cuenta con la posibilidad de expandir este núcleo. Desafortunadamente, las implementaciones convencionales de agentes SNMP no suministrarán mecanismos para que el usuario cree nuevas variables convencionales de agentes SNMP no suministran mecanismos para que el usuario cree nuevas varibales. El DPI enfoca esta cuestión proporcionando mecanismos que permiten al usuario añadir, borrar o reemplazr dinámicamente variables en el MIB local sin tener que recompilar el agente SNMP. Esto es posible gracias a un subagente que se comunica con el agente a través del DPI. El DPI de SNMP habilita a un proceso para registrar la existencia de una variable MIB en el agente SNMP, que pasará la solicitud al subagente. El subagente devuelve a su vez al respuesta apropiada al agente. Éste, finalmente, empaqueta una respuesta SNMP y envía la respuesta a la NMS que inició la solicitud. El subagente es completamente invisible (transparente) para la NMS (ver figura 3.14 de la página 76). La comunicación entre el agente SNMP y sus clientes (subagentes) tiene lugar sobre un canal. Típicamente se trata de una conexión TCP, pero se pueden emplear otros protocolos de transporte orientados a conexión. SNMPv2 (“Simple Netword Management Protocol Version 2”) La infraestructura de la versión 2 de SNMP se publicó en abril de 1993 es un stándar con status electivo. Esta infraestrcutura consta de las siguientes disciplinas: • SMI (“structure of Management Information”): Definición del subconjunto de ASN.1 para la creación de módulos MIB. • Convenios textuales: Definiciión del conjunto inicial de convenios textuales disponible para todos los módulos MIB. • Operaciones del protocolo: Definición de las operaciones del protocolo con respecto a las PDUs enviadas y recividas en el RFC 1448. 3.2. PROTOCOLOS DE APLICACIÓN 77 Figura 3.14: Descripción del DPI de SNMP. • Mapeados de transporte: Este MIB define los objetos gestionados que determinan el comportamiento de la entidad SNMPv2. El Nuevo Modelo Administrativo Uno de los propósitos del modelo admistrativo para SNMP v2 es definir como la infraestructura administrativa se aplica para llevar a cabo una administración de red efectiva en diversas configuraciones y entornos. El modelo administrativo implica el uso de diferentes entidades en el intercambio de mensajes. De esta forma, representa abandonar el basado en comunidades del SNMP v1 original. Al identificar sin ambiguedad al emisor y al receptor de cada mensaje, esta nueva estrategia mejora el esquema histórico de comunidades ya que permite un diseño de control de acceso a los datos más conveniente así como el empleo de protocolos de seguridad asimétricos (con llave pública) en el futuro (ver figura 3.15 de la página 78). 78 CAPÍTULO 3. FAMILIA TCP/IP Figura 3.15: Formato del Mensaje SNMPv2. 3.2.9 Otros Protocolos de Aplicación Hay una serie de otros protocolos de aplicación que no están documentados en los RFCs, pero que se implementan en diversos productos. Los siguientes secciones describen algunos de estos protocolos. NDB (“Network Database”) El protocolo NDB (“Netwoek Database”) no es un estándar de Internet. NDB define un protocolo para orientado a sistemas de bases de datos relacionales en entorno TCP/IP. Tiene los siguientes objetivos: • Permitir a los usuarios y aplicaciones de cualquier estación de trabajo o mainframe lanzar sentencias SQL, bien de modo interactivo o embebidas en los programas de aplicación, para acceder a cualquier base de datos de cualquier sistema operativo. • Distribuir las aplicaciones de la base de datos de un host a una máquina concreta. NDB se construye sobre RPC (“Remote Procedure Call”), en cualquiera 3.2. PROTOCOLOS DE APLICACIÓN 79 de sus implementaciones, utilizando el modelo Cliente / Servidor (ver figura 3.16 de la página 79). Figura 3.16: Componentes del Protocolo NDB. 1. La capa del Cliente / Servidor RPC : Se ocupa del transporte de datos a través de redes TCP/IP: creación de zócalos, interfaces con PORTMAP, enviar y recibir datos. 2. La capa del Cliente / Servidor NetDB: gestiona Unidades de Trabajo (“Units of Work”, UOWs), multi-hilos, además de conversión de datos del/al formato ASN.1 (“Abstract Syntax Notation 1”). 3. La capa de la utilidad DB: Sirve de interfaz con la base de datos real. NIS (“Network Information Systems”) El NIS no es un estándar de Internet. Fue desarrollado por Sun Microsystems. Originalmente se le conocía como las Páginas Amarillas. Es un sistema de bases de datos distribuidas que permite compartir la información del sistema de entornos basados en UNIX o AIX. Sus ventajas son: • Proporcina un espacio de nombres consistente para los identificadores de usuario y grupo en un elevado número de sistemas. 80 CAPÍTULO 3. FAMILIA TCP/IP • Reduce el tiempo y esfuerzo del usuario para la gestión de IDs de usuarios y grupo, así como de la propiedad de sistemas de ficheros NFS. • Reduce el tiempo y esfuerzo de los administradores del sistema para la gestión de IDs de usuario y grupo, así como de la propiedad de sistemas de ficheros NFS. NIS utiliza el modelo Cliente / Servidor. Un dominio NIS es una colección de sistemas consistente en: Servidor NIS maestro: Mantiene Mapas, o bases de datos, que contienen información del sistema tal como passwords y nombres de hosts. Servidor(es) NIS esclavo(s): Se pueden definir para aliviar al servidor NIS maestro de su carga de trabajo o cuando este no está disponible. Cliente(s) NIS: Son el resto de los sistemas servidos por serviores NIS. Los clientes NIS no mantienen mapas NIS, interrogan a los servidores NIS acerca de la información del sistema. Cualquier cambio en el mapa NIS de un sistema se efectúa sólo en el servidor NIS maestro, que a su vez propaga los cambios a los servidores NIS esclavos. La velocidad de una red determina el rendimiento y disponibilidad de los mapas NIS. Al usar NIS, se debería ajustar el número de esclavos con el fin de optimizar estos parámetros. Intefaz de zócalos CICS El CCICS (“Customes Information Control System”) es un sistema de procesamiento de alto rendimiento. Se desarrolló en IBM. CICS es el sistema OLTP (“Online Transaction Processing”) más usado del mercado en la actualidad. Proporciona a los programas de transacciones para comunicaciones de datos (con SNA) y bases de datos (con VSAM, IMS o DB2 ). 3.3. PROTOCOLOS DE LA CAPA DE ENLACE [?] 81 Dada la necesisdad de interoperabilidad entre protocolos de red heterogéneos, existe el requerimiento de mejorar la interfaz CICS de comunicación de datos para incluir soporte para TCP/IP además de SNA. RFC 1006 Los programas escritos originalmente para el XTI (“X/Open Transport Interface”) pueden usarse con la pila TCP/IP. El RFC 1006 define un componente para el mapeo entre protocolos de modo que estos programas se puedan utilizar en una red TCP/IP. 3.3 3.3.1 Protocolos de la Capa de Enlace [11] La Capa de Enlace de Datos en Internet Internet consiste en máquinas individuales (hosts y enrutadores) y la infraestructura de comunicación que las conecta. Dentro de un solo edificio, las LANs se usan ampliamente para la interconexión, pero la mayor parte de la infraestructura de área amplia está construida a partir de líneas alquiladas punto a punto. En la práctica, la comunicación punto a punto se utiliza principalmente en dos situaciones. Primero, miles de organizaciones tienene una o más LANs, cada una con cierta cantidad de hosts (computadoras personales, estaciones de trabajo, servidores y otros) junto con un enrutador (o un puente que funcionalmente es parecido). Con frecuencia, los enrutadores se interconectan mediante una LAN de red dorsal. Por lo general, todas las conexiones al mundo exterior pasan a través de uno o dos enrutadores que tienen líneas alquiladas punto a punto a enrutadores distantes. Son estos enrutadores y sus líneas arrendadas las que conforman las subredes de comunicación sobre las que está cosntruida Internet. La segunda situación en la que las líneas punto a punto desempeñan un papel importante en Internet son los millones de personas que tienen conexiones domésticas a Internet a través de módems y líneas de acceso telefónico. Generalmente lo que ocurre es que la PC doméstica del usuarios llama a un 82 CAPÍTULO 3. FAMILIA TCP/IP enrutador del proveedor de servicios de Internet y luego actúa como host de Internet. Este método de operación no es diferente de tener una línea alquilada entre la PC y el enrutador excepto que la conexión se termina cuando el usuario termina la sesión. Tanto para la conexión por línea alquilada de enrutador a enrutador como para la conexión de acceso telefónico de host a enrutador, en la línea se requiere un protocolo de enlace de datos punto a punto para el entramado, el control de errores y las demás funciones de la capa de enlace de datos que se describe en este capítulo. El que se utiliza en Internet se conoce como PPP (Protocolo Punto a Punto). 3.3.2 Ejemplos de Protocolos de Enlace de Datos HDLC: Control de Enlace de Datos de Alto Nivel En esta sección examinaremos un grupo de protocolos íntimamentene relacionados que, a pesar de ser un poco antiguos se siguen utilizando ampliamente en redes de todo el mundo. Todas se derivan del primer portocolo de enlace de datos usado en los mainframes de IBM : el protocolo SDLC (Control Síncrono de Enlace de Datos). Después de desarrollar SDLC, IBM lo sometió al ANSI y a la ISO para su aceptación como estándar de EE.UU. e internacional, respectivamente. El ANSI lo modificó convirtiéndolo en ADCCP (Procedimiento Avanzado de Control de Comunicación de Datos), y la ISO lo modificó para convertirlo en HDLC (Control de Enlace de Datos de Alto Nivel). Lo agradable de los estándares es que hay muchos de donde escoger. Todos estos protocolos se basan en el mismo principio. Todos son orientados a bits y usan el relleno de bits para lograr la transparencia de los datos. Difieren sólo en aspectos menores, aunque irritantes. El análisis de protocolos orientados a bits que se hará a continuación pretende ser una introducción general. El campo de dirección es de importancia primordial en las líneas con múltiples terminales, pues sirve para identificar una de las terminales. En líneas punto a punto a veces se usan para distinguir los comandos de las respuestas. El campo control se utiliza para números de secuencia, confirmaciones de 3.3. PROTOCOLOS DE LA CAPA DE ENLACE [?] 83 recepción y otros propósitos. El campo de datos puede obntener cualquier información y puede tener una longitud arbitraria, aunque la eficiencia de la suma de verificación dismunuye conforme al tamaño de la tram aumente, debido a lamayor probabilidad de múltipels errores en ráfaga. El campo suma de verificación es un código de redundancia cíclica. La trama está delimitada por otra secuencia de bandera (01111110). En líneas punto a punto inactivas se transmiten secuencias de bandera continuamente. La trama mínima contiene tres campos y un total de 32 bits, y excluye a las banderas de ambos lados. Hay tres tipos de tramas: de información, de supervisión y no numeradas. El protocolo emplea una ventana corrediza, con un número de secuencia de 3 bits. En cualquier momento pueden estar pendientes hasta siete tramas sin confirmación de recepción. El campo secuencia es el número de secuencia de la trama. El campo siguiente es una confirmación de recepción superpuesta. Sin embargo, todos los protocolos se apegan a la convención de que, en lugar de superponer el número de la última trama recibida correctamente, usan el número de la primera trama no recibida (es decir, la trama esperada). La desición de utilizar la última trama recibida o la siguiente trama esperada es arbitraria; no importa la convención que se utilice, siempre y cuando se use con consistencia. figuraaaaa3-25 El bit P/F (S/F) significa Sondeo / Final (Poll / Final). Se utiliza cuando una computadora o concentrador está sondeado un grupo de terminales. Cuando se usa como P, la computadora está invitando a la terminal a enviar datos. Todas las tramas enviadas por la terminal, excepto la última, tienen el bit P/F establecido en P. El último se establece en F. En alguno protocolos el bit P/F sirve para obligar a la otra máquina a enviar de inmediato una trama de supervisión, en lugar de esperar tráfico de regreso al cual superponer la información de la ventana. El bit también tiene algunos usos menores en conexión con las tramas sin número. 84 CAPÍTULO 3. FAMILIA TCP/IP PPP: Protocolo Punto a Punto Internet necesita de un protocolo punto a punto para diversos propósitos, entre ellos para el tráfico enrutador a enrutador. Este protocolo PPP, realiza detección de errores, soporta múltiples protocolos, permite la negociación de direcciones de IP en el momento de la conexión, permite la autenticación y tiene muchas otras funciones. PPP proporciona tres características: 1. Un método de entramado que delinea sin ambiguedades el final de una tama y el inicio de la siguiente. El formato de trama también maneja la detección de errores. 2. Un protocolo de control de enlace para activar líneas, probarlas, negociar opciones y desactivarlas ordenadamente cuando ya no son necesarias. Este protocolo se llama .LCP (Protocolo de Control de Enlace) Admite circuitos síncronos y asíncronos y codificaciones orientadas a bits y a caracteres. 3. Un mecanismo para negociar opciones de capa de red con independencia del protocolo de red usado. El método escogido consiste en tener un NCP (Protocolo de Control de Red) distinto para cada protocolo de capa de red soportado. El formato de trama de PPP se escogió de modo que fuera muy parecido al de HDLC, ya que no había razón para reinventar la rueda. La diferencia principal entre PPP y HDLC es que el primero está orientado a caracteres, no a bits. En particular, PPP usa el relleno de bytes en las líneas de acceso telefónico con módems, por lo que todas las tramas tienen un número entero de bytes. No es posible enviar una trama de 30.25 bytes, como con HDLC. No sólo pueden mandarse tramas PPP a través de línea de acceso telefónico, sino que también pueden enviarse a través de SONET o de líneas HDLC auténticas oritnadas a bits. Las fases por las que pasa una línea son: activada, usada y desactivada. Esta secuencia, se aplica tanto a las conexiones por módem como a las de enrutador a enrutador. Se comienza con estado MUERTA, lo que significa que no hay una portadora de capa física y que no existe una conexión de capa física. Una vez 3.3. PROTOCOLOS DE LA CAPA DE ENLACE [?] 85 establecida la conexión física, la línea pasa a ESTABLECER. En ese punto comienza la negociación se opciones LCP (Protocolo de Control de Enlace), que de tener éxito, conduce a AUTENTICAR, ahora las dos partes pueden verificar la identidad del otro, si lo desean. Al entrar en la fase red, se invoca a NCP (Protocolo de Control de Red) para configurar la capa de red. Si la configuración tiene éxito se llega a ABRIR y puede comenzar el transporte de datos. Al terminar el transporte, la linea pasa a la fase TERMINAR, de donde regresea a MUERTA al liberarse la portadora. Capítulo 4 Los Protocolos Más Importantes de TCP/IP. 4.1 4.1.1 Protocolos de la Capa de Transporte UDP: “Protocolo de Datagrama de Usuario” El Protocolo UDP (User Datagram Protocol), proporciona aplicaciones con un tipo de servicio de datagrama orientado a transacciones. El servicio es muy parecido al protocolo IP en el sentido de que no es fiable y no está orientado a la conexión. El UDP es muy simple, eficiente e ideal para aplicaciones como el TFTP y el DNS . Una dirección IP sirve para dirigir el datagrama hacia una máquina en particular, y el número de puerto de destino en la cabecera UDP se utiliza para dirigir el datagrama UDP a un proceso específico localizado en la cabecera IP. La cabecera UDP también contiene un número de puerto origen que permite al proceso recibido conocer como responder al datagrama. Formato del Mensaje El datagrama UDP contiene cuatro campos, que son Número del Puerto Origen, Número del Puerto de destino, Longitud del Mensaje y Checksum. 87 88 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Números de Puerto de Origen y Destino Estos números, junto con las direcciones IP definen el punto final de la comunicación. El número del puerto de origen, puede tener valor cero si no se usa. El número del puerto de destino sólo tiene sentido en el contexto de un datagram UDP y una dirección IP en particular. El número de puerto de origen es un campo de 16 bits. El puerto de destino tiene la misma longitud. Longitud del Mensaje Este campo tiene una longitud de 16 bits y contiene el número total de octetos que forman el datagrama, incluída la cabecera. Checksum El uso de checksum es opcional, y este campo debe ponerse a cero si no es utilizado. Mientras que el checksum del datagrama IP sólo tiene en cuenta la cabecera del mensaje, el UDP tiene su propio checksum para garantizar la integridad de los datos. La longitud de este campo es de 16 bits, y está formado por la suma de los campos del UDP, y algunos campos del IP. Para incluir los campos IP, se construye una pseudo cabecera UDP. Esta pseudo cabecera de 12 octetos se utiliza únicamente a efectos de calcular la suma. [5] 4.1.2 TCP: “Protocolo de Control de Transporte” TCP es un protocolo estándar. Su status es recomendado, pero en la práctica cualquier implementación de TCP/IP que no se use exclusivamente para el encaminamiento incluirá TCP. [5] TCP proporciona una cantidad considerablemente mayor de servicios a las aplicaciones que UDP, notablemente, la recuperación de errores, control de flujo y fiabilidad. Se trata de un protocolo orientado a conexión a diferencia de UDP. La mayoría de los protocolos de aplicación de usuario, como TELNET y FTP, usan TCP. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 89 Zócalos Dos procesos se comunican a través de zócalos TCP. El modelo de zócalo proporciona a un proceso una conexión con un flujo full duplex de bytes con otro proceso. La aplicación no necesita preocuparse de la gestión de este canal, estos servicios son suministrados por TCP. TCP usa el mismo principio de puerto que UDP para conseguir multiplexación. Al igual que UDP, TCP utiliza puertos efímeros y bien conocidos. Cada extremo de una conexión TCP tiene un zócalo que puede identificarse con una medio asociación. Si dos procesos se están comunicando sobre TCP, tendrán una conexión lógica identificable unívocamente por medio de los dos zócalos implicados, es decir, con la combinación =TCP, dirección IP local puerto local, dirección IP remota, puerto remoto=. (ver figura 4.1 de la página 87) Figura 4.1: Conexión TCP- Procesos X e Y se comunican sobre una conexión TCP que emplea datagramas IP. 90 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Concepto de TCP El principal propósito de TCP es proporcionar una conexión lógica fiable entre parejas de procesos. No asume fiablididad de protocolos de niveles inferiores como IP, por lo que debe ocuparse de garantizarla. Básicamente lo podemos definir como: Un protocolo orientado a conexión que proporciona un servicio de transporte fiable de un flujo de bytes entre aplicaciones. Es orientado a conexión o sea que previo al intercambio de datos los extremos tienen que establecer una conexión; fiable, porque garantiza la entrega ordenada del flujo de bytes entre los extremos. [3] TCP se puede caracterizar por los siguientes servicios que suministra a las aplicaciones que lo usan. • Transferencia de datos a través de un canal: Desde el punto de vista de la aplicación, TCP transfiere un flujo continuo de bytes a través de Internet. La aplicación no ha de preocuparese de trocear los datos en bloques o en datagramas. TCP se encarga de esto al agrupar los bytes en segmentos TCP, que se pasan a IP para ser retransmitidos al destino. Además, TCP decide por sí mismo cómo segmentar los datos y puede enviarlos del modo que más le parezca convenientes. A veces, una aplicación necesita estar segura de que todos los datos pasados a TCP han sido transmitidos efectivamente al destino. Por esta razón, se define la función “push”. Esta función mandará todos los segmentos que sigan almacenados al host de destino. El cierre normal de la conexión también provoca que se llame a esta función, para evitar que la transmisión quede incompleta. • Fiabilidad: TCP asigna un número de secuencia a cada byte transmitido, y espera reconocimietno afirmativo ACK del TCP receptor. Si el ACK no se recibe dentro de un intervalo de timeout, los datos se retransmiten. Como los datos se transmiten en bloques (segmentos TCP), al host destino sólo se le envía el número de secuencia del byte de cada segmento. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 91 El TCP receptor utiliza los número de secuencia para organizar los segmentos cuando llegan fuera de orden, así como para eliminar segmentos duplicados. • Crontrol de Flujo: El TCP receptor, al enviar un ACK al emisor, indica también el número de bytes que puede recibir aún, sin que se produzca sobrecarga y desbordamiento de sus buffers internos. Este valor se envía en el ACK en la forma del número de secuencia más elevado que se pueda recibir sin problemas. Este mecanismo se conoce también como “mecanismo de ventanas” y se estudiará posteriormente en este capítulo. • Multiplexación: Se consigue usando puertos, al igual que en UDP. • Conexiones lógicas: La fiabilidad y el control de flujo descriptos más arriba requieren que TCP inicialice y mantenga cierta información de estado para cada canal. La combinación de este estado, incluyendo zócalos, números de secuencia y tamaños de ventanas, se denomina conexión lógica. Cada conexión se identifica unívocamente por el par de zócalos del emisor y el receptor. • Full Duplex: TCP garantiza la concurrencia de los flujos de datos en ambos sentidos de la conexión. El Principio de la Ventana Un simple protocolo de transporte podría emplear el siguiente principio: enviar un paquete, y esperar un reconocimiento del receptor antes de enviar el siguiente. Si el ACK no se recibe dentro de cierto límite de tiempo, se retransmite. (ver figura 4.2 de la página 90) Aunque este mecanismo asegura fiabilidad, sólo usa una parte del ancho de banda de la red que está disponible. Y utiliza las siguientes reglas: • El emisor puede enviar todos los paquetes dentro de la ventana sin recibir un ACK, pero no debe disparar un cronómetro para el timeout para cada uno de ellos. • El receptor debe reconocer cada paquete recibido, indicando el número de secuencia del último paquete bien recibido. 92 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.2: El Principio de la Ventana • El emisor desliza la ventana para cada ACK recibido. Casos Especiales • El paquete 2 se pierde: el emisor no recibirá ACK 2, por lo que su ventana permancerá en posición 1. De hecho, como el receptor no recibió el paquete 2, reconocerá los paquetes 3, 4, 5 con un ACK 1, que fueron los últimos paquetes recibidos en secuencia. En el extremo del emisor, al final se producirá un timeout para el paquete 2 y se retransmitirá. La recepción de este paquete en el receptor generará un ACK 5, ya que habrán recibido con éxito los paquetes del 1 al 5, y la ventana del emisor se deslizará cuatro posiciones al recibir el ACK 5. • El paquete 2 llegó, pero el reconocimiento se perdió: el emisor no recibe ACK 2, pero recibe ACK 3, ACK 3 es un reconocimiento de todos los paquetes hasta el 3 (incluyendo el 2) y el emisor ya puede desllizar su ventana hasta el paquete 4. Conclusiones Este mecanismo de ventanas asegura: • Transmisión fiable. • Mejor aprovechamiento del ancho de banda (mejora del flujo). 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 93 • Control de flujo, ya que el receptor puede retrasar la respuesta a un paquete con un reconocimiento, conociendo los buffers libres de los que dispone y el tamaño de la ventana de comunicación. El principio de la Ventana Aplicado a TCP. El mecanismo mostrado más arriba se utilliza en TCP, pero con unas cuantas diferencias: • Como TCP, proporciona una conexión con un flujo de bytes, los números de secuencia se asignan a cada byte del canal, TCP divide el flujo de bytes en segmentos. El principio de la ventana se aplica a nivel de bytes, es decir, los segmentos enviados y los ACKs recibidos llevarán números de secuencia de forma que el tamaño de la ventana se exprese con un número de bytes, en vez del de paquetes. • El tamaño de la ventana lo determina el receptor, cuando se establece la conexión, y puede variar durante la transmición de datos. Cada ACK incluirá el tamaño de la ventana que acepta el receptor en ese momento. Ahora el flujo de datos del emisor se puede ver como: (ver figura 4.3 de la página 91) Figura 4.3: El Principio de la Ventana Aplicado a TCP. 94 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Formato de Segmento TCP Los segmentos TCP se encapsulan en datagramas IP : (ver figura 4.4 de la página 92) [4] Figura 4.4: Segmento TCP- Encapsulado en un datagrama IPFormato del Segmento TCP (ver figura 4.5 de la página 93) Campos Cabecera TCP • Puertos de Origen y Destino: Indican la conexión lógica entre las dos aplicaciones que se están comunicando (FTP , TELNET , SMTP , etc.) • Números de Secuencia: Posición del primero octeto en el campo de datos en realación con la secuencia original. • Números de Asentimiento: Número de secuencia siguiente al octeto confirmado, indica la posición que ocuparía el próximo octeto que se espera recibir. • Longitud de Cabecera: Número de palabras de 32 bits que componen la cabecera. • Reservado: Reservados para uso futuro, deben estar a cero. • Flags: — URG : Indica que el campo Puntero Datos Urgentes tiene validez. — ACK: Indica que el campo Número de Asentimiento tiene validez. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 95 Figura 4.5: Formato del Segmento TCP. — PSH: Indica que el segmento requiere envío y entrega inmediata. — RST: Indica aborto de la conexión. — SYN: Sincroniza números de secuencia en el establecimiento de conexión. Confirmación con el ACK. — FIN: Indica liberación de conexión. Confirmación con ACK. • Tamaño de la Ventana: Indica e número de octetos, adicionales a apuntado por ACK, que está dispuesto a aceptar. • Código de Redundancia: Campo obligatorio qe debe ser calculado por el emisor y verificado por el receptor. • Puntero de Datos Urgentes: Indica el offset (positivo) que debe ser añadido al número de secuencia dle segmento para obtener el número de secuencia del segmento para obtener el númeo de secuencia dle último octeto de datos urgentes, válido si está activo el flag URG. • Campos Opcionales: para incluir ociones. — Tamaño Máximo de datos en un segmento (MSS - Maximun Segment Size): Utilizada en el establecimiento de la conexión. Indica 96 CAPÍTULO 4. PROTOCOLOS DE TCP/IP la longitud máxima de datos en un segmento que puede recibir un extremo. — Escala de la ventana: Expandir el tamaño de la ventana TCP. • Datos: Opcional Establecimiento de la Conexión. • Uso de “three way handshake”. • Se emplea el bit SYN en la solicitud de conexión y SYN ACK en la respuesta. La respuesta es a su vez confirmada con ACK. • Se fija el número de secuencia inicial en ambas direcciones. (ver figura 4.6 de la página 94) Figura 4.6: Establecimiento de la Conexión. Finalización de la Conexión. • Liberación ordenada e independiente por cada uno de los sentidos de transmisión. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 97 • El extremo que desea cesar de transmitir en segmento con FIN, que debe ser confirmado por el corresponsal con FIN, ACK. (ver figura 4.7 de la página 95) Figura 4.7: Finalización de la Conexión. Ejemplos: • Notación tcpdump Fuente > destino no secuencia inicial no secuencia final (no de octetos de datos) (ver figura 4.8 de la página 96) • Salida tcpdump (ver figura 4.9 de la página 96) TCP Half-Close • TCP, al establecer una conexión “full-duplex”, cada extremo puede finalizar la transmisión de datos de forma independiente. 98 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.8: Notación tcpdump. Figura 4.9: Salida tcpdump. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 99 • Pocas aplicaciones hacen uso de esta característica. (ver figura 4.10 de la página 97) Figura 4.10: TCP Half-Close. Ejemplo (ver figura 4.11 de la página 98) • Programa sort en bdi no puede generar ninguna salida hasta que no haya recibido el fichero datafile. • Cuando sun finaliza de transmitir el contenido del fichero realiza un “half-close” de la conexión TCP. • El host bdi envía la salida de sort a sun y cuando fnaliza cierra la conexión TCP. Tamaño Máximo de Segmentos. • MSS: Longitud máxima de datos que se enviarán en un segmento al otro extremo TCP. 100 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.11: Ejemplo TCP Half-Close. • El datagrama IP resultante normalmente será 40 octetos mayor que este valor. • En el establecimiento de la conexión, cada extremo puede anunciar el MSS que esperea recibir (si no se etablece, por defecto es 536 octetos). — Se incluye como una opción en segmentos TCP SYN . — MTU (Unidad Máxima de Transmisión) - Tamaño de cabecera IP - Tamaño de cabecera TCP. Estados de TCP (ver figura 4.12 de la página 99) Estados TCP en un Establecimiento y Finalización “Normal” de la Conexión. (ver figura 4.13 de la página 99) Nomenclatura: (ver figura 4.14 de la página 100) Diagrama de Transición entre Estados (ver figura 4.15 de la página 100) (ver figura 4.16 de la página 101) 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE Figura 4.12: Estados TCP. Figura 4.13: Estados durante un Establecimiento y Finalización. 101 102 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.14: Nomenclatura. Figura 4.15: Diagrama de Transición entre Estados. 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE 103 Figura 4.16: Diagrama de Transición entre Estados. Estado “2MSL Wait State” 2MSL Wait State = TIME_WAIT • TCP después de realizar un “active close” y enviar un ACK del FIN debe esperar un tiempo TIME_WAIT. • ¿Por qué?: — Permite a TCP reenviar el ACK del FIN si éste se pierde (el otro extremo, en este caso, reenviará el FIN cuando venza su extremo, en este caso, reenviará el FIN cuando venza su temporizador) • Hasta que no finalice este temporizador no se liberan el par de sockets de la conexión. • Cada implementación selecciona un valor de MSL (Maximun Segment Lifetime): típicamente 2 minutos o 1 minuto o 30 segundos. 104 CAPÍTULO 4. PROTOCOLOS DE TCP/IP “Resetting” de Conexiones • Se indica activando el flag RST. • Normalmente generados automáticamente por el software TCP. • ¿Cuándo se activa el flag RST ? — Llega una petición de conexión y no existe un proceso servidor escuchando en el puerto destino. — Llega un segmento TCP que no corresponde con ninguna conexión activa. — Abortar una conexión a nivel aplicación (en vez de enviar un FIN se envía un RST ): 1. El receptor tira todos los datos pendientes de transmisión. 2. No asiente el segmento RST. 3. Se finaliza la conexión. Apertura Simultánea • Dos aplicaciones realizan un “active open” simultáneamente. • TCP está especialmente diseñado para que en este caso sólo se establezca una conexión NO dos conexiones (otros protocolos crean dos conexiones). • La apertura de la conexión requiere el intercambio de 4 segmentos, NO 3. (ver figura 4.17 de la página 103) Finalización Simultánea • Dos aplicaciones realizan un “active close” simultáneamente. • En la finalización de la conexión se siguen intercambiando 4 segmentos. (ver figura 4.18 de la página 103) 4.1. PROTOCOLOS DE LA CAPA DE TRANSPORTE Figura 4.17: Apertura Simultánea. Figura 4.18: Finalización Simultánea. 105 106 4.2 4.2.1 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Protocolos de la Capa de Interred ARP: “Protocolo de Resolución de Direcciones” El protocolo ARP es un protocolo estándar específico de las redes. Su status es electivo. El Protocolo de Resolución de Direcciones es responsable de convertir las direcciones de protocolos de alto nivel (direcciones IP) a direcciones de red físicas [3]. (ver figura 4.19 de la página 104) Figura 4.19: Protocolo ARP. Descripción de ARP En una sola red física, los hosts individuales se conocen en la red a través de su dirección física. Los protocolos de alto nivel direccionan a los hosts de destino con una dirección simbólica (en este caso la dirección IP). Cuando tal protocolo quiere enviar un datagrama a la dirección IP de destino w, x, y, z, el manejador de dispositivo no entiende. En consecuencia, se suministra un módulo (ARP) que traducirá la dirección IP a la dirección física del host de destino. Utilizsa una tabla (llamada a veces caché ARP) para realizar esta traducción. Cuando la direción no se encuentra en la caché ARP, se envía un broadcast en la red, con un formato especial llamado petición ARP. Si una de las 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 107 máquinas en la red reconoce su propia dirección IP en la petición, devolverá una respuesta ARP al host que la solicitó. La respuesta contendrá la dirección física del hardware así como información de encaminamiento (si el paquete ha atravesado puentes durante su trayecto) tanto esta dirección como la ruta se almacenan en la caché del host solicitante. Todos los posteriores datagramas enviados a esta dirección IP se podrán asociar a la dirección física correspondientes, que será la que utilice el manejador de dispositivo para mandar el datagrama a la red. ARP se diseñó para ser usado en redes que soportasen broadcast por hardware. Esto significa, por ejemplo, que ARP no funcionará en una red X.25. Concepto detallado de ARP ARP se emplea en redes IEEE 802 además de en las viejas redes DIX Ethernet para mapear direcciones IP a dirección hardware. Para hacer esto, ha de estar estrechamente relacionado con el manejador de dispositivo de red. De hecho, las especificaciones de ARP en RFC 826 sólo describen su funcionalidad, no su implementación, que depende en gran medida del manejador de dispositivo para el tipo de red correspondiente, que suele estar codificado en el cicrocodigo del adaptador. Generación del paquete ARP Si una aplicación desea enviar datos a una determinada dirección IP, el mecanismo de encaminamiento IP determina primero la dirección IP del siguiente salto del paquete (que puede ser el propio host de destino o un router) y el dispositivo hardware al que se debería enviar. Si se trata de una red 802.3/4/5, deberá consultarse el módulo ARP para mapear el par tipo de protocolo, dirección de destino a una dirección física. El módulo ARP intenta hallar la dirección en su caché. Si encuentra el par buscado, devuelve la correspondiente dirección física de 48 bits al llamador (el manejador de dispositivo). Si no lo encuentra, descarta el paquete (se asume que al ser un protocolo de alto nivel volverá a transmitirlo) y genera un broadcast de red para una solicitud ARP (ver figura 4.25 de la página 112). Hardware Address Space: 108 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.20: Paquete de Petición/Respuesta ARP. Especifica el tipo de hardware, ejemplos son Ethernet o Packet Radio Net. Protocol Address Space: Especifica el tipo de protocolo, el mismo que en el campo de tipo EtherType en la cabecera de IEEE 802. Hardware Address Length: Especifica la longitud (en bytes) de la dirección hardware del paquete. Para IEEE 802.3 e IEEE 802.5 será de 6. Protocol Address Length: Especifica la longitud (en bytes) de la dirección de protocolo en el paquete. Para IP será de 4. Operation Code: Especifica si se trata de un petición (1) o una solicitud (2) ARP. Source/Target Protocol Address: Contiene las direcciones del protocolo. En TCP/IP sondirecciones IP de 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 109 32 bits. Para el paquete de solicitd, la dirección hardware de desino es el único campo indefinido del paquete. Recepción del paquete ARP Cuando un host recibe un paquete ARP (bien un broadcast o una respuesta a punto), el dispositivo receptor le pasa el paquete al módulo ARP. (ver figura 4.21 de la página 107) Figura 4.21: Recepción del Paquete ARP. El host solicitante recibirá esta respuesta ARP, y seguirá el algoritmo ya comentado, para tratarla. Como resultado, la tripleta =tipo de protocolo, dirección de protocolo, dirección de hardware=, para el host en cuestión se 110 CAPÍTULO 4. PROTOCOLOS DE TCP/IP añadirá a la cahé ARP. La próxima vez que un protocolo de nivel superior quiera enviar un paquete a ese host, el módulo de ARP encontrará la dirección hardware, a la que se enviará el paquete. Notar que debido a que la petición ARP original fue un broadcast en la red, todos los host en ella habrán actualizado la dirección del emisor en su propia caché (sólo si preaviamente ya existía esa entrada) en la tabla. ARP y Subredes El protocolo ARP es el mismo aunque haya subredes. Recordar que cada datagrama IP pasa primero por el algoritmo de encaminamiento IP. Este algoritmo selecciona el manajedor de dispositivo que debería enviar el paquete. Sólo entonces se consulta al módulo ARP asociado con ese manejador. Proxy-ARP o Subnetting Transparente El Proxy-ARP se describe en el RFC 1027- Usando ARP para implementar pasarelas de subredes transparentes, que de hecho es un subconjunto del método propuesto en el RFC 925- Resolución de direcciones Multi-LAN. Es otro método para construir subredes locales, sin necesidad de modificar el algoritmo de encaminamiento IP, pero con modificaciones en los routers que interconectan las subredes. Concepto de Proxy-ARP El protocolo ARP es un protocolo estándar específico de redes. Su status es electivo. Considerar una red IP, dividida en subredes, interconectadas por “routers”. Utilizamos el algoritmo IP viejo, lo que significa que ningún host conoce la existencia de múltiples redes físicas. Si se toman los hosts A y B, que se hallan en distintas redes físicas dentro de la misma red IP, y un “router” entre las dos subredes. (ver figura 4.22 de la página 109) 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 111 Figura 4.22: Host interconextados por un router. Cuando el host A quiere enviar un datagrama IP al host B, primero ha de determinar la dirección de red física del host B usando ARP. Como A no puede diferenciar entre las redes físicas, su algoritmo de encaminamiento IP piensa que el host B está en su misma red local y envía un broadcast de petición ARP. El host B no lo recibe, pero sí el router R. R entiende de subredes, es decir, ejecuta la versión de subred del algoritmo de encaminamiento y será capaz de ver que el destino de la apetición ARP (en el campo de direcciónde protocolo distinto) está localizado en otra red física. Si las tablas de encaminamiento de R especifican que el siguiente salto a otra red se produce a través de un dispositivo diferente, replicará al ARP como si fuera el host B, diciendo que la dirección de B es la del mismo router. El host A recibe esta respuesta ARP, la introduce en su caché y enviará los siguientes paquetes dirigidos a B al router R, que los retransmitirá a la subred adecuada. El resultado es Subnetting Transparente: • Los host normales (como A y B) desconocen el subnetting, por lo que usan el algoritmo de encaminamiento clásico. • Los routers entre subredes: (a) Utilizan el algoritmo IP para subredes. 112 CAPÍTULO 4. PROTOCOLOS DE TCP/IP (b) Usan un módulo ARP modificado, que puede responder en nombre de otros hosts. (ver figura 4.23 de la página 110) Figura 4.23: Router Proxy-ARP. 4.2.2 RARP “Protocolo de Resolución de Direcciones Inverso” (ver figura 4.24 de la página 111 de la página) Descripción de RARP Algunos hosts, como por ejemplo estaciones de trabajo, sin disco, desconocen su propia dirección IP cuando arrancan. Para determinarla, emplean un mecanismo similar al ARP, pero ahora el parámetro conocido es la dirección hardware el host y el requerido su dirección IP. La diferencia básica con ARP es el hecho de que debe existir un hardware a direcciones de protocolo. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 113 Figura 4.24: Protocolo RARP. Concepto de RARP El cálculo de direcciones inversas se efectúa del mismo modo que en ARP. Se usa el mismo formato de paquete. (ver figura 4.25 de la página 112) Una excepción es el campo “operation code” que ahora toma los siguientes valores: 3 para la petición RARP. 4 para la respuesta RARP. Y, por suspuesto, la cabecera física de la trama indicará ahora que RARP es el protocolo de nivel superior en vez de ARP o IP en el campo EtherType. El mismo concepto de RARP genera algunas diferencias: • ARP asume sólo que cada host conoce el mapeado entre su propia dirección hardware y de protocolo. RARP requiere uno o más hosts en la red para mantener una base de datos con los mapeados entre direcciones de red, direcciones de protocolo de modo que serán capaces de responder a solicitudes de los host clientes. • Debido al tamaño que puede tomar esta base de datos, parte de las funciones del servidor suelen implementarse fuera del microcódigo del 114 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.25: Paquete de Petición/Respuesta ARP. adaptador, con la opción de una pequeña caché en el microcódigo, que sólo es responsable de la recepción y transmisión de tramas RARP, estando el mapeado RARP en sí a cargo del software que se ejecuta en el servidor como un proceso normal. • La naturaleza de esta base de datos también requiere algún software para crear y actualizar la base de datos manualmente. • En caso de que haya múltiples servidores RARP en la red, el cliente RARP sólo hará uso de la primera respuesta RARP que reciba a su broadcast, y desechará las otras. 4.2.3 IP: “Protocolo de Internet” IP es un protocolo estándar. Su status es requerido (ver figura 4.26 de la página 113). Es el protocolo que oculta la red física subyacente creando una vista de red virtual. Es un protocolo de entrega de paquetes no fiable y no orientado a conexión, y se puede decir que aplica la ley del mínimo esfuerzo. [11] [5] 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 115 Figura 4.26: El Protocolo IP No aporta fiabilidad, control de flujo o recuperación de errores a los protocolos de red inferiores. Los paquetes (datagramas) que envía IP se pueden perder, desordenarse, o incluso duplicarse, e IP no manejará estas situaciones. El proporcionar estos servicios depende de protocolos superiores. IP asume pocas cosas de las capas inferiores, sólo que los datagramas probablemente serán transportados al host de destino. El datagrama IP Es la unidad de transferencia en la pila IP. Tiene una cabecera con información para IP, y los datos relevantes para los protocolos superiores. (ver figura 4.27 de la página 114) El datagrama IP está encapsulado en la trama de red subyacente, que suele tener una longitud máxima, dependiendo del hardware usado. En vez de limitar el datagrama a un tamaño máximo, IP puede tratar la fragmentación y el re-ensamblado de sus datagramas. En particular, el IP no impone un tamaño máximo, pero establece que todas las redes deberían ser capaces de manejar al menos 576 bytes. Los fragmentos de datagramas tienen todos una cabecera, copiadas básicamente del datagrama original, y de los datos que la siguen. Se tratan como datagramas normales mientras son transportados a su destino. 116 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.27: El Datagrama IP. Sin embargo, sin uno de los fragmentos se pierde, todo el datagrama se considerará perdido, y los restantes fragmentos se considerarán perdidos. Formato del Datagrama IP La cabecera del datagrama IP es de un mínimo de 20 bytes de longitud: (ver figura 4.28 de la página 115) VERS: La versión del protocolo IP. La versión actual es la 5. La 6 es IPng. LEN: La longitud de la cabecera IP contada en cantidades de 32 bits. Esto no incluye el campo de datos. TYPE OF SERVICE: El tipo de servicio es una indicación de la calidad del servicio solicitado para este datagrama IP. Precedencia: Es una medida de la naturaleza y prioridad de este datagrama (ver figura 4.29 de la página 115). 000: Rutina. 001: Prioridad. 010: Inmediato. 011: “Flash”. 100: “Flash Override”. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED Figura 4.28: Formato del Datagrama. Figura 4.29: Precedencia 117 118 CAPÍTULO 4. PROTOCOLOS DE TCP/IP 101: Crítico. 100: Control de Red (“Internetwork Control”). TOS: “Type Of Service”. 1000: Minimizar Retardo. 0100: Maximizar la densidad de flujo. 0010: Maximizar la fiabilidad. 0001: Minimizar el costo monetario. 0000: Servicio Normal. MBZ: Reservado para uso futuro (debe ser cero, a menos que participe en un experimento con IP que haga uso de este bit). Total Length: La longitud del datagram, cabecera y datos, especificada en bytes. Identification: Un número único que asigna el emisor para ayudar a reembolsar un datagrama fragmentado. Los fragmentos de un datagrama tendrán el mismo número de identificación. Flags: Varios flags de control. (ver figura 4.30 de la página 116) Figura 4.30: Flag IP. Donde: 0: Reservado, debe ser cero. DF: No fragmentar (“Don’t Fragment”) con 0 se permte la fragmentación, con 1 no. MF: Más fragmentos (More Fragments): con 0 significa que se trata del último fragmento del datagram, 1 que no es el último. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 119 Fragment Offset: Usado con datagramas fragmentados, para ayudar al reensamblado de todo el datagrama, el valor es el n´mero de partes de 64 bits. Time To Live: Especifica el tiempo (en segundos) que se le permite viajar a este datagrama. Cada “router” por el que pase este datagrama ha de sustraer de este campo el tiempo tardado en procesarlo. En la realidad un “router” es capaz de procesar un datagrama en menos de 1 segundo, por ello restará uno de este campo y el TTL se convierte más en una cuenta de altos queen unamétrica del tiempo. Cuando el vlaor alcanza cero, se asume que este datagrama ha estado viajando en un bucle y se desecha. El valor inicial lo debería fijar el protocolo de alto nivel que crea el datagram. Protocolo Number Spotipprotn: Indica el protocolo de alto nivel al que IP debería entregar los datos deldatagrama. Algunons valores imortantes son: o: Reservado 1: ICMP (“Internet Control Message Protocol”). 2: IGMP (“Internet Group Management Protocol”). 3: GGP (“Gateway-to-Gateway Protocol”). 4: IP (IP encapsulation). 5: Flujo (“Stream”). 6: TCP (“Transmission Control”). 8: EGP (“Exterior Gateway Protocol”). 9: PIRP (“Private Interior Routing Protocol”). 17: UCP (“User Datagram”). 89: OSPF (“Open Shortest Path First”). Header Checksum: Es el checksum de la cabecera. Se calcula como el complemetno a uno de la suma de los complementos a uno de todas las palabras de 16 bits de la cabecera. Con el fin de este cálculo, el campo checksum se supone cero. Si el checksum de la cabecera no se corresponde con los contenidos, en el datagrama se desecha, ya que al menos un bit de la cabecera está corrupto, y el datagrama podría haber llegado al destino equivocado. 120 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Source IP Address: La dirección IP de 32 bits del host emisor. Destination IP Address: La dirección IP de 32 bits del host receptor. Options: Longitud variable. No requiere que toda implementación de IP sea capaz de generar ipciones en los datagrams que crea, pero sí que sea capaz de procesar datagramas que contengan opciones. El campo Options tiene longitud variable. Puede haber cero o más opciones. Hay dos formatos para estas. El formato usado depende del valor del número de opción hallado en el primer byte. — Un byte de tipo (type byte) sólo. (ver figura 4.31 de la página 118) Figura 4.31: Un Sólo Bit — Un byte de tipo, un byte de longitud y uno o más bytes de opciones. (ver figura 4.32 de la página 118) Figura 4.32: Más de un Bit El byte de tipo tiene la misma estructura en ambos casos: (ver figura 4.33 de la página 119) Donde: fc: “Flag copy”, que indica si el campo de opciones se ha de copiar (1) o no (0) cuando el datagrama está fragmentado. class:Un entero sin signo de 2 bits. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 121 Figura 4.33: Ambos Casos 0: Control 1: Reservado 2: Depurado y mediciones 3: Reservado Option Number: Entero sin signo de 5 bits. 0: Fin de la lista de opciones, con class a cero, fc a cero, ysin byte de longitud o de datos. Es decir, lalista termina con byte X‘00’. Sòlo se requiere si la longitud de la cabecera IP (que es un múltiplo de 4 bits) no se corresponda con la longitud real de las opciones. 1: No operación: Tiene class a cero, fc a cero y no hay byte de longitud ni de datagramas. Es decir, un byte X‘01’ es NOP (No Operation). Se puede usar para alinear campos en el datagrama. 2: Securidad: Tiene class a cero, fc a uno y el byte de longitud a 11 y el de datos a 8. Se usa para la inforamción de seguridad que necesitan las especificaciones del departamento de defensa de US. 3: LSR (“Loose Sourse Routing”): Tiene class a cero, fc a uno y hay un campo de datos de longitud variable. 4: IT (“Internet Timestamp”): Tiene class a 2, fc a cero y hay un campo de datos de longitud variable. 7: RR (“Record Route”): Tiene class a cero, fc a cero y hay un campo de datos de longitud variable. 8: SID (“Stream ID”, o identificador de flujo): Tiene class a cero, fc a uno y hay un byte de longitud a 4 y un byte de datos. Se usa con el sistema SATNET. 122 CAPÍTULO 4. PROTOCOLOS DE TCP/IP 9: SSR(“Strict Source Routing”): Tiene class a cero, fc a uno y hay un campo de datos delongitud variable. Length: Cuenta la longitud en bytes de la opción, inclulyendo los campos detipo y longitud, Option data: No contiene datos relevantes para la opción. Padding: Si se usa una opción, el datagrama se rellena con bytes a cero hasta la siguiente palabra de 32 bits. Data: Los datos contenidos en el datagram se pasan a un protocolo de nivel superior, como se especifica en el campo protocol. Fragmentación Cuando un datagrama IP viaja de un host a otro puede cruzar distintas redes físicas. Las redes físicas imponen un tamaño máximo de trama, llamado MTU (“Maximum Transmission Unit”), que limita la longitud de un datagrama. Por ello, existe un mecanismo para fragmentar los datagramas IP grandes en otros más pequeños, y luego reensamblarlos en el host de destino. IP requiere que cada enlace tenga un MTU de al menos 68 bytes, de forma que si cualquier red proporciona un valor inferior, la fragamentación y el reensamblado tendrán que implementarse en la capa de la interfaz de red de forma transparente a IP. 68 es la suma de la mayor cabecera IP, de 60 bytes, y del tamaño mínimo posible de los datos en un fragmento. Las implementaciones de IP no están obligadas a manejar datagrama sin fragmentar mayores de 576 bytes, pero la mayoría podrá manipular valores más grandes, ligeramente más de 8192 bytes, o incluso mayores, y raramente menos de 1500. Un datagrama sin fragmentar tiene a cero toda la información de fragmentación. Es decir, el flag fc y el fo (fragment offset) están a cero. Cuando se ha de realizar la fragmentación, se ejecutan los siguientas pasos: • Se chequea el bit de flag DF para ver si se permite fragmentación. Si está a uno, el datagrama se desecha y se devuelve un error a emisor usando ICMP. • Basándose en el valor MTU, el campo de datos se divide en dos o más partes. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 123 • Todas ls nuevas porciones de datos, excepto la úlima, se alinean a 8 bytes. • Todas las porciones de datos, se colocan en datagamas IP. Las cabeceras se copian de la cabecera original, con algunas modificaciones: — El bit de flag mf (more fragments) se pone a uno en todos los fragmentos, excepto en el último. — El campo fo se pone al valor de la localización de la porción de datos correspondiente en el at original, con respecto al comienzo del mismo. Su valor se mide en unidades de 8 bytes. — Si se incluyeron opciones en el datagrama original, el bit de orden superior del byte “type option” determina si se copiarán o no en todos los fragmentos y por tanto tendrán a uno este bit. — Se inicializa el campo de longitud (length) del nuevo datagrama. — Se inicializa el campo de longitud (length) total del nuevo datagrama. — Se recalcula el checksum de la cabecera. • Cada uno de estos datagramas se envía como un datagrama IP normal. IP maneja cada fragmento de forma independiente, es decir, los fragmentos pueden atravezar diversas rutas hacia su destino, y pueden estar sujetos a nuevas fragmentaciones si pasan por redes con MTUs inferiores. En el host de destino, los datos se tienen que reensamblar. El host emisor inicializó el campo ID a un número único (dentro de los límites impuestos por el uso de un número de 16 bits). Como la fragmentación no altera este campo, los fragmentos que le van llegando al destino se pueden identificar, si este ID se usa junto con las direcciones IP fuente y destino (source, destination) del datagrama. También chequea el campo de protocolo. Con el fin de reensamblar los fragmentos, el receptor destina un buffer de almacenamiento en cuanto llega el primer fragmento. Se inicia una rutina para un contador. Cuando el contador da un timeout y no se han recibido todos los datagramas, se desecha el datagrama. El valor inicial el contador es el TTL (time-to-live). Depende de la implementación, y algunas permiten configurarlo. Cuando llegan los fragmetos siguientes, antes de que expire el tiempo, los datagramas se copian al buffer en la localización indicada por el fo (fragment 124 CAPÍTULO 4. PROTOCOLOS DE TCP/IP offser). Cuando han llegado todos los datagramas, se restaura el datagrama original y continúa su procesamiento. IP no proporciona el contador de reensamblado. Tratará cada datagrama, fragmentado o no, de la misma forma. Depende de una capa superior el implementar un timeout y reconocer la pérdida de fragmentos. Esta capa podría ser TCP para el transporte en una red orientada a conexión o UDP, para el caso contrario. Encaminamiento entre Redes [11] Una función importante de la capa IP es el encaminamiento. Proporciona los mecanismos básicos para interconectar distintas redes físicas. Esto significa que un host puede actuar simultáneamente como host normal y como router. El enrutamiento a través de una interred es parecido al enrutamiento en una sola subred, pero con algunas complicaciones adicionales. Por ejemplo, considere una interred en la que cinco redes están conectadas por seis enrutadores (posiblemente multiprotocolo). Realizar un modelo de grafo de esta situación es complicado por el hecho de que cada enrutador multiprotocolo puede acceder de manera directa a todos los demás enrutadores conectados a cualquier red a la que esté conectado. Una vez introducido el grafo, pueden aplicarse algoritmos de enrutamiento conocidos, como el algoritmo de vector-distancia y el de estado del enlace, al grupo de enrutadores multiprotocolo. Esto da un algoritmo de enrutamiento de dos niveles: en cada red se utiliza un protocolo de puerta de enlace interior (IGP), pero entre ellas se usa un protocolo de puerta de enlace exterior (EGP) ,(puerta de enlace es un término antiguo para enrutador). De hecho, debido a que estas redes son independientes, cada una puede utlilizar un algoritmo diferente del de la otra. Puesto que cada red de una interred es independiente de las demás, con frecuencia se le llama Sistema Autónomo (AS). Un paquete de interred típico parte de su LAN hacia el enrutador multiprotocolo local. Al llegar ahí, el código de la capa de red decide por cuál enrutador multiprotocolo reenviará el paquete, usando sus propias tablas de enrutamiento. Si ese enrutador puede alcanzarse usando el protocolo de la red 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 125 nativa del paquete, éste se reenvía directamente ahí. De otra manera, se envía por túnel, encapsulado en el protocolo requerido por la red que interviene. Este proceso se repite hasta que el paquete llega a la red de destino. Una de las diferencias del enrutamiento entre las redes y el enrutamiento de las redes es que el primero con frecuencia requiere el cruce de fronteras internacionales. De pronto, entran en escena varias leyes, como las estrictas leyes suecas de confidencialidad sobre la exportación de datos personales de ciudadanos suecos. Otro ejemplo es la ley canadience que indica que el tráfico de datos que se origina en Canadá y llega a un destino en Canadá no puede dejar el país. Otra diferencia entre el enrutamiento interior y el enrutamiento exterior es el costo. Dentro de una sola red, normalmente se aplica un solo algoritmo de cargo. Sin embargo, redes diferentes puden estar bajo administraciones diferentes, una ruta puede ser menos cara que otra. Del mismo modo, la calidad de servicio ofrecida por diferentes redes puede ser distinta, y ésta puede ser una razón para escoger una ruta y no otra. Algoritmo de Encaminamiento IP De los principios ya comentados de IP, es fácil deducir los pasos que IP debe tomar con el fin de determinar la ruta para un datagrama de salida. Es lo que se denomina algoritmo de encaminamiento IP. Se trata de un algoritmo iterativo. Se aplica a todo host que maneje un datagrama, exceptuando al host al que se entrega finalmente el datagrama. (ver figura 4.34 de la página 124) Tipos de Algoritmos Vector-Distancia El término Vector-Distancia se refiere a una clase de algoritmos que usan las pasarelas para actualizar su información de encaminamieto. Cada router comienza con su conjunto de rutas para aquellas con las que está directamente conectado, y posiblemente algunos routers adicionales a otras redes o hosts si la topología de la red es tal que el protocolo de encaminamiento no es capaz de producir el encaminamiento deseado. Esta lista se guarda en una tabla de encaminamiento, en la que cada entrada identifica una red de host de destino y a la distancia a ella. Esta distancia se denomina métrica y se mide típicamente en saltos. 126 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.34: Algoritmo de Encaminamiento IP. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 127 Peródicamente cada router envía una copia de su tabla de encaminamiento a cualquier otro router que pueda alcanzar directamente. Cuando un informe le llega al router B del A, B examina el conjunto de destinos que recibe y la distancia a cada uno. B actualizará su tabla de encaminamiento si: • A conoce un camino más corto a cada destino. • A lista un destino que B no tiene en su tabla. • La distancia de A a un destino desde B pasando por A ha cambiado. En esta clase de algoritmo es fácil de implementar, pero tiene un número de desventajas: • Cuando las rutas cambian rápidamente, es decir, aparece una nueva conexión o a una falla vieja, la topología de encaminamiento puede no estabilizar la topología cambiada debido a que la información se propague lentamente y mientras se esté propagando, alguno routers tengan información de encaminamiento incorrecta. • Cada router tiene que enviar una copia de toda su tabla de encaminamiento a cada vecino a intervalos regulares. Por supuesto, se pueden usar intervalos más largos para reducir la carga de la red pero eso introduce problemas relacionados con la respuesta de la red a cambios en la topología. Los algoritmos vector - distancia que usan la cuenta de saltos como métrica no tienen en cuenta la velocidad o la fiabilidad del enlace. La tarea más difícil en uno de estos algoritmos es prevenir la inestabilidad. Existen distintas soluciones: • Cuenta hasta infinito: Se elige un valor de 16 bits para representar infinito. Suponer que una red se vuelve inestable, todos sus vecinos generan un timeout y fijan la métrica de esa red a 16. Podemo considerar que todos los routers vecinos tienen algún elemento hardware que los conecta con la red desaparecida, con un coste de 16. Ya que se trata de su única conexión con esa red, el resto de los router convergerá hacia nuevas rutas que pasen por los vecinos con una conexión directa pero 128 CAPÍTULO 4. PROTOCOLOS DE TCP/IP no disponible. Una vez que se ha producido la convergencia, todos los routers tendrán una métrica de 16 para la red desaparecida. Como 15 indica infinito, la red está inaccesible para todos. La cuestión con algunos algoritmos vector-distancia no es si se producirá la convergencia, sino cuánto tiempo llevará. (ver figura 4.35 de la página 126). Figura 4.35: El problema de la cuenta hasta infinito- Todos los enlaces tienen una métrica de 1 excepto por la ruta indierecta C a D que tiene de métrica 0Consideremos ahora sólo las rutas de cada pasarela a la red de destino. (ver figura 4.36 de la página 127) Consideremos ahora que el enlace de B a D falla. Las rutas se deberían aujstar para utilizar el enlace de C a D. Los cambios en el encaminamiento comienzan cunado B se da cuenta de que la ruta D ya no es utilizable. En RIP (Protocolo de Información de Ruteo) esto sucede cuando B no recibe 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 129 Figura 4.36: Rutas de cada pasarela a la Red de Destino. actualización de su enlace durante 180 segundos. La siguiente imagen muestra la métrica para la red de destino, como aparece en la tabla de encaminamiento de cada pasarela (ver figura 4.37 de la página 128). El problema es que B se puede liberar de su ruta a (con un mecanimso de timeout), pero quedan vestigios de esa ruta en el sistema durante mucho tiempo (el tiempo entre iteraciones es de 30 segundos en RIP). Inicialmente, A y C todavía piensan que pueden alcanzar a D vía B, así que siguen enviando actualizaciones con métricas de 3, B las recibirá y, en la siguienrte iteración dirá que puede llegar a D por A o por C. Por supuesto, no puede, lya que las rutas dadas por A y C (D alcanzable vía B con métrica 3) ya no están, pero no hay forma de saberlo aún. Incluso cuando descubren que sus rutas por B han desaparecido, todavía piensan que hay una ruta disponible a través del otro. Al final el sistema convergerá, cuando el enlace directo de C a D tenga menor coste que el recibido (por C) de B a A. Pero el caso es cuando una red se vuelve completamente inaccesible desde alguna parte del sistema: en ese caso, las métricas se pueden incrementar lentamente de modo parecido al indicado arriba hasta que finalmente alcance el valor infinito. Por esta razón, el problema se llama cuenta hasta infinito. De esta forma, la elección de la infinidad es un compromiso entre el tamaño de la red y la velocidad de convergencia en el caso de que la cuenta se produzca. Esto explica por qué 130 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Figura 4.37: El problema de la cuenta hasta infinito. se elige un valor tan bajo como 16, que es el usado por RIP (Protocolo de Información de Ruteo). Estado del enlace. Primero el Camino Más Corto El crecimiento de las redes durante los últimos años ha forzado los IGPs (Protocolos de Encaminamiento Interior) más allá de sus límites. La alternativa primaria a los esquemas vector-distancia es una clase de protocolos conocida como Estado del Enlace, Primero el Camino Más Corto. Sus características principales son: • Un conjunto de redes físicas se divide en un número de áreas. • Todos los routers dentro de un área tiene idénticas bases de datos. • La base de datos de cada router describe la topología completa del dominio de encaminamiento (qué routers se conectan a qué redes). La topología de un área se representa en una base de datos denominada LSD (“Link State Database”) que es una descripción de todos los enlaces de los routers del área. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 131 • Cada router usa su base de datos para derivar el conjunto de caminos mínimos a todos los destinos de los que construye su tabla. El algoritmo usado para determinar los caminos óptimos se llama SPF (“Shortest Path First”). En general, un protocolo enlace estado trabaja del modo siguiente: Cada router envía periódicamente una descripción, de su conexión (el estado de su enlace) a sus vecinos (aquellos conectados a la misma red). Esta descripción llamada LSA (“Link State Advertisement”), incluye el coste de la conexión. El LSA inunda el dominio del router. Cada router del dominio mantienen una copia idéntica y sincronizada de una base de datos compuesta de la información del estado del enlace. Esta base de datos describe la topología del dominio como las rutas a redes fuera del dominio como son rutas a redes en otros AS (Sistemas Autónomos). Cada router ejecuta un algoritmo sobre su base de datos resultando en un árbol del camino mínimo MST (“Mínimun Spanning Tree”), que contiene la ruta más corta para cada oruter y red que pueda alcanzar la pasarela. A partir de él, el coste hasta el destino y el salto siguiente para retransmitir un dato se utilizan para construir la tabla de encaminamiento del router. Este tipo de protocolo, en comparación con los protocolos vector-distancia, envían actualizaciones cuando hay noticias, que pueden ser regulares para asegurar a los vecinos que la conexión sigue activa. Lo que es más importante, la información intercambiada es el estado del enlace, no los contenidos de la tabla de encaminamiento. Esto significa que los algoritmos de estado del enlace usan menos recursos que su contrapartida vector-distancia, sobre todo cuando el encaminamiento es complejo o el AS grande. Sin embargo, tienen un elevado coste computacional. A cambio, los usuarios consiguen respuesta a los eventos de red más rápido, convergencia más veloz, y acceso a servicios de red más avanzados. Protocolo OSPF “Protocolos de Enrutamiento de Puerta de Enlace Interior” El protocolo de puerta de enlace interior original de Internet era un protocolo de vector-distancia RIP (“Routing Information Protocol”) basado en el algoritmo de Bellman-Ford heredado de ARPANET. Funcionó bien en sistemas pequeños, pero no así conforme los sistemas autónomos (AS) fueron más grandes. También padeció el problema de la cuenta hasta infinito y la convergencia 132 CAPÍTULO 4. PROTOCOLOS DE TCP/IP generalmente lenta, por lo que se reemplazó en mayo de 1979 por un protocolo de Estado del Enlace. En 1988, la Fuerza de Tarea de Ingeniería de Internet empezó el trabajo en un sucesor. Ese sucesor, llamado OSPF (Abrir Primero la Ruta más Corta), se volvió una norma en 1990. Ahora la mayoría de vendedores de enrutadores lo apoyan, y se ha convertido en el protocolo de puerta de enlace interior principal. Dada la larga experiencia con otros protocolos de enrutamiento, el grupo que diseñó el nuevo protocolo tenía una larga lista de requisitos que cumplir. Primero, el algoritmo se tenía que publicar en la literatura abierta, de ahí la “O” inicial de OSPF. Una solución patentada poseída por una compañía no lo haría. Segundo, el nuevo protocolo tenía que apoyar una variedad de métrica de distancia, como la distancia física, retardo, etcétera. Tercero, tenía que ser un algoritmo dinámico, uno que se adaptara automática y rápidamente a los cambios de topología. Cuarto, y esto era nuevo para OSPF, tenía que apoyar el enrutamiento con base en el tipo de servicio, el nuevo protocolo tenía que poder dirigir el tráfico en tiempo real de una manera y el resto del tráfico de una manera diferente. El protocolo IP tiene un campo Tipo de Servicio, pero ningún protocolo de enrutamiento existente lo usó. Este campo estaba incluído en OSPF pero tampoco se usó, y finalmente se lo eliminó. Quinto, y relacionado con el anterior, el nuevo protocolo tenía que balancear la carga, dividiéndose en líneas múltiples. La mayoría de los protocolos anteriores enviaban todos los paquetes por la mejor ruta. La mejor segunda ruta no se usó en absoluto. En muchos casos, dividir la carga en líneas múltiples ofrece un mejor desempeño. Sexto, se necesitó apoyo para los sistemas jerárquicos. En 1988 Internet había crecido tanto que no se podía esperar que ningún enrutador conociera toda la topología. Se tuvo que diseñar el nuevo protocolo de enrutamiento para que ningún enrutador tuviera que conocerla. Séptimo, se requirió una pizca de seguridad para impedir que se engañara a los enrutadores enviándoles falsa información de enrutamiento. Finalmente se necesitó una previsión para tratar con enrutadores que se conectaban a Internet mediante un túnel. Los protocolos anteriores no mane- 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 133 jaron bien este aspecto. OSPF soporta tres tipos de conexiones y redes: • Las líneas punto a punto exactamente entre dos enrutadores. • Redes multiacceso con difusión (por ejemplo, la mayoría de LANs). • Redes multiacceso sin difusión (por ejemplo, la mayoría de WANs de paquetes conmutados). Una red de multiacceso es la que puede tener múltiples enrutadores, cada uno de los cuales se puede comunicar directamente con todos los demás. Todas las LANs y WANs tienen esta propiedad. La figura.... muestra un Sistema Autónomo que contienen los tres tipos de redes. Observe que en general los hosts no tienen un papel en OSPF. OSPF funciona resumiendo la colección de redes reales, enrutadores y líneas en un grafo dirigido en el que a cada arco se asigna un costo (distancia, retardo, etcétera). Entonces calcula la ruta más corta con base en los pesos de arcos. Una conexión en serie entre dos enrutadores se representa por un par de arcos, uno en cada dirección. Sus pesos pueden ser diferentes. Una red de multiacceso se representa con un nodo para la red en sí más un nodo para cada enrutador. Los arcos del nodo de la red a los enrutadores tienen peso 0 y se omiten del grafo. Los pesos son simétricos, a menos que se marcaran de otra manera. Lo que OSPF hace fundamentalmente es representar la red real com un grafo y entonces calcular el camino más corto de uno a otro enrutador. Muchos de los Sistemas Autónomos en Internet son grandes por sí mismos y nada sencillos de administrar. OSPF les permite dividirlos en áreas numeradas donde un área es una red o un conjunto de redes inmediatas. Las áreas no se traslapan ni la necesidad es exhaustiva, es decir, algunos enrutadores no pueden pertenecer a área alguna. Un área es una generalización de una subred. Fuera de un área, su topología y detalles no son visibles. Cada Sistema Autónomo tienen un área de red dorsal, llamada 0. Todas las áreas se conectan a la red dorsal, posiblemente por túneles, de modo que es posible entrar desde cualquier área en el Sistema Autónomo a cualquier otra área en el Sistema Autónomo mediante la red dorsal. 134 CAPÍTULO 4. PROTOCOLOS DE TCP/IP En el grafo un túnel se representa como un arco y tiene un costo. Cada enrutador que se coneta a dos o más áreas es parte de la red dorsal. Como con otras áreas, la topología de la red dorsal no es visible fuera de ésta. Dentro de un área, cada enrutador tiene la misma base de datos del estado del enlace y ejecutrá el mismo algoritmo de la ruta más corta. Su trabajo principal es calcular el camino más corto desde sí mismo a cualquier otro enrutador en el área, incluso es un enrutador que se coneta a la red dorsal, de la que debe haber una por lo menos. Un enrutador que conecta dos áreas necesita las bases de datos para las dos áreas y debe ejecutar el algoritmo de la ruta más corta por separado. Durante la operación normal, pueden necesitarse tres tipos de rutas: centro del área, entre áreas y entre Sistemas Autónomos. Las rutas dentro del área son las más fáciles, puesto que el enrutador de origen ya conoce el caminomás corto al enrutador de destino. El enrutamiento entre áreas siempre procede en tres pasos: va del origen a la red dorsal ; va a través de la red dorsal al área de destino; va al destino. Este algoritmo forza una configuración de estrella en OSPF con red dorsal actuando como concentrador y las otras áreas como rayos. Los paquetes se enrutan del origen al destino “como están”. No se encapsulan ni se entunelan, a menos que vayan a un área cuya única conexión a la red dorsal sea un túnel. La figura 5-64 muestraparte de Internet con sistemas autónomos y áreas. OSPF distingue cuatro clases de enrutadores: • Enrutadores internos que están totalmente dentro de un área. • Enrutadores de límite de área que conectan dos o más áreas. • Enrutadores de la red dorsal que están en la red dorsal. • Enrutadores fronterizos de Sistemas Autónomos que se comunican con los enrutadores de otros sistema autónomos. Protocolo BGP “Protocolo de Puerta de Enlace de Frontera” Dentro de un sólo Sistema Autónomo, el protocolo de enrutamiento recomendado es OSPF (aunque no es ciertamente el único en uso). Entre los sistemas autónomos se utiliza un protocolo diferente, el Protocolo de Puerta de Enlace de Frontera (BGP). 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 135 Se necesita un protocolo diferente entre Sistemas Autónomos porque los objetivos de un protocolo de puerta de enlace interior y un protocolo de puerta de enlace exterior no son los mismos. Todo lo que tiene que hacer un protocolo de puerta de enlace interior es mover lo más eficazmente posible los paquetes del orihen al destino. No tiene que preocuparse por las políticas. Los enrutadores de protocolo de puerta de enlace exterior tienen que preocuparse en gran manera por la política. Por ejemplo, un Sistema Autónomo corporativo podría desear la habilidad para enviar paquetes a cualquier sitio de Internet y recibir los paquetes de cualquier sitio de Internet. Sin embargo, podría no estar dispuesto a llevar paquetes de tránsito que se originan en un Sistema Autónomo foráneo con destino a un Sistema Autónomo foráneo diferente, aún cuando su propio Sistema Autónomo estaba en la ruta más corta entre los dos Sistemas Autónomos foráneos (“Ése es su problema no el nuestro”). Por otro lado, podría estar dispuesto a llevar el tráfico del tránsito para sus vecinos o incluso para otros Sistmas Autónomos específicos que pagaron por este servicio. Por ejemplo, las compañías telefónicas podrían estar contentas de actuar como empresas portadoras para sus clientes, pero no para otro. En general, los protocolos de puerta de enlace exterior, y BGP en particular, se han diseñado para permitir que se implementen mucho tipos de políticas de enrutamiento en el tráfico entre Sistemas Autónomos. Las políticas típicas implican consideraciones políticas, de seguridad o económicas. Las políticas en cada enrutador de BGP se configura manualmente. No son parte del protocolo. Desde el punto de vista de un enrutador de BGP, el mundo consiste en Sistemas autónomos y las líneas que los conectan. Dos Sistemas Autónomos se consideran conectados si hay una línea entre un enrutador fronterizo en cada uno. Dado el especial interés de BGP en el transporte de tráfico, las redes se agrupan en tres categorías. La primera son las redes stub, que tienen sólo una conexión con el grafo de BGP. Éstas no se pueden usar para transportar tráfico proque no hay nadie en el otro lado. Luego vienen las redes multiconectadas. Éstas podrían usarse parar el transporte de tráfico excepto que lo rechacen. Finalmente, están las redes de tránsito, como redes dorsales, que están dispuestas a ocuparse de paquetes de terceros, posiblemente con algunas restricciones y normalmente por pago. Los pares de enrutadores de BGP se comunican entre sí estableciendo co- 136 CAPÍTULO 4. PROTOCOLOS DE TCP/IP nexiones TCP. Operando de esta manera proporcionan comunicación confiable y ocultan todo detalle de red que pase a través de ellos. Básicamente, BGP es muy parecido a un protocolo de vector-distancia, pero muy diferente de lamayoría de otros como RIP (Protocolo de Información de Ruteo). En lugar de mantener el costo para cada destino, cada enrutador de BGP guarda el registro de la ruta utilizada. por lo que se conoce como un protocolo de vector de ruta. Del mismo modo, en lugar de darle a cada vecino el costo de cada posible destino estimado periódicamente, cada enrutador de BGP les dice el camino exacto que está usando. Luego que han llegado todas las rutas de los vecinos, f lags examina para ver cuál es la mejor. Desecha pronto las de I y E, porque pasan a través de la propia F. La opción está entonces entre usar B y G. Cada enrutador BGP contiene un módulo que examina las rutas a un destino dado y las califica, devolviendo un número para la distancia a ese destino por cada ruta. Cualquier ruta que viole una restricción de la política recibe automáticamente una calificación al infinito. Entonces el enrutador adopta la ruta de la distancia más corta. La función de calificar no es parte del protocolo de BGP y puede ser cualquier función que el gerente de sistemas desee.figura BGP resuelve fácilmente el problema de la cuenta hasta infinito que plaga otros algoritmos de vector-distancia. Por ejemplo, suponga que G se congela o que la línea FG se cae. Entonces F recibe las rutas de sus tres vecinos restantes. Estas rutas son BCD, IFGCD Y EFGCD. Puede ver inmediatamente que las dos últimas rutas son vanas, ya que atraviesan F, por lo que escoge FBCD como su nueva ruta. A menudo otros algoritmos de vector-distancia hacen una mala elección porque no saben queénes de sus vecinos tienen rutas independientes al destino y quiénes no. Tabla de Encaminamiento IP Cada host guarda el conjunto de mapeados entre las direcciones IP de destino y las direcciones IP del siguiente salto para ese destino en una tabla llamada tabla de encaminamiento IP. Se puede decir que contiene información acerca de las redes conectadas localmente y de las direcciones IP de otros “routers” localizados en ellas, además de las redes con las que están conectados. Se puede extender con información de las redes IP que se hallan aún más lejos, y tener incluso una ruta por defecto, pero sigue representando una fracción de Internet. Por ello se le llama “router con información parcial de encaminamiento”. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 137 A estos “routers” se les aplica algunas consideracines: • No conocen todas las redes de Internet. • Permiten la autonomía de sitios locales para establecer y modificar rutas. • Una entrada de encaminamiento errónea en uno de los “routers” puede introducir inconsistencias, haciendo por tanto que parte de la red sea inalcanzable. Deberían implementar algún mecanismo de informe de errores via ICMP (“Internet Control Message Protocol”) . Los siguientes errores deberían poderse enviar al host fuente: • Destino IP desconocido con un mensaje ICMP Destination Unreachable. • Redirección del tráfico a “routers” más adecuados enviando mensajes ICMP Redirect. • Problemas de congestión (demasiados datagramas entrantes para el espacio disponible en el buffer) con el mensaje ICMP Source Quench. • El campo TTL (“Time-to-Live”) de un datagrama IP ha llegado a cero. Se comunica con el mensaje ICMP Time Exceeded. • Además, se deberían soportar las siguientes operaciones y mensajes ICMP básicos: — Problema de parámetros. — Máscara de dirección. — TS (“Time stamp”). — Solicitud/Respuesta de información. — Solicitud/Respuesta de eco. Hace falta un “router” más inteligente si: • Ha de conocer las rutas a todas las posibles redes IP, como era el caso de las pasarelas del núcleo de ARPANET. 138 CAPÍTULO 4. PROTOCOLOS DE TCP/IP • El “router” ha de tener tablas de encaminamiento dinámicas, que se actualizan con poca o ninguna intervención manual. • El “router” ha de anunciar los cambios locales a los otros “routers”. Estas formas más avazadas de un “router” usan protocolo adicionales para comunicarse: • Usando la terminología de Internet, existe el concepto de AS (“Autonomous System”), o grupo de redes, que se administra como una unidad. Los encaminamientos dentro y fuera de un AS se tratan como cuestiones distintos y existen protocolos diferentes para cada uno. • Durante unas dos décadas se probaron numerosos protocolos en Internet. Algunos de ellos funcionaron bien, otros tuvieron que ser abandonados. • La aparición de ASs de distintos tamaños requería diferentes soluciones de protocolos basado en DV (“Distant Vector”). Sin embargo no funcionaban bien en redes grandes. Los protocolos LS (“Link State”) son mucho más adecuados para estas redes. • Para intercambiar información de encaminamiento entre ASs se desarollaron los protocolos de pasarelas fronterizas. En la tabla se pueden encontrar tres tipos de mapeados: (a) Rutas directas, para redes conectadas localmente. (b) Rutas indirectas, para redes accesibles a través de uno o más routers. (c) Una ruta por defecto, que contiene la ir IP de un “router” que todas las direcciones IP no contempladas en las rutas directas e indirectas han de usar. (ver figura 4.38 de la página 137) La tabla de encaminamiento contiene las siguientes entradas: destination route via 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 139 Figura 4.38: Ejemplo de tabla de encaminamiento IP. 128.10 direct attachment 129.7 128.15.1.2 default 128.10.1.1 Destinos Directos e Indirectos Si el host de destino está conectado a una red a la que también está conectado el host fuente, un datagrama IP puede ser enviado directamente, simplemente encapsulando el datagrama IP en una trama. Es lo que se llama encaminamiento directo. El encaminamiento indirecto ocurre cuando el hsot de destino no está en una red conectada directamente al host fuente. La única forma de alcanzar el destino es a través de uno o más “routers”. La dirección del primero de ellos (el primer salto) se llama ruta indirecta. La dirección del primer salto es la única información que necesita el host fuente: el router que reciba el datagrama se responsabiliza del segundo salto, 140 CAPÍTULO 4. PROTOCOLOS DE TCP/IP y así sucesivamente. (ver figura 4.39 de la página 138) Figura 4.39: Rutas IP- El host A tiene una ruta directa con B y D, y una indierecta con C. El host D es un router entre las redes 129.1 y 129.2Un host puede distinguir si una ruta es directa o indiracta examinando el número de red y de subred de la dirección IP. 1. Si coinciden con una de las direcciones IP del host fuente, la ruta es directa. El host necesita ser capaz de direccionar correctamente el objetivo usando un protocolo inferior a IP. Esto se puede hacer automáticamente, usando un protocolo como ARP, que se usan en LANs con broadcast, o estáticamente y configurando el host. 1. Para rutas indirectas, el único conocimiento requerido es la dirección IP de un “router” que conduzca a la red de destino. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 141 Las implementaciones de IP pueden soportar también rutas explícitas, es decir, una ruta a una dirección IP concreta. Esto es habitual en las conexiones que usan SLIP (“Serial Line Internet Protocol”) que no proporciona un mecanismo para que dos hosts se informen mutuamente de sus direcciones IP. Tales rutas pueden tener incluso el mismo número de red que el host, por ejemplo en subredes compuestas de enlaces punto a punto. En general, sin embargo, la información de encaminamiento se genera sólo mediante los números de red y de subred. Opciones de Encaminamiento del Datagrama IP El campo “options” del datagrama IP admite dos métodos para que el generador del datagrama de explícitamente información de encaminamiento y uno para que el datagrama determine a ruta que va a emplear. LSR (“Loose Source Routing”) Esta opción, conocida también como LSRR (“Loose Source and Record Route”), proporciona un medio para que la fuente del dar suministre información de encaminamiento explícita que usarán los “routers” que retransmiten el datagrama, y para grabar la ruta seguida. (ver figura 4.40 de la página 139) Figura 4.40: Opción LSR. 1000011: Es el valor del byte “option” para LSR. Length: Contiene la longitud de este campo, incluyendo los campos “type” y “length”. Pointer: Apunta a los datagramas de la opción en la siguiente dirección IP a procesar. Es relativo a comienzo de la opción, por lo que su valor mínimo es de cuatro. Si su valor supera la longitud de la opción, se alcanza el final de la ruta de la fuente y el resto del encaminamiento se ha de basar en la dirección IP de destino (como en los datagramas que no tiene esta opción). Route Data: Es una serie de direcciones IP de 32 bits. 142 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Siempre que un datagrama llega a su destino y la ruta de la fuente no está vacía (pointer‹length) el receptor: • Tomará la siguiente dirección IP de este campo (el indicado por “pointer” y lo pondrá en el campo de la dirección IP de destino el datagrama. • Pondrá la dirección IP local en la SL (source list) en la localización a la que apunte pointer. La dirección IP local es la correspondiente a la red por la que se enviará el datagrama. • Incremetará pointer en 4. • Transmitirá eL datagrama a la nueva dirección IP de destino. Este procedimiento asegura qeu la ruta de retorno se graba en “route datagram” (en orden inverso) de modo que el receptor use estos datagramas para construir un LSR en el sentido inverso. Se denomina LSR (“Loose Source Route”) porque al router retransmisor se le permite usar cualquier ruta y cualquier número de host intermedios para alcanzar la siguiente dirección de la ruta. El host emisor pone la dirección IP del primer router intermedio en el campo dirección IP de destino y las direcciones de los demás routers de la ruta, incluyendo el destino, en la opción “source route”. La ruta que hay grabada en el datagrama cuando este llega al objetivo contiene las direcciones IP de cada uno de los routers que retransmitió el datagrama. SSR (“Strict Source Routing”) Esta opción, llamada también SSRR (“Strict Source and Record Route”), emplea el mismo principio que LSR (“Loose Source Route”) exceptuando que el router intermedio debe enviar el datagrama a la siguiente dirección IP en la ruta especificada por la fuente a través de una red conectada directamente y no por medio de un router intermedio. Si no puede hacerlo envía un mensaje ICMP “Destination Unreachable” (ver figura 4.41 de la página 141). 1001001: Es el valor del byte “option” para el método SSR. Length: Tiene el mismo significado que para LSR. Pointer: Tiene el mismo significado que para LSR. Route Data: Es una serie de direcciones IP. 4.2. PROTOCOLOS DE LA CAPA DE INTERRED 143 Figura 4.41: Opción SSR. RR (Record Route) Esta opción proporciona un medio para grabar la ruta de un datagrama IP. Funciona de modo similar al SSR (“Strict Source Routing”) anterior, pero en este caso el host fuente deja el campo de datos de encaminamiento vacío, que se irá llenando a medida que el datagrama viaja. El host fuente debe dejar suficiente espacio para esta inforamción: si el campo se llena antes de que el datagrama llegue a su destino, el datagrama se retransmitirá, pero se dejará de grabar la ruta. (ver figura 4.42 de la página 141) Figura 4.42: Opción RR. 0000111: Es el valor del byte option para el método RR. Length: Tiene el mismo significado que para LSR. Pointer: Tiene el mismo seginificado que para LSR. Route Data: Su longitud es un múltiplo de cuatro bytes, y loelige el generador del datagrama. IT (“Internert Timestamp”) El timestamp o sello de tiempo es una opción para forzar a algunos (o a todos) de los routers de la ruta hacia el destino a poner un timestamp en los datos de la opción. Los timestamps se miden en segundos y se pueden usar para la depuración. No se pueden emplear para medir el rendimiento por dos razones: 144 CAPÍTULO 4. PROTOCOLOS DE TCP/IP • No son lo bastante precisos porque la mayoría de los datagramas se envían en menos de un segundo. • No son lo bastante precisos porque los routers no han de tener relojes sincronizados. (ver figura 4.43 de la página 142) Figura 4.43: Opción IT. Donde: 01000100: Es el valor del byte option para IT. Length: Contiene la longitud total de esta opción, incluyendo los campos type y length. Pointer: Apunta al siguiente timestamp a procesar (el primero que esté disponible). Oflew (overflow):Es un entero sin signo de 4 bits que indica el núemro de módulo IP, que no pueden registrar timestamps, por falta de espacio en el campo de datos. Flag: Es un valor de 4 bits que indica cómo se han de registrar los timestamps. Los valores posibles son: 0: Sólo timestamps almacenados en palabras consecutivas de 32 bits. 1: Cada timestamps se precede con la dirección IP del módulo que efectúa el registro. 2: La dirección IP se pre-especifica y un módulo IP sólo realiza el registro 4.3. TCPMON: “ANALIZADOR DE PROTOCOLOS TCP/IP” 145 cuando encuentra su propia dirección en la lista. Timestamp: Un timestamp de 32 bits medido en milisegundos desde la medianoche según UT (GTM). El host emisor debe compones esta opción con un área de datos bastante grande para almacenar todos los timestamps. Si el área de los timestamps se llena, no se añaden más. 4.3 TCPMON: “Analizador de Protocolos TCP/IP” TCPMON es un programa analizador de Protocolos TCP/IP para ayuda en la docencia de redes de computadores. Diseñado e implementado por el departamento DISCA de la Universidad Politécnica de Valencia para sus uso, principalmente, en la docencia de las asignaturas de redes de computadores. Es un programa para Windows 9x que permite capturar y analizar las tramas que circulan por la red, lo cual es muy interesante para el estudiante de estas materias. TCPMON es también una poderosa herramienta para cualquier programador que desarrolle aplicaciones que utilicen la red. 4.3.1 Motivación Un analizador de protocolos es una herramienta tradicional en el desarrollo y depuración de protocolos y aplicaciones de red. Es un programa que permite al ordenador capturar tramas de la red para, posteriormente o en tiempo real, proceder a su análisis. Por analizar se entiende que el programa es capaz de reconocer que la trama capturada transporta información asociada a un protocolo concreto (por ejemplo a TCP, a ICMP,...) y muestra al ususario la información convenientemente decodificada. De esta manera el ususario puede, de forma cómoda, ver qué es lo que está circulando por la red. Esto es lo básico para un programador que esté desarrollando un protocolo (o cualquier programa que transmita o reciba datos de la red) ya que le permite 146 CAPÍTULO 4. PROTOCOLOS DE TCP/IP comprobar qué es lo que realmente hace el programa. Es también útil a un estudiante que desee experimentar / comprobar cómo funcionan los protocolos tradicionales de red. El esdudio de un protocolo puede resultar poco ameno al alumno, sobre todo si el estudio se limita a la estructura y funcionalidad de las unidades de datos que el protocolo intercambia. El uso de un analizador es muy útil para clarificar la dinámica de un protocolo, al tiempo que refuerza la curiosidad del alumno por saber qué es lo que está pasando en la red. Además, le permite comprobar la relación entre los diferentes protocolos, lo que facilita la comprensión de su funcionamiento. Existen distintos tipos de analizadores disponibles comercialmente, y de distintos precios, pero normalmente son productos caros o muy caros. El precio depende de la capacidad del análisis, de la tecnología de red soportadas y de si se trata sólo de software o si es un equipo hardware especializado. En cualquier caso, se ha considerado que es interesante desarrollar un analizador con fines docentes, de uso fácil y de libre distribución. Por uso fácil queremos decir que el programa realiza excusivamente las tareas que hemos considerado son las requeridas por nuestros alumnos. De esta manera, las opciones de configuración del programa son las justas y no requieren que el alumno sea, en ese momento, un experto capaz de entender todas las operaciones posibles en un analizador comercial. 4.3.2 Estructura Interna de TCPMON El programa se basa en la utilización de un Packet Driver que permite el acceso a la interface NDIS de Windows, a su vez, virtualiza el nivel de acceso a red, lo que permite desarrollar aplicaciones independientes del hardware de red utilizado por el PC. La figura 4.44 de la página 145muestra la arquitectura de red en Windows y la ubicación de la interface NDIS y Packet Driver. La referencia a “Win32 application” puede ser cualquier programa Windows, y en nuestro caso es TCPMON. 4.3. TCPMON: “ANALIZADOR DE PROTOCOLOS TCP/IP” Figura 4.44: Arquitectura de Red de Windows9x. 147 148 CAPÍTULO 4. PROTOCOLOS DE TCP/IP 4.3.3 Características del PC TCPMON es un programa para plataformas Windows 9x. Para su correcto funcionamiento se requiere que el ordenador en el que se istale cumpla los siguientes requiesitos: 1. PC compatible 486 o superior con, al menos, 32 Mbytes de RAM y 2 Mbytes libres de HD. 2. Sistmea Opertivo Windows 9x y ME. 3. Adaptadore de red con interface NDIS. El programa analizador ha sido probado satisfactoriamente con tarjetas de red Ethernet, Fast Ethernet y con el Acceso Telefónico a Redes. La utilización de una CPU o una tarjeta de red poco potentes incrementa la posiblidad de pérdida de tramas. Es decir, existe la posibilidad de que el equipo no sea capaz de capturar todas las tramas que circulan por la red. Esta circunstancia, aunque poco frecuente, puede darse incluso en equipos muy potentes si el tráfico de la red es muy alto. 4.3.4 Características del Programa Analizador TCP/IP • Captura de tramas (ver figura 4.45 de la página 147). El proceso de captura pregunta al ususrio qué tipo de tramas desea capturar. El programa puede capturar todas, pero sólo almacena las tramas que es capaz de analizar, y éstas son las que contienen protocolos: — ARP y RARP. — IP e ICMP. — UDP y TCP. — IGMP. • Análisis de tramas. 4.3. TCPMON: “ANALIZADOR DE PROTOCOLOS TCP/IP” Figura 4.45: Configuración de la Captura. 149 150 CAPÍTULO 4. PROTOCOLOS DE TCP/IP Esta función es activada autmáticamente tras la captura. También se puede activar sobre una captura previa almacenada en disco. El programa muestra la estructura de la trama y los protocolos en ella contenidos. Por ejemplo, si se trata de una trama que contiene datos de una aplicación sobre TCP, se muestra: — Los campos de la trama. — Los campos de datragrama IP. — Los campos de segmento TCP, y finalmente.. — Los datos de la aplicación. — Estadísticas de red. El programa también suministrará estadísticas, en foramto numérico y en formato gráfico del tráfico capturado. Existe la posibilidad de pedirle al programa que muestre estadísticas del tráfico actual sin quealmacene las tramas que escucha. • Otras características Junto a las caracterísitcas prinicpales ya comentadas, el programa dispone de un conjunto de facilidades básicas para hacerlo tatalmente funcional, como son: — Recuperación y almacenamiento en disco duro de sesiones capturadas. — Opciones de búsqueda de una trama en una sesión de captura. — Opciones para personlizar la presentación de la aplicación. — Opciones de configuración. Selecionar de la tarjeta de red con la que operará el analizado. — Información sobre los parámetros operativos de la red. 4.3.5 Conclusiones Esta “demo” presenta la aplicación TCPMON. Un analizador de protocolos con fines docentes y de libre distribución. 4.3. TCPMON: “ANALIZADOR DE PROTOCOLOS TCP/IP” 151 Es una herramienta básica para cualquier alumno de asignaturas de redes de computadores. El alumno puede utilizar TCPMON para observar la dináminca de los protocolos de red que estudia y también para depurar cualquier desarrollo de programas que utilicen la red para transmitir y recibir datos. TCPMON funciona sobre el interface de red NDIS. Puede ser utilizado con el Acceso Telefónico a Reedes de Windows (Modems) y con cualquier tarjetra de red. También es útil como analizador off-line para el estudio de una captura previa. Capítulo 5 Análisis de Seguridad de TCP/IP [9] 5.1 Introducción Este capítulo pretende analizar los aspectos asociados a la seguridad de la familia de protocolos TCP/IP, así como de los servicios que se establecen típicamente sobre esta pila de protocolos. Hoy en día, el uso de TCP/IP se ha extendidio prácticamente a la totalidad de las redes de comunicaciones de datos, potenciado fundamentalmente por la expansión de Internet, así como de las redes corporativas y de cooperación asociadas a esta tecnología: Intranets y Extranets. Habitualmente el diseño de las redes se basaba en características como la funcionalidad o la eficiencia, pero no en la seguridad, condiciones que son rentables desde un punto de vista de negocio a corto plazo, pero que pueden resultar caras a largo. Para la realización del análisis de diseño de una red segura es necesario conocer los detalles y características de los protocolos de comunicaciones subyacentes, que serán los encargados de transportar la información y datos que desean distribuirse. A su vez, deberá analizarse los servicios que se proporcionan en dicha red y sus detalles de funcinamiento. Aquí se profundizará en las vulnerabilidades existentes en los protoclos 153 154 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] desde un punto de vista teórico. Se complementa al capítulo con una visión práctica proporcionada por las herramientas existentes para permitir o denegar la ejecución de las mencionadas vulnerabilidades. 5.2 IP Versión 6 El rápido crecimiento de r, así como la existencia de numerosos dispositivos que requieren comunicarse mediante TCP/IP: servidores, PCs, dispositivos de red, PDAs, teléfonos móviles y otros dispositivos, inalámbricos, teléfonos IP, equipos de electrónica: TV, videos, DVDs, está empujando al cambio de IP versión 4, a IP versión 6 o IP Next Generation. La posibilidad de poder escalar el número de direcciones IP, que escasea actualmente, es su propiedad fundamental. En lugar de los 32 bits de las direcciones en IPv4, se pasará a 128 bits en IPv6. El inmenso dominio de direcciones existentes no es su única característica, su propiedad es su auto-configuración y auto-descubrimiento. Las direcciones se asignarán en base a un identificador de interfaz como la dirección MAC, y un prefijo de red. Asimismo, IPv6 introduce una arquitectura P2P, que permite esquemas de direccionamiento globales extremo a extremo. Esta tecnología sustituirá al NAT. A su vez, incluye características para dar seguridad de servicio. La definición e implementación del nuevo protocolo se está llevando a cabo por el IETF junto con los fabricantes de equipos de red. Asimismo el IETF posee grupos dedicados a la transición de la Internet actual, basada en la versión 4, a la futura basada en la versión 6 como el llamado “NGtrans WG”. Actualmaente existe una red basada en IPv6, sobre la Internet actual, empleada para la realización de pruebas y mejoras del protocolos: 6Bone. Esta red se basa principalmente en la creación de túneles que encapsulan el tráfico IPv6 sobre las redes IPv4. El otro protocolo que permitirá una correcta transición basada en la independencia de las dos versiones es MPLS, empleando ampliamente hoy en día en las redes principales de los proveedores de comunicaciones. Desde el punto de vista de los sistemas, una alternativa es la conocidacomo 5.3. HISTORIAS DE LAS VULNERABILIDADES 155 dual-stack, en el que un equipo posee dos pilas TCP/IP simultáneamente, una para cada versión, pudiendo comunicarse con ambos tipos de redes y equipos. 5.3 Historias de las vulnerabilidades En los primeros años, los ataques involucran poca sofisticación técnica. Los ataques internos se basaban en utilizar los permisos para alterar la información. Los externos se basaban en acceder a la red simplemente averiguando una clave válida. A través de los años se han desarrollado formas cada vez más sofisticadas de ataque para explotar vulnerabilidades en el diseño, configuración y operación de los sistemas. Esto permitió a los nuevos atacantes tomar control de sistemas completos produciendo verdaderos desastres que en muchos casos llevaron a la desaparición de aquellas organizaciones o empresas con altísimo grado de dependencia tecnológica (bancos, servicos automáticos, etc.). Estos nuevos métodos de ataque han sido automatizados, por lo que en muchos casos sólo se necesita conocimiento técnico básico para realizarlos. El aprendiz de intruso, script-kiddie o ankle biter, o aprendiz de hacker, lamer o wannabee, tiene acceso hoy en día a numerosos programas y scripts (explotis) que se aprovechan de las vulnerabilidades, disponibles desde numerosas fuentes underground, como hacker newsgroups, mailing-lists y web sites, donde además encuentra todas las instrucciones para ejecturar ataques con las herramientas disponibles. Se han definido numerosos artículos, clasificando generaciones de ataques en la red existentees a lo largo del tiempo: • La primera generación: Ataque Físico. Ataques que se centraban en los compnenetes electrónicos: ordenadores y cables. El objetivo de los protocolos dsitribuidos y de la redundancia es la tolerancia frente a un punto único de fallo. Son mayormente problemas para los que actualmente se conoce la solución. 156 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] • La segunda genereción: Ataque Sintáctico (objeto del presente trabajo). Las pasadas décadas se han caracterizado por ataques en contra la lógica operativa de los ordenadores y las redes, es decir, pretenden explotar las vulnerabilidades de los programas, de los algoritmos de cifrado y de los protocolos, así como permitir la degeneración del servicio prestado, en este caso se conoce le problema, y se está trabajando en encontrar soluciones cada vez más eficaces. • La tercera generación: Ataque Semántico. Se basan en la manera en que los humanos asocian significado a un contenido. El hecho es que en la sociedad actual la gente tiende a creerse todo lo que lee (medios informativos, libros, la Web...). El inicio de este tipo de atques surgió con la colocación de información falsa en boletines informativos o e-mail, por ejemplo, para beneficiarse de las inversiones dentro de la bolsa financiera. También pueden llevarse a cabo modificando inmformación caduca. Esta generación de ataques se lleva a su extremo si se modifica el contenido de los datos de los programas de ordenador, que son incapaces de cotejar o sospechar de su varacidad, como por ejemplo la manipulación del sistema de control de tráfico aéreo, el control de un coche inteligente, la base de datos de los libros más vendidos o de índices bursátiles como el NASDAQ. Lo mismo es que estos ataques han existido fuera del entorno informático desde hace años como estadísitcas manipuladas y falsos rumores..., pero es la tecnología la que potencia su difusión. La conclusión tras el análisis de la vulnerabilidad desde un punto de vista operacional es que para evitarlas puedan definirse las tareas a realizar dentro de un sistema de seguridad de tres etapas: • Prevención: Implementada por dispositivos como firewalls. • Detección: A través de sistemas como IDs (Instruction Detection Systems). • Respuesta: Las acciones a tomas deben ser dirigidas por la parte humans típicamente los administradores de la red. 5.4. VULNERABILIDADES GENÉRICAS 5.4 157 Vulnerabilidades Genéricas Las vulnerabilidades pretenden describir las debilidades y los métodos más comunes que se utliizan para perpetrar ataques a la seguridad de la familia de protocolos TCP/IP (confidencialidad, integiridad y disponibilidad de la información). Los ataques pueden estar motivados por diversos objetivos, incluyendo fraude, extorsión robo de información confidencial, venganza, acceso no autorizado a un sitema, anulación de un servicio o simplemente el desafío de penetrar un sistem. Éstos pueden provenir principalmente de dos fuentes: • Usuarios autentificados, al menos a parte de la red, como por ejemplo empleados internos o colaboradores externos con acceso a sistemas dentro de la red de la empresa. También denominados insiders. • Atacantes externos a la ubicación física de la orgaización, accediendo remotamente. También denominados outsiders. Los métodos de ataque descritos se han dividido en categorías que pueden estar relacionadas entre sí, ya que el uso de un método permite o facilita el uso de otros, en ocasiones, complementarios. Un ejemplo de ata que podría ser la realización del análisis de un sistema, mediante fingerprinting, tras el cual es posible explotar una vulnerabilidad como un buffer-overflow de un servicio TCP/IP, enviando paquetes que parecen válidos mediante IP spoofing. Dentro de los métodos no se han incluido ataques de alto nivel, como por ejemplo la distribución y ejecución de virus a través del correo electrónico (protocolo SNMP), ya que afectan a vulnerabilidades particulares de las aplicaciones y los lenguajes de programación soportados por éstas. En numerosas ocasiones se ha empleado inicialmente el término inglés para nombrar la vunerabilidad, ya que es como se conoce comúnmente, para posteriormente asociarle su posible traducción al español. Las vulnerabilidades pueden clasificarse según dos criterios: • Número de paquetes a emplear en el ataque: — Atomic: Se requiere un único paquete para llevarla a cabo. 158 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] — Composite: Son necesarios múltiples paquetes. • Información necesaria para llevar a cabo el ataque: — Context: Se requiere únicamente información de la cabecera del protocolo. — Content: Es necesario también el campo de datos o payload. 5.4.1 Footprinting La regla número uno antes de planificar o analizar un posible ataque a un sistema, o red, es conocer el objetivo, es decir, obtener su huella identificativa o footprinting (el arte de extraer toda la información posible de la red objetivo del ataque). Por tanto la primera tarea a realizar pasa por dedicar un esfuerzo considerable a obtener y recolectar ésta información. Existen numerosas utilidades para obtener la información de un sistema: ping, whois, finger, rusers, nslookup, rcpinfo, telnet, dig, nmap... El atacante podría comenzar por ejecutar un ping contra el sistema a atacar: $ ping www.sistema.es Para comprobar sus existencia (también el uso de traceroute o de nslookup permiten obetner información si los paquetes ICMP están deshabilitados). Posteriormente podría intentar extraer información del sistema y sus usuarios mediante la utilidad finger: $ finger [email protected] La primera etapa sería buscar inforamición general de la empresa en Internet. Los pasos que podrían ralizarse a continuación irían desde ralizar búsquedas en ICANN para obtener el rango de redes asociado a la organización, como descubrir qué sistemas activos existen (mediante pings), para posteriormente conocer los posibles servicios vulnerables, empleando para ello la técnica de .escaneo de puertos. Finalmente, a través de una conexión, por ejemplo mediante TELNET, al puerto seleccionado se podrá obtener información en la mayoría de los casos, como cadenas de texto, que identifiquen el servicio, y que permitirán conocer 5.4. VULNERABILIDADES GENÉRICAS 159 el tipo de servidor y su versión. Esta técnica puede aplicarse mediante el uso de utilidades comoTELNET o NETCAT. Traceroute Toda red está caracterizada por una topología o distribución, tanto física como lógica, concreta. Existe una herramienta que ayuda a la obtención de ésta: traceroute, creada originalmente para solucionar problemas en una red. Esta técnica permite saber todos los sistemas existentes en un camino entre dos equipos. Su funcionamiento se basa en el manejo del campo TTL (“Time To Live”) de la cabecera IP de un paquete, de forma que es capaz de determinar uno a uno los saltos por los que un determinado paquete avanza en la red. El campo TTL actúa como un contador de saltos, viéndose decrementado en uno al ser reenviado por cada router. Por tanto mediante esta utilidad de diagnóstico se podrá obtener una lista de los elementos de red recorridos desde una ubicación origen hasta un sistema destino. Los paquetes de conmprobación son enviados de tres en tres. El primero datagrama enviado tiene un TTL de valor 1, por lo que generará en el primer salto un paquete ICMP Time Exceded. El siguiente datagrama verá el valor del TTL incrementado en uno, por lo que será capaz de llegar un salto más en la red que el datagrama anterior. Debe tenerse en cuenta que el comportamiento de la herramienta puede variar en función de la plataforma: el traceroute de Unix, por ejemplo Linux o HP-UX, utiliza el protocolo UCP (pudiendo usar ICMP mediante la opción “-I”). En el caso de Windows NT (tracert) se emplea el protocolo ICMP. 5.4.2 Fingerprinting Una técnica más específica que permite extraer inforamción de un sistema concreto es el fingerprintitng, es decir, la obtención de su huella identificativa respecto a la pila TCP/IP. El objetivo principal suele ser el sistema operativo que se ejecuta en la máquina destino de la inspección. Esta información junto con la versión del servico o servidor facilitará la búsqueda de vulnerabilidades asociadas al mismo. 160 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] Gran parte de lainformaicón de la pila TCP/IP puede obtenerse en base al intercambio en tres pasos propio del protocolo TCP/IP (TCP/IP three-way handshake). La probabilidad de acierto del sistema operativo remoto es muy elevada, y se basa en la identificación de las características propias de una implementación de la pila TCP/IP frente a otra, ya que la interpretación de los RFCs no concuerda siempre. Para poder aplicar esta técnica con precisión es necesario disponer de un puerto abierto (TCP y/o UDP). Las diferentes pruebas a realizar para diferenciar los sistemas opertivos son: • FIN probe. • BOGUS flag probe. • ISN sampling. • Monitorización “Don’t fragment bit”. • Tamaño de la ventana TCP inicial. • Valor de ACK. • Mensaje de error de ICMP quenching. • ICMP message quoting. • Mensaje de error de ICMP-integridad. • TOS (Tipos de Servicio). • Gestión de la fragmentación. • Opciones TCP. 5.4.3 Escaneo de Puertos-Vulnerabilidades Una vez que se dispone de los dispositivos a nivel IP activos en una red (por ejemplo, mediante ICMP), puede aplicarse a cada uno de ellos una técnica, centrada en la posterior búsqueda de vulnerabilidades, basada en una exploración de escaneo de puertos abiertos, tanto UDP como TCP. 5.4. VULNERABILIDADES GENÉRICAS 161 El escaneo es la determinación de las características de una red o sistema remotos, con el objetivo de identificar los equipos disponibles y alcanzables desde Internet, así como los servicios que ofrece cada uno. Permite saber los sistemas existentes, los servicios ofrecidos por ellos, cómo están organizados los equipos, qué sistemas operativos ejecutan, cuál es el propósitos de cada uno. De forma general, entre lo métodos de escaneo se incluyen técnicas como: • Ping sweep. • Escaneo de puertos. • Firewalking. • Trace Routing. • Identificación de Sistema Operativo. Al escanear puertos de los sistemas se descubren puntos de entrada a los mismos, que abren la puertas a nuevas vunelrabilidades potenciales en base a la implementación del servidor que escucha tras cada puerto. Además, esta técnica también permite identificar el tipo de sistema existente, así como su sistema operativo, y las aplicaciones que ofrecen un servicio en la red, así como su versión asociada. La herramienta por excelencia para realizar un escaneo de puertos es NMAP. Las técnicas existentes en el proceso de escaneo emplean diferentes procedimientos para descubrir la información del servicio: • TCP Connect Scan: Mediante el establecimiento de una conexión TCP completa. • TCP SYN Scan: Se abren coneciones a medias, ya que simplemente se envía el paquete SYN inicial, determinando la existencia de un servicio si se recibe del sistema objetivo un SYN-ACK. Si, por el contrario, se recibe un RST-ACK,es que no existe un servicio. En el caso de la existencia de un servicio, se envía un RST-ACK para no establecer conexión alguna, y no ser registrados por el sistema objetivo, a diferencia del caso anterior. 162 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] Estos dos tipos funcionarán en todods los sistemas con implementaciones TCP/IP, mientras quelos siguientes variarán según la implementación particular: • TCP FIN Scan: Al enviar un FIN a un puerto, debería recibirse como resultado un paquete de reset si está cerrado (se aplica principalmente a las pilas TCP/IP de Unix). • TCP Xmas Tree Scan: Esta técnica es similar a la anterior, obteniéndose como resutlado también un RST si el puerto está cerrado. En esta caso se envían paquetes FIN, URG y PUSH. • TCP Null Scan: En el caso de poner a cero todos los flags de la cabecera TCP, debería recibirse de nuevo como resultado un paquete RST en los puertos no activos. • TCP ACK scan: Mediante éste de determina si un firewall es de filtro de paquetes o si mantiene el estado. • TCP Windows scan: Mediante una anomalía es como se muestra el tamaño de la ventana TCP. • TCP RPC scan: Es una técnica de Sistemas Unix para conocer puertos de llamadas a procedimientos remotos. • UDP scan: Al enviarse un paquete UDP a un puerto destino se obtiene como resultado un paquete ICMP con lo que se determina que el puerto no está activo. En caso contrario, no recibirá el mensaje. 5.4.4 Escaneo de Puertos Basado en el Protocolo ICMP Una vez conocido el propósito original del protocolo ICMP, notificar errores, y condiciones inusuales que requieren atención respecto de protocolo IP, y el formato de sus paquetes, es necesario analizar los usos indebidos que se le pueden dar, todos asociados al escaneo de un sistema remoto. De manera excepcional, se incluirán en cada una de las técnicas basadas en ICMP los métodos para su detección, en lugar de inclluirse en el apartado de parotecciones. 5.4. VULNERABILIDADES GENÉRICAS 163 ICMP Echo (Ping Sweep): Mediante esta técnica se pretenden identificar los equipor existentes en las redes onjetivo de un ataque, típicamente accesibles desde Internet. Constituye uno de los pasos principales en la obtención de información. Empleando para ello los paquetes ICMP de tipo echo (8) y echo reply (0), se sabrá si una determinada dirección IP está o no activa. Se envía un paquete de tipo echo, y se se recibe el paquete de echo reply es que dicha dirección está siendo utilizada. La técnica envía numerosos paquetes de este estilo para conocer todos los equipos disponibles en una subred. Existen numerosas herramientas que implementan este proceso, como por ejemplo, fping, gping, el propio nmap, o la utilidad pinger de Rhino9. Para detectar este tipo de paquetes enviados de forma masiva puede analizarse el log del servidor DNS asociado al dominio escaneado, ya que aparecerán múltiples intentos de resolución de nombres de direcciones IPs consecutivas. Asimismo, se podrá obtener la dirección IP del atacante. Los sistemas IDS también permiten su detección, tanto cuando se usa de forma secuencial, como cuando se lanzan los pings en paralelo. ICMP Broadcast Cuando se envía un paquete ICMP echo a la dirección broadcast o a la dirección de red, con un único paquete enviado se consigue que todos los equipos respondan con su echo reply asociado. Las implementaciones de los diferentes sistemas operativos se comportan de manera diferente. Esta técnica puede emplearse en las variantes de Unix, pero los SO de Microsoft, Windows, no responden a este tipo de paquetes. Existen técnicas de escaneo más avanzadas basadas en ICMP, pero NO en los paquetes de tipo echo, podrían considerarse técnicas tanto de ICMP sweep como de ICMP broadcast, pero con otros tipo de paquetes ICMP, no echo. Algunas son: • ICMP Timestamp. • ICMP Information. 164 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] • ICMP Assress Mask. Es posible emplear técnicas de detección de equipos másavanzadas, no ya en función del tipo de paquete ICMP, sino en base al comportamiento de las implementaciones del protocolo ICMP. Para ello, se analizarán los mensajes de error de ICMP, generados desde las máquinas que sirven como prueba, lo que no permitirá saber si existe algún dispositivo de filtrado presente, así como descubrir la configuración de las listas de acceso empleadas. De manera general los métodos a emplear ilcluyen: — Modificación maliciosa de la cabecera IP de un paquete, por ejemplo cambiando el campo de la longitud, o los campo de opciones del protocolo IP. — Uso de valores inválidos en los campo de la cabecera IP. — Posibilidad de abusar de la fragmentación. — Emplear el método de escaneo basado en el protocolo UDP: es el protocolo ICMP el que se encarga de notificar las anomalías de éste. • IP Bad Headers Fields. • IP Non-Valid Field Values. • IP Fragmentation. 5.4.5 Sniffing Un ataque realmente efectivo, ya que permite la obtención de gran cantidad de información sensible enviada sin encriptar, como por ejemplo usuarios, direcciones de e-mail, claves, números de tarjetas de crédito..., es emplear sniffers y olfateadores en entornos de red basados en difusión, como por ejemplo ethernet (mediante el uso de concentradores o hubs). El análisis de la información transmitida permite a su vez extraer relaciones y topologías de las redes y organizaciones. Los sniffers operan acivando una de las interfaces de red del sistema en modo promiscuo. En este modo de configuración, el sniffer almacenará en un log todo el tráfico que circule por la tarjeta de red, ya sea destinado o generado por el propio sistema o desde / hacia cualquiera de los sitemas existentes en 5.4. VULNERABILIDADES GENÉRICAS 165 el entorno de red compartido (segmento ethernet). Asimismo, pueden ser instalados tanto en sistemas como en dispositivos de red. La efectividad de esta técnica se basa en tener acceso (habitualmente es necesario además disponer de dicho acceso como administrador o root) a un sistema interno de la red, por tanto, no puede ser llevado a cabo desde el exterior. 5.4.6 TCP Initial Sequence Number El protocolo TCP genera un ISN, o número de secuecia inicial, para poder realizar el control de flujo de la conexión. Este es uno de los ataques más antiguos, data de 1985, y se basa en la utilización de pseudo-random number generators (PRNGs) para la generación de los ISNs, Si los números de secuencia pueden ser predichos, puede llegar a ser posible el modificar la información de la conexión, apoderándose de ella mediante hijaking o realizar blind spoofing sobre futuras conexiones. La modificación de los datos en la conexión puede realizarse inyectando paquetes válidos, al conocerse el ISN inicial y el número de bytes intecambiado y por tanto, el número de secuencia actual. Si no se conoce exactamente este valor, peor sí de forma aproximada, puede enviarse tambíen un grupo de paquetes en un rango de secuendia concreto (que vendrá limitado por el tamaño de ventana TCP), con el objetivo de que alguno coincida con el número de secuencia actual. Inicialmente se modificaron las implementaciones para hacer lo más aleatoria posible la generación de estos números. La generación de números aleatorios, tanto en los números de secuencia iniciales de TCP, ISNs, como en los algoritmos de encriptación y generación de claves, tiene un peso muy relevante respecto a la seguridad. 5.4.7 DNS DIG es una utilidad para la obtención de información de servicio de nombres DNS. Como ya se mencionó en footprinting, DNS es una fuente de información de red valiosa. La utilidad mencionada permite copiar una base de datos en- 166 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] tera de nombres (dominio) desde un servidor DNS, para su posterior análisis. Asimismo sus caracterísiticas avanzadas faciliten extraer toda la información asociada al protocolo DNS, no permitiendo únicamente la realización de peticiones como nslookup. Existen páginas Web con sevicios basados en DIG. 5.4.8 IPSec La seguridad del estándar IPSec ha sido analizada en numerosos estudios, poniéndose en entre dicho como característica negativa la complejidad de sus especificaciones y de propio protocolo. Aunque el análisis también está enfocado desde un punto de vista político centrado en el control de la encriptación, denota que es la implementación de los diferentes fabricantes la que determinará su seguridad al 100%, en función de si los estándares son respetados y la interoperatibilidad posible. Los dispositivos que “hablan” IPSec pueden ser idenificados por tener el puerto 500 escuchando, ya que es el asociado al estándar de intercambio de claves o IKE, Inter Key Exchange protocol. Por otro lado, la debilidad desde el punto de vista de la seguridad, no es tanto la vunerabilidad del propio IPSec, como la de los algoritmos de encriptación asociados al mismo, como el RSA y RC-5. Debe tenerse en cuenta que el intercambio de información mediante IP, gran parte de la información asociada a los protocolos es conocida, por lo que puede emplearse como texto en claro para romper la encriptación mediante, por ejemplo, ataques estadísticos. Existe un estudio detallado sobre las vulnerabilidades de protocolos de túneles como PPTP. En éste se muestra la posibilidad de aplicar la técnica de spoofing, para adquirir credenciales de autenticación en un entorno PPTP entre un cliente, ya conectado a Internet (no realizando una conexión conmutada o de dial-up) y un servidor, no así entre servidores.. 5.4.9 Comunicaciones Inalámbricas: Wireless Las redes inalámbricas sobre la que seguirá hablándose TCP/IP serán objetivo de hackers en un futuro no muy lejano. La facilidad de accesos a éstas, en el caso de no encontrarse protegidas de forma adecuada, es mucho mayor que 5.5. PROTECCIONES Y HERRAMIENTAS 167 en el caso de las redes comunes, ya que no es necesario al obtener el punto físico mediante la conexión a la red. Basta con disponer de una tarjeta de red que hable el protocolo 802.1 1b y de un portátil para desplazarnos al área de transmición de una red concreta y comenzar a indagar. Existen herramientas que permiten escanear el “ambiente” en busca de redes de este tipo como NumSubler. 5.5 Protecciones y Herramientas Las protecciones especifican las técnicas y herramientas que se pueden implementar para la defensa frente a los ataques o vulnerabilidades presentados previamente. Saber cómo pueden atacar (y desde dónde), es tan importante como saber con qué soluciones se cuenta para prevenir, detectar y reparar un ataque de red. No se debe olvidar que éstas siempre son una combinación de herramientas que tienen que ver con la tecnología, en la que se centra este estudio, y con los recursos humanos (políticas, formación, concienciación, capacitación, tanto de los usuarios como de los administradores de la red). Los administradores de los sistemas disponen de herramientas para descubrir las vulnerabilidades existentes y para controlar que “todo vaya bien”, si los procesos son los normalos o si hay movimientos sospechosos en la red o en los sistemas. Por ejemplo, que un usuario esté recurriendo a vías de acceso para los cuales no está autorizado o que alguien intente ingresar en un sistema repetidas veces con claves erróneas que esté probando. Debe tenerse en cuenta que muchas de las utilidades o técnicas presentadas son a su vez empleadas por los atacantes o hackers, pero es este motivo el que las hace realmente útiles desde el punto de vista de la protección, ya que uno de los métodos más efectivos a la hora de proteger el entorno de red se basa en la simulación de un ataque real de intrusión por parte de los administradores “Penetration Test”. De esta forma podrá saberse hasta dónde puede llegar un intruso que posea ciertas herramientas disponibles libremente en Internet. Cabe comentar que una de las mayores protecciones existente hoy en día frente al descubrimiento de nuevas vulnerabilidades son los parches software de seguridad. Se trata de una distibución de software del fabricante de un equipo, ya sea de un servicio o de la propia pila TCP/IP del sistema operativo, que 168 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] sustituye los archivos binarios por una nueva implementación que resuelve una vulnerabilidad asociada al mismo. Por tanto, muchos de los problemas de seguridad existentes actualmente se deben a que los administradores de los sistemas no están al corriente de los avisos asociados al descubrimiento de nuevas vulnerabilidades, que suelen ir acompañados de la información del parche que las resuelve, por lo que existen infinidad de equipos con la versión antigua en la que la vulnerabilidad puede ser reproducida. Tras las protecciones se muestra una visión de futuro respecto a los protocolos asociados a la seguridad en TCP/IP, y a la evolución de ésta mediante la versión 6: IPv6. Existen herramientas genéricas de análisis de seguridad. Por ejemplo, para los sistemas Unix, existe COPS, una utilidad (o colección de programas) para comprobar la configuración del sistemas frente a los posibles problemas de las diferentes áreas de seguridad que afecten a Unix. De iguales características es otra utilidad como TIGER y su nueva versión TARA, Tiger Analytical Research Assistant. 5.5.1 Footprinting La primera filosofía de protección aplicable a esta técnica, y extensible a la mayoría de vulnerabilidades, es aplicar la propia técnica sobre los sistemas a defender, para obtener la información que está disponible desde el exterior. Esta información debería controlarse lo más posible en base a las recomendaciones del RFC 2196. Dentro de los sistemas IDs, se ha implementado la detección de muchas de las técnicas comentadas en la adquisición de información de una red. Una de las herramieteas más populares es Snort. Es fundamental el deshabilitar los servicios que proporcionan información, como por ejemplo fingerd. La forma directa de protegerse frente a adquisiciones de información de la topología de una red, así como del descubrimiento de los sistemas activos pasa por establecer filtros de paquetes para los protocolos UDP e ICMP. Frente a la identificación de las cadenas de texto represetnativas de un servicio y su versión, la técnica sdecuada es investigar e servicio y el modo de modificar dicho texto, o incluso eliminarlo. Asimismo, existe una herramienta denominada RotoRouter, cuyo objetivo 5.5. PROTECCIONES Y HERRAMIENTAS 169 es defender una red frente a adquisiciones de información basadas en traceroute. Al detectar peticiones de este tipo, genera respuestas falsas con el objetivo de confundir al atacante. 5.5.2 Fingerprinting La modificación de los fuentes asociados al subsistema de red, es decir la propia implementación, variará el comportamiento habitual del sistema operativo. Asimismo, ciertos parámetros configurables a nivel de kernel o de módulo de red permiten conseguir este objetivo. Debido a que las técnicas activas presentadas se basan en enviar paquetes a sistema objetivo, puede ser sencillo para los IDS su detección, sin embargo, las técnicas pasivas no son detectables, salvo mediante la utlilización de herramientas de detección de sniffers. Una herramientea realmetea innovadorea para ocultar el comportamiento característico de una implementación TCP/IP es IP Personality. El parche de IP personality implementado en Linux, añade la posibilidad de que la pila TCP/IP dispnga de diferentes personalidades, es decir, que modifique las características de su tráfico de red, dependiendo de distintos parámetros. Para ello, puede emplearse cualquier elemento que pueda ser especificado en una regla de IPtables: dirección IP fuente y destino, puerto TCP o UDP... Por tanto pueden modificarse las siguientes características: • Valor de los Initial Sequence Numbers de TCP. • Tamaño de la ventana inicial de TCP. • Opciones TCP: tanto su tipo como su orden en e paquete. • Las respuestas a ciertos paquetes TCP empleados en el fingerprinting. • Las respuestas a ciertos paquetes UDP. Como puede verse es altamente configurable. La implementación del parche se basa en la infraestructura de red netfilter creada por Rusty Russel. El objetivo de este sistema es defenderse antre el fingerprinting, ocultando el 170 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] comportamiento típico dle sistema en ejecución.. Asimismo, permite emular el comportamiento de cualquiera de los sistemas contemplados en la base de datos de la utilidad NMAP. Se ha comprobado que el parche es capaz de engañar a la versión 2.53 de NMAP, debido a su extensibilidad en la configuración, puede adaptarse para otras herramientas. Pese a ésto, la vieja regla de la seguridad “security through obscurity” no debería se aplicada como primera medida defensiva, es decir, el que un atacante conozca el sitema opertivo no debería facilitarle el acceso, ya que otras medidas se encargarán de limitarlo. 5.5.3 Escaneo de Puertos-Vulnerabilidades Al igual que con la mayoría de los ataques cuyo objetivo es obtener información que permita identificar los sitemas y redes a atacar, la detecció pasa por la utilización de sistemas IDS. dado que NMAP es una de las herramientas de atque por excelencia, SNORT supone la competencia por parte de la defensa. Desde el punto de vista de un sistema Unix, existen utilidades como scanlogd que permiten la detección de los escáneres de puertos. Dicho ataque debe realizarse con cautela, ya que es muy sencillo determinar que se está produciendo, ya que bajo condiciones normales de funcionamietno no se relaiza un acces secuencial a todos los posibles puertos en un rango determinado. Asimismo, ecisten aplicaciones como PortSetry que pueden tanto detectar el ataque como responder a él, por ejemplo, modificando el módulo de filtrado del sistema atacado para desechar el tráfico provinente del sistema atacante. Por otro lado, los firewalls suelen inluir un módulo de detección de ataques, aunque no todos tienen la misma prioridad o validez. Por ejemplo, el escaneo basado en SYN puede ser detectado, pero no así el basado en paquetes FIN. Para poder detectrar estos ataques es necesario revisar el resultado de los logs de los firewalls, cuyo tamaño suele ser elevado, por loque existen herramientas que facilitan estas tareas. También se han creado utilidades que ejecutan sobre productos de filtrado ya existentes, como la utilidad preparada pra Firewall-1 de Checkpoint. Desde un punto de vista más general, la protección frente al escaneo de puertos para por deshabilitar todos los servicios queno sean necesarios. A su 5.5. PROTECCIONES Y HERRAMIENTAS 171 vez en éstos sistemas es posible no realizar su activación mediante los scripts de arranque. En Windows la tarea debe realizarse deshabilitando los servicios bajo el Panel de Control Services. Desde el punto de vista del escaneo de las vulnerabilidades, la mejor defensa es disponer de las herramientas empleadas en un ataque para su descubrimiento y proceder de manera proactiva a solucionar o eliminar la existencia de la vulnerabilidad, ya sea eliminando el servicio o sustituyéndolo por una versión posterior corregida. 5.5.4 Escaneo Basado en el Protocolo ICMP Para evitar las diferentes técnicas basadas en el protocolo ICMP, fundamenteadas en los distintos tipos de paquetes existentes en la especificación del protocolo, lo mejor es filtrar todos aquellos tipos que no son necesarios para la funcionalidad asociada a los servicios existentes en la red. 5.5.5 Sniffing, Eavesdropping y Snooping La protección básica frente a al extracción mediante siniffers de la información que viaja en los paquetes de datos por la red se basa en la encriptación de la información. A lo largo del texto se analizan diferentes protocolos de comunicaciones que hacen uso de ésta: SSL, S/MIME, SSH, IPSec... Existen herramientas que aunque su uso principal es otro, ayudan a la detección de sniffers. Tripwir e, o sus derivados, genera una huella mediante MD5 de los sistemas de ficheros de un host, y permite detectar cualquier modificación sobre ficheros o directorios. Aunque pudiera parecer que se trata de una herramienta más propia de la seguridad de un sistema que de la red, permite la detección de ficheros log generados pro u sniffer. Asimismo, existe una herramienta denominada CPM proporcionada por el CERT, que permite detectar interfaces en modo promiscuo (signo habilutal de existencia de un sniffer, aunque también pueden escuchar sólo el tráfico destinado a la máquina en la que residen). La capacidad intrínseca de los sniffers se encuentra en el proio diseño de las redes de difusión, como por ejemplo Ethernet (CSMA/CD). En las redes ethernet el tráfico viaja realmente por el mismo medio físico para todos los 172 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] equipos conectados al mismo segmento de red siendo el destinatario de la trama ethernet el encargado de retirarla del medio y extraer sus información. Los interfaces en modo promiscuo realmente actúan como si fueran el destino de todas las tramas, por lo que extraen la información de todas las comunicaciones. Una protección frente a estsa situación se basa en emplear redes conmutadas en lugar de compartirlas, donde los elementos d red, en este caso los switches, segmentean la red para cada uno de los puertos, es decir, que si se dispone de un equipo por puerto (no existen hubs), un sniffer será capaz solo de visualizar el tráfico destinado al sistema en el que está ubicado. Estos equipos son capaces de crear segmentaciones de la red por grupos de equipos, en base a una distribuición lógica en lugar de física, denominadas redes locales virtuales, VLANs. En este caso, el sniffer sólo podría visualizar el tráfico destinado a algún equipo de ese grupo o VLAN. Por último, debe considerarse qeulos switches disponen de la posibilidad de confirurar un puerto de monitorización mediante el cual se volvería a la situación anterior, en la que sería posible visualizar el tráfico de todas las VLANs a través de un punto mínimo. 5.5.6 IP Spoofing Mediante la configuración de filtros de conexiones peritidas, especificando a través de qué interfaces, en los dispositivos de interconcexión de varias redes (firewalls, screening routers), se puede controlasr las direcciones IP fuente permitidas, y por tatno evitar la técnica de IP spoofing. Los organismos que realmente pueden evitar el uso de ésta técnica son los propietarios de las redes troncales de comunicación, normalmente carriers u operadores de telecomunicaciones (SP, Service Providers), ya que evitan desde su origen que un agresor pueda hacerse pasar por otro usuario. Al actuar de nexo de unión de las diferentes subredes, deben permitir únicamente que el tráfico saliente de cada red al troncal lleve asociada una dirección propia de red desde la que sale. Así se controla el punto de inicio de IP spoofing. 5.5. PROTECCIONES Y HERRAMIENTAS 5.5.7 173 TCP Initial Sequence Numbers Los sistemas pueden protegerse de este ataque mediante la encriptación de protocolo, con IPSec, o siguiendo las recomendaciones del RFC 1948. En HP-UX, versiones 11 y 11i, debe aplicarse el parche de red PHNE_22397 : por defecto emplea ISN aleatorios. En versiones anteriores, por ejemplo 10.20, existe un parámetro para elegir el nivel de aleatoriedad en la creación de los ISNs. Se introdujo con el parche PHNE_5361. Mediante la utilidad “nettune” es posible modificarlo. En la implementación TCP de Solaris, para cambiar el método utilizado en la generación de números de secuencia de paquetes TCP (ISNs) y evitar la suplantación de la dirección IP (IP Spoofing) se debe modificar el fichero /etc/default/inetinit. En el caso de Windows NT, hasta la versión 4.0 SP6 no se ha implementado un genreador realmente aleatorio de ISNs en la pila TCP. Existen sistemas como el Cisco PIX que permiten aleatorizar los ISNs de los servidores que protege, luego en el caso de que el algoritmo de generación de éstos no sea todo lo bueno que debería, se soluciona la situación. 5.5.8 DNS Las protecciones de seguridad del servicio de nombres permiten controlar desde el fichero de configuración el comportamiento del servidor frente a los supuestos clientes y servidores, tanto secundarios como los asociados a otros dominios. Una de las medidas más sencillas para controlar las transferencias de zona desde el punto de vista del firewall en lugar de desde la configuración del servicio, es permitir conexiones externas al DNS a través del puerto 53 sólo para UDP, asociado a consultas individuales, y no a través de TCP, correspondiente a las transferencias de zona. Existen herramientas, principalmente IDSs, que son capaces de detectar las peticiones afectuadas por DIG y avisar de éstas. Incluso algnas facilitan el explotar DIG a través de una “buffer-overflow”. 174 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] 5.5.9 IPSec IPSec proporciona encriptación a nivel de la capa de red. Este es uno de los protocolos de seguridad sobre los que se está desarollando más actualmente. Aunque fue diseñado para IPv6, portándose posteriormente para IPv4. Los fabricantes de equipos de red como Cisco proporcionan sistemas para el establecimiento de redes privadas virtuales o VPN, Virtual Private Networks, mediante IPSec, tanto software cliente como servidor. En IPSec, mediante el uso de fingerprints en los paquetes IP, generados a través de una función hash basada en el uso de una clave compartida por ambos extremos de la comunicación, se asegura la identificación (autenticación) del emisor, por lo que intercabmiados mediante funciones hash. Por otro lado, todos los protocolos de encriptación requieren una utilización mucho mayor de CPU, para ejecutar los algoritmos asociados a estos procesos, por lo que facilitan la ejecución de ataques DoS. La utilización de tarjetas específicas de encriptación libera a la CPU general de este proceso, pero simplemente desplaza el punto débil asociado al consumo de procesamiento a otro componente. Este hecho ha dado lugar a que no se empleen en IPSec firmas digitales completas. IPSec dispone de dos servicios: • AH : Authentication Header- asegura la autenticacion de la integridad. • ESP: Ecapsulating Security Payload- asegura la confidencialidad, autenticación e integridad. Los algoritmos de encriptación principales que se implementan son SHA-1, MD-5, DES y 3DES, así como otros adicionales: IDEA, Blowfish y RC4. Ambos servicios pueden trabajar en modo transporte, cuando los sistemas finales de la comunicación manejan IPSec, o en modo túnel, cuando son los equipos intermedios de entrada a la red (routers, firewalls...) los que gestionan el tráfico IPSec. Las relaciones entre dos equipos que desean hablar mediante el protocolo IPSec vienen caracterizadas por el conjunto de parámetros que define todos los aspectos a tener en cuenta, como los algoritmos de autenticación y en- 5.6. FUTURO 175 criptación, la longitud de las claves, el servicio (AH o ESP) a emplear...Este conjunto de parámetros se conoce como SA, Security Association. Dentro de las tecnologías empleadas para el establecimiento de VPNs, además de IPSec existen protocolos de creación de túneles, como L2TP, Layer 2 Tunneling Protocol, o PPTP, Point-to-Point Tunneling Protocol. La especificación de los mismos está disponible en el IETF. Asimismo, existen especificaciones de securización para éstos. Un túnel determina la encapsulación de un protocolo en otro, ya sea de forma encriptada o no: • IPSec: IP en IP. • PPTP: PPP en GRE. Frente a ciertas vulnerabilidades encontrdas en el protocolo PPTP, Microsoft distribuyó parches de seguridad asociados a su resolución. 5.6 Futuro El futuro de la seguridad pasa por la generación de herramientas de control inteligentes, como los IDS basados en IA, Inteligenica Artificial, así como por el desarrollo de sistemas de seguridad de comunicaciones diseñados con la seguridad como característica fundamental, como es el caso de IPv6. La incroporación y el desarrollo de las denominadas redes inteligentes podría dificultar considerablemente las actividades de los hackers. El Instituto Tecnológico de Georgia, EE.UU., trabaja en un proyecto de desarrollo de redes neuronales, que probablemente aumentará la seguridad del tráfico digital. El término red neuronal refleja una de las técnicas empleadas en el área de la inteligencia artificial dentro de la computación. Ésta pretende reproducir el funcionamiento de aprendizaje y reconocimiento de las neuronas del cerebro humano, que aprenden de la experiencia, creando conexiones entre las distintas áreas del conocimiento. Con todo, cabe precisar que no se trata de redes que estén en condiciones de pensar, sino de sistemas capaces de identificar patrones en el flujo digital y aprender de los intentos de intrusión. 176 CAPÍTULO 5. ANÁLISIS DE SEGURIDAD DE TCP/IP [?] Hoy en día los administradores de sistemas deben actualizar manualmente sistemas de protección de las redes contra los ataques informáticos, ya que aparecen nuevas vulnerabilidades y técnicas de ataque con demasiada frecuencia. Con la incorporación de redes inteligentes se hará más previsible y fácil la contención de los intrusos. Tales redes estarán incluso en condiciones de detectar máquinas que monitorizan ilegalmente el tráfico de la red para captar y apoderarse de información, es decir, sniffers. La novedad es que las redes neuronales detectarán tipo de máquinas sin que sus operadores se percaten. Las implicaciones de nueva versión de IP, IPv6 o IP Next Generation, en el área de las VPNs es realmete importante, y facilitará su expansión. Debe partirse de la base de que el protocolo IPSec fue diseñado inicialmente para esta versión de IP, portándose posteriormente a la versión IPv4, ofreciendo así la posibilidad de trabajar en tráfico IP encriptado. Actualmente, los fabricantes de productos para VPNs aceptan que los sistemas no disponen de una implementación de la pila TCP/IP basada en la versión 6, por lo que se emplean modificaciones sobre las implementaciones actuales de la versión 4. El IP Forum encargado de generar las especificaciones del protocolo y de su evolución futura tiene entre sus filas a los grandes fabricantes en el mundo de las redes: Cisco, 3Com, Microsoft, MCI, Worldcom, Nokia, British Telecom, Siemens, otros. 5.7 Conclusiones La seguridad de las redes de comunicaciones, y concretamente de Internet, evoluciona a pasos agigantados cada minuto que transcurre. Nuevas vulnerabilidades y utilidades, tanto para explotarlas como para combatirlas, son distribuidas públicamente en la red. La información disponible al respecto es inmanejable, por lo que el diseño de un sistmea de seguridad debe basarse en la fortaleza de las tecnologías empleadas, y no en la ocultación de las mismas: “security thorugh obscurity”. El protocolo TCP/IP sufre algunos problemas de seguridad por las caracterísitcas intrínsecas de su diseño, los cuales han sido ampliamente analizados a lo largo de los años. La nueva versión de IP, versión 6, se diseñó con la seguridad en mente, de ahí la aparición del estándar IPSec, que junto a otras 5.7. CONCLUSIONES 177 tecnologías, como las infraestructuras de clave pública, PKIs, permiten controlar y disolver muchas de las vulnerabilidades presentadas a lo largo de este capítulo. Asimismo, se puede concluir que la seguridad de una red no se basa en una técnica única exclusivamente, como promulga la idea errónea de securizar una red mediante un firewall, sino que viene reforzada por la utilización de multitud de tecnologías que permiten monitorizar y gestionar cada uno de los aspectos críticos de la red: encriptación, IDSs, firewalls, software específico de seguridad, protocolos seguros (SSL, SSH, IPSec), PKIs.... Lo que es más, mediante el uso exclusivo de las tecnologías mencionadas no es posible asegurar la seguridad de la red. Para ello es necesario a su vez disponer de procedimientos y políticas adecuadas que permitan concientizar a los usuarios y administradores de los sistemas informáticos, así como facilitar la aplicación de análisis y controles exhaustivos en la propia red y los elementos que la componen. Es por tanto necesario dedicar tiempo y esfuerzo a evolucionar la red hacia un entorno seguro, siendo necesario mantenerse actualizado (preferiblemente de forma automática, por ejemplo, mediante listas de distribución) de los avances que se ralizan en este campo, así como de los nuevos avisos, vulnerabilidades y tecnologías que salen a la luz. El objetivo final es asegurar ciertas características en las comunicaciones, como son, la autenticidad, la integridad de la información, la privacidad o confidencialidad, el no repudio, el control de acceso a la información... Finalmete,cabe concluir con una reflexión al respecto de la seguridad: el esfuerzo dedicado a la protección de un entrono debe ser directamente proporcional al valor de su contenido. Debido a que toda vulnerabilidad posee, más tarde o más temprano, su correspondiente protección, la vertiginosa carrera en la que la seguridad de las redes se debate actualmente, se centra en el mantenimiento constante y actualizado de las protecciones necesarias para evitar las vulnerabilidades existentes y ya conocidas. Capítulo 6 Sistema de Autoevaluación: Análisis y Desarrollo. 6.1 Análisis Se ha realizado un análisis para el desarrollo adecuado del trabajo realizado. Este análisis utilizó como metodología la de UML ( Lenguaje Unificado de Modelado), y la herramienta elegida fue Entreprise Architect. Se amplian en las siguientes secciones la definición de UML, y se agregan contenidos de la herramienta CASE seleccionada. 6.1.1 UML (Lenguaje Unificado de Modelado) ¿Qué es UML? El Lenguaje Unificado de Modelado preescribe un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos, y describe la semántica escencial de lo que estos diagramas y símbolos significan. Mientras que han habido muchas notaciones y métodos usados para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una única notación. 179 180 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA UML se puede usar para modelar distintos tipos de sistemas: sistemas de software, sistemas de hardware, y organizaciones del mundo real. UML ofrece nueve diagramas en los cuales modelar: sistemas. • Diagramas de Casos de Uso para modelar los procesos “business”. • Diagramas de Secuencia para modelar el paso de mensajes entre objetos. • Diagramas de Colaboración para modelar interacciones entre objetos. • Diagramas de Estado para modelar el comportamiento de los objetos en el sistema. • Diagramas de Actividad para modelar el comportamiento de los Casos de Uso, objetos u operaciones. • Diagramas de Clases para modelar la estructura estática de las clases en el sistema. • Diagramas de Objetos para modelar la estructura estática de los objetos en el sistema. • Diagramas de Componentes para modelar componentes. • Diagramas de Implementación para modelar la distribución del sistema. UML es una consolidación de muchas de las notaciones y conceptos más usadas orientados a objetos. Empezó como una consolidación del trabajo de Grade Booch, James Rumbaugh, e Ivar Jacobson, creadores de tres de las metodologías orientadas a objetos más populares. En 1996, el Object Management Group (OMG), un pilar estándar para la comunidad del diseño orientado a objetos, publicó una petición con propósito de un metamodelo orientado a objetos de semántica y notación estándares. UML, en su versión 1.0, fue propuesto como una respuesta a esta petición en enero de 1997. Hubo otras cinco propuestas rivales. Durante el transcurso de 1997, los seis promotores de las propuestas, unieron su trabajo y presentaron al OMG un documento revisado de UML, llamado UML versión 1.1. Este documento fue aprobado por el OMG en Noviembre de 1997. El OMG llama a este documento OMG UML versión 1.1. Así comenzó UML a ocupar su lugar en la sociedad del diseño orientado a objetos mejorando su versión gradualmente. 6.1. ANÁLISIS 181 UML ofrece notación y semántica estándar UML es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. Previamente, un diseño orientado a objetos podría haber sido modelado con cualquiera de la docena de metodologías populares, causando a los revisores tener que aprender las semáticas y notaciones de la metodología empleada antes que intentar entender el diseño en sí. Ahora con UML, diseñadores diferentes modelando sistemas diferentes pueden sobradamente entender cada uno los diseños de los otros. UML no es un Método Aun así, UML no preescribe un proceso o método estándar para desarrollar un sistema. Hay varias metodologías existentes; entre las más populares se incluyen las siguientes: • Catalysis: Un método orientado a objetos que fusiona mucho del trabajo reciente en métodos orientados a objetos, y además ofrece técnicas específicas para modelar componentes distribuidos. • Objetory: Un método de Caso de Uso guiado para el desarrollo, creado por Ivar Jacobson. • Shlaer/Mellor : El método para diseñar sistemas de tiempo real, puesto en marcha por Sally Shlaer y Steven Mellor, quienes continúan actualizando su método continuamente. • Fusion: Desarrollado en Hewlett Packard a mediados de los noventa como primer intento de un método de diseño orientado a objetos estándar. Combina OMT y Booch con tarjetas CRC y métodos formales. • OMT : La Técnica de Modelado de Objetos fue desarrollada por James Rumbaugh y otros, y publicada en el libro de gran influencia “Diseño y Modelado Orientado a Objetos”. Un método que propone análisis y diseño “iterative”, más centrado en el lado del análisis. • Booch: Parecido al OMT, y también muy popular. 182 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Además, muchas organizaciones han desarrollado sus propias metodologías internas, usando diferentes diagramas y técnicas con orígenes varios. Ejemplos son el método Catalyst por Computer Sciences Corporation (CSC) o el Worlwide Solution Design and Delivery Method (WSDDM) por IBM. Estas metodologías difieren, pero generalmente combinan análisis de flujo de trabajo, captura de los requisitos, y modelado de negocio con modelado de datos, con modelado de objetos usando varias notaciones (OMT, Booch, etc), y algunas veces incluyendo técnicas adicionales de modelado de objetos como Casos de Uso y tarjetas CRC. La mayoría de estas organizaciones están adoptando e incorporando el UML como la notación orientada a objetos de sus metodologías. Algunos modeladores usarán un subconjunto de UML para modelar “what they’re after”, por ejemplo simplemente el diagrama de clases, o solo los diagramas de clases y de secuencia con Casos de Uso. Otros usarán una swite más completa, incluyendo los diagramas de estado y actividad para modelar sistemas de tiempo real, y el diagrama de implementación para modelar sistemas distribuidos. Aun así, otros no estarán satisfechos con los diagramas ofrecidos por UML, y necesitarán extender UML con otros diagramas como modelos relacionales de datos y “CRC cards”. Una vuelta por un caso de uso Una vez más, UML es una notación, no un método. UML por incluir los diagramas de casos de uso, se le considera estar dotado de una aproximación al diseño centrada en el problema con los casos de uso. El Diagrama de Caso de Uso nos da el punto de entrada para analizar los requisitos del sistema, y el problema que necesitamos solucionar. Modelado de Casos de Uso El modelado de Casos de Uso es la técnica más efectiva y a la vez la más simple para modelar los requisitos del sistema desde la perspectiva del usuario. Los Casos de Uso se utilizan para modelar cómo un sistema o negocio funciona actualmente, o cómo los usuarios desean que funcione. No es realmente una aproximación a la orientación a objetos; es realmente una forma de modelar procesos. Es, sin embargo, una manera muy buena de dirigirse hacia el análisis de 6.1. ANÁLISIS 183 sistemas orientado a objetos. Los casos de uso son generalmente el punto de partida del análisis orientado a objetos con UML. El modelo de casos de uso describe la funcionalidad propuesta del nuevo sistema. Un caso de uso representa una unidad discreta de interacción entre un usuario (humano o máquina) y el sistema. Es una unidad simple de trabajo significativo; por ejemplo, “Registrarse en el sistema”, “Logearse en el Sistema”, “Modificar Preguntas‘ son todos casos de uso. Actores: Un actor es un usuario del sistema. Incluye usuarios humanos y otros sistemas computarizados. Un actor usa un caso de uso para desempeñar alguna porción de trabajo que es de valor para el negocio. El conjunto de casos de uso al que un actor tiene acceso define su rol global en el sistema y el alcance de su acción. Incluye: — Pre-condiciones que deben ser verdaderas antes de que el caso de uso se ejecute, por ejemplo, “Registrarse en el Sistema” debe preceder a “Modificar Preguntas”. — Post-condiciones que deben ser verdaderas una vez que el caso de uso se ejecutó, por ejemplo “La pregunta ha sido modificada”. Organización de Diagramas de Casos de Uso Durante el análisis de negocio (business) del sistema, se puede desarrollar un modelo de caso de uso para este sistema, y construir paquetes para representar los varios dominios de negocio (business) del sistema. Se puede descomponer cada paquete con un Diagrama de Caso de Uso que contenga los Casos de Uso de un dominio, con interacciones de actor. Analizando el sistema de autoevaluación, consideramos al profesor y al alumno como los actores, en esta situación el diagrama se presentaría según la figura 6.1 de la página 182 Cada caso de uso para un actor se presentaría como en la figura 6.2 de la página 182 lo muestra para el profesor, donde el caso de uso es “Registrarse en el Sistema”. 184 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.1: Diagrama de Casos de Uso-Actores Figura 6.2: Diagramas de Casos de Uso-Caso de Uso 6.1. ANÁLISIS 185 Figura 6.3: Entreprise Architect 6.1.2 Herramienta CASE (Ingeniería de Software Asistida por Computador): Entreprise Architect Figura 6.3 de la página 183. Es una herramienta que combina el poder de la última especificación UML 2.1 con alto rendimiento, interfaz intuitiva, para traer modelado avanzado al escritorio, y para el equipo completo de desarrollo e implementación. Presenta un amplio conjunto de caracterísitcas. Enterprise Architect complementa a un equipo de trabajo, como ser analistas, evaluadores, administradores de proyectos, personal del control de calidad, equipo de desarrollo y otros. Sus principales características: • Alta capacidad Enterprise Architect es una herramienta comprensible de diseño y análisis UML, cubriendo el desarrollo de software desde el paso de los requerimientos a través de las etapas del análisis, modelos de diseño, pruebas y mantenimiento. EA es multi-usuario. Diseñada para ayudar a construir software robusto y fácil de mantener. Ofrece salida de documentación flexible y de alta calidad. El manual de usuario está disponible en línea. • Velocidad, estabilidad y buen rendimiento 186 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA El Lenguaje Unificado de Modelado provee beneficios significativos para ayudar a construir modelos de sistemas de software rigurosos y donde es posible mantener la trazabilidad de manera consistente. Enterprise Architect soporta este proceso en un ambiente fácil de usar, rápido y flexible. • Trazabilidad de extremo a extremo Enterprise Architect provee trazabilidad completa desde el análisis de requerimientos hasta los artefactos de análisis y diseño, a través de la implementación y el despliegue. Combinados con la ubicación de recursos y tareas incorporados, con esto las áreas de Administradores de Proyectos y Calidad estarías contarían con la información que ellos necesitan para entregar proyectos en tiempo y forma. • Construido sobre las bases de UML 2.1 Las bases de Enterprise Architect están construidas sobre la especificación de UML 2.0 y usa sus perfiles para extender el dominio de modelado, mientras que la Validación del Modelo asegura integridad. Combina Procesos de Negocio, Información y Flujos de trabajo en un modelo. • Soporte para los todos diagramas de UML. — Diagramas Estructurales: ∗ ∗ ∗ ∗ ∗ ∗ Clase Objecto Compuesto Paquete Componente Despliegue — Diagramas de Comportamiento: ∗ Casos de Uso ∗ Comunicación ∗ Secuencia ∗ Descripción de la Interacción 6.1. ANÁLISIS 187 Figura 6.4: Actor-Enterprise Arquitect ∗ Actividad ∗ Estado ∗ Tiempo — Extendidos: ∗ Análisis (actividad simple) ∗ Personalizado (para requisitos, cambios, UI) Es una herramienta que ayuda a administrar la complejidad con otras herramientas para rastrear las dependencias, soporte para modelos muy grandes, Líneas Base por cada punto del tiempo. Entreprise Architect diagramando un Caso de Uso Los actores se representan como muñecos, figura 6.4 de la página 185. Los casos de uso en elipses, figura 6.5 de la página 186 Cada caso de uso tiene una descripción que describe la funcionalidad que se construirá en el sistema propuesto. Un caso de uso puede “incluir” la funcionalidad de otro caso de uso o “extender” a otro caso de uso con su propio comportamiento. Un Caso de Uso puede incluir la funcionalidad de otro como parte de su procesamiento normal. Generalmente se asume que los casos de uso incluidos se llamarán cada vez que se ejecute el camino base. 188 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.5: Caso de Uso-Enterprise Arquitect Un ejemplo puede ser un profesor que intentará modificar las preguntas de un exámen si se ha logeado en el sistema, en esta situaciòn el Caso de Uso “Modificar preguntas” estará incluido en el Caso de Uso “Logear en el Sistema”. Un Caso de Uso puede ser incluido por uno o más casos de uso, ayudando así a reducir la duplicación de funcionalidad al factorizar el comportamiento común en los casos de uso que se reutilizan muchas veces. Un Caso de Uso puede extender el comportamiento de otro Caso de Uso; típicamente cuando ocurren situaciones excepcionales. Por ejemplo, si el profesor desea consultar estadísticas de exámenes aprobados deberá primero “Consultar Estadísticas”. Observando el análisis del sistema de autoevaluación el Diagrama de Casos de Uso según la Enterprise Architect se ve como lo muestra la figura 6.6 de la página 187 6.2 Desarrollo: Sistema de Autoevaluación sobre TCP/IP Para realizar el desarrollo de este trabajo se utilizó un software de base, previamente estudiado; que permite dasarrollar aplicaciones de tipo Web multiplataforma con acceso a base de datos. Esta aplicación Web se refiere a la autoevaluación de alumnos sobre temas referidos a TCP/IP, siendo éste el protocolo de comunicación más importante 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP189 Figura 6.6: Diagrama de Casos de Uso-Enterprise Architect 190 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA de la red. Esta autoevaluación consistirá en cuestionarios tipo multiplechoise relacionados con temas sobre el protocolo de comunicación TCP/IP contenidos en la aplicación, lo que nos permite definir a este trabajo también como Aplicación basada en e-learning. De esta manera se pretende que el alumno amplíe o adquiera conocimientos sobre el protocolo y pueda autoevaluar el nivel de éstos, registrando y organizando la información en el momento del examen, de manera eficiente en una base de consulta para el alumno y el profesor, quien podrá observar así el nivel del alumno, en cada tema evaluado. La Aplicación fue desarrollada en Java, correrá en la plataforma Windows mediante el uso de software multiplataforma. La página principal de la Aplicación se muestra en la figura 6.7 de la página 189 6.2.1 Módulos del Sistema de Autoevaluación El sistema consiste básicamente en cinco módulos bien definidos: 1. Alumnos. 2. Profesores. 3. Evaluación. 4. Apuntes. El módulo de Alumnos Contiene las opciones necesarias para el tratamiento específico de cada alumno, se haya registrado en el sistema o no. Estas opciones tienen el siguiente tratamiento en el sistema: • Identificación del Alumno: Se refiere a la página donde el alumno debe ingresar su libreta universitaria para que se pueda verificar si existe o no. 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP191 Figura 6.7: Sistema de Autoevaluación-Página Principal 192 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.8: Alumno-Identificación • Alta del alumno: Permite dar de alta un nuevo alumno y registrar los diferentes datos personales que le corresponden. Se accede a esta página mediante el ingreso previo de la libreta universitaria y luego de la opción aceptar. — Ingreso del Alumno: Consiste en que un vez validado el número de libreta universitaria previamente ingresado, se le permite acceder al sistema, sólamente ingresando una clave. En la figura 6.8de la página 190 se observa la identificación del alumno. 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP193 Figura 6.9: Profesor-Identificación El módulo del Profesor Utilizado por el mismo profesor para la consulta de los exámenes, aprobados o no; y la observación inmediata de estos resultados. Figura 6.9de la página 191, figura 6.10de la página 192 Destinado también al tratamiento de los cuestionarios que formarán parte de las autoevaluaciones de los alumnos, con respecto a esto; la actividad consiste en: • Alta: Permite agregar una pregunta a la vez por tema, con sus respectivas respuestas opcionales, también se debe indicar cuál es la respuesta correcta. Mediante la opción Aceptar, se carga a la base de datos. • Modificación: Permite seleccionar la pregunta a modificar y luego da la opción de modificar la pregunta, las respuestas, o cambiar cuál respuesta es la correcta. Figura 6.11de la página193 194 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.10: Profesor-Ingreso de Datos 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP195 Figura 6.11: Profesor-Modificación de Preguntas • Baja: Permite seleccionar la pregunta a eliminar y luego da la opción de confirmar la eliminación de esa pregunta. Sólo permite eliminar una pregunta a la vez, con todas sus respuestas. En la figura 6.12de la página 194,se muestra la página donde el profesor elige el tratamiento para cada pregunta. El Módulo de Evaluación En este módulo el alumno selecciona el tema en el que se autoevaluará, según el nivel que considere en relación a su conocimiento. Figura 6.13de la página 6.13 196 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.12: Profesor-Tratamiento de Preguntas 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP197 Figura 6.13: Evaluación-Elección de tema 198 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.14: Autoevaluación-Multiplechoise Una vez seleccionado el tema el alumno accede a la página de la autoevaluación propiamente dicha donde encontrará el cuestionario y un timer que expira a los 20 minutos de haber comenzado el examen. Figura 6.14de la página 196 El sistema corrige su autoevaluación y visualiza el resultado, según la figura 6.15 de la página 197 El Módulo de Apuntes Aquí, se le brinda al alumno la posibilidad ampliar conocimientos sobre el protocolo, o bien; fijar los que ya tenga incorporados para autoevaluarse con un mejor resultado. Figura 6.16 de la página 198 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP199 Figura 6.15: Autoevaluación-Resultado del Exámen 200 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA Figura 6.16: Apuntes-Temas 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP201 Los temas a los que puede acceder son cinco y a cada uno se le ha asignado un nivel, para que; quien desea evaluarse en alguno de ellos conozca el grado de dificultad del examen. 6.2.2 Estructuras de Datos Utilizadas Las estructuras utilizadas por la aplicación y las distintas tablas utilizadas se dan a conocer en esta sección, las mismas hacen uso del motor de base de datos multiplataforma DB2 UDB. Tablas • Alumno: Contiene la información necesaria referente a los alumnos registrados en el sistema. Está compuesta por los siguientes campos de datos: — LU: Contiene el número de libreta universitaria del alumno, que el sistema utiliza de — clave. — CLAVE: Contiene el número de clave elegido por el alumno para el ingreso al sistema. — APELLIDO: Contiene el apellido del alumno. — NOMBRE: Contiene el nombre del alumno. — MAIL: Contiene la dirección de correo electrónico del alumno. • Evaluación: Contiene la información referente a las evaluaciones realizadas en el sistema. Está compuesta por los siguientes campos de datos: — CODEVAL: Contiene un número autogenerado para las evaluaciones, que es utilizado — de clave por el sistema. — LU: Contiene el número de libreta universitaria del alumno. — FECHAHORA: Contiene la fecha y hora en que se realizó la autoevaluación. — NOTA: Contiene la nota obtenida por el alumno en dicha evaluación. 202 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA — TEMA: Contiene el tema en el que el alumno se autoevalúo. • Pregunta: Contiene la información referente a las distintas preguntas a utilizar en los cuestionarios. Está compuesta por los siguientes campos de datos: — CODPREG: Contiene un número autogenerado para las preguntas, que es utilizado de clave por el sistema. — CODTEMA: Contiene el número de tema al que corresponde la pregunta. — DESC_PREG: Contiene la descripción de la pregunta. • Profesor : Contiene la información necesaria referente a los profesores que utilizarán la aplicación. Está compuesta por los siguientes campos de datos: — USUARIO: Contiene el nombre del usuario, que en este caso es el profesor. — CLAVE: Contiene el número de clave elegido por el profesor para el ingreso al sistema. — COD_PROF: Contiene un código autogenerado para el profesor, que el sistema utiliza de clave. • Respuesta: Contiene la información referente a las respuestas opcionales de cada pregunta que podría utilizarse en los cuestionarios. Está compuesta por los siguientes campos de datos: — CODRESP: Contiene un número autogenerado para las distintas respuestas, que el sistema — utiliza de clave. — CODPREG: Contiene el número correspondiente a la pregunta a la cual pertenece la — respuesta. — DESC_RESP: Contiene la descripción de la respuesta. — CORRECTA: Contiene la información sobre si la respuesta es correcta o no. 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP203 • Resultado: Contiene la información referente a los resultados obtenidos por cada alumno durante la autoevaluación. Está compuesta por los siguientes campos de datos: — CODRES: Contiene un número autogenerado para los resultados obtenidos por los alumnos, — que utiliza de clave el sistema. — LU: Contiene el número de libreta universitaria del alumno. — FECHA: Contiene la fecha en que se realizó la autoevaluación completa, inculyendo la cantidad de temas solicitados por la cátedra. — CANT_TEMA: Contiene la cantidad de temas en los que el alumno se evalúo. — PROMEDIO: Contiene el promedio total obtenido por el alumnoal autoevaluarse de manera completa en la asignatura. • Tema: Contiene la información referente a los distintos temas que conforman siguientes campos de datos: — CODTEMA: Contiene el número de tema que le corresponde dentro de la asignatura. — DESC_PREG: Contiene la descripción de el tema. • Resultado: Contiene la información referente a los resultados obtenidos por cada alumno durante la autoevaluación. Está compuesta por los siguientes campos de datos: — CODRES: Contiene un número autogenerado para los resultados obtenidos por los alumnos, que utiliza de clave el sistema. — LU: Contiene el número de libreta universitaria del alumno. — FECHA: Contiene la fecha en que se realizó la autoevaluación completa, inculyendo la cantidad de temas solicitados por la cátedra. — CANT_TEMA: Contiene la cantidad de temas en los que el alumno se evalúo. — PROMEDIO: Contiene el promedio total obtenido por el alumnoal autoevaluarse de manera completa en la asignatura. 204 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA 6.2.3 Código Fuente Utilizados: Ejemplos Servlets A continuación se transcribe un ejemplo de Servlet utilizado por la aplicación, el mismo realiza una operación de alta para el alumno. package alumnos; // Importación de librerías necesarias import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import utilidades.Paginas; import java.sql.*; public class AltaAlumno extends HttpServlet { Connection conn; private int longitudlu; /* * En el método Init se realizará la conexión a la BD * por lo que las peticiones no producirán ningun retardo de conexión */ public void init(ServletConfig cf) throws ServletException { super.init(cf); // Se carga el driver a continuación try { Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); }catch (ClassNotFoundException e) { 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP205 System.out.println(“Imposible encontrar el driver:” + e.getMessage()); } //Se intenta realizar la conexión a la base de datos try { conn = DriverManager.getConnection(“jdbc:odbc:tcp”); }catch (SQLException e) { System.out.println(“Imposible crear conexion:” + e.getMessage()); } }// fin init /* * En el metodo destroy() una vez que el servlet se esta apagando, desconectaremos * de la base de datos */ public void destroy() { super.destroy(); //Llamada al destroy de la superclase try { conn.close(); }catch (SQLException e){ System.out.println(“Imposible cerrar conexion:” + e.getMessage()); } } //fin destroy() 206 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA /* *Redefinimos el metodo doPost ya que las peticiones se realizaran por ese metodo. */ public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException, IOException { String lu; String nombre; String apellido; String direccion; String telefono; String email; String dni; //Obtenemos los valores de los parámetros lu = request.getParameter(“lu”); nombre = request.getParameter(“nombre”); apellido = request.getParameter(“apellido”); direccion = request.getParameter(“direccion”); telefono = request.getParameter(“telefono”); email = request.getParameter(“email”); dni = request.getParameter(“dni”); int longitudlu= lu.length(); if(telefono.equals(“”)){ telefono = “0”; 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP207 } int mail = email.length(); String arrova = “”; for (int i = 1; i < mail ; i++) { String caract = email.substring(i,i+1); if (caract.equals(“@”)){ arrova= “Si”; } } if (lu.equals(“”)) { PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); 208 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar tu Número de L.U. (Libreta Universitaria)</P> <P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(”</HTML>”); out.flush(); out.close(); }else if (longitudlu < 5){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP209 out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>La longitud de tu L.U. (Libreta Universitaria) debe ser 5.</P> <P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); 210 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“</HTML>”); out.flush(); out.close(); }else if(nombre.equals(“”)){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“<TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP211 out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar tu nombre.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); out.close(); } else if(apellido.equals(“”)){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(”<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); 212 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar tu apellido.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); out.close(); } else if(direccion.equals(“”)){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP213 out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>debes ingresar tu dirección.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); 214 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“</HTML>”); out.flush(); out.close(); }else if (arrova.equals(“”)) { PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP215 out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar una dirección de correo válida.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); out.close(); }else if(lu.equals(“00000”)){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); 216 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar un número de LU válido.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); out.close(); }else if(dni.equals(“”)){ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP217 out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Debes ingresar tu número de D.N.I..</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); 218 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“</HTML>”); out.flush(); out.close(); }else { try { Statement sentencia = conn.createStatement(); ResultSet consulta = sentencia.executeQuery(“SELECT * FROM ALUMNOS WHERE lu = “ +lu+””); String valor=“”; while (consulta.next()){ valor= consulta.getString(“lu”); } consulta.close(); sentencia.close(); if (valor.equals(“”)){ Statement alta = conn.createStatement(); int actualizacion = alta.executeUpdate(“insert into alumnos(dni,lu,nombre,apellido,domicilio,telefono,mail) values(“+dni+”,“+lu+”,“‘+nombre+”’,“‘+apellido+”’,“‘+direccion+”’,“‘+telefono+”’,“‘+email+”’)”); alta.close(); PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP219 out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Actualización Exitosa!!</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); 220 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.close(); }else{ PrintWriter out = response.getWriter(); //Devolvemos una pagina de error out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); out.println(“<TABLE border=0>”); out.println(“ <TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“<TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“ </TR>”); out.println(“ </TBODY>”); 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP221 out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Ya te has registrado.</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); out.flush(); out.close(); } }catch (Exception e) { System.out.println(“Error en la actualización”+ e.getMessage()); PrintWriter out = response.getWriter(); out.println(“<HTML>”); out.println(“<META http-equiv=Content-Type”); out.println(“ content=text/html; charset=WINDOWS-1252>”); out.println(“<META name=GENERATOR content=IBM WebSphere Studio>”); out.println(“<META http-equiv=Content-Style-Type content=text/css>”); out.println(Paginas.estilo1()); out.println(“ type=text/css>”); out.println(“<TITLE>temas.html</TITLE>”); out.println(“</HEAD>”); out.println(“<BODY>”); out.println(“<DIV align=center>”); 222 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA out.println(“<TABLE border=0>”); out.println(“<TBODY>”); out.println(“ <TR>”); out.println(“ <TD><IMG border=0 src=Imagenes/carpeta.gif width=65”); out.println(“ height=70></TD>”); out.println(“ <TD><IMG border=0 src=Imagenes/autoevaluacion.gif width=296”); out.println(“ height=44></TD>”); out.println(“</TR>”); out.println(“</TBODY>”); out.println(“</TABLE>”); out.println(“</DIV>”); out.println(“<P align=center><BR>”); out.println(“<BR>Error de Sistema</P><P align=center><IMG border=0 src=imag/error.gif”); out.println(“ width=51 height=57></P>”); out.println(“</BODY>”); out.println(“</HTML>”); } } } } A continuación se transcribe el código HTML, correspondiente a una de las páginas que componen el sistema. La misma muestra una página donde el alumno puede elegir el tema en el que desea autoevaluarse. <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”> <HTML> 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP223 <HEAD> <META http-equiv=“Content-Type” content=text/html; charset=WINDOWS-1252”> <META name=“GENERATOR” content=”IBM WebSphere Studio”> <TITLE>alumnos.html</TITLE> <LINK rel=“stylesheet” href=“../estilo/tcp.css” type=”text/css”> </HEAD> <BODY onload=“form.nombre.focus()”> <P align=“center”><IMG border=”0” src=”../Imagenes/datosalu.gif” width=“257” height=“34”></P> <BLOCKQUOTE> <DIV align=“center”> <FORM method=“post” action=“/Silvana/AltaAlumno“ name=form> <TABLE border=“0”> <TBODY> <TR> <TD align=“right”>Nombre:</TD> <TD><INPUT type=“text” size=“30” width=“15” name=“nombre”></TD> <TD rowspan=“8” valign=“top”><IMG border=“0” src=“../imagInternet/teclado.jpg” width=“197” height=“177”></TD> </TR> <TR> <TD align=“right”>Apellido:</TD> <TD><INPUT type=“text” size=“30” maxlength=“20” name=“apellido”></TD> 224 CAPÍTULO 6. DESCRIPCIÓN DEL SISTEMA </TR> <TR> <TD align=“right”>D.N.I. No :</TD> <TD><INPUT type=“text” size=“30” maxlength=“10” name=“dni”></TD> </TR> <TR> <TD align=“right”>L.U. No :</TD> <TD><INPUT type=“text” size=“30” maxlength=“5” name=“lu”></TD> </TR> <TR> <TD align=“right”>Dirección:</TD> <TD><INPUT type=“text” size=“30” name=“direccion”></TD> </TR> <TR> <TD align=“right”>Teléfono:</TD> <TD><INPUT type=“text” size=“30” name=“telefono”></TD> </TR> <TR> <TD align=“right”>E-Mail:</TD> <TD><INPUT type=“text” size=“30” width=“21” name=“email”></TD> </TR> <TR> <TD align=“center”></TD> <TD align=“center”> 6.2. DESARROLLO: SISTEMA DE AUTOEVALUACIÓN SOBRE TCP/IP225 <INPUT type=“submit” name=“aceptar” value=“Enviar”> </TD> </TR> </TBODY> </TABLE> </FORM> </DIV> </BLOCKQUOTE> </BODY> </HTML> Estos son sólo fragmentos, el código completo se encuentra en los DVD adjuntos. Capítulo 7 Conclusión 7.1 Conclusiones del Trabajo realizado Cabe concluir este trabajo haciendo referencia a la importancia en la red de TCP/IP, para las comunicaciones entre sistemas informáticos. Este protocolo constituye, actualmente; la infraestructura tecnológica más extendida y desarrollada sobre la que circulan las comunicaciones electrónicas (datos, voz, multimedia...). Esta importancia se ha intentado destacar en capítulos de este documento, sin omitir su falencia con respecto a la seguridad, a la que se ha hecho referencia para despertar conciencia a usuarios y administradores informáticos sobre asegurar ciertas características en las comunicaciones, como son: la autenticidad, la integridad de la información, la privacidad y confidencialidad, el control de acceso a la información; por esto la necesidad de dedicar tiempo y esfuerzo a evolucionar la red hacia un entorno seguro, siendo vital mantenerse actualizado a diario en los avances realizados en este campo de la informática. Para esta aplicación se ha realizado un análisis con Diagramas de Casos de Uso (metodología UML), utilizando Enterprise Architect como herramienta CASE, los cuales se han aprendido a manejar para este trabajo comprobando que su implementación hace más sencillo el desarrollo. Con respecto a las tecnologías y software utilizados se ha podido comprobar sus potenciales beneficios con respecto al soporte multiplataforma, indis227 228 CAPÍTULO 7. CONCLUSIÓN pensables por su eficiencia y rapidez al momento de desarrollar la aplicación con WebSphere Application Developer v.5.0 y DB2 UDB WorkGroup Server Edition v.8.1, bajoWindows XP Service Pack 2, utilizando Java 1.5, para implementarla en entorno Windows. Java sirve para crear todo tipo de aplicaciones (locales, Intranet o Internet), y las facilidades en el desarrollo de sus aplicaciones para entornos multiplataforma se ha apreciado en este trabajo. Se ha comprobado además que el motor de base de datos ha permitido respaldos en línea sin que la disponibilidad de acceso se vea afectada, esto gracias a su escalabilidad, integridad y seguridad. Se debe hacer mención a la facilidad de manejo de Scientific WorkPlace para redactar un libro, por la automatización en el manejo de estructucas propias como índices, gestión dinámica de espacios, imágenes y referencias bibliográficas y de figuras. 7.2 Líneas Futuras de Acción Se pretende que el presente trabajo sea utilizado como punto de partida para: • Incorporar otras metodologías de autoevaluación. • Profundizar el análisis de gestión. • Incorporar criptografía en la gestión de claves, esquematizando la seguridad. • Desarrollar nuevas páginas para el ingreso de comentarios del alumno. • Incorporar links específicos a sitios relacionados con TCP/IP. • Incorporar links que permitan observar los libros sobre el protocolo y la posibilidad de comprarlos. Bibliografía [1] V. Yague Galaup; L. Joyanes Aguilar A. González del Alba Baraja. Impacto de las Tecnologías en la Gestión Internacional de Sociedad de la Información en II Congreso Internacional de Sociedad de la Información y del Conocimiento. Mc Graw Hill, España, 2003. [2] L. Joyanes Aguilar. Educación e Internet- 1ra. Edición. Santillana, España, 1999. [3] IBM Red Books. TCP/IP Tutorial and Technical Overview-7 ma-Edición. USA, 2001. [4] Celeste Campo. TCP Avanzado-Universidad Carlos III-Dpto de Ingeniería Telemática. España, 2000. [5] D. E. Comer. Internet Working with TCP/IP Vol I: Principles, Protocols, and Architecture - 4ta. Edición. Prentice Hall International, USA, 2000. [6] D. L. Stevens D. E. Comer. Internetworking with TCP/IP Vol. II ANSI C Version Design, Implementaction, and Internals - 3ra. Edición. Prentice Hall, USA, 1999. [7] R. E. Droms D. E. Comer. Computers Networks and Internets, with Internet Applications - 4ta. Edición. Prentice Hall, USA, 2003. [8] S. Rios Aguilar J. M. Saiz Alvarez M. Lombardo Enriquez, L. Joyanes Aguilar. Gestión e Informática "Orientada al Conocimiento"en los Modelos de Comercio Electrónico. La Salle, España, 2002. [9] Raúl Siles Pelaez. Análisis de Seguridad de la Familia de Protocolos TCP/IP y sus Servicios Asociados-1 era-Edición. 1 era-Edición, España, 2002. [10] M. Schwartz. Redes de telecomunicaciones, Protocolos, Modelado y Análisis- 1ra. Edición. Addison-Wesley Iberoamericana, México, 1994. 229 230 BIBLIOGRAFÍA [11] A. S. Tanenbaum. Redes de Computadoras - 4ta. Edición. Pearson Educación, México, 2003. Índice de Materias 3Com, 174 3com, 48 6Bone, 152 ARPANET, 129, 135 Arpanet, 1 AS, 122, 129, 136 AS/400, 48 asíncrona, 26 tilde nanza, 26 taller, 26 ASCII, 55, 57 ASN, 8 ASN.1, 68, 71, 77 atomic, 155 auditorías, 65 aula virtual, 27 AUP, 9 auto-configuración, 152 auto-descubrimiento, 152 autoformación, 26, 28 acceso política de control de, 65 ACK, 88, 89, 91, 92 valor, 158 actividad piloto, 44 ad-hoc, 23 ADCCP, 82 AH, 172 AIX, 48, 79 algoritmo dinámico, 130 algoritmos de encaminamiento, 123 alumno, 30 alumnos, 26—28, 42 ankle-biter, 153 ANS, 10 ANSI, 82 antecedentes, 31 aplicación protocolos de, 52 ApplicationSyntax, 69 aprendizaje, 21 electrónico, 21—23, 32, 33 Argentina, 35 ARP, 104, 110, 138 concepto detallado de, 105 generación del paquete, 105 recepción del paquete, 107 subredes, 108 bdi, 97 BGP, 132 bit P/F, 83 BITNET, 6 japonesa, 8 blind spoofing, 163 bogus flag probe, 158 Booch, 179 bridges, 48 broadcast, 138 buffer-overflow, 155, 171 capacitación, 34, 37 231 232 ÍNDICE DE MATERIAS caso de uso, 179, 180 casos de uso diagramas de, 178 catalysis, 179 CCICS, 80 CCITT, 70 CGI, 62, 64 chat rooms, 28 checksum, 121 CICS, 80 Cisco, 48, 171, 172, 174 class, 118 cliente/servidor, 50, 78 CMIP, 74 CMOT, 74 composite, 156 conclusiones, 174 conexiones lógincas, 89 content, 156 context, 156 cookies, 62, 63 COPS, 166 correo electrónico, 26 crawlers, 62 CRC tarjetas, 179, 180 CREN, 6 CSNET, 6, 58 CSO directorios, 68 cuenta hasta infinito, 125, 134 culturas organizacionales, 36 Cypress, 6 DB2 UDB, 199 default, 137 desafío, 32 destination, 136 destination IP address, 118 desventajas, 36 DF, 116, 120 DIG, 163, 171 dir, 54 dirección, 41 dirección MAC, 152 direccion IP, 83 dispositivos de almacenamiento, 48 DIX Ethernet, 105 DL/WILL, 53 DNS, 54, 55, 57, 85, 163, 171 arquitectura de, 55 elementos de datos de, 56 elementos de programas del, 55 formato de un mensaje, 56 funcionamiento del, 56 DNS-MX, 57 DoD, 74 dominio nombre de, 56 nombres de, 55 DON‘T/WON‘T, 53 DOS, 53, 55 DoS, 70, 172 DPI de SNMP, 75 DRI, 7 DTDs, 64 dual-stack, 153 DV, 136 DARPA, 53 data, 120 datafile, 97 datagrama IP, 108 datagramas, 66 e-learning, 21, 34, 188 E-Mail, 57 EARN, 7 EBONE, 3, 5 echo reply, 161 ÍNDICE DE MATERIAS 233 economía, 31 global, 34 EGP, 70, 117, 122 elementos aprendizaje electronico, 33 empleo del aprendizaje, 43 empleos-país, 31 encaminamiento, 49, 122 entre redes, 122 encaminamiento directo, 137 encaminamiento indirecto, 137 tilde nanza a distancia, 25 tilde nanza tradicional, 25 tilde nanza virtual, 25 enseñanza virtual, 25 Enterprise Architect, 183 escaneo de puertos, 156, 158, 159 ESP, 172 estado del enlace, 122, 128 Estados Unidos, 34 estructura interna, 50 Ethernet, 169 evaluación, 43 EXMAScript, 65 Extranets, 151 Firewalls, 65 firewalls, 48, 65, 154, 168 tipos de, 65 flag RST, 102 flags, 116, 142 flujo, 117 control de, 52, 89 FNM, 8 fo, 120—122 footprinting, 156, 163 formación, 40 fping, 161 fragment offset, 117 fragmentación, 113, 120 FTP, 53, 66, 86, 92 funet.fi, 68 Fusion, 179 familia, 47 fc, 118, 120 feed-back, 30 fiabilidad, 88 ficheros, 53 FIN, 93, 95 fin probe, 158 fingerd, 166 fingerprinting, 155, 157, 167 fingerprintings, 172 firewalking, 159 firewall, 160, 171, 175 hackers, 164, 173 HAP, 7 hash, 172 HDLC, 82, 84 header checksum, 117 herramientas, 165 hijanking, 163 historia de las vulnerabilidades, 153 HP, 48 HP-UX, 48, 171 HTML, 61—64 HTTP, 61—63 gestión de la fragmentación, 158 gestión de red, 68 gestión del conocimiento, 24 get, 54 GGP, 117 GII, 10 Goleen Gophers, 67 GOPHER, 67 gping, 161 234 HTTPng, 63 hubs, 48 IA, 173 IAB, 70 IANA, 11 IBM, 4, 82 IBM TN 3270, 53 ICANN, 156 ICMP, 117, 120, 135, 140, 156, 160, 166 ICMP Assress Mask, 162 ICMP Broadcast, 161 ICMP echo, 161 ICMP Information, 161 ICMP integridad, 158 ICMP message quoting, 158 ICMP quenching, 158 ICMP sweep, 161 ICMP Timestamp, 161 ID, 121 identificación de sistema operativo, 159 identificador de objetos, 69 IDNX, 5 IDS, 161, 167, 171, 173, 175 IDs, 79, 154, 166 IETF, 152, 173 IGMP, 117 IGP, 122 IGPs, 128 IKE, 164 IM, 8 insiders, 155 instructor, 26, 27 instructores, 26, 28 Internet, 2, 21, 25, 32—35, 47—51, 53, 54, 58, 62, 65, 81, 88, 130 acceso a, 61 ÍNDICE DE MATERIAS comercial, 9 Red, 27 InterNIC direcciones, 67 interredes, 1 Intranets, 29, 35, 151 IP, 47, 49, 55, 85, 88, 112, 117, 130 datagrama, 113, 120 datagramas, 92 dirección, 50, 56, 104 direcciones, 56 formato del datagrama, 114 IP bad headers fields, 162 IP fragmentation, 162 IP non-valid fiels values, 162 IP Personality, 167 IP soofing, 155 IP spoofing, 170, 171 IPSec, 164, 169, 171, 172, 174 IPv6, 152, 166, 172—174 IS Information Services, 4 ISN, 171 isn sampling, 158 ISO, 1, 8, 48, 51, 70, 82 IT, 119, 141 James Rumbaugh, 179 JAVA, 62, 64 JavaScript, 64 L2TP, 173 lamer, 153 LANs, 81, 131, 138 LCP, 84 LEN, 114 length, 120, 121, 139—142 Linux, 48 LiveScript, 64 LM, 8 ÍNDICE DE MATERIAS LPP, 75 LS, 136 LSA, 129 LSD, 128 LSR, 119, 139, 140 LSRR, 139 Lucent, 48 métodos, 26 formación, 32 métodos de aprendizaje, 24 MA, 73 MacOs, 48 MBZ, 116 MCI, 4, 174 Merit, 4 MF, 116 mf, 121 MIB, 69—71, 77 Microsoft, 65, 174 MIME, 58, 59, 62, 63 modelo C/S, 50 monitorización don´t fragment bit, 158 MPLS, 152 MSL, 101 MSS, 93, 97 MST, 129 MTU, 120 multiplexación, 89 N-1 net, 9 NAGLE, 53 NASDAQ, 154 NAT, 152 NCP, 1, 84 NDB, 77 NDIS, 144 NE, 73 235 NE-NMS, 73 NETCAT, 157 Netscape, 64 nettune, 171 NFS, 79 NIS, 79 NMA, 71 NMAP, 159, 168 nmap, 161 NMS, 71 Nokia, 174 Nort, 48 NSF, 4 NSFNET, 3 nslookup, 156, 164 NSS, 4 NT, 53 nuevas formas, 25 nuevo modelo administrativo, 77 NumSumbler, 165 NVT, 53 NVT ASCII, 53 objetory, 179 off-line, 30 oflew, 142 OLTP, 80 OMG, 178 OMT, 179 option data, 120 option number, 119 options, 118, 139 OSI, 15, 18, 48, 51, 70, 74 OSPF, 117, 129, 130, 132 outsiders, 155 P2P, 152 padding, 120 pasarelas, 13 PCs, 48 236 PDAs, 48 PDUs, 77 Penetration Test, 165 PHNE, 171 ping sweep, 159, 161 pinger, 161 PIRP, 117 PKI, 175 planificar, 37 playload, 156 pointer, 139—142 PortSetry, 168 PPP, 81, 83 PPTP, 164, 173 preparar una organización, 38 primera generación, 153 primero el camino más corto, 128 PRNGs, 163 productos tilde nanza virtual, 29 profesores, 27 programación interfaz de, 48 programas informáticos, 25 protecciones, 165 protocolo de enlace de datos ejemplos, 82 protocolo number spotipprotn, 117 protocolos, 47 protocolos de aplicación otros, 77 protocolos de la capa de enlace, 81 proxies, 66 proxy ARP, 108 PSH, 93 PSINet, 10 puentes, 13 puertos, 11 ÍNDICE DE MATERIAS push función, 88 put, 54 RARE, 8 RARP concepto, 111 descripción, 110 RAS, 48 RC-5, 164 RCP, 53 RDSI, 48 re-ensamblado, 113 reconnect, 54 Red, 26, 28, 42 red física, 48 red dorsal, 131, 133 redes, 48 redes de tránsito, 133 redes multiconectadas, 133 redes neuronales, 173 redes stub, 133 RFC, 57 RFC 1006, 80 RFC 1948, 171 RIP, 126, 128, 129, 134 RIPE, 8 robots, 62 RotoRouter, 166 route data, 139—141 route datagram, 140 router, 49, 125 routers, 13, 48, 66 RPC, 78 RR, 119, 141 RRs, 56 RSA, 164 RST, 93 Rusty Russel, 167 ÍNDICE DE MATERIAS síncrona, 26—28 SA, 173 script-kiddie, 153 scripts, 64 SDLC, 82 segmentos, 91 segunda generación, 154 seguridad, 65, 130, 151 Servlet, 202 SET, 62 SGMP, 71 Shlaer/Mellor, 179 SID, 119 Siemens, 174 SimpleSyntax, 69 sincrónico taller, 27 sistemas operativos, 53 SL, 140 SLIP, 139 SMI, 68, 70, 71, 77 SMTP, 57, 92 cliente, 58 pasarela, 58 servidor, 58 SMTPSE, 58 SNA, 51, 80 sniffers, 167, 174 sniffing, 162, 169 SNMP, 71, 155 aplicación, 73 comunidad, 74 SNMPv2, 76 SNORT, 168 Snort, 166 Solaris, 48 solución, 33 soluciones, 165 SONET, 84 237 sort, 97 source IP address, 118 SP, 170 SPF, 129 spiders, 62 spoofing, 164 SQL, 78 SSL, 62 SSR, 120, 140, 141 SSRR, 140 STD, 57 SUN, 63, 64 sun, 97 super autopista de la información, 10 switches, 48 SYN, 93 SYN ACK, 94 técnicas colaboración, 26 tabla de encaminamiento, 123, 134 tablas de encaminamiento, 122 tamaño de la ventana TCP, 158 TARA, 166 TCP, 47, 50, 52, 53, 56, 62, 117, 122 concepto de, 88 opciones, 158 segmentos, 92 TCP connect scan, 159 TCP FIN scan, 160 TCP Half-Close, 95 TCP ISN, 163, 167, 171 TCP null scan, 160 TCP SYN, 98 TCP SYN scan, 159 TCP Xmas tree scan, 160 TCP/IP, 6, 18, 47—50, 57, 143 Introducción 238 Familia, 1 tcpdump, 95 TCPMON analizador de protocolos, 143 características, 146 estructura interna, 144 tecnologías, 23, 26, 39 aprendizaje, 24 teléfonos móviles, 48 Telecom, 174 TELNET, 52, 53, 86, 92, 156 tendencias, 24 tercera generación, 154 Terminal Speed, 53 Terminal Type, 53 TFTP, 53, 85 TI, 35 TIGER, 166 TIME-WAIT, 101 timestamp, 143 tipo de aprendizaje, 38 TISN, 9 TOS, 116, 158 total length, 116 trace routing, 159 traceroute, 156, 157, 167 tradicional enseñanza, 27 transferencia de datos, 88 transporte protocolos de la capa de, 86 traps, 73 TS, 135 TTL, 117, 121, 135, 157 TWN, 7 TYPE OF SERVICE, 114 UCP, 117 ÍNDICE DE MATERIAS UDP, 52, 56, 85, 86, 122, 162, 166, 171 datagrama, 85 UML, 177, 178, 183, 184 universidad, 30 UNIX, 2, 53, 55, 79 Unix, 48 UOWs, 78 URG, 92 URI, 63 URLs, 61 US ASCII, 60 uso de tecnologías, 36 usuario interfaz de, 54 programa de, 55 UUNET, 10 variables entorno de, 53 VBScript, 65 vector-distancia, 122, 123, 134 ventajas, 22, 24, 30, 35 tilde nanza virtual, 30 ventana mecanismo de, 89 ventanas mecanismo de, 89 VERS, 114 video-audio conferencias, 28 VLAN, 170 VMS, 53 VPN, 172—174 VRML, 62 VT, 53 vulnerabilidades genéricas, 155 wannabee, 153 WANs, 131 ÍNDICE DE MATERIAS WB-MON, 7 Web, 26, 27, 42 WebNFS, 63 whiteboards, 27, 28 WIDE, 9 Windows, 48 wirelles, 164 Worldcom, 174 WPS, 7 WWW, 21, 29, 36, 61, 68 WYSIWYG, 64 X.25, 6 XTI, 80 zócalos, 12, 87 llamadas básicas, 12 239