Capítulo 3: Capa de Transporte Flashcards

1
Q

¿Cuál es la función principal de un protocolo de capa de transporte en un sistema distribuido?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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”.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Cuál es la diferencia clave entre un protocolo de capa de transporte y un protocolo de capa de red?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Mencione dos protocolos de capa de transporte disponibles en Internet y resuma brevemente las características de cada uno.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Explique la relación entre el modelo de servicio de entrega de IP y los servicios ofrecidos por un protocolo de capa de transporte.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Describa las características y el propósito del protocolo de transporte UDP.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explique las razones por las cuales un desarrollador de aplicaciones podría elegir UDP en lugar de TCP.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Cuáles son las características fundamentales del encabezado UDP y cuál es su propósito?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Explique que significa que un protocolo sea “Stop and Wait”

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿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)?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Describe la operación del protocolo Go-Back-N (GBN) en términos de ventana deslizante. ¿Por qué se denomina “sliding-window” protocol?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué ocurre cuando se llama a rdt_send() en GBN?
(Se envían datos de la capa de Aplicación a la de Transporte)

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué ocurre cuando se recibe un ACK en GBN?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué ocurre si se produce un timeout en GBN?

A

Si se produce un timeout, el emisor reenvía todos los paquetes que se enviaron previamente pero que aún no han sido confirmados.

17
Q

¿Cómo responde el receptor en el protocolo Go-Back-N (GBN) ante la recepción de un paquete con un número de secuencia correcto y en orden? ¿Y qué hace en caso contrario?

A

Cuando el receptor recibe un paquete con un número de secuencia correcto y en orden, envía un ACK selectivo para ese paquete y entrega la parte de datos del paquete a la capa superior. Si el número de secuencia no es el esperado, el receptor descarta el paquete y reenvía un ACK para el paquete más recientemente recibido en orden.

18
Q

Explica cómo opera la ventana deslizante en el protocolo Selective Repeat (SR) y por qué se denomina “selective repeat”

A

En SR, la ventana deslizante se utiliza tanto en el emisor como en el receptor. El emisor puede enviar varios paquetes sin esperar confirmaciones, y la ventana se desplaza sobre el espacio de números de secuencia. El receptor almacena los paquetes recibidos fuera de orden y reenvía ACKs selectivos para indicar cuáles paquetes recibió correctamente. Se llama “selective repeat” porque el emisor retransmite solo los paquetes que sospecha que se recibieron incorrectamente, evitando retransmisiones innecesarias.

19
Q

Describe el proceso de establecimiento de conexión TCP, incluido el procedimiento de “three-way handshake”. ¿Por qué es necesario este proceso?

A

El establecimiento de conexión en TCP implica un procedimiento conocido como “three-way handshake”. Aquí está el proceso:

El cliente envía un segmento especial TCP llamado SYN (synchronize) al servidor para iniciar la conexión.
El servidor responde con un segmento SYN ACK, indicando que ha recibido la solicitud de conexión y está listo para establecer la conexión.
Finalmente, el cliente responde con un segmento ACK, completando así el “three-way handshake” y estableciendo la conexión.
Este proceso es necesario para asegurarse de que ambas partes estén sincronizadas y listas para intercambiar datos de manera confiable. Cada parte confirma la disposición de la otra para establecer la conexión, lo que ayuda a evitar problemas de sincronización y garantiza una comunicación fluida.

20
Q

Explica la estructura de un segmento TCP, incluyendo los campos clave y su función.

A

Puertos de origen y destino: Utilizados para la multiplexación y demultiplexación de datos entre las aplicaciones de capa superior.

Número de secuencia y número de acuse de recibo: Utilizados para el envío y la recepción de datos de manera confiable.

Ventana de recepción: Utilizada para el control de flujo, indicando cuántos bytes pueden ser enviados antes de esperar un acuse de recibo.

Campo de longitud de encabezado: Especifica la longitud del encabezado TCP en palabras de 32 bits.

Campos de banderas: Incluyen bits como ACK, SYN, FIN, PSH, URG, que indican varios aspectos del segmento, como la confirmación, la sincronización, el fin de la conexión y más.

Campo de opciones: Opcional y de longitud variable, utilizado para acuerdos específicos entre el remitente y el receptor, como el tamaño máximo del segmento (MSS).

