1.5 Layering, encapsulation
¿Cómo abordar el diseño de sistemas complejos como Internet?
Introducción a la complejidad del sistema
- El internet es un sistema extremadamente complejo, compuesto por aplicaciones, dispositivos, personas y hardware que interactúan entre sí.
- Se busca entender cómo diseñar y discutir sobre este sistema complejo para facilitar la enseñanza y el aprendizaje.
Concepto de capas arquitectónicas
- Se introducirá el concepto de "arquitectura en capas" para desglosar la complejidad del internet.
- Se utilizará una analogía con los sistemas de aerolíneas para ilustrar cómo se pueden definir y discutir sistemas complejos.
Analogía con los viajes en avión
- Un viaje en avión implica múltiples pasos: compra de boletos, registro, seguridad, embarque y llegada. Cada paso representa una parte del sistema.
- Es útil pensar en funciones relacionadas tanto en el despegue como en el aterrizaje que juntas implementan un servicio desde origen hasta destino.
Ventajas de la arquitectura en capas
- La estructura explícita permite identificar las diferentes partes del sistema y sus relaciones, facilitando un modelo de referencia claro.
- La modularización del diseño permite realizar cambios sin afectar otras partes del sistema; por ejemplo, cambiar funciones de agentes sin impactar otros procesos.
Capas de la arquitectura del Internet
- El internet tiene cinco capas: capa de aplicación, capa de transporte, capa de red, capa de enlace y capa física.
- La capa de aplicación incluye protocolos que controlan el envío y recepción de mensajes entre piezas distribuidas. Se abordará primero esta capa debido al enfoque top-down del curso.
Detalles sobre las capas
- La capa de transporte se encarga del traslado seguro o no seguro (dependiendo del protocolo utilizado), mientras que la capa de red transporta datos entre dispositivos finales.
- La diferencia sutil entre transferencia host a host (capa de red) y proceso a proceso (capa de transporte), donde esta última puede ofrecer garantías adicionales.
¿Cómo se intercambian los datos en la capa de transporte?
Unidad de Datos y Mensajes
- La unidad de datos que las entidades intercambian se conoce como un mensaje. En la capa de transporte, estos mensajes son enviados de una parte de la red a otra.
- La capa de transporte toma un mensaje de la capa de aplicación y añade información adicional para crear una nueva unidad de datos llamada segmento.
Información en el Segmento
- Es necesario incluir información en el segmento para identificar el proceso al que se entregará el mensaje en el destino, dado que pueden existir múltiples procesos activos.
- Protocolos como TCP, que implementan transferencia confiable de datos, requieren incluir mucha información en el segmento para garantizar esta confiabilidad.
Proceso de Encapsulación
- El proceso mediante el cual se toma una unidad de datos desde una capa superior y se le añade información para crear una nueva unidad es conocido como encapsulación.
- Un protocolo a nivel de red encapsula el segmento y añade su propia cabecera (h_n), creando así un datagrama a nivel de red.
Flujos y Capas
- El datagrama es la unidad protocolar utilizada a nivel de red; su cabecera contiene direcciones IP del host emisor y receptor.
- A su vez, la capa enlace encapsula el datagrama añadiendo su propia información, resultando en un marco (frame).
Visualización del Flujo de Datos
- Se observa cómo los datos fluyen hacia abajo por las capas del protocolo, donde se añaden progresivamente cabeceras hasta formar segmentos, datagramas y marcos.
- Al fluir hacia arriba por la pila del protocolo, estas cabeceras son leídas y eliminadas conforme los datos avanzan.
Resumen Conceptual
- Se han discutido ideas conceptuales importantes sobre la arquitectura por capas e introducido conceptos clave como encapsulación.