Comunicación de Datos − Redes de Computadores Índice Índice ..................................................................................................................................................................... i Introducción......................................................................................................................................................... 1 Historia de las Redes de Computadores............................................................................................................................ 1 Evolución histórica de las telecomunicaciones .................................................................................................................. 1 Desde otro punto de vista .................................................................................................................................................. 2 Red con un servidor:..................................................................................................................................... 2 Peer to peer : ................................................................................................................................................ 2 Clasificación de las Redes de Computadores.................................................................................................................... 2 Redes Locales (LAN, Local Área Network) (hasta 1km):............................................................................. 2 Redes Metropolitanas (MAN, Metropolitan Área Network) (hasta 100km): ................................................. 2 Redes Mundiales (WAN, Wide Area Network) (hasta 10.000km):............................................................... 2 Introducción a Las Redes Locales .................................................................................................................... 3 Objetivos de Las Redes ..................................................................................................................................................... 3 Compartir Recursos:..................................................................................................................................... 3 Aumentar Confiabilidad: ............................................................................................................................... 3 Facilidad de Comunicación: ......................................................................................................................... 3 Disminuir Costos:.......................................................................................................................................... 3 Compartir Ficheros............................................................................................................................................................. 3 Tipos de Redes .................................................................................................................................................................. 3 Redes de Computadores:............................................................................................................................. 3 Sistemas Distribuidos: .................................................................................................................................. 4 Impresión En Red .............................................................................................................................................................. 4 Aplicaciones De Red.......................................................................................................................................................... 4 Aplicaciones Cliente / Servidor........................................................................................................................................... 4 Acceso A Internet............................................................................................................................................................... 4 Estructura de Red .............................................................................................................................................................. 5 Red Física..................................................................................................................................................... 5 Hosts o Sistemas Finales ............................................................................................................................. 5 Subred .......................................................................................................................................................... 6 Sintéticamente .............................................................................................................................................. 6 Cómo Funciona Una Red ............................................................................................................................. 7 Topología De Una Red ........................................................................................................................................ 8 Topología Física................................................................................................................................................................. 8 Topología Lógica................................................................................................................................................................ 8 Topología En Bus............................................................................................................................................................... 8 Topología En Anillo ............................................................................................................................................................ 9 TOPOLOGÍA EN ESTRELLA............................................................................................................................................. 9 Topología En Estrella Pasiva ....................................................................................................................... 9 Topología de estrella activa.......................................................................................................................... 9 Topologías Lógicas ............................................................................................................................................................ 9 Topología Anillo-Estrella............................................................................................................................... 9 Topología Bus-Estrella ............................................................................................................................... 10 Arquitectura de Red .......................................................................................................................................... 11 Capas.......................................................................................................................................................... 11 Servicio ....................................................................................................................................................... 11 Protocolo..................................................................................................................................................... 11 Problemas de Diseño ................................................................................................................................. 11 i Comunicación de Datos − Redes de Computadores Ingeniería de Protocolos de Red ................................................................................................................ 12 Especificación Formal de Protocolos ..................................................................................................... 12 Validación y Verificación ........................................................................................................................ 13 Análisis de Prestaciones ........................................................................................................................ 13 Implementación ...................................................................................................................................... 13 Prueba .................................................................................................................................................... 13 Modelo OSI de ISO .......................................................................................................................................................... 13 Las Capas de OSI ...................................................................................................................................... 13 Transmisión de Datos en OSI .................................................................................................................... 15 Capa Física......................................................................................................................................................... 16 Bases Teóricas para la Comunicación de Datos.............................................................................................................. 16 Conceptos Básicos ..................................................................................................................................... 17 Medio Físico: .......................................................................................................................................... 17 Estados del Medio:................................................................................................................................. 17 Señal: ..................................................................................................................................................... 17 Intervalo de Señalización: ...................................................................................................................... 17 Medios de Transmisión............................................................................................................................... 17 Medios Magnéticos ................................................................................................................................ 17 Cable Par Trenzado ............................................................................................................................... 17 Cable Coaxiales ..................................................................................................................................... 18 Fibras Opticas ........................................................................................................................................ 19 Trayectorias Opticas a través de la Atmósfera ...................................................................................... 19 Uso de Satélites ..................................................................................................................................... 20 Comparación de Medios ........................................................................................................................ 20 Señales Ondulatorias......................................................................................................................... 21 Análisis de Fourier ............................................................................................................................. 21 Espectro y Filtros ............................................................................................................................... 22 Distorsión, Interferencia, Atenuación y Ruido.................................................................................... 22 Velocidad de Transmisión.................................................................................................................. 23 Velocidad en Canal sin Ruido (Nyquist): ........................................................................................... 23 Velocidad en Canal con Ruido (Shanon):.......................................................................................... 23 Transmisión Analógica ............................................................................................................................... 24 Sistema Telefónico................................................................................................................................. 24 Transmisión Digital ..................................................................................................................................... 24 Modulación de Señales .......................................................................................................................... 24 Modulaciones Combinadas:............................................................................................................... 25 Teorema del Muestreo................................................................................................................................ 25 Modulación por Impulsos Codificados (MIC).............................................................................................. 26 Fundamentos teóricos de la transmisión de datos..................................................................................... 26 Capa de Enlace .................................................................................................................................................. 27 Problemas de Diseño Capa de Enlace ............................................................................................................................ 27 Tipo de Servicio Suministrado.................................................................................................................... 27 Servicio sin Conexión y sin Asentimiento .............................................................................................. 27 Servicio sin Conexión y con Asentimiento ............................................................................................. 27 Servicio Orientado a Conexión .............................................................................................................. 27 Entramado .................................................................................................................................................. 28 Trama ..................................................................................................................................................... 28 Cuenta de Caracteres ............................................................................................................................ 28 Caracteres de Inicio y Fin, con Inserción de Caracter ........................................................................... 28 Banderas de Inicio y Final, con Inserción de Bit .................................................................................... 28 Violación de Código Físico..................................................................................................................... 28 Control de Error .......................................................................................................................................... 28 Gestión de Enlace ...................................................................................................................................... 28 Control de Flujo .......................................................................................................................................... 29 Detección y Corrección de Errores .................................................................................................................................. 29 Códigos Detectores de Hamming............................................................................................................... 29 Códigos Detectores Cíclicos ...................................................................................................................... 29 ii Comunicación de Datos − Redes de Computadores Ampliación ejemplificada ............................................................................................................................ 30 Detección y Corrección de errores......................................................................................................... 30 Corrección de errores............................................................................................................................. 30 Gestión de Enlace............................................................................................................................................................ 33 Estrategias de Gestión de Enlace .............................................................................................................. 34 Estrategias de Repartición (Estáticas) ................................................................................................... 34 TDM (Multiplexación por División de Tiempo): .................................................................................. 34 FDM (Multiplexación por División de Frecuencia): ............................................................................ 34 CDM (Multiplexación por División de Código): .................................................................................. 34 Estrategias de Compartición (Dinámicas) .................................................................................................. 34 Hipótesis del Canal Único: ..................................................................................................................... 34 Modelo de Estaciones:....................................................................................................................... 34 Colisiones:.......................................................................................................................................... 34 Asignación de Tiempo: ...................................................................................................................... 35 Detección de Uso:.............................................................................................................................. 35 Estándares de Gestión de Enlace (IEEE 802) ........................................................................................... 35 Protocolo Aloha .......................................................................................................................................... 35 Aloha Puro.............................................................................................................................................. 35 Aloha Ranurado ..................................................................................................................................... 36 Protocolos CSMA (802.3) ........................................................................................................................... 36 CSMA 1−Persistente .............................................................................................................................. 36 CSMA No Persistente ............................................................................................................................ 36 CSMA con Detección de Colisión (CSMA/CD) ...................................................................................... 37 Rendimiento: Aloha y CSMA ...................................................................................................................... 37 Protocolo Token−Bus (Paso de Testigo en Bus) (802.4) ........................................................................... 38 Protocolo Token−Ring (Paso de Testigo en Anillo) (802.5) ....................................................................... 38 Distributed Queue Dual Bus (DQDB, 802.6) .............................................................................................. 39 Fiber Distributed Data Interface (FDDI, 802.8)........................................................................................... 40 ISDN, BISDN (ATM) ................................................................................................................................... 40 ISDN (Integrated Services Digital Network): .......................................................................................... 41 BISDN (ISDN de Banda Ancha):............................................................................................................ 41 ATM (Asyncronous Transfer Mode): ...................................................................................................... 41 Control de Flujo................................................................................................................................................................ 41 Definiciones ................................................................................................................................................ 41 Estructura de la Trama........................................................................................................................... 41 Eventos que Recibe la Capa de Enlace................................................................................................. 41 Funciones Predefinidas para la Capa de Enlace ................................................................................... 41 Protocolos sin Memoria .............................................................................................................................. 42 Protocolo Unilateral No Restringido (U-NR)........................................................................................... 42 Protocolo Unilateral de Parada y Espera (U-P/E) .................................................................................. 43 Protocolo Unilateral para Canal Ruidoso (U-CR)................................................................................... 43 Protocolos de Ventana Deslizante..................................................................................................... 44 Protocolo de Ventana Deslizante de 1 Bit ......................................................................................... 44 Protocolo de Ventana Deslizante - Repetición No Selectiva............................................................. 45 Protocolo de Ventana Deslizante - Repetición Selectiva .................................................................. 46 Rendimiento del Canal de Enlace .................................................................................................................................... 46 Capa de Red....................................................................................................................................................... 48 Problemas de Diseño de la Capa de Red ........................................................................................................................ 48 Tipo de Servicios Suministrados ................................................................................................................ 48 Encaminamiento ......................................................................................................................................... 49 ¿Cómo construir un circuito virtual sobre una red de conmutación de paquetes?................................ 49 ¿Cómo se establecen los circuitos virtuales? ........................................................................................ 49 Interconexión de Redes(Introducción) ............................................................................................................................. 49 Control de Congestión ..................................................................................................................................................... 49 Servicios Proporcionados por la Capa de Red................................................................................................................. 49 Servicio con Conexión ................................................................................................................................ 49 iii Comunicación de Datos − Redes de Computadores Servicio Sin Conexión................................................................................................................................. 49 Diferencias entre los Servicios Suministrados ........................................................................................... 49 Primitivas OSI para la Capa de Red ................................................................................................................................ 50 Organización Interna de la Capa de Red ......................................................................................................................... 50 Circuitos Virtuales....................................................................................................................................... 51 Datagramas ................................................................................................................................................ 52 Comparación: Circuitos Virtuales vs. Datagramas..................................................................................... 52 Algoritmos de Encaminamiento.............................................................................................................. 52 Encaminamiento Estático....................................................................................................................... 52 Camino más Corto ............................................................................................................................. 52 Camino Múltiple ................................................................................................................................. 52 Centralizado ........................................................................................................................................... 53 Encaminamiento Aislado........................................................................................................................ 53 Patata Caliente:.................................................................................................................................. 53 Patata Caliente Mejorado: ................................................................................................................. 53 Aprendizaje Hacia Atrás: ................................................................................................................... 53 Inundación:......................................................................................................................................... 53 Encaminamiento Adaptativo................................................................................................................... 53 Encaminamiento Distribuido .............................................................................................................. 53 Encaminamiento Óptimo.................................................................................................................... 53 Control de Congestión ..................................................................................................................................................... 53 Preasignación de Memorias ....................................................................................................................... 54 Descarte de Paquetes ................................................................................................................................ 54 Control Isarítmico de Congestión ............................................................................................................... 54 Control de Congestión por Control de Flujo ............................................................................................... 54 Paquetes Reguladores ............................................................................................................................... 55 Resolución de Bloqueos ............................................................................................................................. 55 Ejemplos de Capa de Red ............................................................................................................................................... 55 Protocolo de Red IP (Internet Protocol)...................................................................................................... 55 Protocolo ARP (Address Resolution Protocol) ........................................................................................... 59 Interconexión de Redes.................................................................................................................................... 61 Conexión de Redes.......................................................................................................................................................... 61 Capa Física: Repetidores (Hub) ................................................................................................................. 62 Hubs activos:.......................................................................................................................................... 62 Hubs pasivos: ......................................................................................................................................... 62 Subcapa de Acceso al Medio: Puentes (Bridges) ...................................................................................... 62 Arquitectura de un puente ...................................................................................................................... 63 Puentes transparentes ........................................................................................................................... 63 Control de bucles ................................................................................................................................... 64 Capa de Enlace: Switch.............................................................................................................................. 67 Capa de Red: Encaminador (Router) ......................................................................................................... 67 Firewall: .................................................................................................................................................. 68 Gateway: ................................................................................................................................................ 68 Resumen de Características ...................................................................................................................... 68 Routers ....................................................................................................................................................... 68 Diseño de Topologías de Redes ...................................................................................................................... 70 Tarjetas De Interfaz De Red............................................................................................................................................. 70 Determinación De La Velocidad De Transmisión En Una Red ........................................................................................ 71 Concepto de segmento .................................................................................................................................................... 71 Segmentación: sus necesidades...................................................................................................................................... 72 Capa de Aplicación ........................................................................................................................................... 74 Conceptos Básicos .......................................................................................................................................................... 74 Aplicaciones Estándar más Comunes.............................................................................................................................. 74 iv Comunicación de Datos − Redes de Computadores Transferencia y Acceso Remoto de Archivos............................................................................................. 74 Transferencia de Archivos (ftp, http): ..................................................................................................... 74 Acceso Remoto a Archivos (NFS, Novell): ............................................................................................ 74 Correo Electrónico ...................................................................................................................................... 75 Terminales Virtuales ................................................................................................................................... 75 Capa de Presentación....................................................................................................................................... 76 Teoría de la Información y Codificación de Fuentes ........................................................................................................ 76 Teoría de la información ............................................................................................................................. 76 Entropía: Información Media ...................................................................................................................... 77 Codificación de la Fuente ........................................................................................................................... 78 Códigos....................................................................................................................................................... 78 Análisis de Códigos Unívocos .................................................................................................................... 78 Codificación de Huffmann (Instantáneo y Óptimo)..................................................................................... 79 Otros Métodos ............................................................................................................................................ 80 Extensión de Código: ............................................................................................................................. 80 Series Repetidas: ................................................................................................................................... 80 Criptografía, Seguridad y Protección de los Datos........................................................................................................... 80 Criptología .................................................................................................................................................. 80 Criptografía ................................................................................................................................................. 81 Sustitución: ............................................................................................................................................. 81 Códigos: ................................................................................................................................................. 81 Transposición: ........................................................................................................................................ 81 Criptoanálisis .............................................................................................................................................. 81 Problemas Típicos de Seguridad ............................................................................................................... 81 Protección de Claves ............................................................................................................................. 81 Distribución de Claves............................................................................................................................ 82 Criptografía con Claves Públicas ........................................................................................................... 82 Autentificación y Firmas Digitales .......................................................................................................... 82 Representación en Formatos de Red .............................................................................................................................. 83 Capa de Sesión.................................................................................................................................................. 84 Servicios del Nivel de Sesión ........................................................................................................................................... 84 Interconexión de Procesos ......................................................................................................................... 84 Sincronización de Procesos ....................................................................................................................... 84 Administración de Actividades.................................................................................................................... 84 Notificación de Excepciones....................................................................................................................... 84 Llamada a Procedimiento Remoto (RPC) .................................................................................................. 84 Capa de Transporte........................................................................................................................................... 86 Calidad del Servicio ......................................................................................................................................................... 86 Retardo en Establecer la Conexión:........................................................................................................... 86 Probabilidad de Fallo de Establecimiento de Conexión: ............................................................................ 86 Retardo en la Liberación de la Conexión: .................................................................................................. 86 Probabilidad de Fallo de Liberación de Conexión:..................................................................................... 86 Caudal:........................................................................................................................................................ 86 Retardo de Tráfico: ..................................................................................................................................... 86 Tasa de Error:............................................................................................................................................. 86 Tasa de Falla de Transferencia:................................................................................................................. 86 Protección:.............................................................................................................................................. 86 Prioridad: ................................................................................................................................................ 86 Resistencia: ............................................................................................................................................ 86 Servicios de la Capa de Transporte ................................................................................................................................. 86 Primitivas de Transporte .................................................................................................................................................. 87 Inactivo: ...................................................................................................................................................... 87 Conexión Entrante: ..................................................................................................................................... 87 Conexión Saliente:...................................................................................................................................... 87 Conexión Establecida: ................................................................................................................................ 87 v Comunicación de Datos − Redes de Computadores Administración de Conexión............................................................................................................................................. 89 Direccionamiento ........................................................................................................................................ 89 Servidor de Procesos: ............................................................................................................................ 89 Base de Datos de Procesos:.................................................................................................................. 89 Pérdida de Mensajes .................................................................................................................................. 89 Establecimiento de la Conexión ................................................................................................................. 89 Liberación de la Conexión .......................................................................................................................... 90 Control de Flujo .......................................................................................................................................... 92 Multiplexación ............................................................................................................................................. 92 Recuperación de Caídas ............................................................................................................................ 92 Los Paquetes TCP ........................................................................................................................................................... 92 Bibliografía......................................................................................................................................................... 94 vi Comunicación de Datos − Redes de Computadores Introducción Historia de las Redes de Computadores Antes de existir las redes de Computadores, los usuario de debían viajar hacia los computadores, que eran muy grandes (físicamente) y caros, para utilizarlos. Más adelante se crearon sistemas con terminales, los que permitían, a cierta distancia, utilizar de forma remota un computador, evitando la conglomeración de personas alrededor de él. Luego apareció como una forma de utilizar terminales más alejadas de los computadores, el uso de las conexiones telefónicas existentes para ello. Cuando se hacía necesario que la velocidad y/o fiabilidad del canal de datos fuera mejor, se podían contratar caros enlaces dedicados, los cuales eran implementados por empresas privadas. Las terminales ya no sólo eran consolas tontas de despliega e ingreso de información, sino que se hacían cada vez más inteligentes, aportando su grano de arena al problema de computación. Esto último derivó en el modelo actual de redes de computadores, en el cual las “terminales” no son más que otros computadores conectados a la red. Así, cada uno de ellos puede hacer de cliente y de servidor simultáneamente, proveyendo una gran capacidad de resolución de problemas de computación y de comunicaciones. En algunas partes aún subsisten las antiguas terminales, las que se utilizan conectadas a uno de estos computadores conectados a la red (hosts). Al masificarse esta manera de utilizar los computadores, aparecieron empresas dedicadas a satisfacer la necesidad de canales portadores más rápidos y baratos, con lo cual los costos bajaron rápidamente. Estas empresas son las que hoy en día se conocen como portadores públicos, y son responsables de la explosión de las comunicaciones en los últimos años. Evolución histórica de las telecomunicaciones Un sistema de telecomunicación se puede definir como los medios necesarios para emitir o recibir datos de cualquier naturaleza entre dos sistemas geográficamente separados. • • • • • • Nos vamos a centrar en tres medios principalmente: Intercambio de señales eléctricas a través de cables eléctricos. Señales electromagnéticas a través del aire (o vacío). Señales ópticas a través de conductores ópticos. S. XVIII: Faraday introduce los principios de inducción electromagnética. Al mover un imán alrededor de un metal se genera una corriente. S. XIX: Samuel Morse (telégrafo), 1844 alfabeto Morse. Aquí ya puede separarse el nivel físico (cable) y lógico (alfabeto). Las telecomunicaciones deben estar sistematizadas, emisor y receptor deben comprender el sistema para poder entenderse. El conjunto de normas que rigen la comunicación se denomina protocolo. Poco después se intentó tirar un cable entre América y Europa, aunque no llegó a cuajar (sólo funcionó 20 o 30 días). Otro aspecto muy importante es la velocidad de transmisión. De las 10-12 palabras / minuto iniciales hemos pasado a miles de palabras / segundo. • • • • • • • • • • • • Maxwell (Teoría electromagnética de la luz). Estudio de ondas con comportamiento igual a la luz. Marconi (radiotelegrafía) 1896. Comunicación sin necesidad de un conductor físico. Se evoluciona hacia la transmisión de radio y telefonía. 1909 → USA primeras transmisiones de radio. 1927 → Primer enlace intercontinental mediante radio de onda corta. A continuación aparece la modulación en frecuencia o FM en 1933. 1937 → radar (teledetección). 1938 → Modulación PCM. Primera forma de modular información analógica a forma digital. 1941 → TV 1954→ TV color. 1957-58 → Satélites (Sputnik ruso), primer satélite de comunicaciones por parte de los americanos. 1960 → Láser (a través de fibra óptica). 1969 → Cobertura total de la superficie terrestre mediante satélites. 1977 → Primeros sistemas de telefonía mediante fibra óptica. Licenciado Gustavo Rei Pág. Nro. 1 Comunicación de Datos − Redes de Computadores Una red informática es un conjunto de computadores autónomos interconectados capaces de intercambiar información. Computador autónomo es cualquier dispositivo capaz de procesar información. Con las redes se persigue: • Intercambio de información. • Compartir recursos. • Mayor fiabilidad. • Mayor versatilidad (más fácil ampliar el sistema). Desde otro punto de vista Un sistema distribuido es multiusuario y multitarea. Todos los programas que se ejecuten en un sistema distribuido lo van a hacer sobre la CPU del servidor en lo que en términos informáticos se denomina "tiempo compartido". Un sistema distribuido comparte la CPU. Sin embargo, en una intranet, lo que en realidad se denomina servidor, lo es, pero de ficheros o de bases de datos. Cada usuario tendrá un ordenador autónomo con su propia CPU dónde se ejecutarán las aplicaciones que correspondan. Además, con la aparición de la arquitectura cliente / servidor, la CPU del servidor puede ejecutar algún programa que el usuario solicite. Una red local puede tener distintas configuraciones que se verán más adelante, pero básicamente se pueden hablar de dos tipos: Red con un servidor: Existe un servidor central que es el “motor” de la red. El servidor puede ser activo o pasivo dependiendo del uso que se le dé. Peer to peer : Una red de igual a igual. Todos los puestos de la red pueden hacer la función de servidor y de cliente. EN UNA INTRANET, INTERESA TENER UN SERVIDOR WEB, QUE SERÁ LA PARTE MÁS IMPORTANTE DE LA RED. Clasificación de las Redes de Computadores Las redes se clasifican de manera general en tres tipos según las distancias entre los computadores que interconectan: Redes Locales (LAN, Local Área Network) (hasta 1km): Son redes que permiten la interconexión de computadores dentro de un cuarto, edificio o terreno. Redes Metropolitanas (MAN, Metropolitan Área Network) (hasta 100km): Son redes que permiten la interconexión de computadores de toda una ciudad o región. Este tipo de redes no tienen razón de ser por su similitud con la Topología y características de las WAN 1 Redes Mundiales (WAN, Wide Area Network) (hasta 10.000km): Son redes que permiten la interconexión de computadores de todas partes del mundo. 1 IEEE Licenciado Gustavo Rei Pág. Nro. 2 Comunicación de Datos − Redes de Computadores Introducción a Las Redes Locales Lo primero que se puede preguntar un usuario cuando se plantea la posibilidad de instalación o utilización de una red local, es saber cómo va a mejorar su trabajo en el ordenador al utilizar dicho entorno. La respuesta va a ser diferente según el tipo de trabajo que desempeñe. En resumen, una red local proporciona la facilidad de compartir recursos entre sus usuarios. Esto es: • • • • • Supone compartir ficheros. Supone compartir impresoras. Se pueden utilizar aplicaciones específicas de red. Se pueden aprovechar las prestaciones cliente / servidor. Se puede acceder a sistemas de comunicación global. Objetivos de Las Redes Compartir Recursos: El objetivo fundamental de las redes es el compartir información, dispositivos físicos (procesadores, memorias, impresoras) y/o la carga de trabajo (programas distribuidos) Aumentar Confiabilidad: Al compartirse los recursos, éstos se hacen más confiables, ya que es inherente a la compartición de recursos el duplicarlos (programas y datos). En el caso de recursos físicos, éstos deben estar duplicados para soportar la compartición anterior. Facilidad de Comunicación: Proveen un medio de comunicación entre personas muy efectivo a través de correo, paneles de discusión, etc. Disminuir Costos: Las redes de computadores tienen mejor relación mejor relación costo/rendimiento que los grandes computadores antiguos. Compartir Ficheros La posibilidad de compartir ficheros es la prestación principal de las redes locales. La aplicación básica consiste en utilizar ficheros de otros usuarios, sin necesidad de utilizar el disquete. La ventaja fundamental es la de poder disponer de directorios en la red a los que tengan acceso un grupo de usuarios, y en los que se puede guardar la información que compartan dichos grupos. EJEMPLO: SE CREA UNA CARPETA PARA EL DEPARTAMENTO DE CONTABILIDAD, OTRA PARA EL DEPARTAMENTO COMERCIAL Y OTRA PARA EL DEPARTAMENTO DE DISEÑO, FACILITA QUE ESTOS USUARIOS TENGAN ACCESO A LA INFORMACIÓN QUE LES INTERESA DE FORMA INSTANTÁNEA. SI A ESTO SE AÑADEN APLICACIONES CONCRETAS, ENTONCES EL TRABAJO EN GRUPO MEJORA BASTANTE CON LA INSTALACIÓN DE LA INTRANET. ESTO SE APRECIA EN LAS APLICACIONES DE BASES DE DATOS PREPARADAS PARA EL TRABAJO EN REDES LOCALES (LA MAYORÍA DE LAS ACTUALES), LO QUE PERMITE QUE VARIOS USUARIOS PUEDAN ACCEDER DE FORMA SIMULTÁNEA A LOS REGISTROS DE LA BASE DE DATOS, Y QUE LAS ACTUALIZACIONES QUE REALICE UN OPERADOR QUEDEN INMEDIATAMENTE DISPONIBLES PARA EL RESTO DE LOS USUARIOS. Tipos de Redes Existen a grandes rasgos dos tipos de redes de computadores, no se debe confundir una red local con un sistema distribuido. Aunque parezca que son conceptos similares difieren en algunas cosas, los cuales son: Redes de Computadores: Se componen de una serie de computadores interconectados que proveen un medio de compartir recursos de manera explícita, esto es, los usuarios deben especificar explícitamente dónde desea realizar una cierta tarea, con qué máquina se comunica, dónde guarda sus archivos, etc. Licenciado Gustavo Rei Pág. Nro. 3 Comunicación de Datos − Redes de Computadores Sistemas Distribuidos: Son sistemas en los cuales la red es transparente al usuario, el cual la ve como un sólo gran computador virtual, y tiene acceso a todos los recursos como si fueran locales a su computador. La decisión de dónde realizar las tareas es realizada automáticamente por el sistema. Impresión En Red Las redes locales permiten que sus usuarios puedan acceder a impresoras de calidad y alto precio sin que suponga un desembolso prohibitivo. Por ejemplo, si tenemos una oficina en la que trabajan siete personas, y sus respectivos ordenadores no están conectados mediante una red local, o compramos una impresora para cada usuario (en total siete), o que cada usuario grabe en un disquete su documento a imprimir y lo lleve donde se encuentra la impresora. Si hay instalada una red local, lo que se puede hacer es comprar una o dos impresoras de calidad, instalarlas y que los usuarios las compartan a través de la red. Cuando se comparte una impresora en la red, se suele conectar a un ordenador que actúa como servidor de impresión, y que perfectamente puede ser el equipo de un usuario. También existen impresoras que disponen de una tarjeta de red que permite la conexión directa en cualquier punto de la red sin necesidad de situarse cerca de un servidor. Algo complementario a la impresión en red es la posibilidad de compartir dispositivos de fax. Si un ordenador tiene configurado un módem para utilizarlo como fax, puede permitir que el resto de los usuarios de la red lo utilicen para enviar sus propios documentos. Aplicaciones De Red Existe un gran número de aplicaciones que aprovechan las redes locales para que el trabajo sea más provechoso. El tipo de aplicaciones más importante son los programas de correo electrónico. Un programa de correo electrónico permite el intercambio de mensajes entre los usuarios. Los mensajes pueden consistir en texto, sonido, imágenes, etc. y llevar asociados cualquier tipo de ficheros binarios. En cierto modo el correo electrónico llega a sustituir a ciertas reuniones y además permite el análisis más detallado del material que el resto de usuarios nos remitan. Aplicaciones Cliente / Servidor Es un concepto muy importante en las redes locales para aplicaciones que manejan grandes volúmenes de información. Son programas que dividen su trabajo en dos partes, una parte cliente que se realiza en el ordenador del usuario y otra parte servidor que se realiza en un servidor con dos fines : • • Aliviar la carga de trabajo del ordenador cliente. Reducir el tráfico de la red. EJEMPLO: SI DISPONEMOS DE UN ORDENADOR QUE ACTÚA COMO SERVIDOR DE BASE DE DATOS, CON UN ENFOQUE TRADICIONAL, EL SERVIDOR SOLAMENTE LO ES DE FICHEROS. SI EN ALGÚN MOMENTO EL USUARIO QUIERE HACER UNA SELECCIÓN DE PERSONAS MAYORES DE 30 AÑOS POR EJEMPLO, SE DEBEN LEER TODOS LOS REGISTROS DE LA BASE DE DATOS PARA COMPROBAR CUÁLES CUMPLÍAN LA CONDICIÓN. ESTO SUPONE UN ELEVADO TRÁFICO EN LA RED. CON LAS APLICACIONES CLIENTE/SERVIDOR UNA CONSULTA SOBRE UNA BASE DE DATOS SE ENVÍA AL SERVIDOR, QUIEN REALIZA LA SELECCIÓN DE REGISTROS Y ENVÍA SOLO LOS CAMPOS QUE LE INTERESAN AL USUARIO. SE REDUCE ASÍ CONSIDERABLEMENTE EL TRÁFICO EN LA RED Y EL ORDENADOR CLIENTE SE ENCUENTRA CON EL TRABAJO HECHO. EL SISTEMA EN SÍ RESULTA BASTANTE MÁS RÁPIDO, AUNQUE A CAMBIO REQUIERE QUE LOS SERVIDORES TENGAN MEJORES PRESTACIONES. Acceso A Internet Es una de las prestaciones que con el tiempo está ganando peso específico. Consiste en la posibilidad de configurar un ordenador con una conexión permanente a servicios en línea externos, de forma que los usuarios de la intranet no necesiten utilizar un módem personal para acceder a ellos. El ejemplo más de moda es el acceso a Internet. Mediante un servidor de comunicaciones se puede mantener una línea permanente de alta velocidad que enlace la intranet con Internet. El servidor puede estar equipado con un módem o una tarjeta de comunicación a RDSI, que activa la conexión cuando algún usuario de la red lo necesita. Cuando la conexión está activa, cualquier otro usuario puede compartirla, aunque en este caso las prestaciones de cada usuario serán menores que si tuvieran una conexión individual. Licenciado Gustavo Rei Pág. Nro. 4 Comunicación de Datos − Redes de Computadores Estructura de Red Una red de computadores está organizada en una serie de redes físicas, las cuales permiten la comunicación entre ellos. Veamos: Red Física ES UN CONJUNTO DE NODOS DE LA RED, INTERCONECTADOS MEDIANTE UN SOLO MEDIO FÍSICO O CANAL DE COMUNICACIÓN, SIN TRADUCTORES INTERMEDIOS. Un canal de comunicación es un ambiente donde es posible establecer una comunicación. Los medios físicos más comunes para establecer canales de comunicación son: el sonido en el aire, la luz viajando a través de algún medio (aire, fibras ópticas), la electricidad por cables (par trenzado, paralelo, líneas telefónicas), ondas de radio (radio, televisión), etc. Los nodos son elementos que son capaces de transmitir y/o recibir información a través de uno o más canales de comunicación iguales o diferentes entre sí. Existen dos tipos de redes físicas, las con canales punto-a-punto y las con canales de difusión: Canal Punto a Punto: Tiene sólo dos nodos conectados a él, y cuando uno transmite sólo el otro puede recibir la información transmitida (ej.: llamadas por teléfono). Canal de Difusión: Poseen muchos nodos conectados al mismo canal, y cuando uno de ellos transmite todos pueden recibir. El mensaje enviado incluye un identificador que el receptor analiza para saber si fue enviado a él o no. a) b) c) d) e) Topologías de Red Física Punto-a-Punto: a) Estrella; b) Anillo; c) Completa; d) Irregular; e) Arbol; a) b) c) Topologías de Red Física de Difusión: a) Bus de Datos; b) Radiodifusión; c) Anillo; Hosts o Sistemas Finales SON LOS COMPUTADORES CONECTADO A LA RED, QUE PROVEEN Y/O UTILIZAN SERVICIOS A/DE ELLA. LOS USUARIOS DEBEN UTILIZAR HOSTS PARA TENER ACCESO A LA RED. ARPANET evolución de DARPANET que englobó a todas las universidades americanas. Embrión de Internet. Las máquinas que conectadas a una red, ejecutan programas de usuario se conocen como host. Los hosts están conectados a través de una subred que es la encargada de las comunicaciones. Una subred contiene dos elementos distintos: líneas de comunicación y unos dispositivos denominados IMP’S (Internet Message Processor), computadores dedicados únicamente a tareas de comunicaciones. Hay dos tipos de diseño de redes: punto a punto (dos IMP que no comparten línea se comunican a través de otro IMP) y canales de difusión (todos los IMP comparten una única línea), el IMP tendrá que gestionar el acceso de los hosts a ese único canal de difusión En general, los hosts son computadores mono o multiusuario que ofrecen servicios de transferencia de archivos, conexión remota, servidores de base de datos, servidores WWW, etc. Los usuarios que hacen uso de los hosts pueden a su vez pedir los mismos servicios a otras máquinas conectadas a la red. Licenciado Gustavo Rei Pág. Nro. 5 Comunicación de Datos − Redes de Computadores Subred ES UNA RED QUE SÓLO CONTIENE ENLACES, NO CONTIENE HOSTS, Y QUE POSIBILITA LAS COMUNICACIONES ENTRE HOSTS DISTANCIA. SUBRED Relación entre hosts y la subred Los hosts conectados a una subred deben hacerlo a través de uno o más nodos de ella, de manera que todo el tráfico que va y viene desde la subred al host debe pasar por estos nodos. Sintéticamente Dependiendo de su arquitectura y de los procedimientos empleados para transferir la información las redes de comunicación se clasifican en : • Redes conmutadas • Redes de difusión • Redes conmutadas Consisten en un conjunto de nodos interconectados entre sí, a través de medios de transmisión (cables), formando la mayoría de las veces una topología mallada, donde la información se transfiere encaminándola del nodo de origen al nodo destino mediante conmutación entre nodos intermedios. Una transmisión de este tipo tiene 3 fases : • Establecimiento de la conexión. • Transferencia de la información. • Liberación de la conexión. Se entiende por conmutación en un nodo, a la conexión física o lógica, de un camino de entrada al nodo con un camino de salida del nodo, con el fin de transferir la información que llegue por el primer camino al segundo. Un ejemplo de redes conmutadas son las redes de área extensa. Las redes conmutadas se dividen en : • Conmutación de paquetes. • Conmutación de circuitos. • Conmutación De Paquetes Se trata del procedimiento mediante el cual, cuando un nodo quiere enviar información a otro, la divide en paquetes. Cada paquete es enviado por el medio con información de cabecera. En cada nodo intermedio por el que pasa el paquete se detiene el tiempo necesario para procesarlo. Otras características importantes de su funcionamiento son : En cada nodo intermedio se apunta una relación de la forma : “todo paquete con origen en el nodo A y destino en el nodo B tiene que salir por la salida 5 de mi nodo”. • Los paquetes se numeran para poder saber si se ha perdido alguno en el camino. • Todos los paquetes de una misma transmisión viajan por el mismo camino. • Pueden utilizar parte del camino establecido más de una comunicación de forma simultánea. • Conmutación De Circuitos Licenciado Gustavo Rei Pág. Nro. 6 Comunicación de Datos − Redes de Computadores Es el procedimiento por el que dos nodos se conectan, permitiendo la utilización de forma exclusiva del circuito físico durante la transmisión. En cada nodo intermedio de la red se cierra un circuito físico entre un cable de entrada y una salida de la red. La red telefónica es un ejemplo de conmutación de circuitos. Redes De Difusión En este tipo de redes no existen nodos intermedios de conmutación; todos los nodos comparten un medio de transmisión común, por el que la información transmitida por un nodo es conocida por todos los demás. Ejemplo de redes de difusión son : • Comunicación por radio. • Comunicación por satélite. • Comunicación en una red local. Cómo Funciona Una Red Se puede pensar por un momento en el servicio de correos. Cuando alguien desea mandar una carta a otra persona, la escribe, la mete en un sobre con el formato impuesto por correos, le pone un sello y la introduce en un buzón; la carta es recogida por el cartero, clasificada por el personal de correos, según su destino y enviada a través de medios de transporte hacia la ciudad destino; una vez allí otro cartero irá a llevarla a la dirección indicada en el sobre; si la dirección no existe, al cabo del tiempo la carta devolverá al origen por los mismos cauces que llegó al supuesto destino. Más o menos, esta es la forma en que funciona una red : la carta escrita es la información que se quiere transmitir; el sobre y sello es el paquete con el formato impuesto por el protocolo que se utiliza en la transmisión; la dirección del destinatario es la dirección del nodo destino y la dirección del remitente, será la dirección del nodo origen, los medios de transporte que llevan la carta cerca del destino es el medio de transmisión (cable coaxial, fibra óptica …); las normas del servicio de correos, carteros y demás personal son los protocolos de comunicaciones establecidos. Si se supone que se está utilizando el modelo OSI de la ISO. Este modelo tiene 7 niveles, es como decir que la carta escrita pasa por 7 filtros diferentes (trabajadores con diferentes cargos) desde que la ponemos en el buzón hasta que llega al destino. Cada nivel de esta torre se encarga de realizar funciones diferentes en la información a transmitir. Cada nivel por el que pasa la información a transmitir que se ha insertado en un paquete, añade información de control, que el mismo nivel en el nodo destino irá eliminando. Además se encarga de cosas muy distintas: desde el control de errores, hasta la reorganización de la información transmitida cuando esta se ha fragmentado en tramas. Si la información va dirigida a una red diferente (otra ciudad en el caso de la carta), la trama debe llegar a un dispositivo de interconexión de redes (router, gateway, bridges), que decidirá, dependiendo de su capacidad, el camino que debe seguir la trama. Por eso es imprescindible que el paquete lleve la dirección destino y que esta contenga, además de la dirección que identifica al nodo, la dirección que identifica la red a la que pertenece el nodo. Licenciado Gustavo Rei Pág. Nro. 7 Comunicación de Datos − Redes de Computadores Topología De Una Red La topología de una red define únicamente la distribución del cable que interconecta los diferentes ordenadores, es decir, es el mapa de distribución del cable que forma la intranet. Define cómo se organiza el cable de las estaciones de trabajo. A la hora de instalar una red, es importante seleccionar la topología más adecuada a las necesidades existentes. Hay una serie de factores a tener en cuenta a la hora de decidirse por una topología de red concreta y son : • • • • • • La distribución de los equipos a interconectar. El tipo de aplicaciones que se van a ejecutar. La inversión que se quiere hacer. El coste que se quiere dedicar al mantenimiento y actualización de la red local. El tráfico que va a soportar la red local. La capacidad de expansión. Se debe diseñar una intranet teniendo en cuenta la escalabilidad. No se debe confundir el término topología con el de arquitectura. La arquitectura de una red engloba : • • • La topología. El método de acceso al cable. Protocolos de comunicaciones. Actualmente la topología está directamente relacionada con el método de acceso al cable, puesto que éste depende casi directamente de la tarjeta de red y ésta depende de la topología elegida. Topología Física Es lo que hasta ahora se ha venido definiendo; la forma en la que el cableado se realiza en una red. Existen tres topologías físicas puras: • • • Topología en anillo. Topología en bus. Topología en estrella. Existen mezclas de topologías físicas, dando lugar a redes que están compuestas por mas de una topología física. Topología Lógica Es la forma de conseguir el funcionamiento de una topología física cableando la red de una forma más eficiente. Existen topologías lógicas definidas: Topología anillo-estrella: implementa un anillo a través de una estrella física. Topología bus-estrella: implementa una topología en bus a través de una estrella física. Topología En Bus Consta de un único cable que se extiende de un ordenador al siguiente de un modo serie. Los extremos del cable se terminan con una resistencia denominada terminador, que además de indicar que no existen más ordenadores en el extremo, permiten cerrar el bus. Sus principales ventajas son: • • Fácil de instalar y mantener. No existen elementos centrales del que dependa toda la red, cuyo fallo dejaría inoperativas a todas las estaciones. Licenciado Gustavo Rei Pág. Nro. 8 Comunicación de Datos − Redes de Computadores Sus principales inconvenientes son: • • • Si se rompe el cable en algún punto, la red queda inoperativa por completo. Cuando se decide instalar una red de este tipo en un edificio con varias plantas, lo que se hace es instalar una red por planta y después unirlas todas a través de un bus troncal. Topología En Anillo Sus principales características son: • • • El cable forma un bucle cerrado formando un anillo. Todos los ordenadores que forman parte de la red se conectan a ese anillo. Habitualmente las redes en anillo utilizan como método de acceso al medio el modelo “paso de testigo”. Los principales inconvenientes serían: • • • Si se rompe el cable que forma el anillo se paraliza toda la red. Es difícil de instalar. Requiere mantenimiento. TOPOLOGÍA EN ESTRELLA Sus principales características son: • • • • • • • • Todas las estaciones de trabajo están conectadas a un punto central (concentrador), formando una estrella física. Habitualmente sobre este tipo de topología se utiliza como método de acceso al medio poolling, siendo el nodo central el que se encarga de implementarlo. Cada vez que se quiere establecer comunicación entre dos ordenadores, la información transferida de uno hacia el otro debe pasar por el punto central. existen algunas redes con esta topología que utilizan como punto central una estación de trabajo que gobierna la red. La velocidad suele ser alta para comunicaciones entre el nodo central y los nodos extremos, pero es baja cuando se establece entre nodos extremos. Este tipo de topología se utiliza cuando el trasiego de información se va a realizar preferentemente entre el nodo central y el resto de los nodos, y no cuando la comunicación se hace entre nodos extremos. Si se rompe un cable sólo se pierde la conexión del nodo que interconectaba. Es fácil de detectar y de localizar un problema en la red. Topología En Estrella Pasiva Se trata de una estrella en la que el punto central al que van conectados todos los nodos es un concentrador (hub) pasivo, es decir, se trata únicamente de un dispositivo con muchos puertos de entrada. Topología de estrella activa Se trata de una topología en estrella que utiliza como punto central un hub activo o bien un ordenador que hace las veces de servidor de red. En este caso, el hub activo se encarga de repetir y regenerar la señal transferida e incluso puede estar preparado para realizar estadísticas del rendimiento de la red. Cuando se utiliza un ordenador como nodo central, es éste el encargado de gestionar la red, y en este caso suele ser además del servidor de red, el servidor de ficheros. Topologías Lógicas Topología Anillo-Estrella Licenciado Gustavo Rei Pág. Nro. 9 Comunicación de Datos − Redes de Computadores Uno de los inconvenientes de la topología en anillo era que si el cable se rompía toda la red quedaba inoperativa ; con la topología mixta anillo-estrella, éste y otros problemas quedan resueltos. Las principales características son : Cuando se instala una configuración en anillo, el anillo se establece de forma lógica únicamente, ya que de forma física se utiliza una configuración en estrella. Se utiliza un concentrador, o incluso un servidor de red (uno de los nodos de la red, aunque esto es el menor número de ocasiones) como dispositivo central, de esta forma, si se rompe algún cable sólo queda inoperativo el nodo que conectaba, y los demás pueden seguir funcionando. El concentrador utilizado cuando se está utilizando esta topología se denomina MAU (Unidad de Acceso Multiestación), que consiste en un dispositivo que proporciona el punto de conexión para múltiples nodos. Contiene un anillo interno que se extiende a un anillo externo. A simple vista, la red parece una estrella, aunque internamente funciona como un anillo. Cuando la MAU detecta que un nodo se ha desconectado (por haberse roto el cable, por ejemplo), puentea su entrada y su salida para así cerrar el anillo. Topología Bus-Estrella Este tipo de topología es en realidad una estrella que funciona como si fuese en bus. Como punto central tiene un concentrador pasivo (hub) que implementa internamente el bus, y al que están conectados todos los ordenadores. La única diferencia que existe entre esta topología mixta y la topología en estrella con hub pasivo es el método de acceso al medio utilizado. Licenciado Gustavo Rei Pág. Nro. 10 Comunicación de Datos − Redes de Computadores Arquitectura de Red CONJUNTO DE CAPAS Y PROTOCOLOS QUE DEFINEN EL COMPORTAMIENTO DE UNA RED. Capas Las redes se construyen en base a una serie de capas o niveles, de manera de reducir su complejidad. El número de capas, sus nombres y sus funciones varían de gran manera de una red a otra, por lo que la estandarización se hace necesaria. Sin embargo, en toda red, el propósito de una capa es proveer una servicios a la capa siguiente, encapsulando los detalles de cómo se llevan a cabo las tareas. Tenemos entonces que: • • • • Arquitectura basada en capas; Cada capa utiliza servicios de la capa inferior; Cada capa provee servicio a la capa superior, encapsulando los detalles; La capa n de una máquina A se comunica de forma transparente con la capa n de una máquina B (protocolo); • La transparencia en capas n se implementa mediante servicios en las capas n − 1 de cada máquina (interfase); • La implementación de un nivel en un sistema particular se llama entidad; Capa n Protocolo de Capa n Capa n Protocolo de Capa n − 1 Capa n − 1 Protocolo de Capa n − 2 Capa n − 2 Interfase Capas n/ n − 1 Capa n − 1 Interfase Capas n/ n − 2 Capa n − 2 … … … Capa 2 Protocolo de Capa 2 … Capa 2 Capa 1 Protocolo de Capa 1 Capa 1 Interfase Capas 2/1 Uso directo del Canal Medio Físico o Canal de Comunicación Servicio CAPACIDAD SUMINISTRADA POR UN NIVEL N Y LOS ANTERIORES AL NIVEL SIGUIENTE N+1, A TRAVÉS DE LAS ENTIDADES DEL NIVEL N. EL CONJUNTO DE SERVICIOS SUMINISTRADOS POR LA CAPA N CONSTITUYE LA INTERFAZ N / N+1. • La interfaz entre dos capas, vista de arriba hacia abajo, constituye una interfaz cliente / servidor. Protocolo CONJUNTO DE ALGORITMOS Y FORMATOS QUE GOBIERNAN LA COMUNICACIÓN ENTRE ENTIDADES DE UN MISMO NIVEL, UTILIZANDO LOS SERVICIOS DEL NIVEL ANTERIOR. • Un protocolo es un mecanismo de control de la relación entre entidades pares (misma capa) ubicadas en puntos físicos distintos de la red. Problemas de Diseño Los problemas de diseño de redes aparecen por lo general también al diseñar cada capa, y son en general: Establecer Conexión: Licenciado Gustavo Rei Pág. Nro. 11 Comunicación de Datos − Redes de Computadores Debe existir un mecanismo para establecer una conexión, y específicamente, debe poderse especificar con qué proceso de que host se desea establecer la conexión. Terminar Conexión: Debe existir un mecanismo para terminar una conexión, lo que parece ser trivial pero no lo es en absoluto. Reglas de Transferencia: La comunicación puede ser unilateral (simplex), bilateral alternada (semiduplex) o bilateral simultánea (duplex). Control de Errores: Debe existir un mecanismo de control y recuperación de errores, además de una manera de asegurar el ordenamiento de la información (no todos los canales mantienen el orden de la información). Velocidad: Se debe controlar tanto la velocidad de transferencia de datos en el canal como la velocidad a la cual un emisor o receptor es capas de procesarlos. Largo de los Mensajes: Deben haber mecanismos de segmentación de mensajes largos y de reunión de mensajes muy cortos. Uso Concurrente de Canales: Una capa puede utilizar la misma conexión para realizar conversaciones múltiples sin que éstas tengan relación alguna. Encaminamiento: Se debe poder establecer un camino entre dos máquinas. La decisión de cuál camino seguir se puede hacer de manera automática o explícita en una o más capas de la red. Ingeniería de Protocolos de Red El diseño de protocolos ha ido evolucionando gradualmente desde las originales aplicaciones de comunicaciones independientes, totalmente incompatibles unas de otras (años 60 y 70). La necesidad de la unificación de las redes implicó el implantar protocolos iguales en máquinas diferentes, lo que con el tiempo llevó a protocolos complejos (años 70 y 80). Surge así la necesidad de utilizar lenguajes formales de descripción de protocolos no ambiguos y precisos, que permitan establecer normas sin dobles interpretaciones y la verificación de sus propiedades. Aparecen así diversas normas, como la ISO, la SNA de IBM, SDL de CCITT, etc., las cuales utilizan diversas técnicas de representación formal. Tradicionalmente existen cuatro maneras de representar formalmente los protocolos: • Autómatas; • Grafos; • Redes de Petri; • Diagramas de Tiempo. Los pasos a seguir para especificar un protocolo son los siguientes: • • • • • Especificación formal; Validación y Verificación; Análisis de Prestaciones; Implementación; Prueba; Especificación Formal de Protocolos La descripción formal consiste en una descripción abstracta del comportamiento de un sistema, sin especificar ningún detalle de su implementación (recordar interfaz de los tipos abstractos de datos, TAD). La especificación puede ser de dos tipos: Constructiva: Se describe el comportamiento del sistema usando un lenguaje de muy alto nivel (LOTOS por ej.). Es un enfoque operacional, orientado a las operaciones que el sistema realiza. Descriptiva: Licenciado Gustavo Rei Pág. Nro. 12 Comunicación de Datos − Redes de Computadores Se describen las propiedades que debe cumplir el sistema, las cuales lo definen. Es un enfoque axiomático que utiliza lógica matemática para describirlo. Validación y Verificación Validación: Consiste en la comprobación de las propiedades del protocolo. Dentro de ellas encontramos: • Ausencia de Bloqueos; • Ausencia de Lazos Improductivos (trabajo inútil); • Capacidad de Recuperación y Sincronización; Verificación: Consiste en la demostración de que el protocolo provee los servicios que de él se esperan. Esto implica: • Explorar el árbol de estados (autómatas); • Equivalencias algebraicas (descripciones observacionales); • Verificación lógica (descripciones axiomáticas); Análisis de Prestaciones Consiste en modelar estadísticamente un protocolo, con la finalidad de determinar su eficacia. Un protocolo no debe ser sólo lógicamente correcto, sino que además debe realizar sus funciones eficientemente. Se debe estimar el caudal eficaz, el uso de recursos y los tiempos de respuesta, bajo los supuestos de tráficos característicos del nivel. La complejidad de los protocolos actuales no permite hacer modelos analíticos, por lo que se recurre a la simulación. Implementación Se trata de la implementación final del protocolo especificado en una máquina en particular, de manera de realizar algún nivel de la arquitectura de la red. Para ello se debe traducir la especificación a algún lenguaje de programación, lo que debe ser automatizado dentro de lo posible para evitar errores. Prueba Se debe finalmente comprobar que la realización del nivel se ajusta a la norma (prueba de conformidad), para lo cual existen centros certificadores y homologadores. Se debe recurrir a asesoramiento por problemas legales y/o incompatibilidades. La prueba generalmente se automatiza total o parcialmente, para hacer más fácil un trabajo tedioso que por lo general se puede hacer sólo parcialmente debido a la complejidad de los protocolos y a la gran cantidad de posibilidades que permiten. Modelo OSI de ISO La ISO (International Standard Organization) ha creado un estándar de referencia para la arquitectura de redes. Este estándar se conoce como OSI (Open Systems Interconnection), y pretende establecer un estándar para comunicaciones entre sistemas diferentes entre sí. Las Capas de OSI • • • • Capas se crean donde se necesite un nivel diferente de abstracción; Cada capa debe efectuar una función bien definida; Función de cada capa elegida orientada al establecimiento de protocolos internacionales; Límites entre capas se establecen de acuerdo a la minimización del flujo de información entre ellas (por interfaces); • Número de capas debe ser suficientemente grande para que funciones diferentes no se deban poner en la misma capa, y lo suficientemente pequeño para que la arquitectura no se torne difícil de manejar. Licenciado Gustavo Rei Pág. Nro. 13 Comunicación de Datos − Redes de Computadores Unidad de Información. Aplicación Protocolo de Aplicación Presentación Protocolo de Presentación Sesión Protocolo de Sesión Transporte Protocolo de Transporte . Aplicación APDU Presentación PPDU Sesión SPDU . . Transporte TPDU . Red Red Red Red Paquete . Enlace Enlace Enlace Protocolos Internos de Sub- Enlace Trama Física Física Física Bit . . Física Límite de Subred HOST A HOST B Protocolo de Enlace del Host Protocolo Físico del Host Protocolo de Red del Host Las funciones básicas de cada capa son: Capa Función Aplicación Servicios de Apoyo a las Aplicaciones Administración de Redes. Presentación Sesión Transporte Conversión e Interpretación a Formatos Estándares. Interconexión y Sincronización de Procesos Conexiones Lógicas Punto-a-Punto (abstraídas del sistema técnico) Encaminamiento y Control de Flujo Conexiones Lógicas con Paquetes de Datos Detección Elemental de Errores Utilización Directa del Medio Físico Ayuda Comunicacional a la Transmisión Física Red Enlace Física Licenciado Gustavo Rei Unidad de Info. APDU Estándares X.400, FTAM PPDU SPDU TPDU ASN.1 ISO 8326/27 ISO 8072/73 Paquete X.25 WAN Trama X.25 WAN, ISO 8802 LAN Bit X.25 WAN, ISO 8802 LAN Pág. Nro. 14 Comunicación de Datos − Redes de Computadores Transmisión de Datos en OSI 2 La transmisión de datos se realiza, desde un proceso a otro a través de toda la torre de entidades hacia abajo en el host que alberga el proceso emisor y hacia arriba en el que alberga el receptor. En el emisor, cada capa recibe de la capa superior la información a transferir (Datos) junto con información de control de la interfase (ICI), conjunto que se denomina Unidad de Datos (IDU). La capa inferior toma el ICI y decide qué hacer con los Datos, luego le agrega un encabezado (xH) y/o terminador (xT) a ellos y los pasa como nuevos Datos a la capa inferior junto con un nuevo ICI, constituyendo la IDU para la capa inferior. En el receptor se produce el proceso inverso, y cada capa toma los datos recibidos desde la capa inferior, reconociendo el encabezado y/o terminador creados por la entidad par en el emisor, y pasando los datos restantes hacia la capa superior. La siguiente figura muestra el proceso de emisión de datos dentro de una entidad de una capa cualquiera: Nivel m (n-1) SAP (Service Access Point) IDU (Interface Data Unit) SDU (Service Data Unit) PDU (Protocol Data Unit) ICI (Interface Control Information) IDU mSDU mICI SAP mICI Nivel n nICI nH mSDU SAP nICI Nivel n+1 nSDU La siguiente figura muestra la composición de datos que se hace en cada nivel: Proceso Emisor Da- Proceso Receptor tos Aplicación DaH Presentación Aplicación tos Datos Presentación H Sesión Datos Sesión H Transporte Datos Transporte H Red Datos Red H Enlace Datos Enlace 2 El análisis que sigue es válido para toda arquitectura de red que utilice capas, pero la terminología utilizada es la OSI, por lo que este capítulo se verá con relación al estándar OSI. Licenciado Gustavo Rei Pág. Nro. 15 Comunicación de Datos − Redes de Computadores H T Física Bits Física La siguiente es una lista comparativa de los estándares de tres tipos de redes comunes: Capa ISO / OSI DoD (TCP / IP) Novell Aplicación X.400, FTAM SMTP Compilador Btrieve HMS Presentación ASN.1 FTP Telnet Kernel Netware DNS / NSP Sesión ISO 8326/27 Transporte ISO 8072/73 TCP UDP ICMP EGP IPX SPX NetBios X.25 WAN Red Enlace X.25 WAN, ISO 8802 LAN Física X.25 WAN, ISO 8802 LAN IP, ARP. RARP Arpanet Ethernet Token Ring ArcNet X.25 PDN Cualquiera de 80 LAN Capa Física El propósito de la capa física es el de llevar un flujo de bits desde una máquina a otra, utilizando para ello algún medio físico. Su estructura fundamental es la que sigue: Mensaje Entrada Señal de Entrada Transductor Entrada Señal Enviada Tx Señal Recibida Canal Interferencia Ruido Atenuación Señal de Salida Rx Mensaje Salida Transductor Salida Distorsión Canal: Medio físico de conexión entre el transmisor y el receptor; Transmisor (Tx): Dispositivo que acopla el mensaje en el canal, en forma de la señal transmitida; Receptor (Rx): Dispositivo que extrae la señal del canal, y entrega al transductor de salida; Transductor: Dispositivo que convierte una magnitud física a otra de naturaleza diferente; Bases Teóricas para la Comunicación de Datos La comunicación de información a distancia se logra haciendo llegar al receptor cambios perceptibles, generados por el emisor, a través de algún medio físico, como el aire (sonido, luz), cables (electricidad), etc. Licenciado Gustavo Rei Pág. Nro. 16 Comunicación de Datos − Redes de Computadores Para modelar mejor lo anterior se hace uso de modelos matemáticos, los cuales permiten representar el fenómeno del transporte de información de manera determinista, facilitando además del entendimiento del comportamiento físico de los medios. Conceptos Básicos Medio Físico: Es el material o conjunto de materiales que permiten la comunicación debido su capacidad de modificarse alguna propiedad física de él. También se le llama canal; Estados del Medio: Son los estados diferentes en que se puede encontrar el medio físico. Deben existir a lo menos dos estados diferenciables. Señal: Secuencia de estados sucesivos del medio físico, que constituyen un mensaje; Intervalo de Señalización: Tiempo que debe durar cada estado del medio para que se constituya una unidad de información. Medios de Transmisión Los medios físicos de transmisión son los materiales y ambientes utilizados para acarrear información. Pueden ser tan simples como el aire o tan sofisticados como una fibra óptica. Medios Magnéticos Son los discos magnéticos removibles, los cuales pueden ser transportados físicamente desde una máquina hasta otra. Puede sorprender quizá que se incluya este medio en esta descripción, pero considere una camioneta que demora 1 hora en ir de una máquina a otra, transportando 200 cintas magnéticas de 180Mb c/u. La velocidad de transmisión es entonces de 80Mbs!! Ninguna LAN actual posee esta capacidad de transporte de datos. Además, es un medio que no se compara en costo con los demás. Cable Par Trenzado Es un cable de dos hilos gruesos, enroscados el uno sobre el otro para evitar interferencias externas. Se usan para transmisión analógica (telefónica, por ej.) y digital en distancias medias, y tienen un costo bastante bajo. La codificación se hace utilizando la ausencia de voltaje como valor 0, y la presencia (generalmente unos 5V) como valor 1. Se trata de dos hilos de cobre aislados y trenzados entre sí, y en la mayoría de los casos cubiertos por una malla protectora. Los hilos están trenzados para reducir las interferencias electromagnéticas con respecto a los pares cercanos que se encuentran a su alrededor (dos pares paralelos constituyen una antena simple, en tanto que un par trenzado no). Se pueden utilizar tanto para transmisión analógica como digital, y su ancho de banda depende de la sección de cobre utilizado y de la distancia que tenga que recorrer. Se trata del cableado más económico y la mayoría del cableado telefónico es de este tipo. Presenta una velocidad de transmisión que depende del tipo de cable de par trenzado que se esté utilizando. Está dividido en categorías por el EIA/TIA : Categoría 1: Hilo telefónico trenzado de calidad de voz no adecuado para las transmisiones de datos. Velocidad de transmisión inferior a 1 Mbits/seg Categoría 2 : Cable de par trenzado sin apantallar. Su velocidad de transmisión es de hasta 4 Mbits/seg. Categoría 3 : Velocidad de transmisión de 10 Mbits/seg. Con este tipo de cables se implementa las redes Ethernet 10-Base-T Categoría 4 : La velocidad de transmisión llega a 16 bits/seg. Categoría 5 : Puede transmitir datos hasta 100 Mbits/seg. Tiene una longitud máxima limitada y, a pesar de los aspectos negativos, es una opción a tener en cuenta debido a que ya se encuentra instalado en muchos edificios como cable telefónico y esto permite utilizarlo sin necesidad de obra. La mayoría de las mangueras de cable de par trenzado contiene más de un par de hilos por lo que es Licenciado Gustavo Rei Pág. Nro. 17 Comunicación de Datos − Redes de Computadores posible encontrar mangueras ya instaladas con algún par de hilos sin utilizarse. Además resulta fácil de combinar con otros tipos de cables para la extensión de redes. Cable Coaxiales Es un cable con un hilo grueso en el centro y una malla alrededor de él, aislados por una capa de plástico intermedio. Existen de dos tipos: banda base (60 Ohm) y banda ancha (75 Ohm). La diferencia entre ellos radica en su configuración, ya que el primero no necesita de repetidores periódicos para distancias menores de 1km, proveyendo de velocidades de hasta 10 Mbps. El segundo, en cambio, no puede pasar de los 100m si repetidores, pero provee una velocidad de hasta 150 Mbps. La codificación en el primer tipo es similar al par trenzado, pero para el segundo similar a la utilizada por el sistema de televisión, de modo que es bastante más complejo el proceso de codificación o decodificación. Consiste en un núcleo de cobre rodeado por una capa aislante. A su vez, esta capa está rodeada por una malla metálica que ayuda a bloquear las interferencias; este conjunto de cables está envuelto en una capa protectora. Le pueden afectar las interferencias externas, por lo que ha de estar apantallado para reducirlas. Emite señales que pueden detectarse fuera de la red. Es utilizado generalmente para señales de televisión y para transmisiones de datos a alta velocidad a distancias de varios kilómetros. La velocidad de transmisión suele ser alta, de hasta 100 Mbits/seg; pero hay que tener en cuenta que a mayor velocidad de transmisión, menor distancia podemos cubrir, ya que el periodo de la señal es menor, y por tanto se atenúa antes. La nomenclatura de los cables Ethernet tiene 3 partes : La primera indica la velocidad en Mbits/seg. La segunda indica si la transmisión es en Banda Base (BASE) o en Banda Ancha (BROAD). La tercera los metros de segmento multiplicados por 100. CABLE CARACTERÍSTICAS 10-BASE-5 Cable coaxial grueso (Ethernet grueso). Velocidad de transmisión : 10 Mb/seg. Segmentos : máximo de 500 metros. 10-BASE-2 10-BROAD-36 100-BASE-X Licenciado Gustavo Rei Cable coaxial fino (Ethernet fino). Velocidad de transmisión : 10 Mb/seg. Segmentos : máximo de 185 metros. Cable coaxial Segmentos : máximo de 3600 metros. Velocidad de transmisión : 10 Mb/seg. Fast Ethernet. Velocidad de transmisión : 100 Mb/seg. Pág. Nro. 18 Comunicación de Datos − Redes de Computadores Fibras Opticas El medio de transmisión es una fibra muy delgada de vidrio o silicio fundido, y se necesita de un LED o diodo láser para la transmisión, y de un detector de luz para la recepción. Debido a que la frecuencia de la luz visible es del orden de 108 Mhz, se pueden lograr velocidades de hasta 1000 Mbps en una distancia de 1km. La codificación se asocia a la presencia o ausencia de luz, existiendo sistemas por colores sólo en etapa experimental. Existe un límite en la distancia que puede cubrir una fibra óptica, debido al ruido inherente al canal. Este se produce por Dispersión Internodal (distinta distancia recorrida por distintos rayos de luz dentro de la fibra). Así, a mayor distancia, menor velocidad se puede lograr. Para solucionar este problema se han creado repetidores electrónicos (los impulsos luminosos se transforman a eléctricos y luego nuevamente a luminosos), que eliminan el ruido, y las llamadas Fibras de Bombeo, que son capaces de amplificar la señal luminosa sin transformarla a electrónica. Existen tres tipos de fibras ópticas: Multinodo, Multinodo Gradual y Mononodo. Las primeras son más baratas pero con mayor ruido, y las últimas mas caras y casi sin ruido. Las Mononodo requieren de diodos láser (note que las curvas de la fibra no inciden en el ruido). Multinodo Multinodo Gradual Mononodo El uso de fibras ópticas es en general simplex (en una sola dirección), y se tienden de a pares bidireccionales o en anillos cerrados para lograr comunicación mutua. Trayectorias Opticas a través de la Atmósfera Existe la posibilidad de utilizar la atmósfera como medio de transmisión, utilizándose luz infrarroja, microondas, ondas de radio, etc. para la transmisión de información. Licenciado Gustavo Rei Pág. Nro. 19 Comunicación de Datos − Redes de Computadores Uso de Satélites Los satélites reciben señales de microondas desde la tierra y las repiten de vuelta hacia ella, alcanzando lugares imposibles de alcanzar visualmente desde el emisor debido a la curvatura de la tierra. Sin embargo, el uso de satélites implica un retardo de 250 a 300 ms, debido a la distancia que recorre la señal, y muchas veces una conexión por tierra es más rápida. Aún así, cuando existe la necesidad de difusión, como la televisión, por ejemplo, el satélite es mucho más barato. Comparación de Medios A continuación se muestra una comparación de los diferentes medios de transmisión basados en ondas electromagnéticas (luz, electricidad, radio): Tipo Dist. Máx. Ancho Banda Nº Canales Atenuación Ruido Línea Telefónica < 60 KHz 1 Alta > > Par Trenzado 3km 1 Mbps 1 Alta > 10m 10 Mbps > Coaxial BB 10km < 50 MHz 1 6-60dB/km > Coaxial BA 50km < 400 MHz cientos 6-60dB/km > Fibras Opticas 10km > 500 MHz miles 1-8dB/km 0 Microondas 50km Simbología: >: alto 0: cero <: bajo << : >> > 100 MHz : cientos > Costo Seguridad Cant. Nodos < M M < < M M > > > > > 30KHz 3MHz Miriamétricas Kilométricas MF Hectométricas HF Decamétricas VHF Métricas 30MHz 300MHz UHF 3GHz SHF 30GHz EHF 300GHz Gustavo Rei Licenciado B B muy bajo 3KHz VLF B(100) MB(1000) M muy alto Corriente Alterna 300KHz LF B B MB Decimétricas Centimétricas Milimétricas − Difusión Radio Navegación Difusión AM Cable Coaxial Radio Telefonía Onda Corta Difusión FM Televisión Radio Móvil Televisión Troposfera Microondas Radar Satélite Microondas Radar Telefonía Multicanal Guías de Onda Rayos Infrarrojos Rayos Ultravioleta 101 102 103 104 105 106 107 108 109 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 Ondas de Radio Luz Visibl Rayos X Rayos Gamma Pág. Nro. 20 Comunicación de Datos − Redes de Computadores SEÑALES ONDULATORIAS Las señales ondulatorias utilizan materiales como medios físicos de propagación de onda, como electricidad, microondas, luz, sonido, etc. Veamos algunas definiciones: Frecuencia (f): Cantidad de oscilaciones por unidad de tiempo (1/s = Hz); Período (T): Duración de una oscilación; Amplitud (A): Ancho de la onda, su tamaño. A T 1 f = T x( t ) es la señal en el tiempo. Se tiene: y ANÁLISIS DE FOURIER Supongamos que se representan los cambios perceptibles del medio mediante una onda, que representa por ejemplo cambios en la intensidad o color de una luz, en el tono o volumen de un sonido, o en el voltaje o corriente proveniente de una fuente eléctrica. Así, podemos considerar esta onda como función del tiempo: f ( t) . Jean Fourier demostró que cualquier función matemática f ( t ) razonablemente periódica, de período T, se puede representar como una serie de la forma f (t ) = ∞ 1 ⎛ 2πn ⎞ ∞ ⎛ 2πn ⎞ a 0 + ∑ a n sen⎜ t ⎟ + ∑ bn cos⎜ t⎟ ⎝ T ⎠ n =1 ⎝ T ⎠ 2 n =1 con an = bn = 2 T 2 T T ⎛ 2πn ⎞ t ⎟ dt T ⎠ ∫ f (t ) sen⎜⎝ 0 T ⎛ 2πn ⎞ t ⎟ dt T ⎠ ∫ f (t ) cos⎜⎝ 0 que se conoce como Serie de Fourier de f ( t ) . Cada par de coeficientes, para un n dado, se llama componente armónica n. Por ejemplo, supongamos que se desea transmitir el caracter ASCII “b”, cuyo patrón de bits es 01100010, a través de un cable, utilizando la variación en el voltaje con corriente continua para representar ceros y unos (0V a 3V es 0, 3V a 5V es 1), usando un intervalo de señalización dado. Los siguientes gráficos muestran cómo se vería V vs. t con diferente cantidad de coeficientes considerados en la Serie de Fourier asociada: Representación de Onda Binaria Cuadrada Licenciado Gustavo Rei Pág. Nro. 21 Comunicación de Datos − Redes de Computadores Representación de Fourier 1 Armónico Representación de Fourier 2 Armónicos Representación de Fourier 4 Armónicos Representación de Fourier 8 Armónicos ESPECTRO Y FILTROS Una señal dada puede estar compuesta de múltiples armónicos, de diferentes frecuencias. Se puede graficar A vs. f para una señal dada, obteniéndose el llamado espectro de la señal, que muestra cuáles armónicos son los más relevantes. En la naturaleza las señales (sonido, luz, olas en el agua, etc.) poseen infinitas componentes, por lo cual se han construido filtros de banda de señales, que eliminan todos los armónicos de la señal, salvo los de cierto rango o algunos específicos. Espectro: Gráfico A vs. f para una señal dada; Ancho de Banda (B): Es el ancho del rango de frecuencias que posee una señal; Filtro de Banda:componente que elimina armónicos de una señal, salvo los de cierto rango. DISTORSIÓN, INTERFERENCIA, ATENUACIÓN Y RUIDO Distorsión: DEFORMACIÓN DE LA SEÑAL DEBIDA A IMPERFECCIONES DEL SISTEMA O DEL CANAL MISMO. La distorsión se produce debido a las propiedades físicas del medio, como por ejemplo, el largo de un cable eléctrico, o los cerros en el caso de la transmisión por radio. Interferencia: DEFORMACIÓN DE LA SEÑAL DEBIDA A OTRAS SEÑALES. Generalmente es posible evitar la interferencia mediante arreglos especiales, dependiendo del medio físico utilizado. Por ejemplo, los cables tipo Par Trenzado evitan la interferencia enroscando los hilos conductores unos sobre otros, anulándose así el efecto de señales externas. Atenuación: DEBILITAMIENTO PROGRESIVO DE LA SEÑAL DEBIDO A LA DISTANCIA RECORRIDA; La atenuación es una baja en la intensidad de la señal debido a la pérdida de energía a través del medio físico que recorre. Por ejemplo, las olas en el mar disminuyen en tamaño a medida que avanzan por su superficie. Licenciado Gustavo Rei Pág. Nro. 22 Comunicación de Datos − Redes de Computadores Ruido: DEFORMACIÓN DE LA SEÑAL DEBIDA A CAUSAS ALEATORIAS, EXTERNAS O INTERNAS AL MEDIO; El ruido se produce la mayoría de los casos debido a imperfecciones del medio. En el caso de los cables conductores pueden ser pequeñas irregularidades del material, y en el caso del aire basta con cambios de temperatura, presión o humedad a lo largo del recorrido de la señal. El siguiente análisis matemático permite modelar el comportamiento del ruido, en os casos en que este es predecible. Considere la representación de Fourier para las señales. Analíticamente, el canal es un filtro de armónicos, produciendo diferentes niveles de ruido y atenuación de la señal para cada armónico. Sea x( t ) la señal transmitida, y( t ) la señal recibida, y n( t ) el ruido del canal. Se tienen entonces la relación: y( t ) = c( t ) ⋅ x( t ) VELOCIDAD DE TRANSMISIÓN La velocidad de transmisión depende del método de codificación (cantidad de símbolos posibles, esto es, cantidad de estados diferentes del medio) y de la velocidad de la señal (cantidad de estados por unidad de tiempo, o baudios). La velocidad de transmisión se define como la cantidad de bits de datos que se pueden transferir por unidad de tiempo (generalmente bytes por segundo, bps), y su máximo depende de las posibilidades del medio y de las velocidades de emisión o recepción en los extremos, cualquiera sea el más lento. Por ejemplo, a través de una línea telefónica no se pueden transferir frecuencias de sonido de más de 3000Hz, que es un límite artificial impuesto para asegurar la correcta transmisión bajo él. Así, para las velocidades de datos de mayor uso por líneas telefónicas se tiene las siguientes características: Vel. (bps) 300 600 1200 2400 periodo T (ms) 26.6667 13.3333 6.6667 3.3333 1er Arm. Cant. Arm. (Hz) 37.5 80 75 40 150 20 300 10 4800 9600 1.6667 0.8333 19200 0.4166 600 120 5 2 240 1 480 0 0 0 38400 0.2083 0 Vel. (bps) Periodo T 1er Arm. Cant. Arm. (ms) (Hz) La velocidad máxima de transmisión está limitada además por el ancho de banda máximo permitido por el canal, límite impuesto generalmente para asegurar la compatibilidad de equipos. Se tienen entonces las siguientes propiedades de velocidad para canales de datos: VELOCIDAD EN CANAL SIN RUIDO (NYQUIST): Vmax = 2 B log 2 M [bps] donde: • M es la cantidad de estados diferentes del medio; y • B es el ancho de banda máximo posible. VELOCIDAD EN CANAL CON RUIDO (SHANON): ⎛S⎞ Vmax = B log 2 ⎜ ⎟ ⎝ N⎠ [bps] donde: • S es la potencia de la señal; • N es la potencia del ruido; y • B es el ancho de banda máximo posible. En la práctica, el valor S/N se le conoce como relación señal-ruido, y se mide indirectamente a través de la expresión 10 log 10 ( S / N ) [ dB ] . Licenciado Gustavo Rei Pág. Nro. 23 Comunicación de Datos − Redes de Computadores Transmisión Analógica ES LA UTILIZACIÓN DE UNA MAGNITUD FÍSICA QUE VARÍA DE FORMA CONTINUA EN EL TIEMPO, Y QUE PUEDE TOMAR INFINITOS VALORES DENTRO DE UN RANGO PREDETERMINADO, PARA TRASMITIR UNA SEÑAL. Durante 100 años fue la transmisión analógica la dominante en el mundo, empezando por el teléfono y luego la televisión. La excepción es el telégrafo en clave morse, aunque era muy rudimentario, ya que la codificación y decodificación no estaba automatizada. Sistema Telefónico El sistema telefónico es una red de conmutadores análogos automáticos o manuales, los cuales se encargan de unir las conexiones de manera apropiada para conectar dos teléfonos entre sí. Los conmutadores locales (oficinas, edificios, barrios, etc.) con una línea directa hacia cada teléfono. Los conmutadores locales están conectados entre sí y con centrales interurbanas, que cubren pueblos pequeños o comunas enteras, con conexiones capaces de llevar muchas líneas telefónicas. Estas a su vez se conectan con centrales mayores, que cubren las necesidades de conexión entre ciudades enteras y/o países. Así, si se llama al vecino, sólo se utilizara el conmutador local, pero si se llama a otro país, se utilizarán varios conmutadores. Cabe destacar, que el sistema se puede saturar cuando existen muchas llamadas con mismo origen y destino, pero esto rara vez ocurre. Como las líneas telefónicas son baratas y cubren grandes distancias, son una alternativa atractiva a la hora de conectar dos computadores entre sí. Para ello se debe utilizar este medio analógico como base para uno digital, que es necesario para la conexión de computadores. Para este fin se crearon los módems, que permiten lo anterior. Debido a que las líneas telefónicas están limitadas a frecuencias entre 300Hz y 3KHz, no se puede utilizar todo el potencial del medio físico. Además, cuando las distancias son largas, existen dispositivos de supresión de ecos, los que evitan que ambos extremos “hablen” a la vez. Ultimamente se han mejorado estos supresores, de modo que mientras exista una frecuencia dada, se mantienen cerrados, de modo que pueda realizarse comunicación bilateral simultánea. Transmisión Digital ES LA UTILIZACIÓN DE UNA MAGNITUD FÍSICA QUE VARÍA DE FORMA DISCRETA EN EL TIEMPO, Y QUE PUEDE TOMAR VALORES DENTRO DE UN RANGO FINITO PREDETERMINADO, PARA TRASMITIR UNA SEÑAL. La transmisión digital se basa en los principios de los sistemas digitales, y por esto tiene las mismas ventajas que estos: la recuperación de la señal digital es exacta y se pueden multiplexar varias señales (voz, vídeo, sonido, etc. por un mismo canal). Además se puede sacar mayor provecho de las líneas de comunicación actuales. Modulación de Señales Un modulador (módem) trabaja utilizando un sonido base estable y constante, que es transmitido todo el tiempo por ambos extremos, manteniendo inactivos los supresores de eco. Esta señal es modificada de alguna forma, de manera que son las modificaciones las que indican los cambios de estado del medio. Al proceso de modificar la señal se le llama modulación. Existen diferentes tipos de modulación: • • • • Modulación de Amplitud: Modulación de Frecuencia: Modulación de Fase: Modulaciones Combinadas: Usa dos niveles de voltaje de la señal (AM); Se utilizan dos o mas tonos (FM); Se usan desplazamientos de fase (QM); Alguna combinación de las anteriores. Señal Base Señal Moduladora Digital Licenciado Gustavo Rei Pág. Nro. 24 Comunicación de Datos − Redes de Computadores Modulación Digital de Amplitud Modulación Digital de Frecuencia La señal moduladora puede ser análoga, pero aquí estudiamos las digitales, que son nuestro interés primordial para la comunicación de datos. MODULACIONES COMBINADAS: Las modulaciones combinadas poseen varios estados, que se logran mediante pares frecuencia/amplitud. Así, se puede enviar más de un bit de información por baudio. El siguiente ejemplo corresponde a QAM (Quadrature Amplitude Modulation), donde se representan (en coordenadas polares) la amplitud y el desfase de la señal (cercanía al origen y ángulo, respectivamente): 8 combinaciones 3 bits/ baud 16 combinaciones 4 bits/ baud Así, según la forma de modulación, podemos calcular la velocidad de transmisión en señales moduladas (tasa binaria), de la siguiente manera: V= 1 log 2 M T [bps] donde: • M es la cantidad de estados diferentes del medio; y • T es el intervalo de señalización. Los módems son entonces dispositivos que permiten enviar señales digitales a través de canales analógicos. Cabe destacar que casi todos los medios físicos se utilizan como medios analógicos. Quizá la única excepción sean, por ahora, las fibras ópticas. Teorema del Muestreo ¿Cómo recuperar la señal digital a partir de la analógica recibida? Sean: x a ( t ) la señal analógica recibida, con ancho de banda B; ws la frecuencia de muestreo; x s ( t ) la señal de muestreo de x a ( t ) . Licenciado Gustavo Rei Pág. Nro. 25 Comunicación de Datos − Redes de Computadores La señal de muestreo se obtiene tomando muestras de x a ( t ) con frecuencia ws, y reconstruyendo la señal. Si se analizan los espectros de ambas señales se tiene que el espectro de x s ( t ) es idéntixa ( t) co al de x ( t ) , salvo que se repite periódicamena te cada ws unidades de frecuencia. -B B xs ( t ) ws -B B ws Se puede construir entonces un filtro que aísle el rango de frecuencias central, recuperándose íntegramente la señal original, sólo si los espectros periódicos no se entrecruzan. Por lo anterior, debe elegirse una frecuencia de muestreo que cumpla con la siguiente característica: SEA W ES LA FRECUENCIA DE MUESTREO PARA UNA SEÑAL DE ANCHO DE BANDA B, ENTONCES PARA PODER RECUPERAR ÍNTEGRAMENTE LA SEÑAL ORIGINAL, SE DEBE CUMPLIR: ws ≥ 2 B Corolario: • A menor ancho de banda, se pueden tomar muestras más seguidas, lo que implica la posibilidad de una mayor velocidad de transferencia; Modulación por Impulsos Codificados (MIC) Los MIC son dispositivos que permiten la transmisión de impulsos mediante la codificación digital de ellos. Funcionan en base al teorema del muestreo, de manera que las muestras suficientes para poder reconstruir la señal original de manera aceptable. Qué es aceptable depende de la aplicación particular (sonido de teléfono, sonido de CD, vídeo, etc.). La estructura de un MIC es la siguiente: Muestreador w≥2B Señal Analógica xa(t) Cuantizador de q niveles Muestras Analógicas de xa(t) Codificador de n bits Muestras Digitales de xa(t) Palabras de n bits por muestra Muestreador: toma muestras analógicas discretas de la señal, con frecuencia suficiente para reconstruir la señal aceptablemente (según teorema del muestreo); Cuantizador: Digitaliza las muestras, llevando cada muestra analógica al valor digital (valor cuántico) más cercano. Se toma una cantidad q de niveles. El error introducido en el cuantizador es constante y conocido, y no depende del ruido de ningún medio utilizado. A mayor q menor error; Codificador: Codifica las muestras digitales en palabras de n bits. Se debe tener q = 2 . n Fundamentos teóricos de la transmisión de datos Los medios de transmisión se pueden clasificar en medios guiados y medios no guiados: Licenciado Gustavo Rei Pág. Nro. 26 Comunicación de Datos − Redes de Computadores Guiados: Las ondas se transmiten confinándolas dentro del medio de transmisión a lo largo de todo su camino (pares de cobre, cables metálicos, cables fibra óptica). No guiados: Las ondas electromagnéticas que circulan por ellos no se encauzan sino que se propagan a través del aire, agua e incluso el vacío (transmisiones de radio). Todas las señales que se pueden intercambiar entre dos puntos se denominan ondas electromagnéticas, que se pueden agrupar en función del tiempo y en función de la frecuencia. Dentro del dominio temporal, las ondas pueden ser: Continuas: La intensidad de la señal varía suavemente en el tiempo sin presentar saltos ni discontinuidades. Discretas: La intensidad se mantiene constante durante un determinado intervalo de tiempo, transcurrido el cual la señal varía a otro valor constante. Capa de Enlace Hasta ahora hemos visto cómo enviar bits individuales a través de un medio físico, pero ¿qué hay del envío de palabras de varios bits? El objetivo de la capa de enlace es el correcto envío de palabras entre máquinas conectadas al mismo medio físico. Problemas de Diseño Capa de Enlace Tipo de Servicio Suministrado Se pueden proveer servicios sin conexión con y sin asentimiento, y servicios con conexión, a la capa superior de la torre de protocolos (capa de red). Servicio sin Conexión y sin Asentimiento Consiste en enviar información de una máquina a otra, sin que el receptor envíe un asentimiento de regreso para indicar que la información enviada llegó con éxito. Es útil cuando la tasa de error es baja y se delega esta responsabilidad a la capa superior, o cuando se tiene necesidad de transferencia en tiempo real y no importan algunos errores (teléfonos); Servicio sin Conexión y con Asentimiento Consiste en enviar información de una máquina a otra, y el receptor debe enviar un asentimiento de regreso para indicar que la información enviada llegó con éxito. Si una información no llega bien, no se envía asentimiento, y luego de un tiempo razonable el emisor puede retransmitir. Note que puede perderse un asentimiento, y las tramas enviadas pueden ser recibidas varias veces; Servicio Orientado a Conexión Se establecen conexiones entre las máquinas, y se enumeran las unidades de información individuales. Así, se puede asegurar que las unidades son recibidas, en el mismo orden que se envían y sin repetir ninguna. request indication response confirm Para el servicio orientado a conexión el estándar OSI define cuatro primitivas de comunicación para el paso de mensajes con asentimiento, las cuales se muestran en el dibujo (Emisor a la izquierda, receptor a la derecha, capa física en medio). Licenciado Gustavo Rei Pág. Nro. 27 Comunicación de Datos − Redes de Computadores Entramado Trama ES UNA SECUENCIA DE BITS QUE CONSTITUYE LA UNIDAD DE INFORMACIÓN UTILIZADA EN LA COMUNICACIÓN ENTRE ENTIDADES DE LA CAPA DE ENLACE. La capa física sólo provee un flujo de bits inseguro (puede haber errores), y la capa de enlace debe detectar y, si es necesario, corregir los errores. Para ello, se envían tramas de bits, los cuales se verifican usando algún código de redundancia sencillo para poder detectar (e incluso corregir) errores. Es necesario entonces que las entidades de capa de enlace en dos máquinas distintas se sincronicen, de manera que se identifiquen claramente los comienzos y finales de las tramas. Los métodos más comunes son: Cuenta de Caracteres Cada trama contiene al inicio un campo con el largo de la trama. El problema es que si se produce un error en este campo, es muy difícil volver a sincronizar las entidades. Por ello casi nunca se utiliza; Caracteres de Inicio y Fin, con Inserción de Caracter Cada trama comienza con DLE STX y termina con DLE ETX 3. Cuando el receptor detecta un error, sólo debe buscar la secuencia DLE ETX ó DLE STX para saber dónde comienza la siguiente trama. Cuando el contenido de una trama contiene un DLE, se inserta otro DLE adicional al transmitirla, para indicar que este DLE es un dato. Este método está muy ligado al código ASCII; Banderas de Inicio y Final, con Inserción de Bit Cada trama comienza y termina con un patrón de bits especial, como 0111110 por ejemplo. Cuando el transmisor detecta que la información enviada contiene el patrón, inserta un bit 1 adicional, y transmite 01111110. El receptor detecta esta secuencia y elimina el bit adicional. El receptor sólo debe buscar el patrón dado cuando pierde la sincronización. Este método permite cualquier largo de bits para las tramas; Violación de Código Físico Si no se desea utilizar inserción alguna, se puede utilizar un valor de código no válido en la capa física para marcar el comienzo y final de las tramas; Como se ha visto, el problema de mantener sincronizados al transmisor y receptor se maneja a través de alguno de estos algoritmos, los que permiten diferenciar claramente una trama de otra. Control de Error En todos los métodos de entramado vistos, cuando se detecta un error, la trama errónea se descarta. Se debe proveer entonces un mecanismo que permite al transmisor saber que se ha perdido una trama dada para volver a transmitirla. En general, los protocolos de enlace identifican con un número de secuencia cada trama enviada, y esperan que el receptor envíe de regreso un asentimiento de llegada para cada trama enviada (salvo para los asentimientos mismos). Así, si se recibe un asentimiento positivo, se tiene la certeza que la trama se recibió correctamente. Si se recibe un asentimiento negativo, o no se recibe asentimiento alguno, se sabe que hubo algún problema y que se debe retransmitir la trama. Uno de los peligros de este protocolo es que, cuando se pierde el asentimiento, una trama puede ser enviada y recibida varias veces. Por esto, el protocolo de enlace debe ser capaz de descartar tramas que se reciben repetidas. Gestión de Enlace Cuando existen más de dos máquinas conectadas al mismo medio físico, debe proveerse algún mecanismo para evitar que dos o más de ellas transmitan al mismo tiempo, ya que esto llevaría a la pérdida de toda la información transmitida. Cuando hay manejo de conexiones, se deben proveer mecanismos para establecer y liberar conexiones, así como para enviar y recibir datos a través de una conexión. 3 DLE, STX, ETX son caracteres ASCII (escape de enlace, inicio de trama, fin de trama) Licenciado Gustavo Rei Pág. Nro. 28 Comunicación de Datos − Redes de Computadores Control de Flujo Se trata de manejar la situación de un transmisor rápido y un receptor lento. Se debe evitar sobrecargar al receptor, haciendo que el transmisor no envíe tramas a velocidad mayor que la que puede manejar el receptor. Normalmente el receptor es capaz de indicar al transmisor cuándo está listo a recibir una trama y cuando no. Detección y Corrección de Errores La detección de errores puede hacerse utilizando los siguientes mecanismos: Códigos Detectores de Hamming Son códigos que no utilizan todas las combinaciones posibles de caracteres, de manera que si se recibe una combinación que está fuera del código, se detecta un error. Se puede corregir el error suponiendo que ha habido un mínimo de errores, esto es, la palabra que se quiso enviar es la más cercana a la recibida, en los términos que siguen. Hamming determinó las capacidades de detección y corrección de códigos binarios, de la siguiente forma: w( r ) = cantidad de 1’s del vector Peso Hamming de un vector: Distancia Hamming: d ( r , s ) = w(r XOR s ) = cantidad de discrepancias Indica la distancia binaria entre dos palabras. Esta función se utiliza para determinar la palabra más cercana a una incorrecta recibida. Distancia de Código: d ( C ) = d min (r , s ) ,∀r ≠ s Indica la distancia binaria mínima entre dos palabras del código C. Cap. de Detección: d ≤ 1 2 d ( C) Indica el valor máximo de errores simples (bits cambiados) que el código es capaz de detectar, esto es, antes que la palabra se transforme en otra del código. Cap. de Corrección: t = ⎣ 2 (d ( C) − 1)⎦ 1 Indica el valor máximo de errores simples (bits cambiados) que el código es capaz de corregir en caso de error, esto es, antes que la corrección se haga hacia una palabra equivocada del código. Códigos Detectores Cíclicos Generalmente se utiliza además de lo anterior, un sistema de codificación llamado Código de Redundancia Cíclica, el cual permite detectar muchos tipos de errores en mensajes largos. Se basan en las matemáticas de polinomios, y aquí no se analizarán en profundidad. Sus características más importantes son: • Detecta los errores dobles (2 errores simples en el mensaje); • Detecta los errores impares (cantidad impar de errores simples en el mensaje); • La probabilidad de no detectar errores es ½(n-2) (mensajes de largo n) ó ½(n-1) (mensajes de mayor largo), con n la cantidad de bits del código de redundancia. A continuación se muestra el algoritmo para calcular el código de redundancia de un mensaje de palabras de 8 bits (arreglo A), de largo n: 1. 2. 2.1. 2.2. 2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.3. 3. Licenciado Gustavo Rei crc16 = 0xFFFF; para j=1 hasta n crc16 = crc16 XOR A[j] para i=1 hasta 8 f = crc16 AND 0x0001 crc16 = crc16 >> 1 si f entonces crc16 = crc16 XOR 0xC001; fin-para fin-para devuelve crc16 Pág. Nro. 29 Comunicación de Datos − Redes de Computadores En la línea 2.2.3. se utiliza el valor 0xA001, que representa un polinomio elegido de manera tal de maximizar la posibilidad de detección del código de redundancia. Los algoritmos para palabrea con otras cantidades de bits son similares, sólo que el polinomio elegido es diferente para cada caso, como muestra la siguiente tabla: 6 8 8 Estándar CRC-12 CRC-16 CRC-CCITT (16) Polinomio x12 + x11 + x3 + x2 + x + 1 x16 + x15 + x2 + 1 x16 + x15 + x5 + 1 Valor Usado 0xC07 0xC001 0xC010 Ampliación ejemplificada Detección y Corrección de errores Los errores se pueden producir por muchas causas. En transmisión de datos picos que pueden ser insignificantes en otro tipo de transmisiones, son muy perjudiciales. Un pequeño ruido provoca que se estropeen muchos bits. Para detectar y corregir los errores se debe introducir información redundante a la que se transmite. Se puede introducir información redundante para que el receptor detecte el error (detección) o introducir más información redundante para que el receptor pueda corregir el error (corrección). d0 ... dm c1 ... cr d = bits de datos que proporciona el nivel de red n=m+r c = bits de redundancia Palabra código es la suma de estos bits. La distancia de Hamming entre palabras código es el número de posiciones individuales de bit, que difieren entre las dos palabras código. Ejemplo: 00100101 01000101 01100000 distancia Hamming = 2 Dos palabras código que difieran una distancia Hamming x, requerirán x errores individuales de bit para convertirse la una en la otra. La detección de errores se basa en el principio de que en una transmisión no todas las combinaciones de los n bits son válidas, aunque si son válidas cualquier combinación de los m bits de datos. La distancia de Hamming de un código completo, es la mínima distancia de Hamming entre dos palabras código válidas. Método de detección de errores (Paridad) Cuenta el número de unos que hay en los datos. La paridad puede ser par (se añade el bit de paridad para que haya un número par de unos) o impar (se añade el bit de paridad para que haya un número impar de unos). Ejemplo: m = 4 r=1 Paridad par 0000 0000 0001 0010 0010 0 1 0 0 1 valida X X X valida Este método solo puede detectar un error de bit. Para detectar d errores individuales de bit, será necesario un código con una distancia de Hamming d+1 Corrección de errores 00000 00000 Licenciado Gustavo Rei mínima distancia de Hamming = 5 Pág. Nro. 30 Comunicación de Datos − Redes de Computadores 00000 11111 11111 00000 11111 11111 Se manda 1 1 1 1 1 0 0 0 0 0 , y se recibe 1 0 1 1 1 0 1 0 0 0 La distancia de Hamming entre lo recibido y lo enviado es 2. El receptor reconstruye lo recibido acercándolo a la palabra válida más cercana. Para corregir d errores, es necesario un código con una distancia de Hamming 2d+1 Construcción de un código para la corrección de errores de un bit d1 ... dm c1 ... cr n = m + r Por cada mensaje legal → (n+1) combinaciones Combinaciones posibles 2n ≥ 2m (n+1) ⇒ m + r +1 ≤ 2r Regla de Hamming La Regla de Hamming indica los bits de redundancia necesarios para corregir errores en palabras de m bits Para palabras de 4 bits → serán necesarios 3 bits de redundancia Para palabras de 11 bits → serán necesarios 4 bits de redundancia El código que cumple la igualdad en la regla de Hamming, se denomina código óptimo. Método de corrección de errores de Hamming Se basa en dado un vector palabra código c = (c1, c2, ..., cn) y un vector de datos d = (d1, d2, ..., dm), hacer que se cumpla la igualdad d × G = c, donde G es una matriz generadora de paridad G = [I : A] Ejemplo: m=4 r=3 G= 1000111 0100011 0010101 0001110 d = [1 0 1 0] d × G = [1 0 1 0 | 0 1 0] La operación se realiza en aritmética módulo 2 (la multiplicación como AND bit a bit y la suma como XOR). Ejemplo: 1010 AND 1 0 0 0 XOR (1 0 0 0) = 1 En la recepción se utiliza una matriz H = [AT : I]. Se tiene un vector de comprobación de paridad s = (s1, s2, ..., sn) que se obtiene de s = H r Si en la transmisión no se ha producido ningún error entonces r = c Ejemplo: S= 1011100 1101010 1110001 H × 1 0 1 0 0 1 0 r = 0 0 0 Cuando s da todo ceros, se interpretará como que la recepción ha sido correcta. Este es el caso en que c = r Licenciado Gustavo Rei Pág. Nro. 31 Comunicación de Datos − Redes de Computadores Suponemos ahora que c ≠ r S= 1011100 1101010 1110001 × H 0 0 1 0 0 1 0 r = 1 1 1 Para corregir el error se comprueba el vector s, con que columna de la matriz H coincide y esto indica el número de bit que se ha cambiado. Como los errores no se producen salteados sino a ráfagas, la transmisión se realiza en bloques para permitir corregir ráfagas de errores de hasta 4 bits (en este caso): 1001ccc 1010ccc 1111ccc 1001ccc 1234 Método de la comprobación de la redundancia cíclica Está basado en asimilar las secuencias de bit con polinomios de coeficientes 0 o 1 6 5 4 3 2 5 4 2 0110110 ⇒ 0x +1x +1x +0x +1x +1x+0 ⇒ x +x +x +x Para usar este método emisor y receptor acuerdan utilizar un polinomio G(x), que es el polinomio generador. La información redundante generada por este polinomio se denomina checksum. El cálculo del checksum se lleva a cabo de forma que el polinomio que representa la trama de datos + checksum sea divisible por G(x) M(x) = polinomio que representa los bits de datos T(x) = trama de datos + checksum Algoritmo para el cálculo del checksum: 1º) Añadir r bits 0 al final de los datos xr M(x) r = grado (G(x)) Ejemplo: G(x) = x5 + x4 + x2 + 1 r = 5 M(x) = x9 + x7 + x3 + x2 + 1 ⇒ 101000110100000 2º) Dividir xr M(x) entre G(x) utilizando aritmética en módulo 2 Licenciado Gustavo Rei Pág. Nro. 32 Comunicación de Datos − Redes de Computadores 101000110100000 110101 0111011 110101 00111010 110101 00111110 110101 00101100 resto R(x) 110101 0110010 110101 0001110 |110101 1101010110 cociente Q(x) y 3º) Restar xr M(x) - R(x) = T(x) que es lo que se transmite 101000110100000 1110 101000110101110 4º) Receptor: T’(x) / G(x) ⇒ R’(x) Si R’(x) = 0 la trama de datos recibida se da como buena Si R’(x) ≠ 0 la trama de datos tendrá errores Aunque si R’(x) = 0 no se puede asegurar que no tenga errores ya que pueden haberse producido muchos errores en T(x) y que al dividirlo por G(x) de 0 Condiciones que debe cumplir G(x) para detectar errores de 1 bit: T’(x) / G(x) = T(x) + E(x) / G(x) = T(x) / G(x) + E(x) / G(x) Si solo se ha producido un error en la transmisión: E(x) = xi i = posición del error Para detectar errores de un bit, G(x) deberá tener más de un término. ¿Qué debe cumplir G(x) para detectar un número impar de errores? Si E(x) tiene un número impar de términos, no tiene (x+1) como factor entonces, si G(x) tiene a (x+1) como factor, E(x) no es divisible por G(x) Polinomios más utilizados: CRC-12 CRC-16 CRC-CCITT G(x) = x12 + x11 + x3 + x2 + x + 1 G(x) = x16 + x15 + x2 + 1 G(x) = x16 + x12 + x5 + 1 Los polinomios de grado 16 son capaces de detectar ráfagas de error de hasta 16 bits. Gestión de Enlace Generalmente esta función de la capa de enlace se conoce como subcapa de control de acceso al medio (MAC), ya que es independiente del control de flujo. Cuando existen más de dos máquinas conectadas al mismo medio físico, debe proveerse algún mecanismo para evitar que dos o más de ellas transmitan al mismo tiempo, ya que esto llevaría a la pérdida de toda la información transmitida. Por lo anterior se hacen necesarios mecanismos de gestión de enlace, que permiten controlar qué máquina puede transmitir en un momento dado. Licenciado Gustavo Rei Pág. Nro. 33 Comunicación de Datos − Redes de Computadores Colisión: OCURRE CUANDO DOS MÁQUINAS TRANSMITEN AL MISMO TIEMPO. EXISTEN DIFERENTES ESTRATEGIAS PARA LOGRAR EVITAR LAS COLISIONES. Estrategias de Gestión de Enlace Estrategias de Repartición (Estáticas) Estas estrategias reparten el canal según algún criterio utilizando multiplexores. La repartición se puede hacer de múltiples formas, como pueden ser: TDM (MULTIPLEXACIÓN POR DIVISIÓN DE TIEMPO): Divide el tiempo de utilización del canal en segmentos, para que cada máquina transmita sólo en el tiempo asignado a ella (problema: sincronización); FDM (MULTIPLEXACIÓN POR DIVISIÓN DE FRECUENCIA): Utiliza múltiples frecuencias base en un mismo canal, para que cada máquina utilice una de ellas; CDM (MULTIPLEXACIÓN POR DIVISIÓN DE CÓDIGO): Utiliza sólo una parte del código de transmisión del canal para cada máquina; Existen versiones directas e indirectas de cada uno de ellos. En las directas las máquinas están conectadas directamente al canal, y en las indirectas existe un concentrador intermedio que realiza el proceso de multiplexación. Control Centrali- Conexión Directa ⎯ zado Control Distribui- TDMA, FDMA, CDMA Conexión Indirecta TDM, FDM, CDM (concentradores) ⎯ do Estrategias de Compartición (Dinámicas) Estas estrategias permiten compartir el canal, pudiendo todas las máquinas transmitir y recibir utilizando un mismo canal, y las estrategias para evitar las colisiones son implementadas mediante algún algoritmo. Control Centrali- zado Conexión Directa Selección (Daisy Chaining) Reserva Conexión Indirecta Concentradores Estáticos Concentradores Dinámicos do Control Distribui- 1. Selección (Token-Ring, Token-Bus) 2. Reserva (DQDB) 3. Contienda (Aloha, CSMA/CD) ⎯ Estas estrategias de compartición se pueden caracterizar mediante los siguientes criterios: Hipótesis del Canal Único: Se tiene un solo canal disponible para transmitir y recibir, y no se puede utilizar otro medio de comunicación; MODELO DE ESTACIONES: Existe una cantidad finita de máquinas conectadas directamente al canal, las cuales pueden transmitir y recibir tramas en cualquier momento. Sin embargo, cuando la capa de red en una de esas máquinas desea transmitir un paquete, ésta se bloquea hasta que la capa de enlace lo transmite con éxito; COLISIONES: Licenciado Gustavo Rei Pág. Nro. 34 Comunicación de Datos − Redes de Computadores Cuando dos tramas colisionan la información se pierde, por lo que se debe transmitir ambas nuevamente; ASIGNACIÓN DE TIEMPO: Las tramas se pueden transmitir en cualquier momento (tiempo continuo) o de acuerdo a cierta sincronización (tiempo ranurado); DETECCIÓN DE USO: Las máquinas pueden o no ser capaces de detectar si el canal está siendo o no utilizado. Estándares de Gestión de Enlace (IEEE 802) El siguiente esquema muestra la relación de los estándares de Enlace de IEEE con respecto al estándar de capas de la ISO: IEEE ISO 802.1 Capas periores Su- LLC 802.2 Capa de Enlace MAC MAC MAC MAC 802.3 802.4 …. 802.8 Capa Física 802.1: INTERFAZ DE LA CAPA DE ENLACE CON CAPAS SUPERIORES (A), ARQUITECTURA DE LAS LAN (B), E INTERCONEXIONADO DE REDES (C); 802.2: CONTROL DE ENLACE LÓGICO (LOGIC LINK CONTROL); 802.3: CSMA/CD; 802.4: TOKEN-BUS; 802.5: TOKEN-RING; 802.6: RED DE AREA METROPOLITANA DQDB (DISTRIBUTED QUEUE DUAL BUS); 802.7: RED DE BANDA ANCHA; ???? 802.8: FDDI (FIBER DISTRIBUTED DATA INTERFACE). Protocolo Aloha Aloha Puro process alohaPuro transmite; End transmite inmediatamente • Estrategia: Compartición distribuida, directa y de contienda; • Detección de Uso: No pueden detectar si el canal está o no siendo utilizado; • Asignación de Tiempo: Continuo, las estaciones pueden transmitir en cualquier momento. Licenciado Gustavo Rei Pág. Nro. 35 Comunicación de Datos − Redes de Computadores En este protocolo las estaciones pueden transmitir en cualquier momento sus tramas, y para detectar si hubo o no colisión deben recibir simultáneamente el canal. Si lo recibido es diferente a lo enviado es porque hubo colisión, y se debe intentar retransmitir nuevamente la trama luego de un periodo de tiempo aleatorio. Aloha Ranurado process alohaRanurado [no bip] alohaRanurado; [] [bip] transmite; End espera la ranura transmite en ranura • Estrategia: Compartición distribuida, directa y de contienda; • Detección de Uso: No pueden detectar si el canal está o no siendo utilizado; • Asignación de Tiempo: Ranurado, las estaciones pueden transmitir sólo en momentos dados. Para establecer las ranuras de tiempo es necesaria una estación especial que emita una señal al inicio de cada ranura, para que así las demás estaciones puedan saber cuándo comienza cada una. En este protocolo las estaciones pueden transmitir sólo a partir del comienzo de las ranuras, de manera que la probabilidad de colisión se reduce a la mitad. Al igual que en Aloha Puro, para detectar si hubo o no colisión deben recibir simultáneamente el canal. Si lo recibido es diferente a lo enviado es porque hubo colisión, y se debe intentar retransmitir nuevamente la trama en otra ranura, siempre luego de un periodo de tiempo aleatorio. Protocolos CSMA (802.3) CSMA 1−Persistente process csma1P [ocupado] csma1P; [] [libre] transmite; End espera que este desocupado transmite • Estrategia: Compartición distribuida, directa y de contienda; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado; • Asignación de Tiempo: Continuo, las estaciones pueden transmitir en cualquier momento. Este protocolo es igual al Aloha Puro, pero puede detectar si el canal está o no siendo utilizado. Así, la estación empezará a transmitir inmediatamente después de que se termine de transmitir la trama actual. Esto produce un problema, debido a que si dos estaciones están esperando, colisionarán cuando termine la trama actual. CSMA No Persistente process csmaNP [ocupado] delay; csmaNP; [] [libre] transmite; End espera un tiempo aleatorio transmite • Estrategia: Compartición distribuida, directa y de contienda; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado; Licenciado Gustavo Rei Pág. Nro. 36 Comunicación de Datos − Redes de Computadores • Asignación de Tiempo: Continuo, las estaciones pueden transmitir en cualquier momento. El CSMA No Persistente es una mejora del 1−Persistente, y consiste en no verificar continuamente si el canal está ocupado o no, sino que se debe esperar un cierto periodo aleatorio de tiempo antes de la próxima verificación. Así, cuando hay dos estaciones esperando por el final de la trama actual, es muy improbable que colisionen entre ellas. CSMA p−Persistente Process csmaPP [ocupado] csmaPP; [] [libre] [prob = p] transmite; [] [prob != p] delay; csmaPP; End espera que esté desocupado transmite con probabilidad p espera un tiempo aleatorio • Estrategia: Compartición distribuida, directa y de contienda; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado; • Asignación de Tiempo: Continuo (puedes ser ranurado, con delay = tiempo de ranura), las estaciones pueden transmitir en cualquier momento. El CSMA p−Persistente es otra mejora del 1−Persistente, y consiste en no transmitir siempre inmediatamente después de la trama actual, sino que sólo transmite con una probabilidad p. Con esto se logra que sólo algunas de las estaciones transmitan al finalizar la trama actual. CSMA con Detección de Colisión (CSMA/CD) El CSMA/CD es una mejora a los protocolos CSMA no ranurados, que consiste en detener la transmisión de una trama en cuanto se detecte una colisión con otra estación. Así, no es necesario esperar por la transmisión de toda la trama para que se desocupe el canal. Esta variante es utilizada en muchos protocolos de LAN comerciales. Rendimiento: Aloha y CSMA Consideremos las estrategias Aloha y CSMA, para un canal con infinitas estaciones intentando transmitir tramas de largo fijo. Se tiene un tiempo de trama fijo (largo de trama / bps). Sea S el rendimiento efectivo desde el punto de vista de una estación, esto es, la probabilidad de transmitir una trama inmediatamente. Se tiene que 0 < S < 1, ya que S > 1 significa que las estaciones generan tramas a velocidad mayor que la que es capaz de llevar el canal. Sea además G la razón de tramas que se desean transmitir (en total, todas las estaciones) en un tiempo de trama, incluyendo los intentos de retransmisión. Podemos relacionar G con S para los protocolos considerados: Licenciado Gustavo Rei Pág. Nro. 37 Comunicación de Datos − Redes de Computadores Protocolo Token−Bus (Paso de Testigo en Bus) (802.4) Testigo: Trama especial que es enviada por una estación que terminó de transmitir a otra para que ésta comience a transmitir. En esta estrategia existe un ordenamiento de estaciones, y se implementa un protocolo distribuido para asignar turnos de transmisión a cada estación, de forma que no existen colisiones. • Estrategia: Compartición distribuida, directa y de selección; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado, más aún, pueden saber cuándo están autorizados para transmitir (sin colisiones); • Asignación de Tiempo: Continuo, pero las estaciones pueden transmitir sólo cuando les toca. Cuando se inicializa el anillo cada estación determina a cuál estación debe pasar el testigo cuando ha terminado su turno. Esta asignación se hace generalmente basándose en los valores de las direcciones de enlace de cada una de las estaciones, de manera que cada una de ellas pasa el testigo a la estación con dirección inmediatamente menor que la propia. Para el caso de la estación con menor dirección, ésta debe pasar el testigo a la estación con dirección mayor. Se establece así un anillo lógico para el paso del testigo. Cuando una estación recibe el testigo, puede transmitir cuantas tramas desee hasta que no tenga más tramas o hasta que pase un tiempo determinado. Luego debe pasar el testigo a la siguiente estación. Además, para asegurar un ancho de banda mínimo de transmisión, se establecen en cada estación varias colas de tramas a transmitir, de manera que para la cola de prioridad mayor se tiene seguridad de una cierta velocidad de transmisión. El mecanismo para agregar y sacar estaciones del anillo lógico ha de ser especificado con exactitud, y debe considerar los casos de una estación que se salga del anillo sin previo aviso. Protocolo Token−Ring (Paso de Testigo en Anillo) (802.5) Esta estrategia es similar a la anterior, pero en vez de un anillo lógico (SW) se utiliza un anillo físico (HW) de cableado. Lo anterior puede resultar muy engorroso a la hora de implementar la red, pero existen soluciones tipo anillo−estrella. • Estrategia: Compartición distribuida, directa y de selección; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado, más aún, pueden saber cuándo están autorizados para transmitir (sin colisiones); • Asignación de Tiempo: Continuo, pero las estaciones pueden transmitir sólo cuando les toca. Retardo de Licenciado Gustavo Rei Pág. Nro. 38 Comunicación de Datos − Redes de Computadores la Configuración Física Modo de Recepción a Esta- la de Esta- Modo de Transmisión En el modo de recepción la estación puede recibir todas las tramas que circulen por el anillo. Hay que destacar que los nodos del anillo son activos, de forma que deben estar siempre energizados para el correcto funcionamiento del anillo. Es aquí donde son de utilidad los anillos−estrella, que son capaces de detectar nodos no energizados para dejarlos fuera del anillo. En modo de transmisión la estación corta el anillo y transmite, recibiendo de regreso el mismo mensaje transmitido con un cierto atraso. Esto sirve para evitar el uso de asentimientos (vea la siguiente sección, Control de Flujo): si se recibe con errores se intenta transmitir de nuevo. El paso de testigo se hace directamente entre estaciones físicamente consecutivas, y las tramas no poseen límite de longitud. Así, se debe imponer un tiempo máximo de utilización del canal para cada estación. El funcionamiento es similar al caso de Testigo en Bus, pero el formato de la trama de Token−Ring es especial (los largos son en bytes): Testigo: D C D Trama de Datos o de Control: 2ó6 Dir. D C C Destino 2ó6 Dir. Origen SD: Delimitador de Comienzo AC: Control de Acceso FC: Control de Trama sin límite Datos 4 CRC D S DE: Delimitador de Fin FS: Estado de Trama El byte FS se envía sólo cuando se envían datos, y contiene dos bits especiales para manejar errores en la recepción: los bits A y C. Las tramas siempre se envían con ambos bits con valor 0, pero pueden ser modificados por el destinatario de la trama. Cuando el emisor recibe de regreso la trama enviada, verifica estos bits, y pueden darse 3 casos: • A=0, C=0: El destinatario no está presente (no se modificaron los bits); • A=1, C=0: El destinatario está presente, pero no ha copiado la trama (falta de memoria u otro motivo); • A=1, C=1: El destinatario está presente y ha copiado con éxito la trama. Distributed Queue Dual Bus (DQDB, 802.6) Esta estrategia se basa en una topología de doble bus, como se muestra en la figura: • Estrategia: Compartición distribuida, directa y de reserva; • Detección de Uso: deben reservar espacio para transmitir, por lo que pueden saber cuándo están autorizados para transmitir (sin colisiones); • Asignación de Tiempo: Ranurado, y las estaciones pueden transmitir sólo cuando les toca. Licenciado Gustavo Rei Pág. Nro. 39 Comunicación de Datos − Redes de Computadores Las tramas en DQDB se llaman celdas, y son de 53 bytes de largo (9 de encabezado y 44 de datos). Los terminadores de bus generan celdas vacías a 125μ s , lo cual equivale a una velocidad de transmisión máxima de 22Mbps (sólo datos). Cada celda transmitida llega a todas las estaciones que están más adelante en el camino, y en cada una existe un retraso de transmisión de una celda de largo. El primer byte da las celdas corresponde al campo de control de acceso (Access Control Field), el cual posee los siguientes bits (además de otros): • Busy (1 bit): Indica si la celda contiene o no datos; • Reserved (1 bit): Indica si esta trama (vacía) está o no reservada; • Req. (4 bits): indica una cantidad de celdas que se deben dejar pasar, además de las ya reservadas con anterioridad. Cuando una estación desea transmitir, primero debe encontrar una celda por el bus en dirección opuesta, en la cual se pueda aumentar el valor Req (se evita así la congestión). En todas las estaciones, por cada celda con Req. Mayor que cero que se reciba, se deben dejar pasar las correspondientes celdas vacías en la dirección opuesta. Luego de enviar la reserva, se puede utilizar cualquier celda vacía que viaje en la dirección opuesta para enviar los datos, siempre que ya se hayan satisfecho todas las reservas que se recibieron con anterioridad. El algoritmo funciona de la misma forma para ambas direcciones de transmisión, y asegura una igualdad de oportunidades de transmisión a todas las estaciones. Las direcciones son de 6 bits, y no es necesario incluir la dirección origen en el encabezado de las celdas, debido a que se provee un servicio de red sin conexión, el cual no tiene por que asegurar que las celdas llegan a destino. Fiber Distributed Data Interface (FDDI, 802.8) Este protocolo MAC es similar al paso de testigo en anillo (802.), pero utiliza una topología de doble anillo y un protocolo diferente, adaptado a las fibras ópticas. Si se corta una línea, las estaciones pueden cerrar el anillo utilizando como se muestra en las figuras: • Estrategia: Compartición distribuida, indirecta y de selección; • Detección de Uso: pueden detectar si el canal está o no siendo utilizado, más aún, pueden saber cuándo están autorizados para transmitir (sin colisiones); • Asignación de Tiempo: Continuo, pero las estaciones pueden transmitir sólo cuando les toca. La velocidad de transmisión es de 100Mbps, y el alcance es de dos kilómetros. La única diferencia práctica con Token-Passing Bus (además de la mayor velocidad) es que no se conectan las estaciones directamente sino que se usan concentradores, debido al alto costo de las interfaces ópticas. ISDN, BISDN (ATM) Son estándares comerciales para transmisión digital de voz, video y datos, utilizados ampliamente por las empresas portadoras privadas. Proveen servicios combinados de los siguientes tipos: Tipo B:canal de 16Kbps, se asegura este ancho de banda al cliente; Tipo D: canal de control, compartido por todos los clientes, quienes lo utilizan sólo como el proveedor indique; Otros: se pueden proveer servicios con ancho de banda variable según demanda, de forma que se cobre no por la línea dedicada, sino por la cantidad de datos transmitidos. Licenciado Gustavo Rei Pág. Nro. 40 Comunicación de Datos − Redes de Computadores Existen dos estándares ISDN, y son los siguientes: ISDN (Integrated Services Digital Network): Provee servicios básicos, con 2B+D (16Kbps), y primarios, con 23B+D (64Kbps) en EEUU, con 30B+D (64Kbps) en Europa; BISDN (ISDN de Banda Ancha): provee servicios con banda variable según demanda, con límite predefinido. Usa tecnología ATM para implementación. ATM (Asyncronous Transfer Mode): Está definido por el estándar BISDN, y utiliza fibras ópticas para transmisión a larga distancia. Además, se definen no sólo las capas físicas y de enlace, sino que también la de red, para poder conectar varias subredes ATM entre sí. Las tramas en ATM se llaman celdas, y son de 53 bytes de largo (5 de encabezado y 48 de datos). Los terminadores de bus generan celdas vacías, a una velocidad de transmisión máxima de 155Mbps (sólo datos). Provee un servicio orientado a conexión, por lo que es difícil utilizar ATM para implementar una red LAN. Control de Flujo El protocolo de comunicaciones entre transmisor y receptor debe ser capaz de manejar la situación de un transmisor rápido y un receptor lento, así como asegurar la correcta recepción de todos los mensajes. A continuación analizaremos una serie de protocolos simples de enlace, para los cual son necesarias algunas definiciones previas: Definiciones Estructura de la Trama Una trama está constituida por cuatro campos, y los tres primeros constituyen la cabecera de la capa de enlace: • • • • Tipo: Seq: Ack: Info: Indica si hay o no datos en el campo Info; Nº de secuencia de esta trama; Nº de secuencia de asentimiento; Un paquete de capa de red transmitido. El campo Info podría ser de tamaño variable, pero debería agregarse otro campo en la cabecera para indicar su largo. Eventos que Recibe la Capa de Enlace Cada entidad de la torre de protocolos trabaja en base a la manipulación o reacción a eventos que recibe. Para la capa de red, los eventos básicos necesarios son los que listan a continuación: • • • • • LlegóTrama: Indica que se ha recibido una trama desde la capa física; CRCerr: Indica que la trama recibida desde la capa física tiene errores; CapaRedDesocupada: Indica que la capa de red está desocupada y lista para recibir un paquete; CapaRedLista: Indica que la capa de red está lista a enviar un paquete; TimeOut: Indica que ha vencido el temporizador; Funciones Predefinidas para la Capa de Enlace Los protocolos que se mostrarán a continuación utilizan una serie de funciones predefinidas, que son las siguientes: Licenciado Gustavo Rei Pág. Nro. 41 Comunicación de Datos − Redes de Computadores • Espera(): • Incrementa(): Espera a que suceda algún evento; incrementa circularmente un contador. • ACapaFísica(): Transmite una trama utilizando la capa física; • DeCapaFísica(): Recibe una trama desde la capa física; • ACapaRed(): • DeCapaRed(): Envía un paquete recibido a la capa de red; Recibe paquete de la capa de red para ser transmitido; • IniciaTimer(): • ParaTimer(): Inicia el temporizador y activa el evento TimeOut; Detiene el temporizador y desactiva el evento TimeOut; • IniciaTimerAck(): Inicia el temporizador auxiliar; • ParaTimerAck(): Detiene el temporizador auxiliar y desactiva el evento CapaRedDesocupada; • HabilitaCapaRed(): Habilita la capa de red para generar evento CapaRedLista; • DeshabilitaCapaRed():Deshabilita la capa de red, prohibiéndole generar un evento CapaRedLista; Cuando llega una trama, el HW determina si es correcta o no. Cuando lo es, se genera el evento LlegóTrama, y si no se genera el evento CRCerr. Supondremos que el HW de la capa de enlace dedicado a la utilización de la capa física implementa los algoritmos de detección de error, utilizando código de redundancia, por ejemplo. Además, para simplificar, los algoritmos que se mostrarán para la capa de enlace no implementan ningún tipo de paralelismo, el cual es necesario en la capa de enlace. Protocolos sin Memoria Protocolo Unilateral No Restringido (U-NR) Este protocolo es el más simple, y sólo puede enviar datos en una dirección. Supondremos que ambas entidades de la capa de red siempre están listas a transmitir y recibir respectivamente. Además despreciaremos el tiempo de procesamiento, y supondremos que la capa física nunca daña la información. Emisor() { t : trama p : paquete Repetir DeCapaRed(p) t.Info = p ACapaFísica(t) hasta-siempre } Receptor() { t : trama e : evento Repetir Espera(e) DeCapaFísica(t) ACapaRed(t.Info) hasta-siempre } Licenciado Gustavo Rei obtiene paquete a transmitir lo copia a la trama trasmite la trama único evento posible es LlegóTrama recibe la trama pasa el paquete a la capa de red Pág. Nro. 42 Comunicación de Datos − Redes de Computadores Protocolo Unilateral de Parada y Espera (U-P/E) Este protocolo maneja la situación cuando el receptor no puede recibir más tramas debido a que no ha procesado aún las que ha recibido. Esto se hace mediante un mecanismo de retroalimentación llamado asentimiento, mediante el cual el receptor puede indicar al emisor que ya puede recibir una nueva trama. Sin embargo, este protocolo provoca una estricta alternancia, debido a que el emisor puede transmitir la siguiente trama sólo cuando ya ha recibido asentimiento de la anterior. Emisor() { t : trama p : paquete e : evento Repetir DeCapaRed(p) t.Info = p AcapaFísica(t) Espera(e) hasta-siempre } Receptor() { s,t : trama e : evento Repetir Espera(e) DeCapaFísica(t) ACapaRed(t.Info) ACapaFísica(s) hasta-siempre } obtiene paquete a transmitir lo copia a la trama trasmite la trama espera único evento posible: LlegóTrama único evento posible es LlegóTrama recibe la trama pasa el paquete a la capa de red envía trama de relleno como asentimiento Protocolo Unilateral para Canal Ruidoso (U-CR) Este protocolo agrega la capacidad de manejar las situaciones en que una trama se recibe con errores, caso en el cual es necesaria la retransmisión de ella. Para lo anterior es necesario utilizar números de secuencia asociados a cada trama transmitida, de manera que el receptor pueda saber si la trama que recibe es la siguiente esperada o no. Cabe destacar que también se pueden dañar las tramas de asentimiento, por lo que no basta con que el emisor suponga que si no se recibe asentimiento, significa la trama enviada llegó con errores al receptor. Emisor() { t : trama p : paquete e : evento sgte = 0 : secuencia DeCapaRed(p) repetir t.Info = p t.Seq = sgte ACapaFisica(t) IniciaTimer() Espera(e) si e = LlegóTrama entonces DeCapaRed(p) Incrementa(sgte) fin-si hasta-siempre } Licenciado Gustavo Rei inicializa secuencia de transmitidos obtiene paquete a transmitir construye la trama a transmitir transmite la trama inicializa Timer (LlegóTrama, CRCerr ó TimeOut) obtiene paquete a transmitir incrementa secuencia Pág. Nro. 43 Comunicación de Datos − Redes de Computadores Receptor() { s,r : trama e : evento sgte = 0 : secuencia inicializa secuencia de esperados DeCapaRed(p) repetir Espera(e) si e = LlegóTrama entonces DeCapaFísica(r) si r.Seq = sgte entonces ACapaRed(t.Info) Incrementa(sgte) fin-si ACapaFísica(s) fin-si hasta-siempre obtiene paquete a transmitir (LlegóTrama ó CRCerr) obtiene paquete a transmitir se recibió trama esperada incrementa secuencia envía asentimiento } En este protocolo se pueden producir dos casos de errores de transmisión: Error en Datos: El receptor recibe una trama errónea y no envía asentimiento, haciendo que en el emisor se genere el evento TimeOut y se retransmite la trama; Error en Asentimiento: El receptor recibe correctamente una trama, pero el asentimiento llega incorrecto al emisor. Se genera en él el evento TimeOut y se retransmite la trama. El receptor recibe una trama duplicada y la descarta. En resumen, cualquiera sea la situación en que una trama se recibe con errores, el protocolo es capaz de solucionar el problema. Aún así, este protocolo es muy lento, debido a que, por la alternancia estricta, se debe esperar a que se venza el temporizador para enviar la siguiente trama PROTOCOLOS DE VENTANA DESLIZANTE El concepto de ventana deslizante permite proveer a los protocolos de enlace una gran ventaja: permite comunicación bidireccional. En los protocolos anteriores se utilizaban tramas en sentido contrario para enviar asentimientos, las cuales podrían contener además datos. Para los asentimientos de estos que viajan en dirección opuesta se puede asimismo utilizar las tramas de datos originales. Esta técnica recibe el nombre de superposición, y permite aprovechar mucho mejor el ancho de banda del canal, ya que permite enviar datos y asentimientos en una misma trama. Debe tenerse claro que siempre es posible enviar una trama con sólo asentimiento o sólo datos, ya que el asentimiento debe siempre ser recibido de vuelta antes que ocurra el evento TimeOut en el emisor, debido a que esto generaría su retransmisión. Además, las entidades de la capa de enlace, que ahora pueden enviar y recibir datos, poseen una cierta capacidad de memoria emisora y de memoria receptora (ventanas). La ventana emisora contiene una lista de las tramas que ya se han enviado pero todavía no se ha recibido el asentimiento (si está llena, no se pueden enviar más), y la ventana receptora contiene las tramas recibidas que aún no han sido procesadas por la capa de red (si está llena, no se pueden recibir más). PROTOCOLO DE VENTANA DESLIZANTE DE 1 BIT El protocolo que sigue posee una ventana de tamaño 1, esto es, se puede almacenar sólo una trama a la vez en el emisor o receptor. Por lo anterior, este protocolo sólo acepta la recepción de tramas en orden, lo que para tamaños más grandes no es una restricción. Además, posee el problema de no aprovechar la velocidad del canal de datos de forma óptima. ProtocoloVentana1() { r,s : trama p : paquete e : evento aRecibir = 0 : sec inicializa secuencia de recibidos (0 ó 1) Licenciado Gustavo Rei Pág. Nro. 44 Comunicación de Datos − Redes de Computadores aTransmitir = 0 : sec DeCapaRed(p) s.info = p s.seq = aTransmitir s.ack = 1 – aRecibir ACapaFísica(s) IniciaTimer() Repetir Espera(e) si e = LlegóTrama entonces DeCapaFísica(r) si r.seq = aRecibir entonces ACapaRed(r.info) Incrementa(aRecibir) si r.ack = aTransmitir entonces DeCapaRed(p) Incrementa(aTransmitir) s.info = p s.seq = aTransmitir s.ack = 1 – aRecibir ACapaFísica(s) IniciaTimer() hasta-siempre inicializa secuencia de enviados (0 ó 1) arma trama a enviar transmite trama inicializa temporizador principal (LlegóTrama, CRCerr ó TimeOut) obtiene la trama trama correcta despacha paquete asent. correcto obtiene paquete sgte. arma trama a enviar transmite trama inicializa temporizador principal } Hasta ahora se han considerado los tiempos necesarios para que una trama llegue al receptor y que un asentimiento llegue de regreso como despreciables, lo cual es una suposición absurda (considere transmisión satelital, por ej.). Debido a lo anterior, es imposible que los protocolos anteriores utilicen el ancho de banda del canal de manera siquiera buena, debido a que están obligados a esperar a que llegue el asentimiento antes de enviar otra trama. La solución es utilizar la técnica de envío continuo (pipelining), que consiste en aumentar el tamaño de las ventanas de transmisión y recepción, de manera que el emisor pueda enviar w tramas sin necesidad de esperar que lleguen los asentimientos. Se debe entonces seleccionar un w que sea capaz de contener al menos la cantidad de tramas que se pueden enviar antes que llegue el primer asentimiento de regreso. La utilización de esta técnica sobre una canal inseguro genera el problema del tratamiento de tramas con error o perdidas, ya que el receptor debe pasar a la capa de Red los paquetes en orden. Para resolver el problema se utilizan dos técnicas, que son las empleadas en los dos últimos protocolos por revisar: PROTOCOLO DE VENTANA DESLIZANTE - REPETICIÓN NO SELECTIVA En esta solución el receptor tiene una ventana de tamaño 1, y en consecuencia debe desechar todas las tramas que llegan después de una trama con errores o cuando se pierde una trama (se detecta un número de secuencia incorrecto). En otras palabras, la capa de enlace se rehusa a recibir tramas fuera de orden. La siguiente figura muestra cómo trabaja la capa de enlace en este caso (el código para este protocolo se puede encontrar en el anexo del presente texto): 0 1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 10 E D D D D D D 1 5 0 2 3 4 6 7 8 El tamaño de la ventana de transmisión para este protocolo debe ser menor o igual a l valor máximo para números de secuencia más uno. Esta solución puede parecer buena, pero cuando los errores son comunes, se desperdicia mucho ancho de banda del canal. Este protocolo no resuelve el problema de asentimientos que nunca se envían de regreso porque la capa de red en el receptor no tiene nada que transmitir al emisor. Licenciado Gustavo Rei Pág. Nro. 45 Comunicación de Datos − Redes de Computadores PROTOCOLO DE VENTANA DESLIZANTE - REPETICIÓN SELECTIVA En este caso el receptor debe tener una ventana de recepción de más de una trama de capacidad, y se almacenan en memoria todas las tramas correctas que lleguen después de ocurrido el error, mientras tenga espacio disponible. Cuando el emisor detecta que hay algún problema (se vence su temporizador), retransmite las tramas a partir de la perdida, pero como el receptor ya posee las siguientes, envía de regreso sólo el asentimiento de la trama con mayor número de secuencia. De esta forma, el emisor sabe que no necesita retransmitir las tramas que siguen a la del asentimiento recibido. La siguiente figura muestra cómo trabaja la capa de enlace en este caso (el código para este protocolo se puede encontrar en el anexo del presente texto): 0 1 2 3 4 5 6 7 8 2 3 4 5 6 9 10 11 12 0 1 E 3 4 5 6 7 8 2 D D D D 9 10 Se almacenan 2-8 se pasan a Capa de Red El tamaño de la ventana de transmisión para este protocolo debe ser menor o igual a 1 2 ( MaxSeq + 1) para que no surjan ambigüedades al momento de decidir qué asentimiento se recibió. Este protocolo sí resuelve el problema de los asentimientos cuando no hay tráfico de datos en la dirección opuesta, utilizando para ello temporizadores auxiliares para los asentimientos pendientes a enviar. Además, este protocolo es capaz de enviar asentimientos negativos en el caso de detectar un error, evitando así tener que esperar que venza el temporizador correspondiente en el emisor. No es necesario el manejo de error para estos asentimientos, ya que si no llegan, expira el temporizador correspondiente. (Ver código en anexo para ver cómo se implementa todo lo anterior). Los últimos dos protocolos poseen una característica adicional, y es que ya no se hace la suposición que la capa de red siempre tiene algo para enviar. La capa de red genera un evento en la capa de enlace cuando tiene algo que transmitir, y la capa de enlace puede deshabilitar o habilitar este privilegio de la capa de red. Otra característica de estos protocolos es que necesitan de un temporizador para cada trama en la ventana de transmisión. Rendimiento del Canal de Enlace En este apartado haremos un análisis comparativo del rendimiento de los protocolos mostrados. Los tres primeros protocolos utilizan pobremente el canal y no solucionan muchos de los problemas de la capa de enlace. Los otros tres protocolos son todos igualmente buenos en el sentido de presentar a la capa de red un canal virtualmente libre de errores, pero su rendimiento es substancialmente distinto en términos de rendimiento (cantidad de información transmitida por unidad de tiempo), esto es, el aprovechamiento del ancho de banda del canal. Los factores que influyen en el rendimiento de un protocolo son los siguientes: • • • • • Longitud de la trama: ¿cantidad de bits?, ¿largo fijo o variable?; Superposición: ¿se utiliza superposición de asentimientos?; Pipelining: ¿se envían varias tramas antes de recibir asentimientos?; Canal Duplex o Semiduplex: ¿se puede transmitir en ambos sentidos a la vez?; Proporción de Error: ¿qué fracción de las tramas se pierde o llega errónea? Los siguientes gráficos muestran cómo se comportan algunos de los protocolos mostrados con anterioridad, en términos de eficiencia. La longitud del canal se mide en términos de cuántas tramas puede enviar el emisor antes que el receptor reciba la primera trama enviada. Nótese que la eficiencia nunca es 1.0 debido a los errores producidos en el canal y a la pérdida de tramas. Licenciado Gustavo Rei Pág. Nro. 46 Comunicación de Datos − Redes de Computadores Ventana Deslizante 7 Parada y EspeTamaño de la Ventana Longitud del Cable Licenciado Gustavo Rei Pág. Nro. 47 Comunicación de Datos − Redes de Computadores Capa de Red Con las capas Física y de Enlace se ha logrado construir la base para redes que utilizan un solo medio físico. La Capa de Red es la encargada de proveer los mecanismos para interconectar redes de varios medios físicos. El nivel de red se ocupa del manejo de bloques de datos desde la estación origen a la estación destino. La entidades de nivel 3 deben ser capaces de distinguir la topología de la red y encontrar el camino más adecuado para comunicar el origen con el destino. Las condiciones de encaminamiento deben tomarse teniendo en cuenta el funcionamiento de la red. Puede darse el caso de que emisor y receptor estén en redes distintas. Funciones del nivel de red: funciones de encaminamiento, comprobar que no se originen problemas de congestión, interconectar distintas redes. La principal misión del nivel de red es proporcionar servicios al nivel de transporte. IMP Host Host Subred IMP: procesador dedicado a las comunicaciones. Como la subred es un conjunto de entidades, los servicios del nivel de red son los servicios que ofrece la subred. En un caso ideal, lo que se desea es que los servicios del nivel de red cumplan las siguientes características: independientes de la estructura de la subred, el nivel de transporte no tiene porque conocer el número, tipo o topología de las subredes que atraviesan sus datos, deben poner a disposición de sus usuarios un esquema de direccionamiento uniforme. Estructura subred Servicios Conmutación circuitos Con conexión Sin conexión Conmutación paquetes Sin conexión Con conexión Datagrama Circuito Virtual Problemas de Diseño de la Capa de Red Tipo de Servicios Suministrados Existió gran controversia al momento de decidir cuáles servicios suministraría la Capa de Red a las capas superiores, y como resultado se decidió que la Capa de Red proveería servicios con y sin conexión. Todos los servicios comparten las siguientes características: • Se define como subredes a las redes definidas por la capa de red, esto es, al conjunto de entidades de capa de red conectados por un mismo protocolo en la capa de enlace; • Son independientes de la tecnología de las subredes; • Las capas superiores desconocen el número, tipo y topología de las subredes; • Las direcciones de red deben utilizar una numeración uniforme a lo largo de todos los tipos de subredes. Licenciado Gustavo Rei Pág. Nro. 48 Comunicación de Datos − Redes de Computadores Como la Capa de Red es la ultima capa implementable en HW, se asegura la independencia del HW con el SW de los computadores. Encaminamiento La capa de red debe proveer mecanismos para encaminar los paquetes a través de las redes físicas de una misma subred. ¿Cómo construir un circuito virtual sobre una red de conmutación de paquetes? Cada datagrama se puede encaminar por separado pero todos deben llevar en su cabecera la dirección de destino. Si se utiliza un circuito virtual cada paquete llevará una identificación del circuito virtual en lugar de la dirección de destino. En la fase de establecimiento del circuito se toman las decisiones de encaminamiento. Normalmente se empleará mejor el ancho de banda cuando se utilice un circuito virtual, además en este caso todos los paquetes llegan en el mismo orden en que fueron enviados. Ventaja de los datagramas: mejor control del encaminamiento. ¿Cómo se establecen los circuitos virtuales? Cada IMP mantiene una serie de tablas donde se almacena la información de los circuitos virtuales que atraviesan cada uno de estos IMP. Interconexión de Redes(Introducción) La capa de red debe proveer mecanismos para encaminar correctamente paquetes a través de subredes diferentes, esto es, con diferente protocolo de capa de enlace. En otras palabras, si las máquinas origen y destino se encuentran conectadas a subredes diferentes, la capa de red debe ser capaz de transportar el paquete de subred a subred, hasta que llegue a la subred del destino, traduciéndolos de un protocolo al otro. Control de Congestión Cuando la capa de red es incapaz de satisfacer todos los requerimientos de las capas superiores, debido al volumen de tráfico demandado, se llenan los espacios de memorias temporales en los IMP´s (ver capa de enlace). Esto produce que los IMP’s sean incapaces de recibir, propagando el problema a los IMP’s que desean transmitir hacia los congestionados. La capa de red debe proveer algún mecanismo para controlar estas situaciones. Servicios Proporcionados por la Capa de Red Servicio con Conexión El servicio con conexión debe poseer las siguientes características: • Inicialmente, la entidad de transporte origen establece la conexión con la entidad receptora, y en ese momento la capa de red decide qué ruta utilizará para la conexión. Esta ruta no cambia mientras dure la conexión, la cual se termina explícitamente; • Al comienzo, las entidades origen y destino negocian con la capa de red la calidad del servicio suministrado; • La conexión establecida es bidireccional, sin errores y con paquetes entregados secuencialmente; • El control de flujo se proporciona automáticamente por la capa de red; • No es necesario que los paquetes contengan la dirección completa de destino, sino que sólo una identificación del circuito virtual a utilizar, el cual es conocido por la misma subred; Servicio Sin Conexión El servicio sin conexión que se provee es muy básico, sin que se provean controles de error o de flujo, y los paquetes pueden ser entregados en cualquier orden. Así, son los mismos hosts los encargados de realizar todos los controles. Además, para cada paquete se debe decidir nuevamente la ruta a utilizar, por lo cual es necesario que todo paquete contenga la dirección completa de destino. La justificación de incluir un servicio tan poco confiable es la necesidad de muchas aplicaciones (interactivas o multimediales, por ejemplo) de realizar transmisiones individuales de poco tamaño, o que requieren gran velocidad sin una gran exactitud. Diferencias entre los Servicios Suministrados La siguiente tabla muestra las diferencias entre los servicios proporcionados por la capa de red: Licenciado Gustavo Rei Pág. Nro. 49 Comunicación de Datos − Redes de Computadores Asunto Establecimiento inicial Indicación de dirección destino Con Conexión Requerido Sólo inicialmente Secuencialidad de paquetes Sin Conexión No es posible En cada paquete Garantizada No garantizada Control de error Proporcionado No proporcionado Control de Flujo Proporcionado No proporcionado Negociación de calidad Complejidad realizable en Posible Mucha Imposible Poca Exactitud Velocidad HW Criterio Preponderante Primitivas OSI para la Capa de Red Las primitivas proveídas por la capa de red son las siguientes: Orientadas a Conexión N-CONNECT.request ( callee, caller, acks, exp, qos, data ) N-CONNECT.indication ( callee, caller, acks, exp, qos, data ) N-CONNECT.response ( responder, acks, exp, qos, data ) N-CONNECT.confirm ( responder, acks, exp, qos, data ) N-DISCONNECT.request ( originator, reason, data, responder ) N-DISCONNECT.indication ( originator, reason, data, responder ) N-DATA.request ( data ) N-DATA.indication ( data ) N-DATA-ACK.request ( ) N-DATA-ACK.indication ( ) N-EXPEDITED-DATA.request ( data ) N-EXPEDITED-DATA.indication ( data ) Sin Conexión N-UNITDATA.request ( callee, caller, qos, data ) N-UNITDATA.indication ( callee, caller, qos, data ) N-FACILITY.request ( originator, reason ) N-FACILITY.indication ( destination, qos, reason ) N-REPORT.indication( destination, qos, reason ) donde: callee - dirección de quien es llamado caller - dirección de quien llama acks - indicación de asentimientos deseados exp - indicación de datos acelerados qos - calidad de servicio deseada data - 0 o más datos transmitidos originator - especifica quién inició N-RESET responder - dirección NSAP de destinatario reason - razón por la cual sucedió Organización Interna de la Capa de Red No es posible diseñar la capa de red de forma de que se satisfagan simultáneamente los requerimientos con y sin conexión deseados, sino que se debe elegir por una implementación particular que satisfaga uno de estos requerimientos, implementándose luego el otro sobre la implementación elegida. Licenciado Gustavo Rei Pág. Nro. 50 Comunicación de Datos − Redes de Computadores Circuitos Virtuales La primera posibilidad es implementar directamente el servicio con conexión, para lo cual se utiliza el concepto de circuito virtual. La idea principal de los circuitos virtuales es evitar la toma de decisiones de encaminamiento para cada paquete enviado, sino que éstas se toman sólo al inicio de la conexión. Para lo anterior se define inicialmente una ruta o camino, el cual es utilizado para encaminar todos los paquetes de la conexión dada. Cada nodo en el camino elegido debe conocer hacia dónde enviar cada paquete recibido, y como la comunicación es bidireccional, cada nodo debe conocer su antecesor y sucesor en cada circuito virtual. Los nodos sólo pueden decidir hacia dónde redirigir los paquetes recibidos basándose en el número de circuito virtual que contienen los paquetes. Para implementar lo anterior, los nodos intermedios (IMP’s) poseen una tabla en la cual se ingresan los circuitos virtuales a los que pertenece el nodo, y los nodos antecesor y sucesor de cada uno de ellos. Se ve como necesario que los números de circuitos virtuales sean únicos en la subred, pero esto no es así, puesto que cada circuito virtual no se identifica con un valor único, sino que existe un valor diferente para cada red física del circuito virtual, el cual sólo necesita ser único en esa red física. Veamos un ejemplo: Supongamos la siguiente topología de la subred: Hb Hc B C A Ha D E Hd F Hf He y consideremos los caminos Ha-A-B-C-Hc, Ha-E-C-B-Hb, He-E-A-B-C-D-Hd y He-E-F-D-Hd. Las tablas de los nodos intermedios deben contener los siguientes valores (las flechas indican el segundo circuito definido): n H H E Nodo A I ut 0 B 1 E 0 B n C F Nodo D I O ut 0 H 0 0 H 1 n A C A Nodo B I ut 0 C 0 H 1 C n A H H Nodo E I ut 0 C 0 A 1 F O 0 0 1 n B E B Nodo C I ut 0 H 0 B 1 D n E Nodo F I O ut 0 D 0 O 0 0 1 O 0 0 0 O 0 0 0 Los circuitos virtuales definidos así son unidireccionales, y para implementar circuitos bidireccionales basta definir dos circuitos unidireccionales. Note que estos circuitos inversos pueden no utilizar las mismas rutas, lo que es una ventaja en sí. Los paquetes enviados a través de un circuito virtual no necesitan acarrear consigo la dirección de destino, ya que cada nodo sabe de antemano hacia dónde encaminar el paquete, ahorrando un ancho de banda considerable para paquetes cotos. Cuando un circuito virtual no se necesita más, éste debe ser eliminado explícitamente desde las capas superiores, para eliminar cada entrada correspondiente en las tablas de los nodos intermedios. Licenciado Gustavo Rei Pág. Nro. 51 Comunicación de Datos − Redes de Computadores Datagramas La segunda opción de implementación es sin orientación a conexión, en la cual cada paquete transmitido debe ser encaminado individualmente. Las redes de este tipo deben hacer un mayor trabajo para cada paquete, pero son más robustas en un contexto general, puesto que se responden con facilidad a fallos y congestión. Para esta solución, cada nodo debe conocer hacia qué nodo adyacente debe enviar cada paquete recibido, para lo cual es necesaria una tabla que indique lo anterior para cada destino posible. Esta tabla también es necesaria en los circuitos virtuales para el establecimiento de conexión. Además, los paquetes deben contener la dirección completa de destino, para que los nodos puedan decidir hacia dónde encaminarlos. Comparación: Circuitos Virtuales vs. Datagramas La siguiente tabla muestra las diferencias entre la implementación de la subred: Asunto Direccionamiento Circuitos Virtuales Sólo número de circuito vir- Datagramas Paquetes con dirección tual completa Información del Cada nodo almacena inforLa subred no almacena al camino mación acerca del camino camino Encaminamiento Cada paquete a través de Cada paquete indepencircuito virtual previamente defini- dientemente do Efecto de fallos en Se pierden todas las coSólo se pierden paquetes nodos nexiones a través del nodo que que estaban en memoria del falla nodo que falla Control de congesFácil Difícil tión Complejidad En capa de red En capas superiores Adecuado para Servicio orientado a coServicios orientados a conexión nexión y sin conexión Algoritmos de Encaminamiento Existen diversos algoritmos que determinan el camino a seguir para llevar un paquete del origen al destino, los cuales se clasifican en dos grandes grupos: No Adaptativos o Estáticos: La elección de los caminos se hace a priori, antes de poner en marcha la red. EL trabajo para redes grandes o con caminos múltiples es enorme; Adaptativos: Se basan en el tráfico y topología actuales de la red para decidir cuál es el mejor camino en cada momento. Se dividen en globales, locales y distribuidos, según la información que utilizan. Encaminamiento Estático La elección de caminos se hace antes de poner en marcha la red, y se programa cada uno de los nodos individualmente. CAMINO MÁS CORTO El camino se elige según el criterio del camino por el cual los paquetes llegan en el menor tiempo al destino. Para ello se consideran factores diversos, como la distancia, ancho de banda, promedio de tráfico, largo de la cola de espera, retardo, y otros. Se elige así el mejor camino desde cada origen a cada destino, y se utiliza este camino para encaminar todos los paquetes. CAMINO MÚLTIPLE Este mecanismo es aplicable cuando hay más de un camino que se considera mejor. Los nodos intermedios pueden decidir cuál de ellos se utilizará para cada paquete, utilizando para ello alguna función de probabilidad con pesos definidos antes de poner en marcha la red. Licenciado Gustavo Rei Pág. Nro. 52 Comunicación de Datos − Redes de Computadores Así, cuando el tráfico es grande, se utilizan los diferentes caminos para distribuir la carga evitando congestionar algún camino de la subred. Centralizado En vez de realizar manualmente los cálculos para encontrar los mejores caminos entre todos los nodos, se puede utilizar un programa automático que recopile información desde todos los nodos de la subred, realice los cálculos, y luego envíe una nueva configuración a cada nodo. Este mecanismo es atractivo, puesto que puede utilizarse de forma automática cada cierto tiempo para producir resultados adaptativos, pero posee grandes inconvenientes. Primero, el tráfico desde y hacia la máquina de control centralizado de encaminamiento es bastante fuerte, y puede incluso afectar los cálculos mismos. Otro problema grave es el orden en que se distribuyen las nuevas tablas a cada nodo de la subred, ya que pueden surgir inconsistencias que incluso pueden dejar aislado a algún nodo. Encaminamiento Aislado Se trata aquí que cada nodo de la subred decida hacia adónde enviar los paquetes recibidos, utilizando para ello sólo su información interna. Existen varias formas de hacer lo anterior: PATATA CALIENTE: Los paquetes simplemente se ponen en la cola de salida más corta del nodo, sin importar hacia adónde se dirige la línea; PATATA CALIENTE MEJORADO: Se utilizan pesos estáticos asignados a cada salida, en conjunto con el largo de las colas para decidir; APRENDIZAJE HACIA ATRÁS: Se incluye en cada paquete un contador de saltos, el cual se incrementa en uno en cada nodo. Así, cada nodo puede saber, luego de un tiempo razonable, cual es el mejor camino hacia cada nodo posible. El problema surge cuando un nodo se desactiva, puesto que no hay como detectar la falla; INUNDACIÓN: Los paquetes se envían por todas las líneas, excepto por la cual llegó. Se incluye un contador en cada paquete, que indica el número de saltos que ha registrado, y si es mayor que cierto umbral, se desecha el paquete. Este algoritmo es muy robusto, y deseable en aplicaciones militares, por ej. Encaminamiento Adaptativo ENCAMINAMIENTO DISTRIBUIDO Se utiliza alguna medida de la longitud de los caminos, y cada nodo de la subred conoce la distancia hacia sus vecinos. Cada cierto tiempo, los nodos piden a sus vecinos que les envíen sus propias tablas, de forma que si se encuentra un mejor camino, se actualiza la tabla propia. El tiempo puede ser ajustado para que los caminos elegidos permanezcan estables en o para que se adapten rápidamente, manteniendo siempre una idea del camino más corto. ENCAMINAMIENTO ÓPTIMO Este algoritmo sirve para realizar la búsqueda de caminos alternativos en caso de fallar algún nodo, y se basa en que para todo destino, los caminos óptimos desde todo origen forman un árbol. Así, cuando un nodo detecta que falló algún vecino que era parte de la mejor ruta hacia algún destino, pide a cada uno de sus otros vecinos que le indique alguna ruta hacia los destinos perdidos. El nodo puede elegir nuevamente la mejor ruta o detectar que no hay camino. Si un nodo recibe un requerimiento de camino para un destino específico, y no conoce ningún camino hacia él, entonces debe pedir lo mismo a sus propios vecinos, hasta que se encuentre algún camino posible o no queden más nodos a quién preguntar. Control de Congestión La congestión en sí se produce cuando la capa de red es incapaz de satisfacer todos los requerimientos de las capas superiores, debido al volumen de tráfico demandado, se llenan los espacios de memorias temporales en Licenciado Gustavo Rei Pág. Nro. 53 Comunicación de Datos − Redes de Computadores los IMP´s (ver capa de enlace). Esto produce que los IMP’s sean incapaces de recibir, propagando el problema a los IMP’s que desean transmitir hacia los congestionados. El comportamiento de una subred congestionada se muestra en el siguiente gráfico: Paquetes Entregados Rendimiento Perfecto Rendimiento Deseado Rendimiento Real (por Congestión) Paquetes Transmitidos A continuación analizaremos una serie de algoritmos que permiten evitar la congestión. Preasignación de Memorias Si se utilizan circuitos virtuales dentro de la subred, es posible eliminar por completo el problema de la congestión, si al establecer la conexión se pide reservar un número dado de memorias de paquetes en los espacios de almacenamiento de los nodos. Así, a lo largo de todo el circuito virtual siempre habrá lugar donde almacenar los paquetes enviados, eliminándose por completo el problema de la congestión. En el caso del protocolo de enlace de parada y espera, una memoria es suficiente, pero para otros protocolos de ventana deslizante sofisticados pueden desearse más. De esta forma, el problema ahora no es la congestión, sino que se hace un uso muy ineficiente del canal, puesto que las memorias reservadas que no están en uso no los puede utilizar ningún otro circuito virtual. Por esto, la reserva de memorias se utiliza sólo para casos críticos, como la transmisión digital de audio o vídeo, por ejemplo, en que son críticos el retardo y ancho de banda. Descarte de Paquetes Se trata de una técnica totalmente opuesta a la anterior: si se recibe un paquete y no hay espacio disponible, se descarta inmediatamente. Si el servicio ofrecido es de datagrama, no es necesario nada más, pero si se ofrecen circuitos virtuales, se debe asegurar que el paquete llegue a destino. Lo anterior se puede hacer esperando que el emisor reenvíe el paquete por vencimiento de su temporizador, o esperando que el nodo fuente del paquete (que espera un asentimiento) lo haga. Cabe destacar que cada nodo debe tener al menos una memoria reservada para entrada, de forma que pueda recibir asentimientos que permitan liberar otras memorias. Otro mecanismo es limitar el largo de las colas de salida, de forma que ninguna se acapare todas las memorias, definiendo un máximo (Irland, 1978) o mínimo (Kamoun, 1976) para la cantidad de memorias asignadas a cada salida. De esta forma se evita que exista congestión el nodo por culpa de una sola línea ocupada. Determinar los tamaños máximo y/o mínimos no es fácil. Control Isarítmico de Congestión Consiste en limitar el número de paquetes que puede haber en la subred, evitando que sobrepase cierto límite. Esto se logra haciendo circular permisos en la subred, de forma que ningún nodo fuente puede transmitir si no captura primero un permiso. El nodo destino debe regenerar el permiso cuando reciba el paquete. Los permisos circulan aleatoriamente por la subred. Este método evita la congestión, tiene varios problemas graves. Primero, cuando un nodo tiene muchos paquetes a transmitir, debe capturar muchos permisos, lo que puede demorar mucho. Otro problema que surge es que para que todos los nodos tengan la misma probabilidad de recibir un permiso, éstos deben estar uniformemente distribuidos, lo cual no está para nada garantizado. Un problema grave es que los permisos pueden perderse, y no existe forma de saberlo. Control de Congestión por Control de Flujo Se puede restringir el ancho de banda que cada máquina puede transmitir o recibir de la subred, lo cual evitaría la congestión, pero esto deriva en un mal servicio, aún cuando la red esté desocupada. Se puede aplicar restringiendo el ancho de banda entre pares de: Licenciado Gustavo Rei Pág. Nro. 54 Comunicación de Datos − Redes de Computadores • Procesos de Usuario; • Máquinas, sin considerar el número de circuitos virtuales en que intervienen; • nodos origen y destino, sin considerar las máquinas. Paquetes Reguladores Se trata aquí de programar los nodos de la subred para que detecten la congestión, enviando un paquete regulador al nodo fuente de los paquetes, el cual deberá disminuir paulatinamente su velocidad de transmisión. Si durante de un periodo de tiempo no se reciben reguladores, se puede volver a aumentar paulatinamente la velocidad. Este mecanismo controla efectivamente la congestión, pero es complicado, y el periodo de tiempo debe ajustarse estadísticamente: si es muy corto no se resuelve el problema, y si es muy largo se pierde utilización del canal. Resolución de Bloqueos Los bloqueos se producen cuando los nodos de una subred están tan congestionados de forma que ninguno puede hacer algo mientras el otro no haga algo. El bloqueo más simple se da con dos nodos: supongamos que ambos tienen sus memorias de transmisión/recepción llenas con paquetes a enviar al otro nodo. Ninguno de ellos puede recibir lo que el otro está tratando de enviar, ni puede liberar una memoria porque no se pueden enviar os paquetes. Esta situación no tiene solución, y la capa de red debe evitarla a toda costa. La solución es muy simple: todos los nodos deben tener una memoria por cada línea de entrada reservada para recepción. Además, cada vez que se crea un nuevo paquete, se incluye en él la fecha y hora en que s creó. Así, para cada par de nodos adyacentes, y cada vez que la línea está libre, los nodos indican a su vecino cuál es el paquete más antiguo que desea enviar por ella, y el más antiguo es enviado. Así, se asegura que se liberen las memorias de transmisión de los nodos. Ejemplos de Capa de Red Protocolo de Red IP (Internet Protocol) El protocolo de red IP define un servicio de red sin conexión que, como se vio anteriormente, no necesita ser seguro ni fiable. Los datagramas IP son de hasta 64kb de largo, y su cabecera es de al menos 20 bytes. Un datagrama puede ser dividido en dentro de la red, para pasarlo por subredes que transportan paquetes más cortos. El formato de la cabecera es como sigue: 0 Versión 7 lar- go identificación tiempo de vida dirección fuente dirección destino opciones 8 tipo protocolo 15 18 largo total 23 24 31 desplazamiento CRC cabecera donde: versión - indica la versión de IP de que se trata (para compatibilidad futura) largo - largo de la cabecera, en palabras de 32 bits (mínimo 5) tipo - indica a la subred el tipo de servicio suministrado (rápido no confiable, seguro, secreto, o cualquier combinación) largo total - largo total del paquete, incluyendo los datos identificación - todos los fragmentos de un datagrama poseen la misma identificación D - si es 1, no se debe fragmentar el datagrama F - todos los fragmentos de un datagrama, excepto el último, deben contener un 1 en este bit desplazamiento - cada fragmento de un datagrama indica aquí el desplazamiento (en bytes) dentro del datagrama completo tiempo de vida - indica en segundos cuánto tiempo de vida le queda al paquete protocolo - indica a qué protocolo pertenece el datagrama. TCP es una posibilidad opciones - parámetros particulares del protocolo que utiliza IP CRC cabecera - código de redundancia de la cabecera Licenciado Gustavo Rei Pág. Nro. 55 Comunicación de Datos − Redes de Computadores El estándar de capa de red define la utilización de direcciones únicas a nivel de red, lo cual es definido por IP de la siguiente forma 7 Subred 24 estación 14 Subred 16 estación 21 Subred 8 estación 28 dirección multicast Se definen además los siguientes valores especiales para los campos: Valor subred = 0…0 Estación = Significado esta subred esta estación (eco a primer nodo) subred = 1…1 subred = 1…1 difusión a todas las subredes difusión a todas las estaciones de esta subred 0…0 Las direcciones multicast se propagan (difusión) a todas las estaciones de la subred en la cual se encuentra la estación origen, y es recibida por todas las estaciones que deseen hacerlo (analizan la dirección). La división entre subred y estación se definió para que los nodos puedan saber si el paquete se puede enviar directamente al destino (estación en esta subred) o se debe enviar través de un router (estación en otra subred). Ejemplo: Suponemos que tenemos una dirección de clase B cionamiento en 250 redes distintas. 129.1.0.0 dir. IP máscara por defecto y queremos dividir el espacio de direc- 129.1.0.0 1...1 1...1 0...0 0...0 1...1 1...1 1...1 0...0 255.255.255.0 Subred 1: 129.1.1.0 Subred 2: 129.1.2.0 ..................................... Subred 254: 129.1.254.0 Ahora queremos dividir el espacio de direccionamiento en 127 redes distintas. dir. IP máscara por defecto 129.1.0.0 1...1 1...1 11111110. 0 . . . 0 Subred 1: 129.1.2.0 desde 129.1.2.1 a 129.1.3.254 Subred 2 129.1.4.0 desde 129.1.4.1 a 129.1.5.254 .............................................................................................. Subred 126: 129.1.252.0 desde 129.1.252.1 a 129.1.253.254 Datagrama IP Licenciado Gustavo Rei Pág. Nro. 56 Comunicación de Datos − Redes de Computadores 1 TOS 32 LONGITUD TOOFFCHECKSUM IDENTIFICADOR TTL PRO DIRECCION ORIGEN DIRECCION DESTINO OPCIONES + “PADDING” DATOS VER: (4 bits) versión del protocolo IP que ha originado el datagrama. IHL: longitud del encabezamiento del datagrama medido en palabras de 32 bits. Valor entre 5 y 15 (4 bits) TOS: Type of Service (8 bits) Los tres primeros bits indican la prioridad o= menor y 7 = mayor D = 1 solicitud de bajo retardo D = 0 solicitud de alta capacidad R = 1 solicitud de alta fiabilidad LONG. TOTAL: indica la longitud total del datagrama IP, en octetos. Los datagramas IP no pueden tener menos de 576 octetos. Cuando el datagrama no quepa en alguno de los protocolos usados en alguna red, habrá que fragmentarlo. Si se fragmenta un datagrama, todos los fragmentos llevarán el mismo identificador. DF = 1 el datagrama no se puede fragmentar. Normalmente estará a cero. MF (More Fragments): indica si el fragmento es el último del datagrama original, con un cero. OFFSET: posición relativa del fragmento dentro del datagrama original, es un valor que se mide en unidades de 8 octetos (13 bits). Si el datagrama no está fragmentado es igual a cero. TTL (Time to live), sirve para que lo marcan las estaciones que generan el datagrama con un valor y en cada salto se decrementa en una unidad. Cuando llega a cero, el datagrama ya no se transmite más (8 bits). PROT: indica el protocolo del nivel superior al que debe ser entregado el datagrama (8 bits) para TCP = 6 CHECKSUM: del encabezamiento (16 bits). OPCIONES: campo de longitud variable, no obligatorio en los datagramas pero lo que si es obligatorio es la implementación del tratamiento de esas opciones en las entidades del protocolo. Todas las opciones que pueden aparecer empiezan con un código de opción: C 1OPIA bit C LASE 2 bits NUMERO OPCION 5 bits COPIA = 0 ⇒ la opción no debe ser copiada en los fragmentos que se originen. COPIA = 1 ⇒ se debe copiar la opción en los fragmentos. CLASE = 00 ⇒ datagrama control de red ⇒ medida y control de errores Los otros dos están reservados Opciones disponibles: CL ASE N UM. 0 LO 0 1 byte 0 1 1 byte 0 2 11 bytes Licenciado Gustavo Rei OPCION DESCRIPCION NG. Fin lista opAparece siempre al final de las demás ciones opciones No operaPara ajustar las opciones a palabras de ción 32 bits Seguridad Codifica el nivel de seguridad y restricciones de acceso aplicables al datagrama Pág. Nro. 57 Comunicación de Datos − Redes de Computadores 0 7 Var Permite que la identidad IP que genera el datagrama cree una tabla vacía en la cual se graban las direcciones IP por las que pasa el datagrama Var EncaminaPermite a la estación origen establecer miento desde ori- el camino que debe seguir el datagrama hasgen ta llegar al destino Var TimeIgual que la grabación de ruta, y adestamping más graba el tiempo en el que pasa. . 0 9 . 2 4 . Grabación de ruta Estructura de la opción “Grabación de ruta”: C L 1ódi byte 1 P 1 4 4 4 El puntero siempre señalará la primera entrada de la tabla vacía Long. Indica la longitud total de la opción. Estructura de la opción “Time-Stamping”: C ódi L P D b Dirección IP 1 F l Tiempo 1 Dirección IP 2 Tiempo 2 Tiempo = día y milisegundos transcurridos desde la medianoche según el horario del meridiano de Greenwich. Desb: indica las direcciones que ha atravesado el datagrama y no le han cabido en la tabla. Flags: indica como deben los IMPs que atraviesa el datagrama grabar los datos. sin dirección IP dirección IP y momento del tiempo direcciones IP colocadas por el remitente Protocolo ICMP (Internet Control Message Protocol) es el que detecta los errores y los reporta al nodo que ha originado el datagrama. Para su transmisión los mensajes de este protocolo se encapsulan en datagramas IP. El mensaje ICMP lleva información sobre la causa del error y los 64 primeros octetos del campo de datos del datagrama que ha causado el error. Causas de error que producen mensajes ICMP: Tiempo de vida igual a cero, TTL = 0 Parámetro desconocido en el encabezamiento Destino inalcanzable Congestión del nodo (“source quench”) Otro problema con el que nos encontramos es la transmisión de datagramas IP sobre redes de área local. El protocolo ARP (Address Resolution Protocol), cuando no sabe que dirección física corresponde a una dirección IP, envía una trama MAC a las demás estaciones que forman la red, indicando la dirección IP que busca. La estación que tiene esa dirección IP contesta indicando su dirección física. La unidad de datos que intercambia el protocolo ARP indica: Tipo Hardware Long Di Fí i Licenciado Gustavo Rei P Tipo Protocolo Long l Dir Operación Pág. Nro. 58 Comunicación de Datos − Redes de Computadores Dirección Física Remitente Dirección IP Remitente Dirección Física Destino El protocolo ARP mantiene una tabla con las equivalencias entre direcciones IP y direcciones MAC. Dirección IP Destino RARP (Reverse Addres Resolution Protocol) Se usa en estaciones sin disco en las que no se les puede grabar su dirección IP, las cuales obtienen su dirección IP difundiendo su dirección física. Una estación mantendrá una tabla de equivalencia de direcciones y responderá con la dirección IP asociada. DHCP (Dinamic Host Configuration Protocol) Existe un servicio DHCP que manda las direcciones IP a las estaciones que quiere conocer su dirección. Interconexión de redes Cualquier dispositivo que se dedica a la interconexión de redes lo denominaremos relé. R elé B Relé: dispositivo físico y lógico que sirve para llevar a cabo la unión de dos redes a cualquier nivel. Clasificación de los relés: Nivel OSI Físico Enlace Red Transporte o superiores Relé Repetidor Puente (Bridge) Encaminador (Router) Pasarela (Gateway) Gateway denominado también conversor de protocolo. 1º) Repetidor Dispositivo más elemental para la conexión de dos redes. Actúa a nivel 1 y sirve para regenerar la señal que transmite los datos. Son dispositivos hardware sin posibilidad de configuración. N. Fí i Re id N. Fí i Los dos medios físicos que conecta deben ser iguales Protocolo ARP (Address Resolution Protocol) Es un protocolo que trabaja sobre IP, sirve para traducir direcciones IP lógicas en direcciones de enlace. Lo utilizan los routers para conocer las direcciones de enlace de las estaciones que están conectadas a los mismos medios físicos que él. Funciona de la siguiente manera: se envía un requerimiento ARP por difusión a todas las estaciones de la subred, y cada una que reconozca su propia dirección IP en el requerimiento, devuelve una respuesta ARP que conLicenciado Gustavo Rei Pág. Nro. 59 Comunicación de Datos − Redes de Computadores tiene su dirección física (de enlace) y lógica (de red). La implementación de ARP considera el uso de tabla, las que disminuyen el número de mensajes ARP enviados. Licenciado Gustavo Rei Pág. Nro. 60 Comunicación de Datos − Redes de Computadores Interconexión de Redes Hace algunos años era impredecible la evolución que las comunicaciones, en el mundo de la informática, iban a tener: no podía prever que fuese necesaria la interconexión ya no sólo de varios ordenadores sino de cientos de ellos. No basta con tener los ordenadores en una sala conectados, es necesario conectarlos a su vez con los ordenadores del resto de las salas de una empresa, y con el resto de las sucursales de una empresa situadas en distintos puntos geográficos. La interconexión de redes permite, si se puede decir así, ampliar el tamaño de una intranet. Sin embargo el término interconexión se utiliza para unir redes independientes, no para ampliar el tamaño de una. El número de ordenadores que componen una intranet es limitado, depende de la topología elegida, (recuérdese que en la topología se define el cable a utilizar) aunque si lo único que se quisiera fuera sobrepasar el número de ordenadores conectados, podría pensarse en simplemente segmentar la intranet. Sin embargo existen otros factores a tener en cuenta. Cuando se elige la topología que va a tener una intranet se tienen en cuenta factores, como son la densidad de tráfico que ésta debe soportar de manera habitual, el tipo de aplicaciones que van a instalarse sobre ella, la forma de trabajo que debe gestionar, etc.; esto debe hacer pensar en que, uno de los motivos por el que se crean diferentes topologías es por tanto el uso que se le va a dar a la intranet. De aquí se puede deducir que en una misma empresa puede hacerse necesaria no la instalación de una única intranet, aunque sea segmentada, sino la implantación de redes independientes, con topologías diferentes e incluso arquitecturas diferentes y que estén interconectadas. Habitualmente la selección del tipo y los elementos físicos de una intranet, se ajusta a las necesidades que se tiene; por este motivo pueden encontrarse dentro de un mismo edificio, varias intranets con diferentes topologías, y con el tiempo pueden surgir la necesidad de interconectarlas. Se puede ver que por diferentes razones se hace necesaria tanto la segmentación como la interconexión de intranets, y que ambos conceptos a pesar de llevar a un punto en común, parte de necesidades distintas. La tabla siguiente refleja de forma escueta diferentes casos en los que se plantea la necesidad de segmentar y/o interconectar intranets, dando la opción más idónea para cada uno de los casos planteados NECESIDAD SOLUCIÓN Debido a la necesidad de manejo de Dividir la red actual en varios segmenaplicaciones que producen un trasiego impor- tos: segmentar la red. tante de información aumenta el tráfico en la red; esto lleva a que baje el rendimiento de la misma. Se tiene que ampliar el número de puesCrear un nuevo segmento de red en el tos que forman la intranet, pero se necesita que se pondrán los nuevos puestos e incluso mantener el rendimiento de la red al que se pueden mover puestos, que por disposición física pueda ser conveniente que pertenezcan al nuevo segmento creado en la misma. Se tiene la necesidad de unir dos intraSe puede optar por definir una de ellas nets exactamente iguales en la empresa como un segmento de la otra y unirlas de esta forma; o bien, interconectar las dos intranets con un dispositivo de nivel bajo. Se tiene la necesidad de unir dos o más Es necesario la interconexión de ambas redes con diferentes topologías pero trabajan- redes a través de dispositivos interconectantes do con los mismos protocolos de comunica- de nivel medio ciones. Se tiene la necesidad de unir dos o más Es necesario la interconexión de ambas redes totalmente diferentes, es decir, de arqui- redes a través de dispositivos interconectantes tecturas diferentes. de nivel alto. Conexión de Redes La conexión entre diferentes redes puede realizarse de variadas maneras, dependiendo si las redes son compatibles a nivel de las capas física, de enlace o de red. En lo que sigue analizaremos los diferentes dispositivos de interconexión existentes. Licenciado Gustavo Rei Pág. Nro. 61 Comunicación de Datos − Redes de Computadores Capa Física: Repetidores (Hub) Se utilizan para conectar redes con las mismas características físicas, generalmente para poder cubrir una distancia mayor que la permitida por el medio físico. Los repetidores son dispositivos que se conectan a más de un medio físico, y reciben todas los bits desde ellos, transmitiéndolas a todos los demás medios físicos. No poseen memoria, de forma que simplemente copian lo transmitido por las estaciones desde un medio a otro. Generalmente los medios físico son iguales, y si no lo son, deben ser por lo menos de comportamiento similar (de difusión, por ejemplo). Cuando dos estaciones transmiten desde medios distintos simultáneamente, se produce una distorsión de la señal, perdiéndose la información transmitida por ambas estaciones, lo cual constituye una colisión. Dispositivo que interconecta host dentro de una red. Es el dispositivo de interconexión más simple que existe. Sus principales características son: Se trata de un armario de conexiones donde se centralizan todas las conexiones de una red, es decir un dispositivo con muchos puertos de entrada y salida. No tiene ninguna función aparte de centralizar conexiones. Se suelen utilizar para implementar topologías en estrella física, pero funcionando como un anillo o como un bus lógico. Hubs activos: permiten conectar nodos a distancias de hasta 609 metros, suelen tener entre 8 y 12 puertos y realizan funciones de amplificación y repetición de la señal. Los más complejos además realizan estadísticas. Hubs pasivos: son simples armarios de conexiones. Permiten conectar nodos a distancias de hasta 30 metros. Generalmente suelen tener entre 8 y 12 puertos. En tanto las características de los repetidores son: Conectan a nivel físico dos intranets, o dos segmentos de intranet. Hay que tener en cuenta que cuando la distancia entre dos host es grande , la señal que viaja por la línea se atenúa y hay que regenerarla. Permiten resolver problemas de limitación de distancias en un segmento de intranet. Se trata de un dispositivo que únicamente repite la señal transmitida evitando su atenuación; de esta forma se puede ampliar la longitud del cable que soporta la red. Al trabajar al nivel más bajo de la pila de protocolos obliga a que: Los dos segmentos que interconecta tenga el mismo acceso al medio y trabajen con los mismos protocolos. Los dos segmentos tengan la misma dirección de red. Subcapa de Acceso al Medio: Puentes (Bridges) Los puentes son dispositivos que repiten todas las tramas desde cada entrada a todas sus salidas. Se utilizan cuando las redes a conectar son compatibles a nivel MAC, para conectar redes con mismo protocolo de enlace pero que usan medios físicos diferentes. También se producen colisiones cuando dos estaciones en redes diferentes transmiten simultáneamente. Sus principales características son: Son dispositivos que ayudan a resolver el problema de limitación de distancias, junto con el problema de limitación del número de nodos de una red. Trabajan al nivel de enlace del modelo OSI, por lo que pueden interconectar redes que cumplan las normas del modelo 802 (3, 4 y 5). Si los protocolos por encima de estos niveles son diferentes en ambas redes, el puente no es consciente, y por tanto no puede resolver los problemas que puedan presentársele. Se utilizan para: Ampliar la extensión de la red, o el número de nodos que la constituyen. Reducir la carga en una red con mucho tráfico, uniendo segmentos diferentes de una misma red. Unir redes con la misma topología y método de acceso al medio, o diferentes. Cuando un puente une redes exactamente iguales, su función se reduce exclusivamente a direccionar el paquete hacia la subred destino. Cuando un puente une redes diferentes, debe realizar funciones de traducción entre las tramas de una topología a otra. Cada segmento de red, o red interconectada con un puente, tiene una dirección de red diferente. Los puentes no entienden de direcciones IP, ya que trabajan en otro nivel. Los puentes realizan las siguientes funciones: Licenciado Gustavo Rei Pág. Nro. 62 Comunicación de Datos − Redes de Computadores Reenvio de tramas: constituye una forma de filtrado. Un puente solo reenvía a un segmento a aquellos paquetes cuya dirección de red lo requiera, no traspasando el puente los paquetes que vayan dirigidos a nodos locales a un segmento. Por tanto, cuando un paquete llega a un puente, éste examina la dirección física destino contenida en él, determinado así si el paquete debe atravesar el puente o no. Técnicas de aprendizaje: los puentes construyen tablas de dirección que describen las rutas, bien sea mediante el examen del flujo de los paquetes (puenteado transparente) o bien con la obtención de la información de los “paquetes exploradores” (encaminamiento fuente) que han aprendido durante sus viajes la topología de la red. Los primeros puentes requerían que los gestores de la red introdujeran a mano las tablas de dirección. Los puentes trabajan con direcciones físicas Arquitectura de un puente TABLA ENTIDAD DE PROTOCOLO DE PUENTE DES BUF FERS ME Circuitería MA C Circuitería MAC Puer- Tabla de destinos ayudará a decidir a la entidad de protocolo de puente por qué puerto saldrá la trama. TABLA DESTINOS Puerto 1 2 Dirección 08-AA-CC ... 08-AC ... Tiempo Puentes transparentes Se basan en el principio de que para hacerlo funcionar solo hace falta conectarlo a los dos segmentos que se quiere conectar, no hace falta configurarlo. Lo único que requiere es que las redes respeten el estándar de direccionamiento 802 En su operación se distinguen tres fases: Retransmisión, si el puente no sabe dónde está la estación destino inunda todos los segmentos con la trama excepto por el que le ha llegado. Si el puente ya sabe donde está la estación destino simplemente la retransmite hacia el segmento de red donde se encuentra la estación destino. Aprendizaje retrospectivo, el puente extrae información de las tramas que le van llegando. Control de bucles Ejemplo: Licenciado Gustavo Rei Pág. Nro. 63 Comunicación de Datos − Redes de Computadores P4 P1 P3 P1 P2 P2 2 1 Suponemos que se transmite una trama desde la estación A a la E. B1 leerá la dirección destino de la trama y la retransmitirá por P2 y provocará que la tabla de destinos se actualice colocando la dirección destino A por el puente P1 B2 capturará la trama por P1, como en la tabla de destinos no hay nada, la retransmitirá por todos los puertos menos por el que le ha llegado y actualizará su tabla de destinos con la dirección de origen de esa trama. Transmite una trama de E hasta A Capturará B2 la trama, como la dirección de destino la tiene en su tabla la transmitirá por su puerto asociado en la tabla P1 y pondrá en la tabla la dirección origen. Si se cambia una estación de red, tendremos una entrada errónea en la tabla de la red hasta que esa estación mande una trama o venza el temporizador asociado a dicha entrada de la tabla, en cuyo caso se borra la entrada. Control de bucles Se ponen dos puentes por razones de seguridad y fiabilidad. Para evitar los bucles debemos conseguir que solo funcione un puente y que el otro solo entre en funcionamiento si falla el otro. Para que esto funcione se usa el algoritmo “spanning-tree” de forma que se define un camino único para dos segmentos de red y así se evitan los bucles. LAN 2 1 3 4 LAN 5 Licenciado Gustavo Rei Pág. Nro. 64 Comunicación de Datos − Redes de Computadores LAN 1 2 LAN 3 LAN 4 ¿Cómo aplicamos el algoritmo en este caso? Cuando aplicamos el algoritmo los puentes transparentes dejan de serlo, ya que los puentes necesitan un identificador único dentro de la red. Además será necesario definir unas direcciones multicast que permitan intercambiar información entre los puentes. También será necesario identificar dentro de cada puente sus puertos con un identificador único. Pasos a seguir para construir el árbol de expansión: Definir el puente raíz, el que tiene el identificador más bajo (B1) Costo de comunicación entre cada uno de los puentes y el puente raíz, se puede calcular de diversas maneras o puede ser configurado por el administrador. Cada puente debe ser capaz de determinar cual es su puerto raíz, el que le permite enlazar con el puente raíz por el camino de menor costo. Todos los puentes tienen unos puertos designados, para cada segmento de LAN hay un puerto designado, que es a través del cual se envían y reciben tramas a ese segmento de red. D D 1 LAN 1 R D LAN 3 R D 2 LAN 2 R R 3 D LAN 4 4 LAN 5 Si cae B3 se podrá acceder a la LAN 5 a través de B4 o B5 Los puentes transparentes se utilizan en redes del tipo 802.3, mientras que en redes 802.5 se usan puentes con encaminamiento desde el origen (source route), estos asumen que la ruta completa fuente-destino está presente en todas las tramas interedes, luego cada estación debe conocer la ruta completa has todos los posibles destinos. Estación A LAN 1 B1 LAN 2 B2 LAN 3 B4 LAN 5 Licenciado Gustavo Rei Pág. Nro. 65 Comunicación de Datos − Redes de Computadores Estación B LAN 4 La ruta entre las estaciones A y B constará de: B1-LAN2 B2-LAN3 B4-LAN5 Cada puente se identifica con 4 bits y una red con 12 bits. Luego una ruta estará formada por varios pares de octetos (puente/red) Esta información va en el campo de datos de la trama, lo cual se indica a través de un bit RII (routing information indicator), que es el bit más significativo del campo dirección de origen. Direcciones MAC, primer bit indica si la dirección es única (0), o de un conjunto de estaciones (1). RII D A DAA TOS RIF C Route Information Field D D RC (Route Control) T L M IPO ONG AYOR TIPO = estaciones a las que va la trama LONG = longitud del campo RIF en octetos D = indica si la trama va o vuelve MAYOR = indica el mayor tamaño de trama que puede atravesar el anillo RD (Route Descriptor) 4 PU ENTE 12 R ED Funcionamiento de estos puentes: B P TE 2 P TE 1 Licenciado Gustavo Rei P TE 3 Pág. Nro. 66 Comunicación de Datos − Redes de Computadores P A TE 4 La estación A quiere enviar una trama a la estación B: 1º) Averiguar si la estación B está en el mismo anillo, enviando una trama de exploración dentro del propio anillo. 2º) Enviar la trama fuera del anillo Si A sabe la ruta completa hasta B, marcará el bit RII a 1 y grabará toda la ruta en el campo de datos. Si A no sabe la ruta hasta B, envía tramas de exploración fuera del anillo. Hay dos tipos de tramas de exploración: SRB (Single Route Broadcast) ARB (All Route Broadcast) En primer lugar se envían tramas SRB y se construye un árbol de expansión. Cuando una de estas tramas llega a B, ésta contesta con tramas ARB con dos condiciones: Contador de saltos Que una trama no pase dos veces por el mismo anillo A la estación A le llegarán varias tramas con la ruta marcada y elegirá una (la primera en llegar, la que le permita una mayor tamaño de trama, etc.) Capa de Enlace: Switch Los switch son dispositivos que son capaces de analizar las direcciones de enlace (de origen y destino) para determinar por qué salida deben transmitir las tramas que reciben. De esta forma, sólo transmiten las tramas por el medio en el cual está conectado directamente el destino. Son generalmente inteligentes, de manera que no se los necesita programar de antemano. Inicialmente no saben nada acerca de las direcciones, pero cuando comienzan a recibir, analizan las direcciones de origen y las almacenan en una tabla, asociándoles un identificador de la entrada por la cual llegan. Así, cuando se desea transmitir una trama, basta analizar l tabla buscando la dirección de destino, para saber por qué salida se la debe transmitir. Si todavía no se conoce por dónde se debe hacer, se transmite por todas ellas, salvo por la que se recibió la trama. Se utiliza para mejorar el rendimiento de las redes, debido a que elimina muchas colisiones al localizar el tráfico. Capa de Red: Encaminador (Router) Son máquinas que están conectadas a más de un tipo de subred, y que son capaces de traducir protocolos de enlace diferentes, lo cual puede ser un problema muy complejo dependiendo de qué combinación protocolos se utilice. El SW traductor se encuentra como entidad de capa de red. Sus principales características son: Es como un puente incorporando características avanzadas. Trabajan a nivel de red del modelo OSI, por tanto trabajan con direcciones IP. Un router es dependiente del protocolo. Permite conectar redes de área local y de área extensa. Habitualmente se utilizan para conectar una red de área local a una red de área extensa. Son capaces de elegir la ruta más eficiente que debe seguir un paquete en el momento de recibirlo. La forma que tienen de funcionar es la siguiente. Cuando llega un paquete al router, éste examina la dirección destino y lo envía hacia allí a través de una ruta predeterminada. Si la dirección destino pertenece a una de las redes que el router interconecta, entonces envía el paquete directamente a ella; en otro caso enviará el paquete a otro router más próximo a la dirección destino. Para saber el camino por el que el router debe enviar un paquete recibido, examina sus propias tablas de encaminamiento. Existen routers multiprotocolo que son capaces de interconectar redes que funcionan con distintos protocolos; para ello incorporan un software que pasa un paquete de un protocolo a otro, aunque no son soportados todos los protocolos. Cada segmento de red conectado a través de un router tiene una dirección de red diferente. Licenciado Gustavo Rei Pág. Nro. 67 Comunicación de Datos − Redes de Computadores A veces se los utiliza con otros fines, puesto que tienen control directo sobre todo lo que ocurre a nivel de la capa de red: Firewall: Es un SW de capa de red que es capaz de discriminar el paso de paquetes desde una subred a otra. Se utiliza para evitar la entrada de intrusos, controlando el acceso por medio de filtros (de direcciones, de protocolos, etc.); Gateway: Es un SW de router que además es capaz de traducir protocolos de los niveles más altos, para permitir comunicación entre subredes con protocolos de red diferentes. Puede opcionalmente traducir protocolos de aplicación de una subred que no son compatibles en la otra. Por ejemplo, se puede traducir el protocolo de correo Microsoft (basado en NetBEUI) al protocolo de correo de e-mail (basado en TCP/IP) Sus características principales son: Se trata de un ordenador u otro dispositivo que interconecta redes radicalmente distintas. Trabaja al nivel de aplicación del modelo OSI. Cuando se habla de pasarelas a nivel de redes de área local, en realidad se está hablando de routers. Son capaces de traducir información de una aplicación a otra, como por ejemplo las pasarelas de correo electrónico. Resumen de Características Asunto Hub Bridge Entidad Compatible Capa Física Supcapa MAC Traduce Bits de un medio a Tramas otros Poseen Memoria No Si Selectivo No No Inteligente No No Objetivo Aumentar alcance Conectar diferentes medios físicos Switch Capa de Enlace Tramas Router Capa de Red Protocolo de Enlace Si Si Si Si Si (automático) Si (manual) Mejorar rendi- Conectar subredes miento diferentes Routers N3 N N3 N N2 N N1 N2 3 N2 2 N1 1 N1 El hecho de operar a nivel de red da la posibilidad de intercambiar tramas entre redes muy distintas. Su funcionamiento es un poco más lento que los puentes ya que necesitan más tiempo de proceso. Los routers se usan para constituir redes de área extensa. Muchas veces aparecen como dos equipos unidos mediante una línea de comunicación, lo que se denomina semipuentes o semirouters. Los Brouters utilizan el nivel 3 para determinados protocolos y otros se usan a nivel 2, es decir, algunos protocolos se puentean y otros sé enrutan. ROUTER 193.118.12.0 i Licenciado Gustavo Rei 193.120.12.0 Pág. Nro. 68 Comunicación de Datos − Redes de Computadores PC PC El router tiene una tabla de direcciones de red que le indica si debe pasar una trama a la otra red o no. Los routers son los encargados de la fragmentación ya que conectan las dos redes y saben el tamaño máximo de los paquetes que pueden circular por ellas. • Fragmentación transparente: el router fragmenta los paquetes que le llegan si es necesario. Ventaja: las estaciones no se preocupan del problema de la fragmentación Problemas: se pierde la posibilidad de usar la red de forma más eficiente, no se pueden usar rutas distintas para los diversos fragmentos de un paquete. • Fragmentación no transparente: cuando el router de entrada a una red recibe un paquete que no cabe en esa red, lo fragmenta pero nadie lo reconstruye sino que es la estación final la encargada de sacar todos los datos de los fragmentos. Ventaja: los paquetes se pueden encaminar de una manera óptima. Problema: todas las estaciones deben ser capaces de reensamblar los paquetes, además la carga de la red aumenta. Otro problema es el de la identificación de los fragmentos. IGRP (Internet Gateway Routing Protocol), sirve para que los routers intercambien sus tablas de encaminamiento. DNS, sistema que produce las traducciones entre los nombres y las direcciones IP. LOCAL 1 199.199.2.1 199.199.2.2 199.199.2.3 Para que puedan comunicarse estas dos estaciones, la estación de origen debe conocer la dirección MAC de destino, para ello vierte una trama ARP en el medio con la dirección IP de la estación destino, la cual contestará con su dirección MAC. ¿Qué pasa si la dirección destino es otra red? Se seguirá el mismo mecanismo anterior 199.199.3.0 LOCAL 1 199.199.2.1 199.199.1.202 Dir. IP 199.199.2.2 Máscara 255.255.255.0 LONDRES ¿Cómo se comunican estas dos máquinas? Licenciado Gustavo Rei Pág. Nro. 69 Comunicación de Datos − Redes de Computadores La estación origen comprueba si la estación destino está en su misma red, como no es así, entonces es necesario recurrir al router, para ello se debe averiguar la dirección MAC del router a partir de la dirección IP. Una vez le llega la trama al router, éste consultará sus tablas y mandará la trama por un de sus líneas de salida. 199.199.1.202 BRIDGE 199.199.2.2 La estación origen construirá una trama ARP para conocer la dirección MAC de destino, el puente difundirá la trama por todas sus salidas y la estación destino contestará. Si usamos un router y no queremos que una trama no salga de un segmento se puede conseguir, en cambio usando puentes transparentes una trama se puede transmitir por varios segmentos. Antes de aplicar el protocolo ARP se debe asegurar que la estación destino está en la misma red, para ello se aplica el AND bit a bit de la dirección destino con la máscara. 199.199.1.1 255.255.255.0 199.199.1.0 AND 199.199.1.252 255.255.255.0 199.199.1.0 AND Diseño de Topologías de Redes Cuando se diseña la topología de una red, se deben tener en cuenta los siguientes consejos básicos: • Para conexiones entre diferentes edificios, es mejor usar fibra óptica o algún otro medio no eléctrico, para evitar el efectos dañinos por diferencias de nivel tierra (que deteriora interfaces y hace aparecer colisiones falsas); • Cuando hay muchas estaciones conectadas entre sí, y el tráfico es todos con todos, es conveniente utilizar un switch a un hub, para evitar las colisiones entre estaciones que no se comunican entre sí; • Si hay muchas estaciones tratando de comunicarse con una estación particular, no importa si es hub o switch, pero es conveniente que la conexión desde éste hacia la estación particular debe ser más rápida que el resto, para evitar la congestión en esa línea; • En general, cuando se tienen muchas estaciones que se comunican continuamente con alguna en particular (servidor), y raras veces entre sí, conviene una topología jerárquica con el servidor conectado a un switch, utilizando hubs en los nodos más cercanos a las estaciones para abaratar costos (Ver figura 1); • Cuando se usa un hub, la velocidad de transferencia se puede aumentar cambiándolo por un switch; Los principales elementos que necesitamos para instalar una red son : Tarjetas de interfaz de red. Cable. Protocolos de comunicaciones. Sistema operativo de red. Aplicaciones capaces de funcionar en red. Tarjetas De Interfaz De Red Licenciado Gustavo Rei Pág. Nro. 70 Comunicación de Datos − Redes de Computadores Las tarjetas de interfaz de red (NICs - Network Interface Cards) son adaptadores instalados en un dispositivo, conectándolo de esta forma en red. Es el pilar en el que sustenta toda red local, y el único elemento imprescindible para enlazar dos ordenadores a buena velocidad (excepción hecha del cable y el software). Existen tarjetas para distintos tipos de redes. Las principales características de una tarjeta de red son : Operan a nivel físico del modelo OSI : Las normas que rigen las tarjetas determinan sus características , y su circuitería gestiona muchas de las funciones de la comunicación en red como : Especificaciones mecánicas : Tipos de conectores para el cable, por ejemplo. Especificaciones eléctricas : definen los métodos de transmisión de la información y las señales de control para dicha transferencia. Método de acceso al medio : es el tipo de algoritmo que se utiliza para acceder al cable que sostiene la red. Estos métodos están definidos por las normas 802.x del IEEE. La circuitería de la tarjeta de red determina, antes del comienzo de la transmisión de los datos, elementos como velocidad de transmisión, tamaño del paquete, time-out, tamaño de los buffers. Una vez que estos elementos se han establecido, empieza la verdadera transmisión, realizándose una conversión de datos a transmitir a dos niveles : En primer lugar se pasa de paralelo a serie para transmitirlos como flujo de bits. Seguidamente se codifican y a veces se comprimen para un mejor rendimiento en la transmisión. la dirección física es un concepto asociado a la tarjeta de red : Cada nodo de una red tiene una dirección asignada que depende de los protocolos de comunicaciones que esté utilizando. La dirección física habitualmente viene definida de fábrica, por lo que no se puede modificar. Sobre esta dirección física se definen otras direcciones, como puede ser la dirección IP para redes que estén funcionando con TCP/IP. Determinación De La Velocidad De Transmisión En Una Red Existen varios factores que determinan la velocidad de transmisión de una red, entre ellos podemos destacar : El cable utilizado para la conexión. Dentro del cable existen factores como : El ancho de banda permitido. La longitud. Existen otros factores que determinan el rendimiento de la red, son : Las tarjetas de red. El tamaño del bus de datos de las máquinas. La cantidad de retransmisiones que se pueden hacer. Resto de la Red Switch Servidor Hub Hub Estaciones Estaciones Figura 1: Topología Jerárquica para muchas estaciones y un servidor Concepto de segmento Un segmento es un bus lineal al que están conectadas varias estaciones y que termina en los extremos. Las características son: Licenciado Gustavo Rei Pág. Nro. 71 Comunicación de Datos − Redes de Computadores Cuando se tiene una red grande se divide en trozos, llamados segmentos a cada uno de ellos. Para interconectar varios segmentos se utilizan bridges o routers El rendimiento de una red aumenta al dividirla en segmentos A cada segmento junto a las estaciones a él conectadas se las llama subred Segmentación: sus necesidades Segmentar una intranet consiste en dividirla en subredes para así poder aumentar el número de ordenadores conectados a ella y/o el rendimiento de la misma. Cuando se segmenta una intranet, lo que se esta haciendo es crear subredes pequeñas que, por decirlo de alguna manera, se autogestionan, de forma que la comunicación entre segmentos se realiza cuando es necesario, es decir, cuando un nodo de un segmento quiere comunicarse con un nodo del otro segmento; mientras tanto cada segmento de la intranet está trabajando de forma independiente por lo que en una misma intranet se están produciendo varias comunicaciones de forma simultánea; evidentemente esto mejora el rendimiento de la intranet. La tabla siguiente refleja las longitudes máximas de los segmentos dependiendo de las diferentes topologías de red. TOPOLOGÍAS Ethernet gruesa Ethernet fina Ethernet de par trenzado Ethernet de fibra óptica Token-Ring de par trenza- LONGITUD 500 metros 185 metros 100 metros 2.000 metros 100 metros do El dispositivo que se utiliza para segmentar una red debe ser inteligente ya que debe ser capaz de decidir hacia qué segmento debe enviar la información llegado a él: si hacia el mismo segmento desde el que la recibió o hacia otro segmento diferente. Abstrayéndose de algunos detalles, es fácil pensar que segmentar una intranet, ya que se habla de subredes, es como interconectar intranets diferentes. Sin embargo, cuando se habla de segmentar se hace referencia a una única intranet; esto lleva asociado lo siguiente: una única topología, un único tipo de protocolo de comunicaciones, un único entorno de trabajo; cuando se habla de interconectar intranets, en la mayoría de los casos, las intranets tienen como mínimo topologías diferentes. No obstante, sí debe destacarse que los dispositivos que se utilizan para segmentar redes coinciden con algunos de los dispositivos que son utilizados para interconectar redes diferentes. Dependiendo del tipo de protocolos que se utilicen en la intranet segmentada, así como de dispositivos que se utilicen para realizar esta segmentación puede hacerse necesario o no el atribuir a cada segmento una dirección de red diferente. Cuando se trabaja con protocolos TCP/IP esto no es necesario, basta con que cada estación tenga su propia dirección IP, y que no aparezcan dos estaciones con la misma dirección, independientemente de si están o no en el mismo segmento de la intranet. Existen diferentes motivos por los que se puede hacer necesario la segmentación de una intranet, como pueden ser: Necesidad de sobrepasar el número de nodos que la topología permite. La limitación del numero de nodos en una intranet vienen impuesta por varios factores, como son el método de acceso al medio que se utiliza, el tipo de cable, el ancho de banda, etc. Mejorar el rendimiento de una intranet en la que ha aumentado el tráfico. En ocasiones, una intranet que inicialmente funciona bien, con un tiempo de repuesta aceptable, empieza a perder prestaciones; el motivo es claro: de forma paulatina se ha ido incrementando el número de comunicaciones que la intranet debe gestionar, por diferentes motivos como que los usuarios comienzan a conocer la red y la aprovechan más, o que se han ido instalando más aplicaciones. Licenciado Gustavo Rei Pág. Nro. 72 Comunicación de Datos − Redes de Computadores Existen diferentes formas de paliar este problema: Una de ellas, la más drástica es cambiar algún elemento físico de la intranet: por ejemplo sustituir el cable que implementa la intranet por uno que pueda soportar velocidades mayores, cambiar las tarjetas de red por otras más rápidas, e incluso cambiar la topología empleada. Una solución menos concluyente consiste en segmentar la intranet. Dividirla estratégicamente en dos subredes, reduciendo de esta forma el tráfico en cada una de ellas. Por ejemplo, sobre una intranet inicial repartida por varias aulas de un centro, se pueden crear subredes por aula, de forma que en cada aula se mejorará el rendimiento de la red. La interconexión de intranets se puede establecer a varios niveles: desde el nivel físico, a través de un dispositivo llamado hub (concentrador) hasta niveles más altos (niveles del modelo OSI) a través de dispositivos como un puente (Bridge) o un router (encaminador). La tabla siguiente muestra el nivel en el que trabajan los diferentes dispositivos. DISPOSITIVO repetidor concentrador puente encaminador pasarela NIVEL físico fisico enlace red aplicación Para la segmentación de intranets, y teniendo en cuenta que uno de los motivos por el que se realiza esta operación es mejorar el rendimiento de la red, es necesario emplear dispositivos inteligentes, como pueden ser un encaminador o un puente. Las redes locales tienen una serie de limitaciones inherentes a su naturaleza: Limitaciones en el número de host. Limitaciones en la distancia que puede cubrir. Limitaciones en el número y tipo de nodos que se pueden conectar. Limitaciones en el acceso a los nodos. Limitaciones en la comunicación con los usuarios. Para resolver estos problemas se utilizan soluciones de dos naturalezas: software y hardware: Elementos de interconexión. Software de servicios. De forma genérica existen varias maneras de ampliar las intranets: Hubs: Para unir hosts dentro de una red. Repetidores: conexión a nivel físico, en el mismo segmento. Bridges: Conexión a nivel de enlace entre dos segmentos (iguales o distintos). Routers: Conexión a nivel de red. Gateways: Conexión a nivel de presentación, entre dos redes distintas. Licenciado Gustavo Rei Pág. Nro. 73 Comunicación de Datos − Redes de Computadores Capa de Aplicación Esta capa contiene os programas de usuario o aplicaciones. Los servicios que proveen son muy variados y casi siempre dirigidos a un problema en particular. Cuando hacen uso de la red, deben hacerlo a través de los servicios que presta la capa de presentación. Conceptos Básicos A continuación se revisan una serie de conceptos que deben estar claros antes de entrar en materia: Proceso: Es el conjunto de código de programa en ejecución y los datos asociados a él, esto es, de cada instancia de él en ejecución. Hebra: Es cada línea de ejecución paralela de un proceso, las cuales comparten datos y/o código del programa con otras hebras de un mismo proceso. Tiempo de Tarea: Tiempo durante el cual el proceso está siendo ejecutado por el procesador. Tiempo de Interrupción: Tiempo durante el cual el proceso no está siendo ejecutado por el procesador. Comunicación de Procesos: Forma de intercambiar información entre procesos. Generalmente se usan dos técnicas: Paso de Mensajes (el Sistema Operativo se encarga de la comunicación) y Memoria Compartida (El S.O. no necesita hacer nada). Aplicaciones Estándar más Comunes Transferencia y Acceso Remoto de Archivos Uno de los usos más comunes de las redes es el acceso a archivos en otras máquinas, y la transferencia de ellos desde una máquina a otra. Lo anterior logra mediante dos tipos de aplicaciones: Transferencia de Archivos (ftp, http): Consiste en la copia de archivos a través de la red, y es una de las formas más simples de hacerlo. Consiste fundamentalmente en copiar el archivo de una máquina a la otra. Si el archivo original se actualiza frecuentemente, o es compartido por varios usuarios, no se realiza ningún tipo de control especial. Acceso Remoto a Archivos (NFS, Novell): Consisten en servidores virtuales de archivos, los que controlan la concurrencia de usuarios sobre ellos. Los servidores de archivos se caracterizan por tres propiedades: i) Estructura de los archivos: dónde y de qué manera están almacenados; ii) Atributos de los archivos: nombre, propietario, operaciones permitidas, fecha, etc.; iii) Operaciones sobre archivos: abrir, leer, escribir, cerrar, etc. El problema que surge en los servidores de archivos es el de la concurrencia, el cual se solucione generalmente mediante el uso de tres soluciones: Candado (protocolo con conexión): existen candados compartidos (para lectura) y candados exclusivos (para escritura). Así, a un usuario se le acepta un candado exclusivo sólo si el archivo no tiene candados. Se usa generalmente para el control de archivos compartidos dentro de una misma máquina; Transacciones (protocolo sin conexión): cada requerimiento al servidor es atómico, por lo cual no se necesitan candados. Se usa generalmente en servidores de archivos para varias máquinas; Versión más Reciente: es una solución mixta que considera el crear una nueva versión de cada archivo cuando se recibe una solicitud de escritura. Así, los requerimientos de lectura que lleguen antes de finalizar la escritura de la nueva versión son atendidos con la versión completa más reciente. Versiones anteriores son eliminadas cuando ya exista una versión más nueva y nadie más las esté utilizando. Otra variedad de servidor de archivos posee múltiples copias de los archivos en diferentes ubicaciones, para los siguientes fines: Acceso muy Remoto: mejorar la velocidad de acceso desde lugares muy alejados; Dividir Carga: división de la carga de trabajo a través de varias máquinas; Acceso Inactivo: acceso a archivos cuando un servidor no está activo; Más Fiabilidad: múltiples copias en caso de daño o pérdida. Licenciado Gustavo Rei Pág. Nro. 74 Comunicación de Datos − Redes de Computadores Correo Electrónico El correo electrónico es una de las aplicaciones que mayor adeptos ha ganado con la creación de las redes de computadores. Originalmente se trataba como transferencia de archivos de texto, y actualmente contienen, mediante codificación MIME, texto con formato, gráficos, sonidos, etc. Los problemas que surgen en este tipo de aplicaciones son los siguientes: Composición: Transferencia: Notificación: Conversión: Formato: Disposición: creación de la cabecera, mensaje, respuestas, etc.; cómo llevar el mensaje hasta el receptor; cómo saber si fue recibido; convertir el mensaje a representación del receptor; desplegar correctamente el mensaje; qué hacer con los mensajes recibidos; Terminales Virtuales Las aplicaciones de terminales virtuales son tales que el servidor de terminal cree que son terminales físicas. Es importante entonces que el servidor sepa qué tipo de terminal se está emulando. Además, la aplicación de terminal virtual debe imitar todas las características físicas de las terminales, como son los retardos de respuesta, los formatos especiales de los paquetes transferidos por la red, etc. El programa más utilizado es telnet. Licenciado Gustavo Rei Pág. Nro. 75 Comunicación de Datos − Redes de Computadores Capa de Presentación Los objetivos fundamentales de esta capa son: • Codificación: Transferencia Eficiente: • Seguridad: Encriptación de la Información: • Conversión a Formatos Estándares: Teoría de la Información y Codificación de Fuentes Para aprovechar mejor los canales de comunicación, es deseable que los datos transferidos contenga la mayor cantidad información útil posible. La manera de hacer esto es utilizar algoritmos de compresión de datos, que eliminan las redundancias de ellos, optimizando la representación y por consiguiente disminuyendo la cantidad de datos a transferir. Las ventajas de comprimir los datos son: • • • • Menor espacio de almacenamiento; Menor carga de canales de transferencia; Menor costo de comunicación; Mayor seguridad; Las desventajas de comprimir los datos son: • • • • SW o HW más complicado; Tiempo de CPU necesario; Menor portabilidad; menor fiabilidad; Las técnicas utilizadas para la compresión de datos se clasifican en: • • • • • La sustitución de patrones frecuentes (“#A” en vez de “abdsodi”); La sustitución de series de caracteres repetidos (“#6v7” en vez de “777777”); Compresión de datos ordenados (“#1-6” en vez de “123456”); Diferenciación; Códigos de longitud variable (Huffmann, Extensión de Código, Adaptativos); Teoría de la información La teoría actual de la información postula que: Información: Datos recibidos desde una fuente que esclarecen una duda en el receptor; Mensaje: Manifestación física de los datos transferidos; • • • • La información consiste de datos enviados de una fuente a un receptor a través de algún medio; Los datos constituyen información sólo cuando esclarecen una duda en el receptor; La duda en el receptor implica la existencia de alternativas; Las alternativas están dadas por un conjunto de símbolos (alfabeto), el cual existe tanto en la fuente como en el destino; Así, la función del emisor es seleccionar un conjunto de símbolos del alfabeto y enviarlos por un canal al receptor, pero estos datos sólo son información si dicen algo nuevo al receptor. Tenemos que: • Un mensaje largo no tiene más información por ser largo; • Mientras menor sea la información del mensaje, menos símbolos del alfabeto se necesitan para representarla; • Mientras menor sea la información más rápido se puede transmitir por un canal de transferencia de datos; • La medida de la información (intuitiva) es una medida del grado de libertad que se tiene al elegir los símbolos del alfabeto en la fuente al enviar un mensaje; Licenciado Gustavo Rei Pág. Nro. 76 Comunicación de Datos − Redes de Computadores Por lo tanto, podemos decir que la medida de la información comprende probabilidades de elección de símbolos de un alfabeto. Mientras menos probable sea que se elija un símbolo, más información contiene este símbolo. Veamos: Sea Σ un alfabeto. Sean A , B ∈Σ dos símbolos del alfabeto. Sea PA su probabilidad de que se elija para ser transmitido, con 0 ≤ PA ≤ 1 . ( ) la información mutua del símbolo A donde f es desconocido. Sea I A = f PA Intuitivamente sabemos que IA ≥ 0 Además, y lim f ( PA ) = 0 PA →1 PA > PB ⇒ f ( PA ) < f ( PB ) Cuando se recibe A se reciben unidades de información, por lo que si además se recibe B se recibe en total, si C = AB IC = I A + IB Si A y B son estadísticamente independientes, tenemos PC = PA ⋅ PB y luego I C = f ( PA ⋅ PB ) Igualando ambas ecuaciones tenemos f ( PA ) + f ( PB ) = f ( PA ⋅ PB ) De aquí deducimos que ⎛ 1⎞ I A = log b ⎜ ⎟ ⎝ PA ⎠ La ecuación anterior se dice que es la definición de la información mutua (relativa al resto del alfabeto) del símbolo A. Este valor es diferente para cada base b, y según el valor de b se tienen diversas unidades de información: si b = 2 la unidad es el bit. Para el caso de transferencias binarias, Σ={0,1}, se tiene que en el mejor de los casos, esto es, cuando la probabilidad de recibir cualquiera de los dos binits (bits , tradicionales) es igual a ½, la cantidad de información que lleva cada uno es 1 bit. Entropía: Información Media Consideremos un alfabeto de m caracteres. Cuando se recibe el caracter j, se tiene ⎛ 1⎞ I j = log⎜⎜ ⎟⎟ [bits] ⎝ Pj ⎠ Consideremos un mensaje muy largo, con N >> 0 su longitud. Tenemos que el símbolo j aparece N ⋅ Pj veces en el mensaje. La información total en el mensaje es m I T = ∑ N ⋅ Pj ⋅ I j [bits] j =1 Se define la entropía del alfabeto como m IT H= =∑P ⋅I N j =1 j j Licenciado Gustavo Rei Pág. Nro. 77 Comunicación de Datos − Redes de Computadores La entropía de un alfabeto da una medida de cuán bueno es para representar información. Mientras mayor sea la entropía de un alfabeto, menos símbolos se necesitan para representar la misma información. La entropía máxima se da cuando la probabilidad de que aparezcan es igual, y si este es el caso se tiene: H max = log( m) Codificación de la Fuente Utilizaremos la teoría mostrada para codificar los símbolos de un alfabeto fuente de manera de maximizar la entropía del alfabeto transferido. El reto es codificar un alfabeto original en otro (usualmente el binario) de la mejor manera posible, para minimizar el largo de los mensajes enviados al receptor. En los mensajes a transmitir se tiene que son de largo: m L = ∑ Pi ⋅ I i i que es el largo necesario para transmitir m símbolos dados. Luego se tiene que debemos minimizar L, sabiendo que (teorema de codificación de fuentes): H ( p ) ≤ L ≤ H ( p) + 1 Lo que se hace es construir códigos de longitud variable adaptados a la fuente, en el sentido de saber de antemano las probabilidades de aparición de los símbolos. Códigos SEAN S EL ALFABETO FUENTE Y X EL ALFABETO CÓDIGO. LA CODIFICACIÓN ESTABLECE UNA CORRESPONDENCIA DE TODAS LAS SECUENCIAS DE SÍMBOLOS POSIBLES DE S EN SECUENCIAS DE SÍMBOLOS DEL ALFABETO CÓDIGO X. Los códigos se clasifican en : No Bloque Singular Códi- No Unívo- gos co Bloque No Sin- No tantáneo gular Ins- Unívoco Instantáneo Códigos Bloque: Asignan a cada símbolo de S una secuencia fija de símbolos de X (pudiera no ser única); Códigos No Singulares: Código bloque con todas sus palabras distintas; Códigos Unívocos: Su extensión de orden n es no singular para todo valor de n, esto es, existe una única forma de descodificar una secuencia de símbolos de X; Códigos Instantáneos: Se puede descodificar una secuencia incompleta de símbolos de X sin necesidad de ir conociendo los símbolos que faltan; Análisis de Códigos Unívocos Los códigos unívocos deben satisfacer la siguiente condición (Kraft-McMillan): El siguiente algoritmo permite determinar si un código es o no unívoco: Sea C0 el conjunto de secuencias de X asociadas a cada símbolo de A. Sea i = 0, Verifíquese cada elemento de C0 en búsqueda de elementos que sean prefijos de los elementos de Ci, Sea Ci+1 el conjunto de sufijos de esos elementos (todos con todos). Licenciado Gustavo Rei Pág. Nro. 78 Comunicación de Datos − Redes de Computadores Verifíquese cada elemento de Ci en búsqueda de elementos que sean prefijos de los elementos de C0, Agrégese a Ci+1 el conjunto de sufijos de esos elementos (todos con todos). Si Ci+1 = ∅ entonces es código unívoco Si Ci+1 = Cj , j ≤ i entonces es código unívoco Si Ci+1 ∩ C0 ≠ ∅ entonces no es código unívoco i = i + 1; Volver a 3. Ejemplo: Sea S = { A, B, C, D, E, F, G } Sea X = { 0, 1, 2, 3, 4 } Sea la codificación como se muestra en la tabla: S C 0 C 1 A 0 C 2 3 4 1 B 2 1 1 C 3 D 11 E 03 F 41 G 1234 C 3 C 4 3 4 C 5 1 0 3 2 1 34 234 0 0 1 3 1 Como 03 está en C0, entonces no es código unívoco. Codificación de Huffmann (Instantáneo y Óptimo) El método de codificación de HuffMann genera códigos óptimos e instantáneos para un alfabeto de fuente con probabilidades conocidas. Veamos: Sea S alfabeto fuente de m símbolos Sea X alfabeto código de n símbolos Ordenar alfabeto de fuente según probabilidades, de mayor a menor Hacer q = ((m-1) mod (n+1)) + 1 Sumar las menores q probabilidades, y reordenar la lista Hacer q = n Mientras queden más de n elementos en la tabla volver a 5. Asignar código hacia atrás desde la última columna de la tabla Ejemplo: Sea S = { A, B, C, D, E, F, G, H, I } Sea X = { 0, 1, 2, 3 } Sean las probabilidades de los símbolos de S como se muestran en la tabla: S A B C D E F G Pi 0.24 0.21 0.17 0.13 0.10 0.07 0.04 Licenciado Gustavo Rei código 1 2 3 00 01 02 030 S A B C D E F GHI Pi 0.24 0.21 0.17 0.13 0.10 0.07 0.07 código 1 2 3 00 01 02 03 S DEFGHI A B C Pi 0.38 0.24 0.21 0.17 código 0 1 2 3 Pág. Nro. 79 Comunicación de Datos − Redes de Computadores H I 0.03 0.01 031 032 En la tercera columna tenemos el código instantáneo asociado a cada símbolo de la fuente. Existen algoritmos que, al momento de comprimir una secuencia de datos, la analizan, generan el código Huffman óptimo para la secuencia (analizando la cantidad de veces que aparece cada símbolo), y luego almacenan el código junto con los datos comprimidos. Estos son los códigos conocidos como adaptativos. A continuación se muestran los radios de compresión para dos de los más populares métodos de codificación: Fuente Texto (Inglés) Código de Pro- HuffMann Adaptativo 1.6 1.7 LZW (Lempel / Ziv / Welch ) 1.8 2.3 Código Binario 1.2 1.5 grama Otros Métodos Extensión de Código: En este método se codifican sólo los caracteres más frecuentes, y para los menos (las excepciones) se utilizan secuencias de escape simples (“ddd” -> “#d#d#d”) o con retorno (“ddd” -> “#ddd\”). Ejemplos de aplicación son el alfabeto CCITT n2 (Baudot) y el repertorio de instrucciones de los procesadores Z80 e Intel8085. Series Repetidas: Consiste en representar series de símbolos repetidos como un par (símbolo, cantidad). Es muy útil en la compresión de dibujos de pocos colores (ej.: transmisión de fax por vía telefónica). Criptografía, Seguridad y Protección de los Datos En una red, la seguridad de la información transmitida es generalmente un factor de importancia (transacciones comerciales, por ejemplo). Por ello, desde siempre ha existido la necesidad de codificar la información de alguna manera, para hacer más difícil su utilización por parte de intrusos en la red. Criptología La criptología el arte dedicado al desarrollo de crear o desbaratar métodos de ocultamiento de la información, utilizados cuando no se desea que algún intruso conozca el contenido del mensaje enviado a través de algún medio. La criptología se divide en os ramas, la criptografía y el criptoanálisis, que son el arte de crear métodos de encriptación y el de desbaratarlos, respectivamente. En general, como es difícil cambiar de un método de cifrado a otro, se utilizan métodos parametrizados, es decir, los cuales se pueden modificar fácilmente mediante el uso de una clave. Así, no es necesario que el método de cifrado sea secreto, sino que sólo es necesario que la clave lo sea. Otra ventaja es que es mucho más fácil cambiar de una clave a otra que de un método a otro, ya que la creación de métodos nuevos no es nada fácil. Consideremos un texto plano a enviar P, un método de encriptación E (que utiliza una clave k), y denotemos como C el texto cifrado, esto es, C = Ek ( P ). Además, consideremos un método de descifrado D, teniéndose entonces P = Dk ( C ). Entonces podemos representar el problema de la siguiente manera: Intru- Emisor Método de Cifrado RecepMétodo de Descifrado P = Dk ( C = Ek ( Los intrusos se clasifican en dos tipos: los que solamente escuchan la información que es transmitida (intrusos pasivos), y los que además modifican esta información (intrusos activos): Licenciado Gustavo Rei Pág. Nro. 80 Comunicación de Datos − Redes de Computadores Intrusos Pasivos Intrusos Activos Criptografía Los métodos de encriptación se clasifican en tres grandes grupos: Sustitución: Son aquellos en que una unidad (letra o grupo de letras) se substituye por otra unidad; Códigos: Utilizan la teoría vista en el subcapítulo anterior; Transposición: No preservan el orden de los símbolos de los mensajes. Para ello se escribe el texto en una matriz, la que luego se transpone. Los diferentes métodos de cifrado se pueden combinar, resultando métodos muy complejos de cifrado. Variantes de los métodos anteriores se consiguen utilizando claves muy grandes o introduciendo basura en el texto original para hacer más difícil su descifrado. Criptoanálisis El criptoanálisis consiste en crear un algoritmo D para descifrar mensajes cifrados. Generalmente se trata de encontrar primero E, ya que es más fácil y soluciona el problema. Este problema tiene tres variantes típicas, en cada una de las cuales se conoce de antemano: Sólo C: Cuando sólo se tiene un texto cifrado, se debe suponer un método de cifrado y se utilizan las probabilidades de aparición de los símbolos para encontrar la clave utilizada; P y C = Ek ( P ): Cuando se conocen ambos mensajes, es mucho más fácil encontrar el método de codificación, pero sigue siendo difícil encontrar la clave; C y posibilidad de utilizar E: Cuando el criptoanalista tiene la posibilidad de utilizar el método de cifrado, le es aún más fácil encontrar la clave del mensaje. Cabe destacar que generalmente el método de cifrado es público, y sólo la clave es desconocida. Esto ha llevado a la creación de métodos muy complejos, que hacen casi imposible el encontrar la clave original, aún cuando el criptoanalista tenga todas las facultades mencionadas Problemas Típicos de Seguridad Protección de Claves Otro problema común en el tema de las claves es el de hacer que ellas no sean conocidas nunca por una sola persona, para evitar abusos de autoridad, por ejemplo. Los polinomios de Shamir son una técnica muy utilizada para esto: Si se desea que de un gran conjunto de personas se necesiten k de ellas para obtener la clave, se utiliza un polinomio de grado (k-1) de la forma: p ( x ) = a 0 + a 1 ⋅ x + a 2 ⋅ x 2 +Κ + a k −1 ⋅ x k −1 donde a0 es la clave del sistema. A cada persona se le da a conocer un punto de la curva del polinomio, esto es, un par único ( x , p ( x ) ). Así, reuniéndose los pares de k personas, se puede reconstruir la curva, esto es, calcular los coeficientes del polinomio, obteniéndose la clave a0. Licenciado Gustavo Rei Pág. Nro. 81 Comunicación de Datos − Redes de Computadores Distribución de Claves Un problema grave en criptografía de mensajes en redes es el de la distribución de las claves: para que dos entidades se comunique utilizando algún método de encriptación, es necesario que ambos utilizan la misma clave. La pregunta es ¿cómo hacer para utilizar una clave nueva, sin necesidad de ponerse de acuerdo mediante un medio que no sea la red? Una solución ingeniosa es la de los Puzzles de Merkle, que consiste en más o menos lo siguiente: 1) 2) 3) 4) 5) Inicialmente se envían n acertijos −pares ( C = E ( P ) , k ) −, en los cuales todos los P poseen alguna característica similar (indicada explícitamente). Además se indica qué método de encriptación E se utilizó en todos los casos; El receptor selecciona uno de los acertijos y lo resuelve por fuerza bruta hasta que encuentre un texto P que cumple con la característica indicada; El receptor envía de regreso el texto P del acertijo seleccionado (sin cifrar); El emisor selecciona la clave k asociada al acertijo que contiene C = E ( P ); Ambos comienzan a utilizar la clave k asociada al acertijo elegido (no la clave que lo resolvió). Un intruso escucha toda la conversación no sabe cuál fue el acertijo elegido, y para saber qué clave será utilizada deberá resolver a fuerza bruta en promedio ½n acertijos. Si n es un número grande, digamos 20.000, la tarea puede tomar varios años. Si este método se utiliza con una frecuencia de digamos un mes, la tarea es prácticamente imposible. Este método posee dos grandes desventajas: requiere de una cantidad bastante grande de cálculo para el punto 2), y un uso de red grande en el punto 1). Criptografía con Claves Públicas Diffie y Hellmann publicaron un artículo que cambió la forma de pensar de los criptógrafos y criptoanalistas, ya que anteriormente se daba por sentado que las claves debían ser secretas. Esto era así debido a que si se conoce el algoritmo de cifrado E, la especificación del algoritmo de descifrado D era trivial de obtener. Así, proponen tres requisitos para sistemas de criptografía seguros: • D ( E ( P ) ) = P; • Debe ser muy difícil deducir D a partir de E; • E no puede descifrarse mediante un ataque basado en la aplicación de él sobre textos seleccionados. Bajo estas condiciones no existe ninguna razón por la cual se deba utilizar una clave secreta. Veamos por qué: 1) Quién desee recibir mensajes cifrados selecciona algoritmos E y D que cumplan las características anteriores; 2) El algoritmo E se hace público, de manera que cualquier persona que desee enviar algo pueda utilizarlo; 3) Cuando se reciba un mensaje cifrado E ( P ), se le aplica el algoritmo D, obteniéndose el mensaje original. Como nadie más conoce D, nadie más podrá descifrar el mensaje. Así, el problema consiste en encontrar algoritmos que satisfagan los tres requisitos planteados. Algoritmos de este tipo se basan generalmente en la teoría de números, ya que se utilizan números primos muy grandes, y claves del orden de 200 dígitos. La seguridad del sistema se basa en que para factorizar números de tal magnitud se requieren más de 4 billones de años, aún si se utilizan los mejores algoritmos sobre los mejores computadores actuales. Autentificación y Firmas Digitales Este problema consiste en el problema de demostrar la identidad de un usuario en la red. El fin último de esto es poder realizar transacciones comerciales a través de la red, por ejemplo. Los algoritmos que se implementen para ello deben cumplir dos características: • El receptor debe poder verificar la identidad del transmisor; • El transmisor no debe poder negar el mensaje luego de enviarlo. Licenciado Gustavo Rei Pág. Nro. 82 Comunicación de Datos − Redes de Computadores El primer problema se descompone en dos, ya que se debe poder autentificar al usuario no sólo al iniciar una sesión, sino que debe ser posible identificarlo como el emisor de cada mensaje enviado. Al Inicio de Sesión: Una solución al problema es hacer uso de una clave pública b1 (conocida por el receptor) en conjunto con una privada b2 (conocida por el usuario). Al iniciar una sesión, el receptor escoge un mensaje aleatorio, lo cifra utilizando el algoritmo Eb1 (público), y envía al usuario. El usuario debe entonces regresarlo descifrado mediante el algoritmo Db2 (privado). Note que Db2 ( Eb1 ( P ) ) = P. En Cada Mensaje: Para autentificar al usuario en cada mensaje enviado se hace que cada mensaje contenga lo siguiente: una contraseña secreta, un número de secuencia, hora y fecha de transmisión, el texto en clave utilizando la clave secreta enviada y un código de redundancia de todo el mensaje. El conjunto de esta información hace prácticamente imposible que un intruso pudiera reproducir los mensajes de manera exitosa. El segundo problema, el de evitar que se niegue el envío de algún mensaje, se resuelve utilizando dos pares de claves públicas y secretas, y la condición que: D ( E ( P ) ) = E ( D ( P ) ) = P. Así, el proceso de envío del mensaje es como sigue: Da( Clave Secreta Emisor Eb(Da Clave Pública Receptor Da( Clave Secreta Receptor Clave Pública Emisor Emisor RecepEl receptor puede demostrar que fue el usuario quién envió el mensaje enseñando a un tercero los mensajes Da(P) y P. Sólo el emisor pudo enviar el mensaje, ya que sólo él conoce su clave secreta. El problema potencial es que el emisor puede reclamar que su clave le fue robada de alguna manera. Representación en Formatos de Red La capa de presentación también de be solucionar el problema de la representación de datos en formatos estándares, ya que las diferentes arquitecturas de computadores utilizan diferentes formatos de representación de datos. El estándar OSI propone un formato estándar de red (ASN.1), que permite especificar tipos de datos abstractos. ASN.1 posee tipos primitivos muy simples (enteros, booleanos, cadena de bits y cadena de bytes), y permite construir cualquier tipo de dato independientemente de su representación. Cuando se envía información a través de la red con ASN-1, se debe traducir la información a ASN.1 y enviarla junto a la descripción de su estructura, de manera que el receptor pueda reconstruir la información. Licenciado Gustavo Rei Pág. Nro. 83 Comunicación de Datos − Redes de Computadores Capa de Sesión Esta capa se encuentra fuertemente mezclada con la capa de aplicación, y considera en general las siguientes funciones: • • • • • • Intercambio de Datos Administración del Diálogo Sincronización de Procesos Control de Actividades Reporte de Excepciones Control de Conexión Servicios del Nivel de Sesión Básicamente, esta capa provee servicios comunes de red a los programadores de aplicaciones que la utilizan, de manera que ellos no deban volver a programar cada vez los mismos algoritmos. Interconexión de Procesos La capa de sesión provee de conexiones entre procesos, comúnmente llamadas sesiones. Estas sesiones permiten establecer, utilizar y luego terminar una conexión, lo cual resulta muy útil para una variedad de aplicaciones. El énfasis está en que se proveen algoritmos de conexión comunes, orientados a la aplicación más que al uso de la red (que es el caso de la capa de transporte). Como es de esperar, esta capa provee de primitivas para el intercambio de datos entre la aplicaciones conectadas. Sincronización de Procesos Uno de los usos más comunes de la capa de sesión es la sincronización de procesos, ya que ésta provee los mecanismos para llevarla a cabo de manera transparente al programador. Así, éste no debe preocuparse por problemas de bloqueo de procesos sincronizados, por ejemplo. Administración de Actividades Este servicio consiste en la capacidad de administrar transacciones independientes a través de la red. Depende del programador determinar qué es una actividad, pero sí deben ser independientes una de la otra. Así, la capa de sesión puede optimizar el uso de la red, pudiendo controlar el flujo de datos de cada actividad de manera independiente. Notificación de Excepciones Este servicio consiste en que los procesos pueden notificar a su entidad par de excepciones ocurridas en cualquier momento de la sesión (generalmente errores del protocolo entre los procesos). Llamada a Procedimiento Remoto (RPC) Las llamadas a procedimientos remotos son una implementación particular de un servicio de sesión, que resuelven problemas de transferencia de datos y de sincronización de procesos. El paradigma en que se basan en el modelo cliente/servidor, y lo que se pretende es hacer transparente al programador una llamada a un procedimiento o función de un proceso en otro host de la red. La idea es que existen dos procesos, presumiblemente en hosts diferentes, uno de los cuales hace de cliente que solicita algún servicio al otro, que hace de servidor. Esto se implementa de manera tal que el programador sólo debe declarar un procedimiento como remoto, especificar el host en que se encuentra, y luego puede simplemente llamar al procedimiento. La implementación del servidor es similar. A continuación se muestra cómo funciona una llamada a procedimiento remoto: Licenciado Gustavo Rei Pág. Nro. 84 Comunicación de Datos − Redes de Computadores Máquina del Cliente Clie nte Stub Cliente Entidad de Transporte Máquina del Servidor Stub Servidor Servidor Entidad de Transporte Los algoritmos de stub de cliente y servidor tiene como función el recolectar toda la información a enviar de un proceso al otro y utilizar los servicios de la capa de transporte para llevar a cabo la comunicación. Esta recolección debe ser muy cuidadosa (cuando se trata de un puntero, por ejemplo), por lo que el hecho que la capa de sesión provea este servicio facilita mucho el trabajo al programador. A pesar de todo, los algoritmos del servidor deben ser construidos con mucho cuidado, ya que no se puede hacer una llamada pasando parámetros por referencia con punteros, por ejemplo. Una característica notable de las RPC es que aseguran la exclusión mutua de los procesos, ya que nunca estarán simultáneamente ejecutándose el cliente y el servidor (salvo si se programa de manera explícita). El problema más común que puede surgir debido al uso de RPC es que el servidor deje de responder, produciendo que el cliente no siga nunca su ejecución. Licenciado Gustavo Rei Pág. Nro. 85 Comunicación de Datos − Redes de Computadores Capa de Transporte Esta capa se considera el corazón de la jerarquía de protocolos, ya que tiene como objetivos los siguientes: • Eficiencia en Transporte de Datos; • Asegurar Confiabilidad; • Uso Económico del Recurso de Red; Calidad del Servicio Un objetivo secundario de la capa de transporte es la mejora de la calidad del servicio proveído a los usuarios de ella, la se puede medir a través de los siguientes parámetros: Retardo en Establecer la Conexión: Tiempo entre solicitud de conexión y confirmación de conexión; Probabilidad de Fallo de Establecimiento de Conexión: Probabilidad que una conexión no pueda efectuarse (por congestión, falta de capacidad de las IMP’s, etc.); Retardo en la Liberación de la Conexión: Tiempo entre solicitud de desconexión y confirmación de desconexión; Probabilidad de Fallo de Liberación de Conexión: Probabilidad que una desconexión no se lleve a cabo en un tiempo aceptable; Caudal: Cantidad de información por segundo, que puede transferir la red. Se diferencia entre caudal nominal (que es capaz de llevar la red) y caudal efectivo (que es posible de utilizar efectivamente, por capacidad de IMP’s y hosts, por ej.); Retardo de Tráfico: Tiempo desde que se envía un mensaje hasta que se recibe este mensaje; Tasa de Error: Fracción de mensajes perdidos o dañados. Debiera ser cero, ya que la capa de transporte debiera corregir estos errores que se producen en la capa de red); Tasa de Falla de Transferencia: Fracción de veces en que los tres puntos anteriores no fueron aceptables (estuvieron bajo un rango mínimo aceptable); Protección: Manera en que la capa de transporte evita que intrusos intercepten (lean y/o alteren) mensajes; Prioridad: Manera en que la capa de transporte maneja prioridades de conexiones; Resistencia: Probabilidad que la misma capa de transporte sea la que termine una conexión (debido a problemas internos, congestión o prioridades, por ej.). Servicios de la Capa de Transporte Los servicios que provee la capa de transporte son fundamentalmente los siguientes: • Primitivas de Transporte; • Administración de Conexiones: Direccionamiento; Establecimiento de la Conexión; Liberación de la Conexión; • Control de Flujo; • Multiplexación; • Recuperación de Caídas; Licenciado Gustavo Rei Pág. Nro. 86 Comunicación de Datos − Redes de Computadores Primitivas de Transporte Las primitivas proveídas por la capa de transporte son las siguientes: Orientadas a Conexión T-CONNECT.request ( callee, caller, exp, qos, data ) T-CONNECT.indication ( callee, caller, exp, qos, data ) T-CONNECT.response ( qos, respond, exp, data ) T-CONNECT.confirm ( qos, respond, exp, data ) T-DISCONNECT.request ( data ) T-DISCONNECT.indication ( reason, data ) T-DATA.request ( data ) T-DATA.indication ( data ) T-EXPEDITED-DATA.request ( data ) T-EXPEDITED-DATA.indication ( data ) Sin Conexión T-UNITDATA.request ( callee, caller, qos, data ) T-UNITDATA.indication ( callee, caller, qos, data ) donde: callee caller exp qos data reason - dirección de quien es llamado - dirección de quien llama - indicación de datos acelerados - calidad de servicio deseada - 0 o más datos transmitidos - razón por la cual sucedió Las primitivas se relacionan mediante el siguiente autómata finito, el cual muestra cuáles primitivas producen cuáles transiciones de estados. Los estados son los siguientes: Inactivo: No hay conexión establecida, ni en proceso de establecerse o liberarse; Conexión Entrante: Se ha recibido un T-CONNECT.indication, pero aún no se ha aceptado ni rechazado la conexión; Conexión Saliente: Se ha hecho un T-CONNECT.request, pero aún no se ha recibido respuesta alguna; Conexión Establecida: Existe una conexión establecida. Inactivo T-DISCONNECT.request T-DISCONNECT.indication Licenciado Gustavo Rei T-DISCONNECT.request T-DISCONNECT.indication T-CONNECT.request T-CONNECT.indication Pág. Nro. 87 Comunicación de Datos − Redes de Computadores Conexión Saliente T-DISCONNECT.request T-DISCONNECT.indication T-CONNECT.confirm Conexión Entrante T-CONNECT.response Conexión Establecida T-DATA.request T-DATA.indication T-EXPEDITED-DATA.request T-EXPEDITED-DATA indication Las relaciones posibles entre las primitivas se pueden ver en los siguientes diagramas. En ellos aparece representada la capa de transporte como un espacio entre dos hosts, uno a la izquierda y otro a la derecha. El tiempo se representa hacia abajo. T-CONNECT. request T-CONNECT. request T-CONNECT. indication T-CONNECT. indication T-CONNECT. response T-DISCONNECT. request T-CONNECT. confirm T-DISCONNECT. indication Conexión Normal Conexión Rechazada por el Proceso Llamado T-CONNECT. request T-DISCONNECT. request T-DISCONNECT. indication T-DISCONNECT. indication Conexión Rechazada Desconexión Normal por Capa de Transporte T-DISCONNECT. request T-DISCONNECT. request T-DISCONNECT. indication T-DISCONNECT. indication Desconexión Simultánea Desconexión iniciada por Capa de Transporte T-DATA. request T-EXPEDITED-DATA. request T-DATA. indication T-EXPEDITED-DATA. indication Transferencia de Datos Transferencia De Datos Licenciado Gustavo Rei Pág. Nro. 88 Comunicación de Datos − Redes de Computadores Normal Acelerados Normal Administración de Conexión Cuando se desea construir la capa de transporte, se debe poner atención a diversos problemas que aparecen debido a la naturaleza de las redes de computadores y a los problemas que no maneja la capa de red. A continuación se presentan los más importantes de ellos. Direccionamiento • Cuando un proceso desea establecer una conexión, ¿cómo se determina con cuál proceso desea establecer esta conexión? La respuesta es la utilización de direccionamiento de procesos. La capa de red provee direccionamiento de hosts, pero es necesario además direccionar los procesos dentro de cada host. Para ello se define una dirección (TSAP) de la forma: <galaxia><estrella><planeta><país><ciudad><host><proceso> Así, cada proceso se une a una TSAP fija, la cual puede utilizar para requerir conexiones o recibir requerimientos de conexión. Debido a que la mayoría de los procesos tienen vida corta, y a que la cantidad de TSAP’s es limitada, no es posible asociar cada proceso a una TSAP fija realmente, asociando una TSAP a un proceso sólo cuando éste lo requiera, y liberándola cuando ya no la utilice. • ¿Cómo encontrar un proceso si no se conoce su TSAP? Se pueden utilizar dos soluciones: Servidor de Procesos: Se trata de un proceso con TSAP fija y bien conocida, el cual es capaz de crear procesos a medida que éstos sean requeridos desde la red. Así, éste servidor de procesos puede indicar al que requiere la conexión cuál es la TSAP del proceso requerido ; Base de Datos de Procesos: Se trata de un proceso con TSAO fija y bien conocida, el cual lleva un registro de los procesos del sistema y sus TSAP asociadas. Es responsabilidad de cada proceso el inscribirse y desincribirse de esta base de datos. Pérdida de Mensajes • La Capa de Red puede perder mensajes: ¿Cómo manejar esta situación? La solución es enviar nuevamente un mensaje si no se ha recibido confirmación de la llegada de él al destino, luego de cierto tiempo preestablecido. Esto produce la duplicación de mensajes en la red, ya que ambos pueden llegar íntegros al destino. Por esto, se deben usar números de secuencia asociados a los mensajes, los que pueden ser utilizados para verificar si un mensaje entrante es un duplicado o no. Esta solución sólo funciona para las primitivas de transferencia de datos, pero no para las de establecimiento o liberación de conexión, ya que si se recibe duplicada una solicitud de conexión, por ej., el que los números de secuencia sean los mismos no significa que sean duplicados (pueden ser solicitudes de procesos diferentes en la misma máquina y que utilizan el mismo TSAP, uno después de otro, por ej.). Establecimiento de la Conexión Problema: duplicación de T-CONNECT.indication: T-CONNECT.request T-CONNECT.indication T-CONNECT.indication (duplicado) Licenciado Gustavo Rei Pág. Nro. 89 Comunicación de Datos − Redes de Computadores El duplicado se interpretaría como otra solicitud de conexión, por lo cual debe existir un mecanismo de control adicional. La solución es utilizar comunicación ida-vuelta-ida para validar la información recibida. Esto se hace enviando confirmaciones de recepción de confirmaciones de vuelta al receptor. Veamos: T-CONNECT.request (seq=A0) T-CONNECT.indication (seq=A0) T-CONNECT.response (seq=B0, ack=A0) (Se recibe A0, se deduce que receptos recibió C.request) T-CONNECT.confirm (seq=B0, ack=A0) T-DATA.request (seq=A1, ack=B0) T-DATA.indication (seq=A1, ack=B0) (Se recibe B0, se deduce que receptos recibió C.confirm) Veamos cómo se manejan los casos de duplicados de requerimientos de conexión o de datos. Note que se puede deducir qué ocurre realmente a partir de los ack recibidos: T-CONNECT.request (seq=A0) T-CONNECT.indication (seq=A0) T-CONNECT.response (seq=B0, ack=A0) (Se recibe A0, se deduce que receptos recibió C.request) T-CONNECT.confirm (seq=B0, ack=A0) T-DATA.request (seq=A1, ack=B0) (Se recibe A0 otra vez, se deduce que es duplicado) T-CONNECT.confirm (seq=C0, ack=A0) T-REJ.request (ack=A0) T-CONNECT.indication (seq=A0) (Se recibe A0 otra vez, no se sabe que es duplicado) T-CONNECT.response (seq=C0, ack=A0) T-DATA.indication (seq=A1, ack=B0) (Se recibe B0, se deduce que receptos recibió C.confirm) T-DATA.indication (seq=A1, ack=B0) (Se recibe B0 otra vez, se deduce que es duplicado) T-REJ.indication (ack=A0) (Se recibe REJ A0, se deduce que se termina conexión duplicada) Liberación de la Conexión Problema: pérdida de T-DISCONNECT.confirm: T-CONNECT.request T-CONNECT.indication T-CONNECT.confirm Si se pierde T-DISCONNECT.confirm, el emisor nunca sabe que el receptor terminó la conexión, por lo que intentará nuevamente terminar la conexión. Pero el receptor ya no existe, y pueden surgir graves complicaciones (un nuevo proceso puede estar esperando mensajes en el mismo puerto, por ej.). El problema anterior se puede evitar con la utilización de temporizadores, esto es, relojes de cuenta regresiva, que se reinicializa cada vez que se envía un paquete. Los tiempos deben ser suficientemente grandes para permitir que el paquete enviado llegue al destino, y que se reciba el reconocimiento de la recepción (acknowledge). A continuación se muestran situaciones de desconexión con temporizador: Licenciado Gustavo Rei Pág. Nro. 90 Comunicación de Datos − Redes de Computadores T-DISCONNECT.request (seq=A0) T-DISCONNECT.indication (seq=A0) T-DISCONNECT.response (seq=B0, ack=A0) (Se recibe A0, se deduce que T-DISCONNECT.confirm (seq=B0, ack=A0) receptos recibió D.request) T-DATA.request (seq=A1, ack=B0) (Se elimina Conexión) T-DATA.indication (seq=A1, ack=B0) (Se recibe B0, se deduce que receptos recibió D.response) (Se elimina Conexión) Situación Normal T-DISCONNECT.request (seq=A0) T-DISCONNECT.indication (seq=A0) T-DISCONNECT.response (seq=B0, ack=A0) (Se inicia temp.) (Se recibe A0, se deduce que T-DISCONNECT.confirm receptos recibió D.request) (seq=B0, ack=A0) (Se elimina Conexión) T-DATA.request (seq=A1, ack=B0) (fin temp.) (Se elimina Conexión) Perdida de Confirmación (Se inicia temp.) T-DISCONNECT.request (seq=A0) T-DISCONNECT.indication (seq=A0) T-DISCONNECT.response (seq=B0, ack=A0) (fin temp.) T-DISCONNECT.request (seq=A1) T-DISCONNECT.indication (seq=A1) T-DISCONNECT.response (seq=B1, ack=A1) (Se recibe A0, se deduce que T-DISCONNECT.confirm (seq=B1, ack=A1) receptos recibió D.request) (Se elimina Conexión) T-DATA.request (seq=A2, ack=B1) T-DATA.indication (seq=A2, ack=B1) (Se recibe B0, se deduce que receptos recibió D.response) (Se elimina Conexión) Licenciado Gustavo Rei Pág. Nro. 91 Comunicación de Datos − Redes de Computadores Pérdida de T-DISCONNECT-confirm (Se inicia temp.) T-DISCONNECT.request (seq=A0) T-DISCONNECT.indication (seq=A0) (Se inicia temp.) T-DISCONNECT.response (seq=B0, ack=A0) (fin temp.) T-DISCONNECT.request (Se inicia temp.) (seq=A0) (fin temp.) (Se elimina Conexión) (n intentos) (Se elimina Conexión) Pérdida de Todo Control de Flujo • ¿Qué hacer cuando el emisor es más rápido que el receptor? Se implementan variados sistemas de retroalimentación para manejar esta situación, de modo que el emisor sólo puede enviar paquetes cuando el receptor le indique, explícita o implícitamente, que puede hacerlo. Multiplexación La multiplexación ascendente permite que varios usuarios utilicen la misma conexión de nivel de red para usar la red, aprovechándose así con mayor eficiencia el ancho de banda de las conexiones de red. La multiplexación descendente en la capa de transporte permite que cuando un usuario desea utilizar una conexión con ancho de banda mayor que lo que es capaz una conexión de nivel de red, se utilicen varias de ellas paralelamente. Recuperación de Caídas La capa de transporte es responsable de la recuperación ante caídas de la capa de red. Así, cuando esta última emite un N-RESET, la capa de transporte deberá comenzar algún mecanismo para establecer qué paquetes fueron recibidos y cuales no. Por ejemplo, el emisor puede preguntar al receptor por los paquetes enviados de los que aún no se recibe asentimiento, pudiendo entonces el receptor indicar cuáles faltan por llegar. La recuperación ante caídas de las máquinas es más delicada, debido a que el asentimiento sólo significa que se ha recibido el paquete, y no que se ha procesado con éxito la información contenida. Por lo tanto, serán las capa superiores las encargadas de enviar asentimientos de proceso, es decir, de indicar al emisor que se ha procesado con éxito la información contenida en el paquete. Los Paquetes TCP El Encabezado de los paquetes (TPDU) en TCP tienen la siguiente estructura: 0 15 Puerto Fuente (16 bits) Número de Secuencia TPDU Enviada (32 bits) Número de Secuencia Asentimiento Recibido (32 bits) Largo URG, ACK, Enc. EOM, RST, SYN, FIN 16 Puerto Destino (16 bits) 31 Ventana (16 bits) (6 bits) Licenciado Gustavo Rei Pág. Nro. 92 Comunicación de Datos − Redes de Computadores (6 bits) Código Redundancia (16 bits) Opciones (0 o mas palabras de 32 bits) Puntero Acelerado (16 bits) • Puerto Fuente: Identificación del puerto TSAP de origen del paquete; • Puerto Destino: Identificación del puerto TSAP de destino del paquete; • Número de Secuencia: Número de secuencia del paquete que se envía con el encabezado actual; • Número Sec. Asentimiento: Número de secuencia para asentimiento del último paquete recibido; • Largo Encabezado: Largo del encabezado completo. Es necesario debido al largo variable de las opciones; • URG: Activo si se utiliza el Puntero Acelerado; • ACK: Activo si se utiliza el Número de Sec. Asentimiento; • EOM: Indica fin del mensaje (??); • RST: Indica que se desea retomar una conexión confusa debido a T-CONNECT.request o T-CONNECT.confirm duplicados; • SYN: Indica que se desea establecer una nueva conexión, esto es, para T-CONNECT.request (ACK=0) y T-CONNECT.confirm (ACK=1); • FIN: Indica que se desea terminar la conexión; • Ventana: Cantidad de ventanas disponibles; • Código CRC: Código de redundancia de los datos del paquete para detección de errores. Se suman todos los datos como palabras de 16 bits y se complementen a 1; • Puntero Acelerado: ??; • Opciones: Indican otros datos dependientes del contexto, como tamaño de buffers, etc. Licenciado Gustavo Rei Pág. Nro. 93 Comunicación de Datos − Redes de Computadores Bibliografía [Tann1] Andrew S. Tannenbaum “Redes de Computadores” Prentice Hall, 1991 [Tann2] Andrew S. Tannenbaum “Sistemas Operativos Distribuidos” Prentice Hall [Cou1] George Coulouris “Distributed Systems” Addison Wesley [Com1] Douglas E. Comer “Internetworking with TCP/IP vol.3; BCD socket Version” Prentice Hall Licenciado Gustavo Rei Pág. Nro. 94