21
Q

¿Cómo maneja TCP el control de flujo?

A

El control de flujo en TCP se realiza mediante la ventana de recepción. La ventana indica cuántos bytes puede enviar el remitente antes de recibir un acuse de recibo. Esto ayuda a equilibrar las tasas de envío y recepción para evitar la congestión y garantizar una comunicación eficiente.

22
Q

Describe cómo TCP estima el tiempo de ida y vuelta (Round-Trip Time, RTT) y cómo utiliza esta estimación para gestionar los tiempos de espera y las retransmisiones.

A

TCP estima el Round-Trip Time (RTT) utilizando el método de promedio ponderado exponencialmente móvil (EWMA). La estimación de RTT se calcula como:

EstimatedRTT=(1−α)⋅EstimatedRTT+α⋅SampleRTT

Donde α es un factor de ponderación (comúnmente 0.125).
Se mantiene un promedio ponderado de las mediciones de SampleRTT.

Además, TCP calcula la variabilidad del RTT (DevRTT)

DevRTT=(1−β)⋅DevRTT+β⋅(SampleRTT−EstimatedRTT)

Donde β es otro factor de ponderación (comúnmente 0.25)

El tiempo de espera (TimeoutInterval) se calcula como:

TimeoutInterval=EstimatedRTT+4⋅DevRTT

Esto garantiza una gestión eficiente de los tiempos de espera y las retransmisiones en TCP.

23
Q

Explica cómo TCP logra una transferencia de datos confiable y cómo maneja la retransmisión de segmentos en caso de pérdida.

A

TCP logra una transferencia de datos confiable mediante el uso de números de secuencia y acuses de recibo. El remitente envía datos y espera acuses de recibo. Si no recibe un acuse de recibo antes de que expire el temporizador, retransmite los datos.

Cuando un segmento se pierde, TCP utiliza el mecanismo de detección de pérdida de segmento basado en ACK duplicados. Si el remitente recibe tres ACK duplicados para un segmento, interpreta esto como una indicación de que el siguiente segmento puede estar perdido y realiza una retransmisión rápida del segmento sospechoso.

TCP utiliza un enfoque de ventana deslizante (sliding window) para mantener un seguimiento de los datos enviados pero no confirmados. El remitente tiene una ventana que se mueve a medida que se reciben acuses de recibo. Solo los datos dentro de la ventana activa se consideran como “enviados pero no confirmados”.

Este proceso garantiza una transferencia confiable y eficiente de datos en entornos de red.

24
Q

¿Cómo maneja TCP el control de flujo y por qué es necesario? Describe los conceptos de ventana de recepción y ventana de envío.

A

TCP maneja el control de flujo para evitar que el remitente sobrecargue el búfer del receptor. El control de flujo se realiza mediante el uso de ventanas de recepción y envío.

Ventana de Recepción (rwnd): Indica cuántos bytes puede enviar el remitente antes de esperar un acuse de recibo. Se calcula como la diferencia entre el tamaño del búfer del receptor y los bytes aún no leídos.

Ventana de Envío: Representa la cantidad de datos que el remitente puede enviar antes de esperar acuses de recibo. Se controla asegurándose de que la diferencia entre el último byte enviado y el último byte confirmado no supere la ventana de recepción del receptor.

El control de flujo asegura que el remitente no abrume al receptor con demasiados datos, evitando la pérdida de datos y optimizando el rendimiento de la comunicación.

25
Q

Describe el concepto de ventana de congestión (cwnd) en TCP y cómo se utiliza para controlar la velocidad de transmisión.

A

La ventana de congestión (cwnd) en TCP es una variable que controla la cantidad de datos que un emisor puede enviar antes de esperar un acuse de recibo.
La relación clave es dada por la condición:

(LastByteSent−LastByteAcked)≤min(cwnd,rwnd)

Donde
- LastByteSent es el número del último byte enviado
- LastByteAcked es el número del último byte confirmado.

26
Q

¿Qué sucede con la ventana de congestión en los estados de Slow Start, Congestion Avoidance y Fast Recovery?

A

Slow Start:
En este estado, cwnd comienza en un valor bajo (usualmente 1 MSS) y se incrementa en 1 MSS por cada segmento transmitido que es confirmado por primera vez. Si hay pérdida (indicada por un timeout),
cwnd se restablece a 1 y comienza nuevamente el proceso de Slow Start.

