Resumen
- El ACK acumulativo certifica que el borde de recepción superó ciertos bytes, pero no distingue qué instancia los llevó cuando se retransmitió el mismo espacio de secuencia.
- Karn impide usar ese acuse como muestra de ida y vuelta; el retroceso exponencial mantiene un RTO conservador hasta que nuevos datos produzcan evidencia sin ambigüedad.
- Las marcas temporales pueden asociar el retorno con una instancia concreta, aunque sus reglas de eco y muestreo no autorizan cualquier cálculo ni demuestran resultados de aplicación.
Una respuesta con dos inicios posibles
Un emisor entrega a la red los bytes 40.000 a 40.999 y anota el instante. El RTO vence sin recibir confirmación. TCP vuelve a enviar el mismo espacio de secuencia. Poco después aparece un ACK cuyo número ya está más allá de 40.999.
Puede haber llegado tarde el primer segmento. En ese caso, contar desde la retransmisión atribuye a la red un viaje demasiado breve. También puede haberse perdido el original y haber llegado la copia. Entonces contar desde el primer envío incorpora el tiempo de espera y presenta un viaje demasiado largo.
El ACK no selecciona una historia. Sus campos describen el estado acumulativo del flujo, no la identidad del datagrama que causó la transición. La captura contiene dos relojes de salida y uno de llegada; ninguna operación aritmética decide por sí sola cuál pareja es legítima.
Sin embargo, el acuse no es inútil. Permite retirar datos de la cola, avanzar SND.UNA y continuar sujeto a las ventanas. La misma observación es suficiente para una decisión de entrega y insuficiente para una decisión de medida. Karn nació en esa frontera.
El temporizador adaptativo necesitaba una política de admisión
El RFC 793 ya rechazaba un plazo fijo para toda la Internet. Las rutas y sus cargas varían, por lo que TCP debía medir tiempos de ida y vuelta, suavizarlos y obtener de ellos un límite de retransmisión.
La idea adaptativa era indispensable, pero abría una pregunta: ¿qué observaciones pueden enseñar al estimador? Si toda confirmación posterior a una retransmisión entra en el cálculo, el modelo aprende de intervalos cuyo comienzo no está identificado.
El error puede crear un círculo. Asociar el ACK con la segunda salida cuando la primera sólo iba retrasada produce un RTT bajo. El RTO siguiente se acorta, aparecen más retransmisiones prematuras y aumenta la proporción de retornos ambiguos. El instrumento altera la red que pretende medir y luego acepta esa alteración como evidencia.
El RFC 1122 declaró inadecuado el cálculo sugerido por RFC 793. Exigió el algoritmo de Jacobson, que incorpora variación, y el de Karn, que selecciona muestras. No son dos nombres para una misma fórmula: uno decide cómo combinar observaciones; el otro decide si una observación puede entrar.
La incertidumbre se convirtió en estado operativo
Karn ordena no medir RTT con segmentos retransmitidos. Cuando una secuencia salió más de una vez, un ACK ordinario no permite conocer la instancia que lo provocó. Escoger el instante más reciente porque produce un número agradable no añade procedencia.
La implementación conserva toda la autoridad normal del ACK sobre la secuencia. Puede liberar bytes reconocidos y abrir paso a nuevos envíos. Únicamente bloquea el cambio de SRTT y RTTVAR basado en ese episodio. La ignorancia queda localizada, en vez de contagiar toda la conexión o desaparecer dentro de una media.
Ese rechazo tiene un coste: durante pérdidas o retrasos prolongados faltan muestras nuevas. Pero una cifra contaminada no elimina el hueco. Sólo lo vuelve invisible para el operador y para los algoritmos que dependen del RTO.
El patrón trasciende la temporización. Un hecho puede tener fuerza limitada. La recepción acumulativa no equivale a atribución de paquete; la atribución de paquete no equivale a terminación de transacción. Diseñar bien consiste en impedir que la necesidad de una decisión ensanche el significado del dato disponible.
Doblar el plazo mientras falta evidencia limpia
RFC 1122 también hizo obligatorio el retroceso exponencial. El RFC 2988 y después el RFC 6298 formalizaron SRTT, RTTVAR y RTO. Al expirar el temporizador, TCP retransmite el primer segmento pendiente y duplica el RTO.
El retroceso limita la agresividad ante una ruta que no devuelve confirmaciones a tiempo. En combinación con Karn cumple otra función: conserva una hipótesis prudente mientras el último ACK no puede renovar el reloj. No permite que la respuesta ambigua borre inmediatamente el efecto de la expiración.
El valor puede reducirse cuando aparece una nueva muestra válida. Normalmente, después de retransmitir hacen falta datos nuevos enviados y reconocidos sin otra retransmisión. La salida del estado conservador exige procedencia nueva, no sólo un intervalo de calma.
RFC 6298 permite que una implementación espere más, pero le impide ser más agresiva que sus reglas. La asimetría reconoce impactos distintos. Un RTO largo cuesta latencia a un flujo. Un RTO demasiado corto puede producir copias sobre un recurso compartido precisamente cuando la ausencia de ACK puede indicar saturación.
El documento de 2011 redujo además el RTO inicial general de tres segundos a uno, con una regla específica si se pierde SYN o su ACK. Esa evolución muestra que prudencia no significa congelar números. Los parámetros cambian con evidencia; la prohibición de fabricar una pareja causal permanece.
TCP reconoce bytes, no biografías de datagramas
La razón profunda está en la interfaz de TCP. Los números de secuencia pertenecen al flujo de octetos. Una retransmisión puede agruparlos de otra manera. El receptor puede retrasar un ACK, acumular varias llegadas y descartar duplicados sin entregar dos veces los mismos bytes.
El ACK nombra el próximo octeto esperado. No devuelve un identificador inmutable de cada paquete visto. Añadir una contabilidad de causalidad completa impondría más estado y cambiaría el contrato común. TCP eligió una señal compacta y situó la regla de admisión en el lado que conoce sus propias retransmisiones.
Por eso una traza visual debe interpretarse con cautela. Que un ACK aparezca un milisegundo después de una copia no demuestra que la copia lo originó. Podría ser el retorno tardío del original. La cronología acota posibilidades; sin un marcador adicional no elige una.
Tampoco el ACK certifica que el proceso remoto leyó los bytes, que una escritura llegó a almacenamiento o que una operación económica terminó. El transporte responde por su secuencia. Los resultados superiores necesitan recibos del componente que posee esos resultados.
Timestamp devuelve una etiqueta, no autoridad universal
RFC 6298 acepta una excepción a Karn cuando se usa la opción Timestamp. El RFC 7323 define TSval en los segmentos y el eco TSecr en el tráfico de vuelta. El emisor puede relacionar el eco con el valor de la instancia recibida.
Con esa etiqueta, un ACK posterior a la retransmisión puede revelar qué envío alimentó el retorno. Desaparece la ambigüedad concreta entre original y copia. La medición vuelve a ser posible sin fingir que el número acumulativo contenía más información de la que realmente contenía.
El RFC insiste, no obstante, en separar llevar timestamps de utilizarlos para RTO. Una muestra debe hacer avanzar el borde izquierdo de la ventana. Los ACK retrasados, los huecos, el reordenamiento y la selección del TSval que el receptor conserva afectan al eco. Una opción negociada no transforma automáticamente cada paquete en experimento limpio.
La abundancia de muestras también requiere política. Los pesos de RFC 6298 presuponían aproximadamente una actualización por RTT. Si cada segmento actualiza el estimador con los mismos coeficientes, el historial puede desvanecerse demasiado rápido y aumentar retransmisiones espurias cuando el camino varía en escalas más largas.
TSval tampoco es una hora global confiable. Basta un reloj local aproximadamente proporcional al tiempo. El mecanismo mide diferencias mediante eco; no autentica identidad, sincronización civil ni éxito de la aplicación.
Una regla negativa que sobrevivió al TCP moderno
El RFC 9293 mantiene la obligación de calcular RTO conforme a RFC 6298, incluido Karn. Conserva el retroceso exponencial entre los mecanismos básicos de estabilidad y remite los detalles al documento especializado.
Es significativo que la norma preserve una regla que descarta datos. Muchos diseños valoran la cantidad de telemetría. Karn valora la capacidad de explicar por qué una observación tiene derecho a modificar el estado.
No significa que toda pila actual se comporte igual ni que Timestamp esté presente en todas las conexiones. Los RFC establecen el contrato, no una encuesta de despliegue. Tampoco dicen que toda retransmisión sea congestión o ataque; puede haber pérdida, reordenamiento, retraso de ACK, cambio de ruta o una política local deficiente.
El requisito moderno es más pequeño: no convertir un retorno ambiguo en una latencia causal. Otros mecanismos pueden añadir pruebas. Ninguno legitima usar una muestra cuya instancia inicial sigue desconocida.
El valor de dejar un hueco en la serie
Un panel sin datos incomoda. Un algoritmo que conserva el RTO reculado parece menos actualizado. Es fácil rellenar el hueco con el último valor o con el intervalo más cercano al ACK.
Esa comodidad destruye una distinción esencial. “No medible en este episodio” es información sobre la calidad de la evidencia. Si se reemplaza por un número, el siguiente operador ve precisión donde el protocolo sólo ofrecía alternativas.
La práctica responsable guarda la procedencia: envío original, número de copia, expiración, avance del ACK, presencia y uso del eco temporal, y primera muestra limpia posterior. La estimación resultante debe poder rastrearse hasta una regla de admisión.
Karn convirtió la abstención en comportamiento ejecutable. Aceptar el progreso, rechazar la atribución, ampliar la espera y volver a aprender sólo desde un intercambio identificable. La fortaleza del sistema no está en contestar todas las preguntas, sino en saber cuál de ellas no respondió el ACK.
Fuentes y límites de la evidencia
RFC 793 aporta el temporizador adaptativo original. RFC 1122 documenta su insuficiencia y exige Karn, Jacobson y retroceso. RFC 2988 y RFC 6298 codifican el cálculo y la exclusión de muestras. RFC 7323 define la desambiguación mediante Timestamp. RFC 9293 conserva el requisito en el TCP actual.
Las fuentes no miden despliegue, frecuencia de pérdidas ni comportamiento de cada biblioteca. Este análisis no identifica causas de incidentes concretos, no equipara RTO con ventana de congestión y no presenta el RTT de transporte como prueba del resultado de una solicitud.
Informe para miembros
Contexto ampliado del perfil
Inicia sesión con el nivel de membresía adecuado para desbloquear el informe completo y las notas de las fuentes.
Solo para Strategic Circle
Strategic Circle
Abierto a todos los lectores. Desbloquea informes de perfil después de unirte e iniciar sesión.
Únete a Strategic CircleSolo para Leadership Alliance
Leadership Alliance
Para propietarios y directivos cualificados de activos de propiedad intelectual; inicia sesión para desbloquear los informes de la alianza.
Unirse a Leadership Alliance
