В чём разница между алгоритмами сетевой буферизации Nagle's Algorithm (TCP_NODELAY) и TCP_CORK? В каких случаях бэкендер должен принудительно отключить алгоритм Нагла для обеспечения минимальной задержки?

Nagle объединяет небольшие записи при неподтверждённых данных; TCP_NODELAY отключает это ожидание. TCP_CORK в Linux удерживает неполные сегменты, чтобы приложение могло собрать крупную отправку.

Короткий ответ

Что ответить на собеседовании

Nagle объединяет небольшие записи при неподтверждённых данных; TCP_NODELAY отключает это ожидание. TCP_CORK в Linux удерживает неполные сегменты, чтобы приложение могло собрать крупную отправку.

Подробный разбор

Ответ с пояснениями

Nagle объединяет небольшие записи при неподтверждённых данных; TCP_NODELAY отключает это ожидание. TCP_CORK в Linux удерживает неполные сегменты, чтобы приложение могло собрать крупную отправку.

Для интерактивного обмена мелкими сообщениями Nagle вместе с delayed ACK способен добавить задержку. TCP_NODELAY полезен, если измерения показывают такую проблему и нельзя просто объединить связанные записи. TCP_CORK подходит для подготовки заголовка и большого тела, но его нужно своевременно снимать. Ни одна опция не отменяет congestion control, сетевые очереди и задержку сервера. Не включайте все настройки одновременно без понимания их взаимодействия.

Источник: man7.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее