En TCP, cada vez que ocurre un tiempo de espera para un segmento en el remitente, ¿hacemos un inicio lento en lugar de una disminución multiplicativa?

TCP per se (es decir, el protocolo original especificado por RFC 793, STD 7) no responde estas preguntas; son el dominio de cualquier esquema de control de congestión que se use para gobernar las transmisiones de TCP (además del control de flujo controlado por el receptor del TCP “estándar”).

Los requisitos oficiales para un esquema de control de congestión TCP se dan en RFC 5681, aunque, tenga en cuenta que los esquemas de control de congestión reales (por ejemplo, el valor predeterminado de Linux de Cubic modificado) realmente no siguen este RFC.

Sin embargo, si cree en el RFC, está en lo correcto. Esto es lo que dice:

Cuando un emisor TCP detecta la pérdida de segmento utilizando el temporizador de retransmisión y el segmento dado aún no se ha reenviado mediante el temporizador de retransmisión, el valor de ssthresh DEBE establecerse en un valor no mayor que el indicado en la ecuación (4):

ssthresh = max (FlightSize / 2, 2 * SMSS) (4)

donde, como se discutió anteriormente, FlightSize es la cantidad de datos pendientes en la red. […] Además, tras un tiempo de espera (como se especifica en [RFC2988]) cwnd DEBE establecerse en no más que la ventana de pérdida, LW, que equivale a 1 segmento de tamaño completo (independientemente del valor de IW). Por lo tanto, después de retransmitir el segmento descartado, el emisor TCP utiliza el algoritmo de inicio lento para aumentar la ventana de 1 segmento de tamaño completo al nuevo valor de ssthresh, en cuyo punto la evitación de la congestión nuevamente se hace cargo.