CLI

Обзор

TCP-профиль позволяет выполнять тонкую настройку протокола TCP для конкретных сценариев использования.

Например, вы можете настроить алгоритмы управления перегрузками, оптимальные для различных задач: reno и cubic — стандартные алгоритмы, используемые в большинстве сценариев; dctcp используется в центрах обработки данных; bbr был разработан Google для доставки видеоконтента.

TCP-профиль можно применить к Сервису, Target-группе или отдельному Worker. Это позволяет оптимизировать внутренний и внешний трафик. Например:

  • Так как Workers обычно расположены близко друг к другу внутри центра обработки данных, вы можете создать TCP-профиль с алгоритмом dctcp, сократить таймауты и включить ECN.

  • Для сервисов можно создать другой профиль с более длительными таймаутами установления сессий (таймаут сессии ESTABLISHED), чтобы у клиентов было больше времени для подключения в условиях нестабильной сети, а также включить защиту от SYN-флуда (функция SYN cookie включена).

Настройка

По умолчанию создан профиль default без каких-либо специальных настроек. Если при создании сервиса или Target-группы не указан TCP-профиль, используется профиль default.

vlb tcp-profile NAME

Создать TCP-профиль.

После создания можно настроить следующие параметры внутри TCP-профиля:

congestion-control <cubic|bbr|dctcp|reno>

Алгоритм управления перегрузками: cubic, bbr, dctcp, reno.

delay-ack-check-interval-count (1-8192)

Количество проверок в пределах таймаута отложенного ACK.

delay-ack-check-mss-count (0-64)

Минимальное количество MSS в TCP-окне перед отправкой ACK в пределах таймаута отложенного ACK.

delay-ack-count (1-16)

Максимальное количество отложенных TCP-подтверждений. Несколько ACK могут быть объединены в один.

explicit-congestion-notification enable

Включить Explicit Congestion Notification (ECN).

min-rx-win (128-65535)

Минимальный размер TCP-окна приёма в байтах. По умолчанию — 2048.

mss (512-9600)

Максимальный размер сегмента (длина пакета). По умолчанию — 1480.

option timestamp enable

Включить опцию TCP TIMESTAMP.

option timestamp frequency (1-1000)

Частота таймера для опции TCP TIMESTAMP. По умолчанию — 250.

option toa enable

Включить опцию TCP TOA (TCP Option Address).

retrans-count (1-20)

Максимальное количество повторных передач TCP. По умолчанию — 4.

rx-window (2048-16777216)

Начальный размер окна приёма TCP. По умолчанию — 131071.

rx-window-no-ws (2048-65535)

Начальный размер окна приёма TCP, если масштабирование окна не указано.

syncookie enable

Включить защиту от SYN-флуда.

syncookie interval (100-60000)

Срок действия (в мс) SYN cookie. SYN cookie должен быть использован в пределах этого интервала для установления соединения.

timeout close-wait (0-86400000)

Время жизни (в мс) сессии в состоянии TCP CLOSE-WAIT. По умолчанию — 20.

timeout delay-ack (0-86400000)

Время задержки (в мс) перед отправкой ACK-сообщения.

timeout established (0-604800000)

Время жизни (в мс) TCP-сессии в состоянии ESTABLISHED. По умолчанию — 120000.

timeout opening (0-86400000)

Время жизни (в мс) сессии в состоянии TCP OPENING. По умолчанию — 20.

timeout retransmit (0-86400000)

Таймаут (в мс) повторных передач TCP. По умолчанию — 200.

timeout service (10-100)

Время (в мкс), в течение которого клиентское приложение пытается восстановить соединение с сервером. По умолчанию — 10.

timeout zero-window (0-86400000)

Время жизни (в мс) сессии в состоянии TCP zero window. По умолчанию — 5.

wsrx (0-14)

Масштабирующий коэффициент, применяемый к значению RX-окна.

Чтобы удалить конкретный параметр, добавьте no перед именем команды без указания значения, например:

no wsrx