Введение

Конфигурируемая опция протокола управления передачей Опция масштабирования окна TCP - это опция для увеличения разрешённого в Протоколе управления передачей размера окна приема выше прежнего максимального значения в 65 535 байтов. Этот вариант TCP, наряду с несколькими другими, определяется в том, что касается длинных жирных сетей (LFNs).

Окна TCP

Пропускная способность TCP-коммуникации ограничена двумя окнами: окном перегрузки и окном приема. Окно перегрузки старается не превышать пропускную способность сети (контроль перегрузки); окно приема старается не превышать пропускную способность приемника обрабатывать данные (контроль потока). Приемник может быть перегружен данными, если, например, он очень занят (например, веб-сервер). Каждый сегмент TCP содержит текущее значение окна приема. Если, например, отправитель получает ack, который подтверждает байт 4000 и указывает окно приема 10000 (байтов), отправитель не будет отправлять пакеты после байта 14000, даже если окно перегрузки позволяет это.

Теория

Для эффективной передачи данных требуется опция масштабирования окна TCP, когда продукт задержки полосы пропускания (BDP) больше 64 КБ. Например, если передающая линия T1 со скоростью 1,5 Мбит/с использовалась по спутниковой линии со временем 513 миллисекунд в оба конца (RTT), то продукт задержки полосы пропускания равен битам или около 96 187 байтам. Использование максимального размера буфера 64 КБ позволяет заполнить буфер только до (65,535 / 96,187) = 68% теоретической максимальной скорости 1,5 Мбит/с, или 1,02 Мбит/с. Используя опцию масштабирования окна, размер окна приема может быть увеличен до максимального значения байтов, или около 1 Гбайт. Это делается путем указания двух байт смещения в поле опций заголовка. Истинный размер окна приема остается смещенным по значению в счете сдвигов. Для значения перемещения может использоваться максимальное значение 14. Это позволило бы одному TCP-соединению передавать данные по примерной спутниковой связи со скоростью 1,5 Мбит/с, используя всю доступную полосу пропускания. По сути, в течение одного периода времени поездки туда и обратно может быть переведено не более одного полного окна передачи. Опция масштабирования окна позволяет одному TCP-соединению полностью использовать LFN с BDP до 1 ГБ, например, ссылку на 10 Гбит/с с временем пути 800 мс.

Возможные побочные эффекты

Поскольку некоторые брандмауэры не реализуют TCP Window Scaling должным образом, это может привести к тому, что интернет-соединение пользователя будет периодически не работать в течение нескольких минут, а затем, похоже, снова начнет работать без причины. Есть также проблема, если брандмауэр не поддерживает расширения TCP.

Окна

TCP Window Scaling реализован в Windows с Windows 2000. Он включен по умолчанию в Windows Vista / Server 2008 и более новой версии, но может быть отключен вручную при необходимости. Windows Vista и Windows 7 имеют фиксированный по умолчанию буфер приема TCP 64 кБ, масштабирующийся до 16 МБ через "автонастройку", ограничивая ручную настройку TCP в длинных жирных сетях.

Линукс

Ядра Linux (с 2.6.8, август 2004) включили TCP Window Scaling по умолчанию. Параметры конфигурации находятся в файловой системе /proc, см. псевдофайл и его компаньоны и (более подробная информация: , раздел sysctl). Скалирование можно отключить, введя следующую команду. Чтобы сохранить изменения после перезапуска, включите строку в (или как systemd 207).