Comunicaciones I Capítulo 1 GENERALIDADES DE LA COMUNICACIÓN DE DATOS 1 El Sistema de Comunicación Sistema de comunicación: Lleva a cabo el intercambio de información entre dos entes ubicados en los extremos que generan y/o consumen esa información. Ejemplos de entes son, desde el punto de vista más general: un computador, un dispositivo electrónico, un programa que corre en un computador, los seres humanos. En este curso se tratará sólo con entes llamados dispositivos. Dispositivo: ente con hardware y software que genera y/o consume información en forma de datos. Dato: En un contexto amplio, es cualquier variable física que transporta información. 2 Modelo de Sistema de Comuicación Sistema fuente Fuente Transmisor Sistema destino Sistema de Transmisión Receptor Destino (a) Diagrama en bloques. Estación de trabajo Módem Módem Servidor Red telefónica pública (b) Ejemplo. 3 Tareas del Sistema de Comunicación Utilización del sistema de transmisión Implementación de la interfaz Generación de la señal Sincronización Gestión del intercambio Detección y corrección de errores Control de flujo Direccionamiento Encaminamiento Recuperación Formato de mensajes Seguridad Gestión de red 4 Ejemplo de Comunicación de Datos Tren de bits Señal analógica Señal analógica Tren de bits Texto Texto Fuente m Información de entrada Sistema de Transmisión Transmisor g(t) Datos de entrada s(t) Señal transmitida Receptor r(t) Señal recibida Destino g'(t) Dato de salida m' Información de salida Figura 1.2. Modelo de comunicación de datos simplificado. 5 Comunicación de Datos a través de Redes Esquema más simple de comunicación de datos: punto a punto. En la práctica hay varios - a veces muchos - dispositivos que decesitan comunicarse. Ej: los teléfonos de la Quinta Agronómica, los computadores en Internet. Hay dos alternativas: tender un enlace entre cada uno de ellos Fig.(b), o implementar una red de comunicación Fig.(c) Red de comunicación (a) (b) (c) 6 Comunicación de Datos a través de Redes Alternativa Fig(b): Número de enlaces = n(n-1)/2 Ej: - para 6 dispositivos se requieren 15 enlaces entre cada par. - para 50 dispositivos se requieren 1225 enlaces. Solución más razonable: usar una red de comunicación. Tipos de Redes de Comunicación LAN – Local Area Network MAN – Metropolitan Area Network WAN – Wide Area Network 7 Comunicación de Datos a través de Redes Red de área extensa - WAN nodos de conmutación Sistema fuente Fuente Transmisor Sistema destino Sistema de transmisión Receptor Destino Red de área local - LAN - 8 Comunicaciones I Capítulo 2 ARQUITECTURA DE COMUNICACIÓN 9 Introducción Comunicación entre sistemas de información: tema complejo Ejemplo. Supóngase que un computador necesita transferir un archivo de datos a otro. - Tiene que haber un camino físico entre ambos. Además, para que la comunicavción tenga lugar se necesita: 1. Activación del camino. 2. Preparación del sistema destino. 3. Preparación de la aplicación destino. 4. Compatibilidad en el formato. 10 Protocolos y Arquitectura de Protocolos Dispositivo de usuario: Dispositivo definido en el Cap1. Dispositivo más común: computador. Comunicación entre dispositivos de usuario: Intercambio de información entre dispositivos de usuario. Red de computadores: Conjunto de dispositivos que intercambian datos a través de una red de comunicación. Red de computadores = dispositivos de usuario + red de comunicación Entidad: Es cualquier programa - aplicación - corriendo en un dispositivo de usuario que tiene capacidad de intercambiar información con otra entidad. 11 Concepto de Protocolo Para que dos entidades ejecutándose en sistemas diferentes se puedan comunicar es necesario que “hablen el mismo idioma” para poder “entender” qué, cómo y cuándo se comunican. Para ello se necesita un convenio. Protocolo: conjunto de reglas que gobierna el intercambio de datos entre dos entidades. En un computador los protocolos se implementan mediante programas o módulos. Conceptos asociados a los protocolos: Sintaxis: - formato -, campos de datos, tamaño, ubicación,.. Semántica: Interpretación del contenido. Manejo de la información de control para la comunicación. Temporización: Velocidades de envío de señales y datos. 12 Arquitectura de Protocolos Para que pueda realizarse la comunicación entre computadores se requiere una gran cooperación entre éstos. Tarea de comunicación: gran complejidad y gran cantidad de operaciones. Esto se resuelve de la siguiente forma: En lugar de implementar toda la tarea mediante un único protocolo, se subdivide la gran tarea en varias subtareas. De esta manera, cada subtarea es realizada por un protocolo por separado, de tal forma que sumando todas las subtareas se realiza la tarea total. Para dar una idea concreta de lo enunciado, se presenta el Ejemplo 2 basado en el Ejemplo 1 dado al principio: Ejemplo 2: Se necesita transmitir de un archivo de datos desde un computador a otro. 13 Ejemplo 2 Tarea total: Transmisión de un archivo desde un computador a otro. Para ello se implementan 3 módulos: - Módulo de transferencia de archivos: - Módulo de servicio de comunicación: - Módulo de acceso a la red. Computador X Computador Y Aplicación para la transferencia de archivos Datos de archivo y órdenes para la transferencia de archivos Aplicación para la transferencia de archivos Módulo del servicio de comunicación Unidades de datos relacionadas con la comunicación Módulo del servicio de comunicación Módulo de acceso a la red Red de comunicación Lógica de la interfaz de red Lógica de la interfaz de red Módulo de acceso a la red 14 Resumen sobre el Ejemplo 2 Resumen Motivos por los cuales conviene contar con varios módulos: En el módulo de transferencia de archivos está toda la lógica exclusiva de las aplicaciones: procesar datos y prepararlos para ser enviados. Hay un módulo específico para cada aplicación. Se necesita que la información se transmita en forma segura hasta el destino. Además, es importante por que un solo módulo de servicio de comunicación puede ser usado para todas las aplicaciones. La lógica encargada de que el computador dialogue con la red se implementa en otro módulo: módulo de acceso a la red. 15 Conclusión Independientemente del tipo de información que se intercambie entre dos entidades, es válida la siguiente conclusión: En lugar de disponer de un solo módulo que realice todas las tareas involucradas en la comunicación desde una entidad a otra, se propone una estructura compuesta por varios módulos, cada uno con funciones diferentes, pero que en conjunto realizan la tarea total. Esta estructura se denomina arquitectura de protocolos. 16 Resumen de lo visto hasta aquí Se ha definido: protocolo: Conjunto de reglas que gobierna el intercambio de datos entre dos entidades. arquitectura de protocolos: Es una estructura compuesta por varios protocolos, donde cada uno realiza una subtarea diferente pero que en conjunto realizan la tarea total. Definir una arquitectura de protocolos como la mencionada significa resolver el qué: es decir, “¿qué se ha hecho para solucionar el problema?” Ahora toca resolver el cómo. 17 Organización de las tareas: Modelo de Tres Capas Objetivo: resolver cómo se realiza la comunicación entre dos entidades. Para ello se usará un Modelo de 3 Capas. Aplicaciones, computadores y red. Las aplicaciones se ejecutan en computadores, pudiendo correr múltiples aplicaciones simultáneamente. Los computadores se conectan a una red a través de la cual transfieren sus datos. La transferencia de datos desde una aplicación a otra implica, en primer lugar, la obtención de los mismos y, luego, hacerlos llegar a la aplicación destino. Organización de toda la tarea: dividirla en tres capas independientes: de acceso a la red, de transporte, y de aplicación. 18 Modelo de Tres Capas Capa de Acceso a la Red: Comunicación entre el computador y la red, que consiste en: 1.El comp. emisor deberá proporcionar a la red la dirección del comp. destino, para que la red pueda entregarle los datos. 2.El comp. emisor necesitará hacer uso de algunos servicios de la red: gestión de prioridades, velocidad requerida, etc. El software de esta capa dependerá del tipo de red, es decir, el programa debe poder dialogar con la red para 1. y 2. Haciendo así, el software que está encima de la capa de acceso no tendrá que ocuparse del tipo de red. Capa de Transporte: tareas para asegurar que los datos lleguen al otro extremo todos los datos y en orden. Capa de Aplicación: Especifica la lógica necesaria para cada aplicación: procesamiento + preparación de datos y señales de control. 19 Modelo de Tres Capas Ejemplo de 3 computadores conectados por una red Aplicación () () Punto de acceso al servicio () Tansporte Aplicación () Dirección de red () Tansporte Acceso a la red Acceso a la red Red de comunicación Aplicación () () () () Tansporte Acceso a la red 20 Conexión entre aplicaciones. Direccionamiento Situación: una red tiene conectados varios computadores y en cada computador están ejecutándose varias aplicaciones. • Para que dos aplicaciones puedan intercambiar datos deben tener una conexión entre ambas. • Para que pueda establecerse la conexión, las aplicaciones necesitan tener una dirección única en la red. Es necesario que haya dos niveles de direccionamiento: - Cada computador deberá tener una dirección de red única. - Cada aplicación en el computador deberá tener una dirección única. Puntos de acceso al servicio - SAP -. SAP: conexión por la que cada aplicación se comunica con el módulo de la capa de transporte. 21 Ejemplo Computador X Computador Y Protocolo de Aplicación Aplicación Aplicación Protocolo de Transporte Transporte Transporte Acceso a la red Red de comunicación Protocolo de acceso a la red Acceso a la red Protocolo de acceso a la red La Fig. muestra cómo se comunican, siguiendo un protocolo, dos módulos en el mismo nivel. Supóngase que una aplicación asociada al SAP1 de X desea transmitir un mensaje a otra aplicación asociada al SAP2 de Y. • La aplicación en X pasa el mensaje a la capa de transporte con la instrucción de que le entregue a la aplicación en Y usando el SAP2. • La capa de transporte pasa el mensaje a la capa de acceso a la red, con la instrucción de que se comunique con la red para: 1. Solicitar los servicios necesarios. 2. Ubicar la comp.Y en la red y entregarle el mensaje. 22 Modo de Transmitir la Información de Control Instrucciones: se envían como información de control junto a los datos del usuario. 1. La aplicación genera un bloque de datos. 2. Pasa el bloque a la capa transporte la que puede fraccionarlo en unidades más pequeñas. 3. A cada unidad la capa de transporte añadirá una cabecera con info. de ctrl. conjunto de datos + info de control = PDU Datos de la aplicación Cabecera de transporte PDU de transporte Cabecera de red Cabecera de transporte Cabecera de red Unidades de datos del protocolo de transporte Unidades de datos del protocolo de red (paquetes) 23 Información en la Cabecera de las PDU PDU de Transporte. Información en la cabecera: SAP destino. Número de secuencia. Código de detección de error. PDU de Acceso a la Red. Información en la cabecera: Dirección del computador destino. Solicitud de recursos - prioridades, velocidad, etc -. 24 Ejemplo 3: Transferencia de archivo registro a registro Computador X Aplicación - Registro - SAP destino - Dirección comp.Y Computador Y Registro Aplicación - SAP destino - Número de secuencia - Código de error Transporte Transporte - PDU de transporte - Dirección comp.Y Registro PDU de transporte - Dirección computador Y - Solictud de recursos Acceso a la red Acceso a la red PDU de acceso a la red (paquete) 25 Comentarios sobre el Ejemplo 3 El pasaje de la PDU de una capa a la inferior se realiza mediante un llamado a procedimiento. Los parámetros de la información de control se pasan como argumento al módulo de la capa inferior. La cabecera de transporte no es visible en la capa de acceso a la red porque no es necesario que lo sea. Cuando llega la PDU de acceso a la red al comp. destino, el módulo examina la cabecera, realiza las operaciones correspondientes, y luego elimina la cabecera y pasa el resto a la capa superior - Transporte -. El módulo de ésta procede de manera similar. 26 Observaciones sobre la info en las Cabeceras La información está en forma de parámetros. El manejo de los parámetros es variado. Hay parámetros que: 1. Son pasados de una capa a otra inferior y son utilizados en la cabecera de ésta. Ej: De Aplicación a Transporte, el “SAP” de la aplicación remota. 2. Se generan en una capa para ser utilizados en la misma capa Ej: En Transporte, el “número de secuencia” de los paquetes. 3. Son pasados a una capa inferior y esta los pasa directamente a la siguiente capa. Ej: De Aplicación a Transporte y a Acceso de Red, la “dirección de computador” destino. 27 Modelo OSI de ISO • Surge con la necesidad de intercambiar datos entre sistemas heterogéneos, es decir, incompatibles en Hw, Sw y formato de los datos. • Interviene la ISO - Intenational Standards Organización - al que adhieren gobiernos y grandes empresas - IBM, DEC, AT&T,… • ISO creó en 1977 un subcomité con el fin de definir un modelo de interfaz común, el que fue aprobado como estándar en 1983 • El modelo es el Referencial Model Open System Interconection más conocido como “Modelo OSI de ISO”. • El término “abierto” significa que cualquier sistema que adopte las normas creadas por la ISO podrá comunicarse con cualquier otro sistema que se rija por las mismas normas. 28 Estructura de Capas Definir una estructura de capas surge de la cuestión ya analizada: comunicar dos computadores entre sí constituye un problema sumamente complicado de resolver, por lo tanto el subcomité de la ISO lo encaró dividiendo esta compleja tarea en varias tareas menores. • Ideó un conjunto jerárquico de capas y asignó a cada capa una tarea específica, de manera que, realizando sucesivamente cada tarea específica, al final se resuelve todo el problema de comunicación entre dos computadores. 29 Estructura de Capas El esquema de funcionamiento de las capas es el siguiente: Cada capa utiliza los servicios suministrados por la capa inmediata inferior y produce servicios para la capa inmediata superior. Una capa dada no sabe, ni le interesa saber, cuántas capas existen ni cómo realizan sus tareas, solo le importa qué le ofrece la capa adjunta como servicio. La ventaja del esquema propuesto es que, al independizar el modo en que cada capa resuelve su problema, se consigue: simplificar la resolución del problema completo al dividirlo en varios problemas menores, y flexibilizar el diseño de protocolos de cada capa puesto que no interesa cómo éstos resuelven el problema sino que, a partir de determinados servicios que recibe de una capa, deben operar de alguna manera para entregar otros servicios determinados a la otra capa adyacente. 30 Capas del Modelo OSI La arquitectura del modelo OSI está formada por 7 capas. La ISO se guió por las siguientes pautas básicas: • Cada capa deberá tener una función bien definida, claramente diferente de las otras. Esto fija un número mínimo de capas. • El número máximo de capas no debe ser tan alto a fin de no dificultar el trabajo de descripción e integración de cada capa. • Demarcar el límite entre dos capas adyacentes en el punto donde la transferencia de servicios sea pequeña, minimizando las interacciones entre las capas. • Cada capa solo tiene interfaces con la capa superior y con la inferior. • Garantizar que la modificación de los protocolos que realizan las funciones de una capa no afecte a las otras capas. 31 Capa Física En esta capa se define la interfaz física entre los dispositivos y, además, cómo debe realizarse la transmisión de las señales a través del medio de transmisión. Ej: si se debe transmitir un 1 por el medio de transmisión, debe llegar un 1 y no un 0. En esta capa se deben realizar básicamente las siguientes especificaciones: • Mecánicas • Eléctricas • Funcionales • De procedimientos 32 Capa de Enlace de Datos La tarea primordial de esta capa consiste en lograr que la comunicación por un enlace físico entre dos dispositivos sea sin error. Esto implica que, a partir de un medio de transmisión real - con ruido, interferencias y atenuación que producen errores en la transmisión -, la transferencia de datos se realice como si se tratara de un medio ideal, es decir, sin errores de transmisión. Las funciones básicas de la capa de enlace están relacionadas con el control del enlace punto a punto entre dispositivos que están en los extremos del mismo. El control del enlace consiste básicamente en las siguientes tareas: Sincronización de trama. Control de flujo. Control de error. 33 Capa de Red Esta capa especifica básicamente sobre la transferencia de datos entre dos sistemas finales a través de una red, liberando así a las capas superiores de esta tarea que tiene en cuenta la tecnología de la red particular. Las funciones de esta capa están relacionadas con dos tareas básicas: 1. El módulo de esta capa en el computador le especifica al módulo del dispositivo de red la dirección del comp. destino y le solicita ciertos servicios, como, por ejemplo, la gestión de prioridades según el tipo de dato que transmite - voz, video, datos de archivo -. 2. La red debe realizar las acciones necesarias para que el mensaje alcance el destino evitando en lo posible las congestiones de tráfico en enlaces y dispositivos internos de la red. Estas funciones se denominan: - Ruteo - Gestión de servicios de red. - Control de tráfico 34 Capa de Transporte • Una característica distintiva de esta capa, en relación con las capas ya vistas, es que no está involucrada con la transmisión en la red sino con las necesidades de comunicación de los sistemas finales. En ese sentido, la función esencial de la capa de transporte es que los datos generados por la aplicación en un computador lleguen a la aplicación en otro computador libres de errores, en orden, sin pérdidas ni duplicaciones. Las funciones de esta capa son: • Control de secuenciamiento. • Control de flujo. • Determinación del tipo de servicio o conexión. 35 Capa de Sesión • A esta capa le incumbe que los usuarios de diferentes computadores puedan establecer sesión entre ellos. Una sesión implica el intercambio de datos entre dos aplicaciones, lo que concierne a la capa de transporte; pero, además, necesita de otros servicios adicionales a los proporcionados por esta capa, con el fin de asegurar que la operación se realice sin inconvenientes. 36 Capa de Presentación • Esta capa se ocupa de los aspectos de sintaxis y semántica de la información que se transmite. En esto se diferencia de las capas inferiores las que únicamente están interesadas en la transferencia confiable de los datos de un lugar a otro. Las funciones típicas asociadas a la capa de presentación son: - Codificación - Seguridad - Compresión 37 Capa de Aplicación • Esta capa tiene que ver básicamente con la interfaz aplicaciónusuario. • Ej1: La transferencia de archivos. Los distintos sistemas de archivo tienen convenciones diferentes para denominar un archivo, así como diferentes formas para representar líneas de texto, etc. La transferencia de archivos entre dos computadores requiere de la resolución de éstas y de otras incompatibilidades. • Ej2: Correo electrónico. 38 Arquitectura de Protocolos TCP/IP Hay dos estructuras que han sido fundamentales en el desarrollo de las normas de comunicación entre sistemas: el modelo de referencia OSI y el conjunto de protocolos TCP/IP. • OSI se ha convertido en el modelo estándar para clasificar las funciones de comunicación. • TCP/IP es la arquitectura más adoptada. • La arquitectura TCP/IP se desarrolló como consecuencia de la necesidad de comunicar confiablemente redes de disitnto tipo dispersas en todo el mundo. 39 Arquitectura de Protocolos TCP/IP • A diferencia de OSI, no hay un “modelo de referencia TCP/IP”. • • • • • No obstante, sobre la base de los protocolos estándar que se han desarrollado en el grupo TCP/IP, todas las tareas involucradas en la comunicación se pueden organizar en cinco capas relativamente independientes, que son: Capa de Aplicación. Capa de Transporte. Capa de Interred. Capa de Acceso a la Red. Capa Física. 40 Capa de Interred • Como se mencionó, la capa de acceso a la red está relacionada con el acceso y ruteo de los datos a través de la red. • En situaciones que dos dispositivos están conectados a redes diferentes, se necesitarán una serie de procedimientos que permitan que los datos atraviesen las distintas redes interconectadas. Este conjunto de redes interconectadas se denomina interred. 41 Capa de Interred • En este sentido, la función básica de la capa de interred es que los datos generados por un dispositivo conectado a una red atraviesen la interred y lleguen a otro sistema final específico de la misma o de otra red. • El protocolo principal que realiza esta función es IP – Internet Protocol –; es decir, es el protocolo encargado de proveer el servicio de ruteo a través de varias redes. Para poder realizar este servicio, el módulo IP debe estar instalado tanto en los dispositivos finales como en los routers intermedios. • Router: dispositivo que conecta redes diferentes y es el encargado de realizar el ruteo de los datos en una interred. 42