Capítulo 3: Capa de Transporte Flashcards
¿Cuál es la función principal de un protocolo de capa de transporte en un sistema distribuido?
Un protocolo de capa de transporte proporciona comunicación lógica entre procesos de aplicación que se ejecutan en hosts diferentes en un sistema distribuido. Esta comunicación lógica da la impresión de que los hosts que ejecutan los procesos están directamente conectados desde la perspectiva de la aplicación.
Explique el proceso en el lado del remitente según el cual la capa de transporte convierte mensajes de la capa de aplicación en paquetes de capa de transporte llamados “segmentos”.
En el lado del remitente, la capa de transporte convierte los mensajes de la capa de aplicación en segmentos de capa de transporte. Esto se logra dividiendo los mensajes de la aplicación en fragmentos más pequeños y agregando un encabezado de capa de transporte a cada fragmento. Estos segmentos luego se pasan a la capa de red en el extremo emisor, donde se encapsulan dentro de un paquete de capa de red (datagrama) y se envían al destino.
¿Cuál es la diferencia clave entre un protocolo de capa de transporte y un protocolo de capa de red?
Un protocolo de capa de transporte proporciona comunicación lógica entre procesos en hosts diferentes, mientras que un protocolo de capa de red proporciona comunicación lógica entre hosts. La capa de transporte mueve mensajes entre procesos de aplicación y la capa de red (bordes de la red), sin involucrarse en cómo se mueven los mensajes dentro del núcleo de la red.
Mencione dos protocolos de capa de transporte disponibles en Internet y resuma brevemente las características de cada uno.
En Internet, se dispone de dos protocolos de capa de transporte: UDP (User Datagram Protocol) y TCP (Transmission Control Protocol). UDP es no confiable y sin conexión, mientras que TCP es confiable y orientado a la conexión.
Explique la relación entre el modelo de servicio de entrega de IP y los servicios ofrecidos por un protocolo de capa de transporte.
IP proporciona un servicio de entrega de “mejor esfuerzo”, lo que significa que intenta entregar segmentos entre hosts, pero no garantiza la entrega, el orden de entrega o la integridad de los datos en los segmentos. Los servicios que un protocolo de capa de transporte puede ofrecer están a menudo limitados por el modelo de servicio de la capa de red subyacente, pero algunos servicios pueden proporcionarse incluso cuando la capa de red no los garantiza.
Explique el proceso de demultiplexación en la capa de transporte y su papel en la entrega de datos a procesos de aplicación específicos.
La demultiplexación en la capa de transporte implica entregar los datos en un segmento de capa de transporte al socket correcto en el host de destino. Cada proceso (como parte de una aplicación de red) puede tener uno o más sockets, y cada socket tiene un identificador único. La demultiplexación se realiza utilizando campos especiales en el segmento que indican el socket al cual debe entregarse, como el número de puerto de destino.
Explique el proceso de multiplexación en la capa de transporte y su función en la preparación de datos para su transmisión a través de la red.
La multiplexación en la capa de transporte implica reunir fragmentos de datos desde diferentes sockets en el host de origen, encapsular cada fragmento de datos con información de encabezado (que se utilizará posteriormente en la demultiplexación) para crear segmentos, y pasar los segmentos a la capa de red. Este proceso permite que varios flujos de datos compartan la misma conexión de red.
Describa las características y el propósito del protocolo de transporte UDP.
UDP (User Datagram Protocol) es un protocolo de transporte que ofrece una comunicación mínima entre aplicaciones. Es un protocolo sin conexión, lo que significa que no hay un handshake entre las entidades de la capa de transporte antes de enviar un segmento. UDP se caracteriza por proporcionar un control de flujo más fino a nivel de aplicación, permitiendo que los datos se envíen tan pronto como la aplicación los pase a UDP. Además, UDP no mantiene un estado de conexión y tiene un encabezado pequeño de 8 bytes. Aunque carece de control de congestión, UDP es útil para aplicaciones en tiempo real y aquellas que pueden tolerar pérdida de datos
Explique las razones por las cuales un desarrollador de aplicaciones podría elegir UDP en lugar de TCP.
Un desarrollador podría optar por utilizar UDP en lugar de TCP por varias razones:
Control más fino sobre los datos
UDP permite un control más preciso sobre los datos enviados, ya que tan pronto como la aplicación proporciona datos, UDP los empaqueta y los envía sin demora.
No hay establecimiento de conexión
A diferencia de TCP, que realiza un handshake de tres vías antes de transferir datos, UDP no establece una conexión antes de enviar datos, lo que resulta en menos retraso.
Sin estado de conexión
UDP no mantiene un estado de conexión, lo que significa que un servidor UDP puede admitir más clientes activos en comparación con un servidor TCP, ya que no tiene que rastrear información de conexión para cada cliente.
Encabezado pequeño
El encabezado de UDP es más ligero (8 bytes) en comparación con el encabezado de TCP (20 bytes), lo que reduce la sobrecarga y es beneficioso para aplicaciones con tráfico liviano.
¿Cuáles son las características fundamentales del encabezado UDP y cuál es su propósito?
El encabezado UDP consta de cuatro campos, cada uno de dos bytes:
Puertos
Permiten que el host de destino entregue los datos a la aplicación correcta. El número de puerto de origen identifica el socket del host emisor, y el número de puerto de destino indica el socket del host receptor.
Longitud
Especifica la cantidad de bytes en el segmento UDP, incluidos el encabezado y los datos.
Checksum
Utilizado por el host receptor para verificar si se han introducido errores en el segmento.
Explique que significa que un protocolo sea “Stop and Wait”
Un protocolo se denomina “stop-and-wait” cuando el emisor no envia un nuevo paquete de datos hasta que esté seguro de que el receptor haya recibido correctamente el paquete actual. Este comportamiento implica una espera después de cada envío, asegurándose de que el receptor haya confirmado la recepción antes de enviar el siguiente paquete.
¿Cuál es el problema de rendimiento asociado con el protocolo Stop and Wait y cómo se aborda mediante el uso de pipelining en el protocolo Go-Back-N (GBN)?
El problema de rendimiento en Stop and Wait radica en que el emisor espera por la confirmación antes de enviar el siguiente paquete haciendo el procesos muy lento y desaprovechando la red.
Para abordar esto, GBN utiliza pipelining, permitiendo al emisor enviar varios paquetes sin esperar por las confirmaciones. Esto mejora la utilización del emisor y la eficiencia de la transmisión.
Describe la operación del protocolo Go-Back-N (GBN) en términos de ventana deslizante. ¿Por qué se denomina “sliding-window” protocol?
En GBN, el emisor puede enviar varios paquetes sin esperar por la confirmación, pero está limitado a tener un número máximo permitido de paquetes no confirmados en la ventana. La ventana se desplaza sobre el espacio de números de secuencia, y el tamaño de la ventana se refiere a la cantidad máxima de paquetes no confirmados. Este enfoque se llama “sliding-window” debido al movimiento continuo de la ventana sobre el espacio de secuencia.
¿Qué ocurre cuando se llama a rdt_send() en GBN?
(Se envían datos de la capa de Aplicación a la de Transporte)
Cuando rdt_send() se llama desde arriba, el emisor verifica si la ventana no está llena. Si la ventana no está llena, se crea y envía un paquete, y se actualizan las variables correspondientes. Si la ventana está llena, se devuelve el dato a la capa superior, indicando implícitamente que la ventana está llena.
¿Qué ocurre cuando se recibe un ACK en GBN?
En GBN, un ACK para un paquete con número de secuencia n se considera un ACK acumulativo, indicando que todos los paquetes con números de secuencia hasta n se recibieron correctamente. El emisor marca el paquete como recibido cuando recibe un ACK, y seq_num es igual a send_base, la base de la ventana se mueve hacia adelante al paquete no confirmado con el número de secuencia más bajo.
Si la ventana se mueve y hay paquetes no transmitidos dentro de la ventana, se transmiten esos paquetes.