Resumen

  • Cada extremo anuncia en su SYN el exponente aplicable a su propia ventana de recepción; los dos sentidos pueden usar escalas distintas.
  • Con desplazamiento 7, un valor posterior de 65.535 representa 8.388.480 bytes, pero el mismo valor en un SYN nunca se escala.
  • La opción amplía la capacidad de expresar la ventana de recepción. No crea memoria, no aumenta la ventana de congestión y no sustituye a SACK, las marcas de tiempo ni PAWS.

El campo Window responde a una pregunta limitada: ¿cuántos bytes más puede aceptar ahora el receptor? Su formato original llega hasta 65.535. Cuando el producto entre ancho de banda y demora supera esa cifra, el límite no está necesariamente en la memoria o en la red. Puede estar en la incapacidad de escribir un número suficientemente grande en el paquete.

RFC 1072 planteó en 1988 una salida que respetaba el encabezado existente. Una opción de tres bytes en el SYN llevaría un exponente binario. En los segmentos posteriores, el número de dieciséis bits se desplazaría para recuperar una ventana conceptual mayor.

La decisión de usar el SYN evita una disputa futura. Un ACK ordinario puede perderse; si llevara una nueva escala, un extremo podría cambiar de unidad sin que el otro lo supiera. El SYN, en cambio, se retransmite durante el establecimiento. La interpretación queda fijada antes de que dependa de ella el flujo.

Dos receptores, dos escalas

El exponente que envía A describe la ventana que A anunciará al recibir datos. B debe guardarlo para leer los campos posteriores de A. B hace lo mismo en el sentido contrario. No existe una única escala compartida: hay dos estados direccionales.

La opción es una oferta. Ambos SYN deben incluirla para habilitar el mecanismo. El valor cero sigue siendo una oferta válida con factor uno. Si falta en un lado, los exponentes quedan en cero y rige el significado tradicional.

Los segmentos con SYN son la excepción visible. Su campo Window no se escala. Después del establecimiento, 65.535 << 7 equivale a 8.388.480 bytes. Una captura que ignore cuándo ocurrió el paquete puede confundir dos cantidades muy distintas aunque los bits sean idénticos.

RFC 1323 convirtió en 1992 la extensión experimental en una norma de alto rendimiento. RFC 7323 la sustituyó en 2014 y mantuvo la arquitectura esencial: campo de 16 bits, ventana conceptual de 30 bits, exponente máximo 14 y una cifra representable apenas inferior a un gibibyte. Los valores superiores se tratan como 14 para proteger las comparaciones en el espacio de secuencia de 32 bits.

El desplazamiento aporta alcance y pierde resolución. Con factor 128, un paso del campo equivale a 128 bytes. El receptor puede llevar cuentas exactas internamente, pero debe redondear al codificar el borde que anuncia.

Crédito no es capacidad de red

El receptor decide cuánto espacio ofrece. El control de congestión decide cuánto puede poner el emisor en la ruta. TCP obedece al límite más pequeño. Por ello, una ventana escalada de varios megabytes no demuestra que la ruta admita ese volumen ni autoriza a ignorar pérdidas.

Tampoco describe qué bloques llegaron: esa es la tarea de SACK. No aporta un reloj para rechazar segmentos viejos: esa es la historia de las marcas de tiempo y PAWS. Y no calcula el tiempo de retransmisión. La proximidad histórica entre esas extensiones no convierte sus pruebas en una sola.

RFC 9293 clasifica Window Scale como una opción común recomendable para alto rendimiento, pero no imprescindible para la interoperabilidad básica. Un enlace puede abrirse correctamente sin ella y rendir mal. El éxito del establecimiento sólo prueba compatibilidad, no que exista rango suficiente para llenar la ruta.

El contrato que también debe leer el intermediario

Un analizador que empieza después del SYN ve un campo incompleto. Para calcular la ventana real necesita el exponente del mismo sentido. Un cortafuegos con estado necesita exactamente el mismo recuerdo si usa la ventana para validar segmentos.

RFC 7323 advierte que borrar o modificar la opción en SYN o SYN-ACK puede dejar parámetros incoherentes. Si un dispositivo no conoce la escala, no debe hacer cumplir reglas basadas en la ventana bruta. El error no siempre rompe el establecimiento; puede aparecer más tarde como caída de rendimiento o rechazo de tráfico válido.

La solución histórica fue, por tanto, semántica. El encabezado no creció. La conexión obtuvo dos reglas de lectura confiables, una por dirección, con límites que preservan el resto de TCP. El número significó más porque la apertura había acordado cuánto más.

Fuentes