Congestion Avoidance:
Cuando cwnd alcanza el umbral de slow start (ssthresh), el sistema entra en el estado de Congestion Avoidance. En este estado, cwnd se incrementa de manera más conservadora, aumentando en 1 MSS por cada RTT.

Fast Recovery
Durante el estado de Fast Recovery, cwnd se incrementa en 1 MSS por cada ACK duplicado recibido para el segmento perdido. Esto permite una recuperación rápida de la pérdida.

27
Q

Explica el proceso de Slow Start en el control de congestión de TCP. ¿Cómo comienza, cómo se incrementa cwnd y cuándo termina el estado de Slow Start?

A

Slow Start es una fase inicial en el control de congestión de TCP cuando una conexión TCP comienza. Aquí está el proceso:

Inicio: Al principio,
cwnd
cwnd se establece en un valor bajo, típicamente 1 MSS (Maximum Segment Size).

Incremento de
cwnd
cwnd: Por cada ACK recibido para un nuevo segmento,
cwnd
cwnd se incrementa en 1 MSS. Esto significa que
cwnd
cwnd se duplica cada RTT, ya que se espera un ACK por cada segmento enviado.

Finalización del Slow Start: La fase de Slow Start continúa hasta que
cwnd
cwnd alcanza el umbral de inicio lento (
ssthresh
ssthresh), momento en el cual TCP transita al estado de Congestion Avoidance.

En resumen, Slow Start es una estrategia agresiva de incremento exponencial de la ventana de congestión al comienzo de una conexión, aprovechando el hecho de que la red puede manejar un crecimiento rápido al principio. Sin embargo, este estado se modera cuando
cwnd
cwnd alcanza
ssthresh
ssthresh para evitar la congestión excesiva.

28
Q

Explica el concepto de Fast Recovery en TCP y cómo se comporta la ventana de congestión (cwnd) durante este estado. ¿Cómo se manejan las pérdidas de segmentos en Fast Recovery?

A

Fast Recovery es un estado de control de congestión de TCP que se activa en respuesta a la detección de pérdida de segmentos.
Funciona de la siguiente manera:

Detección de Pérdida:
Cuando se detecta una pérdida de segmentos (por ejemplo, al recibir tres ACK duplicados), TCP entra en el estado de Fast Recovery.

Comportamiento de cwnd:
Durante Fast Recovery, cwnd se incrementa en 1 MSS por cada ACK duplicado recibido para el segmento perdido. Esto permite una recuperación rápida de la pérdida.

Recepción del Segmento Perdido:
Cuando finalmente se recibe el ACK para el segmento perdido, TCP sale del estado de Fast Recovery y entra en el estado de Congestion Avoidance para TCP Reno y a Slow Start para TCP Tahoe. Antes de eso,
cwnd se reduce a la mitad.

Fast Recovery permite mantener el rendimiento del flujo de datos incluso después de la pérdida de segmentos, evitando una vuelta completa a Slow Start y mejorando la eficiencia en términos de ancho de banda.

29
Q

Explica el término “Additive-Increase, Multiplicative-Decrease” (AIMD) en el contexto del control de congestión de TCP. ¿Cómo se implementa este principio en la dinámica de ajuste de la ventana de congestión (cwnd)?

A

“Additive-Increase, Multiplicative-Decrease” (AIMD) es un principio clave en el control de congestión de TCP. Aquí está cómo se implementa en la dinámica de ajuste de la ventana de congestión (cwnd):

Additive Increase:
Durante la fase de congestión avoidance,
cwnd se incrementa en 1 MSS por cada RTT, proporcionando un aumento lineal en la ventana de congestión.

Multiplicative Decrease
Cuando se detecta una pérdida (por ejemplo, tres ACK duplicados o un timeout),
cwnd se reduce a la mitad, implementando un decremento multiplicativo.

Este enfoque AIMD ayuda a TCP a adaptarse dinámicamente a las condiciones de la red:
Aumenta la velocidad de transmisión cuando la red parece estable y reduce la velocidad de transmisión de manera más agresiva cuando detecta signos de congestión.
La combinación de aumento aditivo y disminución multiplicativa resulta en una dinámica de “dientes de sierra” en el comportamiento de la ventana de congestión.