redes de datos original-44-61.pdf

Full Transcript

CAPÍTULO II Modelo OSI y Arquitectura TCP/IP En la década de los 80 se produjo un crecimiento caótico de las redes originado principalmente por la aparición de nuevas tecnologías y su desarrollo comercial. Como consecuencia, se presentó un problema debido a que no existía un lenguaje común...

CAPÍTULO II Modelo OSI y Arquitectura TCP/IP En la década de los 80 se produjo un crecimiento caótico de las redes originado principalmente por la aparición de nuevas tecnologías y su desarrollo comercial. Como consecuencia, se presentó un problema debido a que no existía un lenguaje común para la comunicación y esto dificultaba enormemente la posibilidad de interconexión. Para salvar tantos inconvenientes, la ISO conformó un comité para que generara un modelo estándar que rigiera este tipo de comunicaciones. Producto de estas investigaciones, casi a mitad de la década de los 80, surgió el modelo OSI, de casi nula implementación comercial. Por su parte, durante la década de los 70, un grupo de ingenieros e investigadores, había desarrollado una arquitectura basada en protocolos de aplicación en la red ARPANET. Se trataba de la arquitectura que hoy se conoce como TCP/IP, siendo actualmente la más difundida para la comunicación en redes de datos. Casi al mismo tiempo que surgía el modelo OSI, TCP/IP se integró en la versión 4.2 de la distribución del sistema operativo UNIX de la Universidad de Berkeley. Enseguida se sumaron las integraciones en versiones comerciales de UNIX, y TCP/IP se convirtió en el estándar de Internet. 2.1 Arquitectura de Protocolos En un entorno de comunicación en red, los sistemas no utilizan un único protocolo, sino un conjunto denominado familia, pila o arquitectura de protocolos, que actúan de manera cooperativa, debiendo ser capaces de comunicarse entre sí. Uno de los objetivos de diseño sería crear un entorno de división del trabajo, de tal manera que los protocolos se pudieran integrar de manera independiente, aunque constituyendo un conjunto en cooperación. Dividir un problema complejo, como es el de la comunicación de datos en redes, en módulos simples, cada uno con una funcionalidad bien definida, ayuda a entender más fácilmente las dificultades existentes. Las consecuencias de lograr una división óptima, se traduce en una serie de ventajas: 45 Redes de datos y sus protocolos / Mónica C. Liberatori  Documentación más sencilla de entender: como consecuencia de dividir un problema complejo en partes más pequeñas y específicas, se facilita la descripción y el entendimiento, sobre todo para quienes trabajan en implementaciones.  Especialización: la división puede generar más fácilmente expertos en aspectos particulares.  Facilidad de modificación: una división óptima permite realizar modificaciones en las partes sin afectar al todo, ya sea en los casos en que se detecten dificultades, como en los que se propongan mejoras. Cada módulo aportará lo suyo, ya sea en términos de hardware o de software, y será capaz de interactuar con otros módulos, de sus mismas características, ubicados en otros dispositivos en la red. Inclusive, bajo estas premisas, es posible lograr la comunicación entre dispositivos de diferentes características técnicas. Uno de los interrogantes más difíciles de resolver se relaciona con decidir cuántas capas o módulos se deben definir y cuáles funcionalidades se asignarán a cada uno, para que el diseño de los correspondientes protocolos se convirtiera en una tarea de complejidad manejable. De ese modo se diseñó la comunicación TCP/IP que, aunque estrictamente hablando, es una pila de protocolos, se puede asimilar a un modelo de comunicación conformado por capas. A modo de ejemplo, imagínese dos sistemas A y B en distintos puntos de una red, cada uno con el mismo conjunto de capas, intentando comunicarse bajo las premisas descriptas. Se propone un modelo de 3 capas, separadas entre sí por las líneas punteadas que se presentan en la Fig. 2.1. Dentro de cada capa, un cubo indica la implementación en software de los protocolos. En cada sistema existe un flujo vertical de comunicación entre capas adyacentes. Entre ambos sistemas, el flujo de mensajes es horizontal entre capas del mismo nivel, también conocidas como capas o niveles pares. Figura 2.1 - Un modelo de comunicación por capas. La comunicación entre sistemas funciona correctamente utilizando una técnica conocida como encapsulado. Este concepto implica agregar a un mensaje, 46 Capítulo II: Modelo OSI y Arquitectura TCP/IP o conjunto de datos, un encabezado con información de control. La regla dentro de cada sistema, es que cada protocolo genera un mensaje que se encapsula dentro de un encabezado del protocolo de la capa inferior. En el caso del ejemplo, un mensaje generado en A, denominado Datos, llegará al final inferior de la pila de protocolos del sistema A encapsulado de la siguiente manera: (𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸1/ 𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸2/𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸3/𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷. Una vez transportado sobre el medio subyacente, arribará al sistema B, y subirá por la pila pasando por un proceso de des-encapsulado, donde cada protocolo de un nivel observará en el encabezado del protocolo del nivel par la información que se considera relevante a ese nivel. Luego entregará a la capa superior el mensaje con el encabezado que le corresponda. En el último nivel del sistema B, se entregará finalmente el mensaje (𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸𝐸3/𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷), generado por A. En este ejemplo, se ha dividido el trabajo relacionado con la comunicación de datos en tres capas, como una forma de aproximación al problema real. La capa más baja es la que más se relaciona con los detalles de la transmisión física de los datos. Funcionalidades más cercanas al hardware se relacionarían con este nivel, tales como codificación, velocidad de transmisión, conector de acceso a la red, niveles de tensión o sistema de señalización. En contrapartida, el nivel superior es el más cercano a la interacción con el usuario. Se trata de las aplicaciones de software desarrolladas para la comunicación en red. En el medio, se ha incluido un nivel que oficia de soporte para las aplicaciones, acomodando la comunicación a los diferentes tipos posibles de medios o métodos de acceso presentes en el nivel inferior, pero ocultando ese detalle al nivel superior. Se podría decir que existe una comunicación real, asociada al flujo vertical de mensajes en cada sistema, y una comunicación virtual, indicada en el dibujo por las flechas punteadas horizontales. Esta última se denomina comunicación entre protocolos pares. 2.2 Modelo OSI Considerando que estandarizar sistemas o protocolos permite desarrollar entornos inter-operativos, aún cuando provengan de diferentes fabricantes, en 1977 se formó un subcomité de la ISO con la misión de desarrollar una arquitectura para modelar la comunicación entre sistemas en una red. El modelo de referencia se llamó Modelo de Interconexión de Sistemas Abiertos (OSI, Open System Interconection) y fue publicado en el año 1984. Como convenía a un problema complejo, era necesario dividir las tareas y asignar estándares por funcionalidad, es decir definir una arquitectura. En el modelo OSI las funciones se distribuyen entre un conjunto jerárquico de capas, necesarias para la comunicación entre entidades de distintos sistemas. Cada capa debía apoyar su funcionalidad en la de la capa inferior. Las capas inferiores realizarían las funciones más primitivas, ocultando sus detalles 47 Redes de datos y sus protocolos / Mónica C. Liberatori de implementación a las capas superiores. Este concepto de ocultamiento es el que permitiría que el reemplazo de una capa no afectara a las demás. El gran desafío para el comité de la ISO fue encontrar el número de capas adecuado para que un gran problema se viese subdividido en problemas más sencillos, por sobre todo fáciles de describir e implementar. Para enfrentar el dilema, el comité definió un conjunto básico de servicios que cada capa debería ser capaz de cumplir. Como premisa, se trabajó sobre la idea de que la división en capas debía ser tal que en una misma capa se agrupasen funcionalidades similares, siempre que el número total no resultase muy grande, para que la descripción del modelo, de la cual dependería finalmente cualquier implementación, fuese más sencilla. También razonaron que el número total de capas establecería una relación de compromiso con respecto a la cantidad de bits de cualquier mensaje transportado. Como cada capa supondría con el agregado de un encabezado, con campos relacionados con la funcionalidad de la misma, si la cantidad de capas era muy grande, la relación entre los bits agregados como información de control con respecto a la cantidad de bits propios del mensaje, resultaría ineficiente. Es decir que debían encontrar una relación de overhead apropiada. Se denomina overhead a la relación en bits entre la longitud del mensaje propiamente dicho y la longitud total del paquete generado por el agregado de encabezados, procesamiento conocido con el nombre de encapsulado. El modelo de referencia OSI se desarrolló sobre un conjunto de siete capas, numeradas de 1 a 7 según la posición de la capa en el modelo. Cuanto más bajo es el número, más cerca se encuentra la capa del hardware utilizado para implementar la comunicación en red. Por ejemplo, la Capa 1, denominada Capa Física, directamente es la de implementación en hardware, relacionándose su funcionalidad con técnicas de señalización, niveles de tensión, velocidades, anchos de banda y tipos de medios de transmisión, con sus respectivas particularidades. La Capa 2 ya posee funcionalidades que pueden desarrollarse en hardware y software, en tanto que la Capa 7 o Capa de Aplicación, es el nivel más cercano al usuario y a los programas que éste utiliza. Estos programas, a su vez, se comunican con el sistema operativo instalado en el dispositivo. A medida que se recorre el modelo desde la Capa 1 a la Capa 7, se sube en el conjunto de capas, como se puede apreciar en la Fig. 2.2. 48 Capítulo II: Modelo OSI y Arquitectura TCP/IP Figura 2.2 - Modelo OSI. En el lenguaje descriptivo de OSI, una Capa N es una capa genérica que tiene por debajo la Capa (N-1) y por encima la Capa (N+1). Se dice que la Capa(N-1) ofrece sus servicios a la Capa N, mientras que ésta, a su vez, ofrece sus servicios a la Capa(N+1). En este modelo, el mecanismo de comunicación entre capas adyacentes se denomina interfaz. El concepto de interfaz OSI no se parece al que usamos comúnmente hoy en día, puesto que se refiere a la forma en que se pasan los datos entre capas adyacentes. El concepto actual de interfaz tiene más relación con la conexión física y funcional de un dispositivo. Figura 2.3 - Comunicación vertical entre capas del modelo OSI. Encapsulado. Cuando se desea transmitir algo sobre la red, los mensajes de una aplicación recorren verticalmente la pila de capas del modelo que representa el dispositivo transmisor, desde arriba hacia abajo. En el extremo receptor, los mensajes se procesan también de manera vertical pero al revés, desde abajo hacia 49 Redes de datos y sus protocolos / Mónica C. Liberatori arriba. Esta comunicación vertical es una comunicación real entre capas adyacentes. Aparte de la comunicación real vertical, existe una comunicación virtual, de carácter horizontal, entre capas con la misma numeración, denominadas capas pares. Esta comunicación horizontal es lo que hace posible la transmisión de datos en redes, siempre y cuando los extremos que se están comunicando acuerden una serie de reglas, un lenguaje común para poder entenderse entre módulos concretos de software o hardware. Este es el concepto principal relacionado con la funcionalidad de de un protocolo. Un protocolo reglamenta la comunicación horizontal, a través de la definición de mensajes denominados Unidades de Datos de Protocolos PDU. Estas unidades se componen de dos partes: el propio mensaje y un encabezado. En el proceso de transmisión, una Capa N genera una PDU, que se identifica como N-PDU, que se pasa a la capa adyacente inferior (N-1), donde conforma la (N-1)-SDU, es decir la porción de datos de la Capa (N-1). Esta capa debe conformar su propia (N-1)-PDU, adicionando a la (N-1)-SDU el encabezado propio. Este procedimiento es lo que se conoce como funcionalidad de encapsulado, como se puede apreciar en la Fig. 2.3. De este modo, cada capa toma la PDU de la capa superior, SDU de su nivel, y le agrega su propio encabezado conformando una nueva PDU, que entrega luego a la capa adyacente inferior. El mecanismo se repite hasta llegar a la Capa Física, que termina recibiendo un mensaje de la Capa de Aplicación encapsulado por los encabezados de la Capa 7 hasta la Capa 2. El modelo OSI definió las principales funciones asignadas a cada una de las capas:  Capa Física: especifica el tipo de medio a utilizar, pudiendo tratarse de cable coaxial, fibra óptica, par trenzado o medio inalámbrico, entre los más comunes. También define la forma de adaptar los bits generados por las computadoras al propio medio en cuestión. Se trata de técnicas de codificación y señalización, ya sea banda base o pasa banda. Esta capa se encarga también de los detalles de operación de cables, conectores, transceptores, tarjetas de interfaz de red (NIC, Network Interface Cards) y de todo lo relacionado con la transmisión y recepción de los datos en la red. Describe la topología de la red y el tipo de transmisión, en general half duplex o full duplex, junto con los valores de tensión y la duración de los símbolos. En el caso de los conectores, especifica el tipo y cantidad de pines, describiendo las funciones de los mismos. Formalmente, el modelo OSI menciona la definición de características mecánicas (propiedades físicas de la conexión y del medio de transmisión que definen tipos de conectores o adaptadores), eléctricas (niveles de tensión, velocidades de transmisión), funcionales (definiciones de funciones de circuitos) y de procedimientos (secuencia de eventos) de la interfaz física. Las placas de red, los repetidores y transceptores son dispositivos de Capa Física. 50 Capítulo II: Modelo OSI y Arquitectura TCP/IP  Capa de Enlace de Datos: su función es presentar a la capa superior, la Capa de Red, un enlace físico seguro, independientemente de la Capa Física existente. En el modelo OSI la Capa de Enlace se considera dividida en dos subcapas: la subcapa de Control de Acceso al Medio (MAC, Medium Access Control) y la subcapa de Control Lógico de Enlace (LLC, Logical Link Control). La MAC es la subcapa más cercana a la Capa Física y su misión es definir la forma de adaptación para el acceso al medio específico que se encuentre por debajo. Por ejemplo, en muchas redes se comparte el mismo medio físico debiéndose imponer una serie de reglas para el acceso equitativo, para evitar posibles conflictos. La subcapa LLC se define como una especie de interfaz entre la MAC y la Capa de Red, independiente del medio físico subyacente, proveyendo servicios a la Capa 3 pero ocultando los detalles de diferentes posibilidades a nivel de Capa 2. Las funciones de la Capa de Enlace se relacionan con activar, desactivar y mantener un enlace, controlar errores, controlar el flujo de la comunicación para acomodar diferencias de procesamiento entre capas pares, ordenar los mensajes en la entrega, manejar funcionalidades de re- transmisión y realizar tareas de delimitación y sincronismo. También, a nivel de Capa 2, se define un esquema de direccionamiento de significado local, denominado dirección de hardware o dirección MAC, que permite identificar unívocamente un dispositivo dentro de una red. Las Unidades de Datos de Protocolo a este nivel se denominan tramas.  Capa de Red: se trata de la capa que define cómo es posible conectar diferentes redes entre sí. A diferencia de la Capa de Enlace, que se involucra en la comunicación entre dispositivos de la misma red, la Capa de Red se encarga de que sea posible la comunicación entre dispositivos, aún cuando los mismos se encuentren en distintas redes. Una de las principales funciones asociadas a esta capa es el enrutamiento, que se traduce en la posibilidad de manejar paquetes provenientes de distintas fuentes, observar ciertos campos a nivel de Capa de Red, y enviarlos de manera consistente hacia la red a la que deben arribar. En la arquitectura de red del modelo OSI existen sistemas finales, que corren aplicaciones, y sistemas intermedios, que sólo cumplen funciones de enrutamiento. Los dispositivos para interconexión de redes que operan en este nivel se conocen con el nombre de routers. Uno de sus principales trabajos consiste en comunicarse entre ellos por medio de protocolos de enrutamiento, para poder determinar automáticamente las mejores rutas a diferentes destinos. De este modo pueden realizar eficientemente la funcionalidad de enrutamiento. De todas maneras, cada sistema posee un identificador único en la red y se necesita una funcionalidad de red en todos. Por este motivo, cada dispositivo lleva asociada una dirección lógica, de significado global, independiente del hardware particular, que tiene carácter único, 51 Redes de datos y sus protocolos / Mónica C. Liberatori permitiendo la comunicación con dispositivos fuera de la red local. Esta dirección es parte de la información de control de Capa de Red que usan los dispositivos intermedios para decidir hacia dónde encaminar un paquete. El servicio ofrecido por esta capa puede ser orientado a la conexión o sin conexión. En el primer caso, la Capa de Red debe proveer los medios para establecer, mantener y liberar las conexiones de red. En cualquier caso, en la Capa de Red se deberán ofrecer los medios necesarios para resolver diferencias cuando los paquetes atraviesan redes de distintas características. Un parámetro característico en estos casos es la Unidad de Trasferencia Máxima (MTU, Maximum Transfer Unit) que la red es capaz de transportar. Cuando el tamaño de un paquete es mayor que la MTU de la red subyacente, se hace necesario dividirlo en pedazos más pequeños, un proceso que se conoce con el nombre de fragmentación. Luego, para su entrega correcta, los fragmentos deben re- ensamblarse para conformar el mensaje original. Ambas tareas son funcionalidades propias de la Capa de Red. Las Unidades de Datos de Protocolo de este nivel se suelen conocer con el nombre de paquetes o datagramas.  Capa de Transporte: es el nivel donde se ofrece un control para el transporte de los datos entre los dos sistemas finales de la comunicación. Se dice que es la primera capa del tipo end-to-end, refiriéndose esta expresión a los extremos finales de la comunicación: fuente y destino de la información. Puede ofrecer servicios de dos tipos: orientado a la conexión o sin conexión. En el caso de servicio orientado a la conexión, la funcionalidad también puede encontrarse en la Capa de Red aunque, en la actualidad, es muy común hallarla en la Capa de Transporte por cuestiones de fiabilidad. En el segundo caso, la funcionalidad es apropiada para esquemas de comunicación de tipo transaccional, con intercambio de baja cantidad de volúmenes de datos. La misión principal de la Capa de Transporte es mantener un acceso uniforme a la red, independientemente del medio de comunicación disponible, especialmente con el objetivo de blindar el nivel superior respecto de los mecanismos de las redes subyacentes. Para lograrlo, la capa debe contar con todos los mecanismos de optimización de recursos que aseguren la calidad de la conexión. Por este motivo, la Capa de Transporte muchas veces cuenta con funcionalidades para manejo de errores, medición del retardo máximo permitido en una conexión, marcado de tráfico para prioridad, manejo de fallas y control de flujo. Como en las Capas 2 y 3, también a nivel de Capa de Transporte existe un esquema de direccionamiento, aunque usado para distinguir entre diferentes programas dentro de un mismo dispositivo. La existencia de este esquema hace posible que varias aplicaciones de usuario se encuentren conectadas a la red al mismo tiempo. 52 Capítulo II: Modelo OSI y Arquitectura TCP/IP Las Unidades de Datos de Protocolo de este nivel se conocen como segmentos.  Capa de Sesión: el modelo OSI plantea la comunicación entre sistemas finales como un diálogo que hay que organizar y sincronizar. La inclusión de una Capa de Sesión ofrece a los usuarios el acceso a la red, previa codificación de datos que realiza el nivel superior, permitiendo el establecimiento y desconexión de una sesión. El concepto de sesión se refiere al acceso remoto desde un terminal a un dispositivo, por ejemplo para transferencia de archivos. Las funciones de la Capa de Sesión se relacionan con organizar, sincronizar y administrar el intercambio de información entre entidades del nivel superior. Es función de esta capa la administración de testigos o tokens para controlar el orden del diálogo. Con estos elementos, se podrían definir puntos de comprobación o checkpoints durante una sesión. En caso de fallas, estos puntos servirían como marcas de sincronismo, permitiendo retomar una sesión desde un punto determinado, anterior al evento de error registrado, sin necesidad de arrancar de nuevo la sesión. En la actualidad, muchas de las funciones de esta capa se proveen a las capas superiores por medio de conjuntos de comandos conocidos como Interfaz de Programación de Aplicaciones (API, Application Program Interface). Las API definen servicios estandarizados para facilitar las comunicaciones sobre una red, permitiendo a los programadores de aplicaciones desprenderse de los detalles de implementación de los niveles inferiores. Por ejemplo, el término socket se aplica a una API para la familia de protocolos de TCP/IP provista usualmente por el sistema operativo.  Capa de Presentación: esta capa pretende descargar de las aplicaciones la cuestión de la representación y manipulación de datos estructurados. En este sentido, define el formato de los datos que se van a intercambiar entre las aplicaciones para la resolución de diferencias sintácticas entre sistemas. Algunas de estas representaciones son típicas de ciertos dispositivos, otras veces la representación es diferente según el sistema operativo. Lo importante es la preservación de su significado entre ambos extremos de la comunicación. Dos funcionalidades solían asociarse a esta capa: compresión y cifrado de datos. Actualmente, la compresión es una funcionalidad agregada a modo de programa o aplicación, mientras que el cifrado de datos tiende a instalarse en niveles inferiores, de manera transparente al usuario.  Capa de Aplicación: en esta capa se lleva a cabo el procesamiento final de la información a intercambiar. La Capa de Aplicación provee servicios a los programas usuario. Es la capa del modelo OSI más cercana al entorno usuario. Es responsable de la semántica de la información intercambiada. No todas las aplicaciones son susceptibles de 53 Redes de datos y sus protocolos / Mónica C. Liberatori estandarizar, pero determinados procedimientos son comunes a todos los protocolos de aplicación. Por ejemplo, empezar y terminar una asociación entre procesos de aplicación podría ser una funcionalidad frecuente. La comunicación entre capas pares en diferentes dispositivos es lógica, excepto a nivel de la Capa Física, donde la comunicación es por hardware. En la transmisión, cada capa conforma una PDU a su propio nivel y debe pasarla a la siguiente inferior. La capa inferior la recibe como parte del servicio que brinda a la superior, aunque en este nivel el mensaje se considera una SDU hasta que la capa inferior agregue su propio encabezado. Es decir que, en cada capa se produce un proceso de encapsulado de una SDU en una PDU. Como se ha explicado, este proceso de encapsulado continúa hacia abajo hasta llegar a la Capa Física. En la Fig. 2.4 se ofrece un esquema de los mensajes en cada nivel del modelo. En este caso, la representación del proceso de encapsulado y des-encapsulado se grafica para dos sistemas directamente conectados, poniendo en relevancia la información de control en cada nivel del modelo OSI. En la recepción, cada capa utilizará la información referida a su propio encabezado, subiendo a la capa superior el mensaje encapsulado a ese nivel. La comunicación virtual en el plano horizontal en cada capa se refiere a la interpretación de los encabezados provenientes de la capa par del lado transmisor. La comunicación directa presentada en la Fig. 2.4 es aplicable en determinados entornos, entre máquinas de una red local. El objetivo principal de la comunicación en redes es ofrecer la posibilidad de interconexión entre redes. Una comunicación entre dispositivos alojados en diferentes redes es una comunicación indirecta. Este tipo de comunicación es transparente para los propios dispositivos finales que, simplemente, entregan los mensajes a su red local para que, de alguna manera, puedan arribar al destino final. El pasaje desde una red a otra precisa de dispositivos especiales, capaces de realizar el trabajo de re-envío. El proceso completo, realizado de manera conjunta y cooperativa, se denomina encaminamiento o enrutamiento. Como se ha mencionado, la actividad de re-envío de mensajes depende de la funcionalidad de ruteo, típica de la Capa 3. En el caso de una comunicación entre sistemas ubicados en diferentes redes, es decir conectados a través de nodos de re-envío o routers, el proceso de encapsulado inicial se cumple como se ha descripto. El mensaje se encapsula hacia abajo en la transmisión, contando con una dirección de destino externa y global, a nivel de Capa 3. Al ser reconocida como una dirección no local, se entiende que el mensaje debe ser pasado a un dispositivo intermedio, responsable del ruteo hacia la red destino. Esto se logra haciendo uso de una dirección apropiada a nivel de Capa 2. Así, el dispositivo de salida de la red local, recibirá el mensaje, lo des-encapsulará hacia arriba, hasta llegar al nivel de Capa de Red, donde se determinará si el mensaje, debido a su dirección destino, precisa nuevamente pasar por el proceso de re-envío. Tomada la decisión, el mensaje se volverá a encapsular, hacia abajo, y se enviará al siguiente router en la ruta. Luego de la eventual repetición de este proceso en varios dispositivos 54 Capítulo II: Modelo OSI y Arquitectura TCP/IP intermedios, el mensaje arribará al router de entrada a la red destino, que procederá a su entrega directa. Figura 2.4 - Sistemas directamente conectados. El proceso de comunicación indirecta se grafica en la Fig. 2.5 en el caso de dos dispositivos, A y B, en diferentes redes, conectadas entre sí por un router. Cuando la comunicación no es directa, a nivel de Capa de Red, es necesario que el encabezado del mensaje original cargue una dirección global para identificación del destino final B, que se señala como Dir_Global_B. Por otra parte, en la Capa de Enlace se agregará una dirección con significado local, referida como Dir_Local_RI, a los fines de identificación del router intermedio. En el esquema simplificado de la Fig. 2.5, el único router en el camino, denominado Router Intermedio, recibe el mensaje por el vínculo físico con el Sistema A, y lo pasa a su propia Capa de Enlace, que reconoce en su encabezado su dirección local Dir_Local_RI. De este modo, el Router Intermedio asume que le corresponde procesar el mensaje, por ejemplo para chequeo de errores, y entregarlo a la Capa de Red, luego de remover el encabezado de Capa de Enlace. La Capa de Red revisa la dirección destino a su nivel, Dir_Global_B, para determinar si el destino final se encuentra en alguno de los vínculos locales del router o si debe re-enviarlo a otro router. Para tomar la decisión, consulta 55 Redes de datos y sus protocolos / Mónica C. Liberatori información almacenada en memoria. Se trata de la información de ruteo que, en cierto modo, refleja la topología de la red. En el caso que el mensaje tuviera que ser re-enviado a otro router en su camino a destino, la Capa de Red mantiene la dirección global del destino, Dir_Global_B y baja el paquete a la Capa de Enlace, que tendrá que escribir en su encabezado la dirección local del siguiente router, antes de la entrega a la Capa Física para su transmisión. Este proceso se repetiría en cada nodo intermedio antes de llegar al destino final. El último router de la cadena reconocerá la Dir_Global_B como dependiente de una de sus conexiones de red, efectuando la entrega de manera directa. En este tramo de la comunicación, la dirección de Capa de Enlace deberá referirse al dispositivo receptor. Figura 2.5 - Comunicación con router Intermedio. Se puede observar que en los nodos intermedios no es necesario ningún procesamiento a niveles superiores a la Capa de Red. Por eso, a estos dispositivos especiales, se los modela como un conjunto de tres capas. Al llegar a destino final, el mensaje es reconocido como propio por la dirección local de Capa de Enlace, Dir_Local_B, y la dirección global de Capa de Red, Dir_Global_B. Así va ascendiendo por las diversas capas del sistema B hasta que el mensaje original es entregado a la Capa de Aplicación de B. Con esta descripción, se ha pretendido dejar claro un concepto: en el viaje desde fuente a destino, las direcciones globales del mensaje, presentes en el encabezado de Capa de Red, no cambian. Cuando la entrega es indirecta las direcciones de significado local, en el encabezado de Capa de Enlace, sí pueden cambiar en cada tramo de la comunicación. 56 Capítulo II: Modelo OSI y Arquitectura TCP/IP Como se observa en la Fig. 2.5, las Capas Física, de Enlace y de Red, se comunican entre dispositivos directamente conectados, en tanto que el diálogo entre las capas por encima de la Capa de Red, es entre sistemas finales. De este modo, el protocolo usado en dichos niveles ha de ser común entre sistemas conectados directamente, pero cada enlace en el camino puede ser de diferente naturaleza. Esta propiedad demuestra uno de los puntos más fuertes del modelo en capas, la posibilidad de conectar diferentes redes entre sí, denominada capacidad de internetworking. La publicación del modelo OSI en 1984, pareció abrir el camino para la estandarización de protocolos que permitieran la inter-operatividad entre equipos de distintos fabricantes pero, a pesar de las expectativas generadas por el trabajo de la ISO, los desarrollos de protocolos en base al modelo OSI no llegaron casi a hacerse realidad. Se podría mencionar el protocolo de nivel de red X.25 y el de mensajería X.400 como casi los únicos que tuvieron una implementación práctica importante. Para la misma época, la comunicación mediante los protocolos TCP/IP se observaba como un logro experimental de un grupo de ingenieros e investigadores. Es de destacar que la primera versión de TCP data de 1973, aunque formalmente fue documentado en la RFC 675, a fines del año 1974. Por ende, TCP/IP no se basó en el modelo OSI. A lo largo de la historia de Internet, sucedieron muchas circunstancias que permitieron el avance explosivo de los protocolos TCP/IP. Uno de los motivos más importantes fue su simplicidad, que resalta aún más cuando se compara con la complejidad conceptual del Modelo OSI, en cuyo detalle no hemos ahondado en esta presentación. 2.3 Arquitectura TCP/IP A diferencia del modelo OSI, TCP/IP es en realidad una pila de protocolos. En términos comparativos, IP cumpliría la funcionalidad requerida por la Capa de Red de OSI, en tanto que TCP se correspondería con la Capa de Transporte, aunque en realidad la pila consta de más de un par de protocolos. Como en el modelo OSI, en la arquitectura TCP/IP existe la idea de un protocolo ofreciendo sus servicios a los que se apoyan sobre él, fundamentalmente para poder hacer realidad la premisa de interconexión de redes. También se desarrolla la idea de comunicación virtual entre protocolos pares entre dispositivos conectados directamente para los niveles más bajos, y entre los extremos finales, para los niveles superiores. Otra característica que se sostiene es el concepto de encapsulado. Dado que TCP/IP es un conjunto de protocolos, su funcionamiento se comprende estudiando dichos protocolos. Cada uno de ellos realiza una serie de funciones necesarias para implementar la comunicación en red, pero trabajan en cooperación, justamente para lograr este objetivo. Los protocolos más importantes de esta arquitectura son los que le dan el nombre, TCP e IP, y también el Protocolo de Datagrama de Usuario (UDP, User Datagram Protocol). Cada uno 57 Redes de datos y sus protocolos / Mónica C. Liberatori de ellos soporta otros protocolos que apoyan su funcionalidad sobre este núcleo de la arquitectura. Con fines comparativos, TCP/IP se podría modelar en 4 niveles con funcionalidades semejantes a sus pares del modelo OSI, como se puede apreciar en la Fig. 2.6. Figura 2.6 - Comparación Modelo OSI vs. Arquitectura TCP/IP La estructura es más simple que la del Modelo OSI, tiene su paralelismo con éste, pero en el caso de implementaciones reales muchos protocolos no caben particularmente en una capa de la arquitectura convencional. A continuación se presenta un resumen de las principales características de cada nivel:  Aplicación: en este nivel la comunicación es entre procesos o aplicaciones que manejan datos de usuario y se los deben comunicar a otros procesos o aplicaciones en otro punto de la red. Se trata del nivel más alto de la arquitectura, comparable a las tres capas de mayor numeración del Modelo OSI, aunque muchas veces sería imposible establecer una relación directa entre protocolos en este nivel con funcionalidades específicas de una capa OSI. Protocolos tales como SMTP para transporte de mensajes de correo electrónico, FTP para transferencia de archivos, SSH para conexiones remotas seguras y HTTP para navegación en la web, operan en este nivel.  Transporte: es el nivel de comunicación entre las máquinas en red que constituyen los extremos finales de la comunicación. Las mismas pueden encontrarse en redes diferentes conectadas a través de routers, o en la misma red. Los protocolos de este nivel, TCP y UDP, ofrecen a los del nivel superior una interfaz de acceso a la red uniforme, sin que importe 58 Capítulo II: Modelo OSI y Arquitectura TCP/IP el tipo de conexión o red subyacente. Se les asocia funcionalidades relacionadas con el control de error y control de flujo, aunque TCP también permite manejar una conexión, porque es un protocolo del tipo orientado a la conexión. Es decir que TCP se encarga de brindar confiabilidad, abrir, mantener y cerrar conexiones solicitadas por aquellos protocolos de nivel superior que requieren sus servicios. Para ello, es capaz de manejar datos fuera de orden, errados o duplicados. Su funcionalidad incluye el control de congestión y el manejo de paquetes perdidos. Protocolos tales como HTTP apoyan su funcionalidad en TCP. Por su parte, UDP ofrece un servicio sin conexión, apto para aplicaciones transaccionales, como es el caso de DNS. Tanto TCP como UDP incluyen un esquema de direccionamiento para identificar aplicaciones. Se trata de campos de encabezado, de 16 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏, conocidos como números de puerto.  Red: existe un único protocolo a este nivel y su función es la de lograr la interconexión de redes. IP cuenta con capacidad de manejo de datagramas o paquetes y su misión es que los mismos se muevan hacia el destino, a través de diversas redes. El servicio de transmisión de datagramas IP es un servicio sin conexión, no confiable, pero que permite lograr uno de los objetivos más importantes de manera sencilla: la inter- conectividad. Como su principal trabajo es el ruteo, en su versión más antigua, el protocolo IPv4 posee un esquema de direccionamiento de tipo jerárquico, de 32 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏, conocido como esquema de direcciones IP. La versión más moderna IPv6 cuenta con un espacio de direcciones mucho más grande, de 128 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏. El servicio de ruteo es tipo salto a salto o hop- by-hop, con comunicación entre sistemas conectados directamente hasta llegar al router más cercano al destino final. IP puede cargar mensajes de muchos protocolos del nivel superior, identificados con un campo especial en el encabezado, denominado campo de número de protocolo, que le permite realizar multiplexado para poder entregar de manera correcta el mensaje encapsulado. Entre los protocolos encapsulados por IP, podemos mencionar: el Protocolo de Mensajes de Control de Internet (ICMP, Internet Control Message Protocol), y los protocolos TCP y UDP.  Enlace: es el nivel que atiende las cuestiones relacionadas con el tipo de red local sobre la que se dirige la comunicación. En términos comparativos, los protocolos en este nivel de la pila se ubican en las Capas de Enlace y Física del modelo OSI. Es decir que aquí se manejan los detalles del medio de comunicación sobre el que se transmitirán y recibirán los datagramas generados por IP entre dos máquinas diferentes conectadas indirectamente o sobre el mismo enlace. La funcionalidad de los protocolos de este nivel puede desarrollarse en hardware, por ejemplo en las placas de red, y en software. Antes de enviar los datagramas sobre el medio físico específico, estos serán acondicionados con el agregado de un encabezado generado por protocolos de este nivel, por ejemplo para 59 Redes de datos y sus protocolos / Mónica C. Liberatori agregar algún tipo de direccionamiento con significado local, a diferencia de IP cuyo direccionamiento es de significado global. Muchos protocolos de este nivel también agregan al final un campo para control de errores. Uno de los protocolos más antiguos que operan en este nivel es el Protocolo de Resolución de Direcciones (ARP, Address Resolution Protocol). En el caso de redes de acceso múltiple, este protocolo trabaja en conjunto con el protocolo IPv4, para relacionar direcciones IP con las correspondientes direcciones del nivel de enlace. Como sucede en el modelo OSI, en la transmisión un mensaje atraviesa la pila de protocolos hacia abajo, agregándosele en cada caso información de control, denominada encabezado, como se puede apreciar en la Fig. 2.7. En el lado receptor, el proceso es inverso: a medida que los datos se mueven hacia arriba, cada protocolo obtiene información de los campos de control de su propio encabezado, y luego sube el mensaje encapsulado, sin el encabezado. Figura 2.7 - Encapsulado TCP/IP. La Fig. 2.8 presenta una comunicación indirecta entre dos sistemas, con arquitectura TCP/IP, a través de un router intermedio. Como en el caso del Modelo OSI, la comunicación horizontal entre los dos niveles más bajos, se realiza entre dispositivos comunicados directamente. Por su parte, los niveles de transporte y aplicación, establecen una comunicación horizontal entre extremos finales. 60 Capítulo II: Modelo OSI y Arquitectura TCP/IP Figura 2.8 - Comunicación TCP/IP con router intermedio. El software TCP/IP está integrado en la mayoría de los sistemas operativos actuales, tales como Unix, Linux, Windows, y Mac OS. En términos generales, se podría ubicar ambos protocolos, TCP e IP, como parte del sistema operativo, situándose el nivel de aplicación por encima, en el entorno de usuario, y el de enlace, algunas veces llamado interfaz de red, por debajo, integrado en el hardware. Ciertos parámetros de los protocolos se pueden ajustar de manera diferente según el sistema operativo que los contenga y aún pueden existir diferencias entre versiones del mismo sistema operativo. Esta posibilidad puede abrir la puerta a ciertas vulnerabilidades en términos de seguridad. 2.4 Operación Peer-to- Peer y Operación Cliente/Servidor Generalmente se estudia detalladamente TCP/IP en término de sus protocolos porque dicha visión permite entender cómo trabaja la arquitectura. En el apartado anterior se han presentado los distintos niveles de la arquitectura TCP/IP y su equivalente en términos del modelo OSI. En ambos esquemas, la posibilidad de mover datos en una red abre la puerta a una variada oferta de servicios, provistos tanto a otros protocolos como a los propios usuarios finales. Los protocolos más importantes de la arquitectura TCP/IP permiten desarrollar toda la funcionalidad necesaria para la inter-conectividad de redes, capacidad utilizada por los niveles superiores para ofrecer servicios a los usuarios finales. Se trata de las aplicaciones que tanto éxito han tenido en Internet. Las redes se conectan a Internet para poder comunicarse con otras redes y compartir recursos. Esta última posibilidad precisa del diseño de aplicaciones de red, planteadas para realizar una gran variedad de tareas reconocidas genéricamente bajo la forma de ofrecer servicios. El diseño, en términos generales, puede estructurarse según dos modelos: cliente/servidor y peer-to- 61 Redes de datos y sus protocolos / Mónica C. Liberatori peer. El modelo particular precisará de cierta responsabilidad asignada a cada dispositivo al momento de compartir recursos. En algunas redes, todos los dispositivos se comportan de la misma manera, mientras que en otras, cada uno tiene asignado un trabajo particular al momento de proveer servicios. Aquellas redes configuradas con dispositivos pares, donde cada uno posee recursos que comparte con el resto, utilizando software de similares características, se denominan redes peer-to-peer (P2P) o entre pares. Las redes P2P permiten el intercambio directo de información entre los dispositivos interconectados, sin la coordinación de un servidor central. Se trata de aplicaciones distribuidas, donde cada actor trabaja como cliente o servidor, siendo capaz de re-enviar requerimientos. Algunas de las utilizaciones más difundidas de las redes P2P sirven para intercambiar archivos, desplegar juegos en red y actuar como base para la nueva tecnología Voz sobre IP (VoIP, Voice over IP). Por ejemplo, en Skype se considera un sistema P2P para conectar a todos los nodos en una red de manera dinámica para participar en el enrutamiento de tráfico, el procesamiento y las tareas intensivas de ancho de banda que, de otro modo, dependerían de la administración de servidores centrales. Existen otras redes, que se definen dentro de un modelo conocido como cliente/servidor. Por diseño, muchos servicios típicos de Internet, se implementan en dos aspectos bien definidos: un número pequeño de máquinas muy poderosas, denominadas servidores, que proveen información, y un número mucho más importante de clientes, que la requieren. La arquitectura cliente/servidor puede ser pensada como un conjunto de computadoras conectadas por medio de una red de comunicaciones, pero con diferentes roles asignados. El modelo fue tenido en cuenta tanto en el diseño de protocolos TCP/IP como en de las aplicaciones apoyadas sobre los mismos. A modo de ejemplo, en el caso de la aplicación más popular de Internet, la World Wide Web, el navegador es en realidad un cliente HTTP con capacidad para iniciar requerimientos de algún recurso a un servidor HTTP, alojado en algún sitio Web. La red es el vínculo entre ambos. En términos generales, el servidor estará capacitado para atender muchos clientes al mismo tiempo. En términos de hardware de red, un cliente debe entenderse como un computador utilizado por un usuario, que inicia requerimientos, enviando peticiones que viajan por la red. El servidor que responde a estos clientes es una máquina de gran potencia en términos de procesamiento, generalmente funcionando en lugares físicos protegidos, bajo la responsabilidad de un administrador. En términos de software, los conceptos cliente y servidor se aplican a los programas que se alojan en las máquinas cliente y servidor. Puede suceder que una máquina posea los dos tipos de aplicaciones, tanto cliente como servidor. Por otra parte, en términos de una transacción, se denomina cliente al que la inicia y servidor al que responde, enviando la información. Es decir que, según el contexto, utilizaremos estas palabras con diferentes significados. Las redes del tipo cliente/servidor proveen ventajas en cuestiones de escalabilidad y confiabilidad. Las redes P2P cuentan con la ventaja de su simplicidad y bajo costo. Las redes cliente/servidor son más confiables y responden mejor en cuanto a la escalabilidad, aunque su configuración es más 62

Use Quizgecko on...
Browser
Browser