Arquitectura de Redes, Sistemas y Servicios Guia de estudio del tema 6 Miguel A. Gómez Hernández 20 de diciembre de 2007 1. Objetivos Este tema trata de completar la visión global sobre las funciones de las distintas capas en un modelo de referencia para arquitecturas de comunicaciones. Como resulta claro de su brevedad, la visión mostrada aquı́ es muy superficial. Este tema se justifica, por tanto, en buena parte por el refuerzo que supone de los temas anteriores el conocer cómo se pueden resolver los problemas que dejan abiertos las capas inferiores, ası́ como cuáles son estos problemas. Por todo ello, los objetivos del tema son los siguientes: Conocer los problemas que se tienen para ofrecer un servicio de transporte fiable y orientado a conexión sobre un servicio de red no fiable y no orientado a conexión, ya que estos problemas son el motivo fundamental de la existencia de la capa de transporte. Conocer algunas otras funciones necesarias para las comunicaciones, realizadas por capas superiores, y aprender a situarlas en dichas capas. Profundizar en las relaciones entre protocolos y servicios de capas adyacentes, a través de un ejemplo completo que usa los protocolos SMTP, TCP, IP y Ethernet. 2. Lecturas recomendadas Una vez más, debido a la superficialidad del estudio llevado a cabo en este tema, la mayorı́a de las fuentes resultan excesivamente detalladas. En cualquier caso se listan aquı́ las fuentes más recomendables para aclarar conceptos. La sección 17.1 de [Sta00] discute los problemas que debe resolver un protocolo de transporte para ofrecer un servicio orientado a conexión y fiable sobre un servicio de red, bien sea éste también orientado a conexión y fiable, bien no orientado a conexión y no fiable. Esta discusión es muy interesante, aunque la fuente aporta más detalles de los proporcionados en clase, pudiendo resultar ligeramente complicada. Sobre TCP y UDP existen multitud de fuentes. En los libros de texto (como [Sta00] o [Tan03]) se recoge información suficiente, pero hay fuentes donde el detalle es mucho mayor, como [Ste94], con muchos detalles de implementación de los protocolos, y [Com00], con discusiones adicionales sobre la arquitectura. En cualquier caso, no es recomendable entrar en estos detalles. Las funciones de la capa de sesión y presentación están bien estudiadas en [Tan03], que todavı́a sigue el esquema de OSI. De todas formas, tampoco se recomienda entrar en detalles, ya que algunos de estos aspectos serán estudiados (aunque de forma más dispersa) en otras asignaturas. 1 3. Problemas recomendados En esta sección se recomiendan unos pocos problemas. Debido a la brevedad del tema, son muy pocos. 3.1. Problemas 3.1.1. Problema 1 El siguiente problema es una variación del problema 17.2 de [Sta00], sobre las relaciones entre el control de flujo en la capa de enlace y la de transporte. Una forma de hacer control de flujo en la capa de transporte es pedir explı́citamente, de extremo a extremo, que no se transmitan más segmentos. Otra es no aceptar datos de las capas inferiores, con la esperanza de que, al no poder librarse la capa de enlace de sus tramas, hará control de flujo a la estación anterior. Discute las desventajas de esta última estrategia. 3.1.2. Problema 2 La pregunta 17.5 de [Sta00] discute la necesidad de numerar los segmentos de transporte cuando el servicio de red es fiable. Con un servicio de red fiable y que garantiza el orden, ¿son estrictamente necesarios los números de secuencia de los segmentos? ¿Qué capacidad, si hay alguna, se pierde sin ellos? 3.1.3. Problema 3 La pregunta 17.21 de [Sta00], ampliada aquı́, plantea la necesidad de UDP. (a) Da ejemplos de aplicaciones para las que es conveniente el uso de un servicio como el que proporciona UDP. (b) ¿Por qué es necesario UDP? ¿Por qué no puede un programa de usuario acceder directamente a IP? 3.1.4. Problema 4 El siguiente problema está inspirado en la figura 6.18 de [Tan03]. No te preocupes tanto de su resolución exacta, como de apreciar la enorme dificultad de la recuperación ante caidas. Uno de los mayores problemas a los que se enfrenta la capa de transporte es la recuperación ante caı́das. El problema surge porque, aunque suponemos que la escritura de los datos recibidos y el envı́o de la aceptación son sucesos indivisibles, en una máquina no pueden hacerse a la vez. Por ejemplo, podrı́an pasarse los datos a la capa superior (escritura) primero, y después emitir el asentimiento, pero si la caı́da ocurre entre medias hay inconsistencias. Si dos máquinas tienen abierta una conexión de transporte, y una de ellas cae, pueden darse seis situaciones, que resultan de combinar el orden de los tres eventos: la caı́da (C), la escritura de los datos (E), y el envı́o del asentimiento (A). Observa que algunas son la misma, como C(EA) o C(AE), porque después de la caida realmente no pasa nada, como indican los paréntesis. Todos los asentimientos que hubiesen sido transmitidos ya llegarán al otro extremo, con lo que en el peor de los casos el origen tiene un segmento pendiente de confirmar. Puede que haya sido escrito pero no confirmado, en cuyo caso 2 no deberı́a retransmitirse, o que no haya sido ni siquiera escrita, por lo que sı́ deberı́a retransmitirse. Las estrategias que podrı́a tomar el lado transmisor tras la recuperación son (1) retransmitir siempre; (2) no retransmitir nunca; (3) retransmitir sólo si se tiene un segmento pendiente de confirmar; (c) retransmitir sólo si no se tiene un segmento pendiente de confirmar. Completa la tabla siguiente indicando BIEN si el protocolo funciona bien, DUPLICADO si el receptor pasa duplicados a la capa de transporte, y PéRDIDA si el receptor pierde algún segmento. Primero ACK, luego escribe AC(E) AEC C(AE) Estrategia Estrategia Estrategia Estrategia Primero escribe, luego ACK C(EA) EAC EC(A) 1 2 3 4 Referencias [Com00] D.E. Comer. Internetworking with TCP/IP: Principles, protocols and architectures. Prentice Hall, Upper Saddle River, NJ, 4a edición, 2000. [Sta00] W. Stallings. Comunicaciones y redes de computadoras. Prentice Hall, Madrid, 6a edición, 2000. Versión original en inglés de 2000. [Ste94] W.R. Stevens. TCP/IP illustrated, vol. 1: the protocols. Addison Wesley, Reading, MA, 1994. [Tan03] A.S. Tanenbaum. Redes de computadoras. Prentice Hall Hispanoamericana, México, 4a edición, 2003. Versión original en inglés de 2003. 3