TCP_NODELAY отключает алгоритм Нагла и уменьшает ожидание небольших записей. TCP_CORK, напротив, просит Linux удерживать неполные сегменты, чтобы собрать более крупную отправку.
В чем разница между алгоритмом Нагла (TCP_NODELAY) и TCP_CORK на уровне буферизации сетевых пакетов ядра?
TCP_NODELAY отключает алгоритм Нагла и уменьшает ожидание небольших записей. TCP_CORK, напротив, просит Linux удерживать неполные сегменты, чтобы собрать более крупную отправку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
TCP_NODELAY отключает алгоритм Нагла и уменьшает ожидание небольших записей. TCP_CORK, напротив, просит Linux удерживать неполные сегменты, чтобы собрать более крупную отправку.
Нагл ограничивает мелкие отправки при наличии неподтверждённых данных; NODELAY полезен для чувствительного к задержке обмена. CORK удобен при формировании ответа частями: его нужно снять после сборки, не полагаясь на предельный таймер ядра. Ни один режим не сохраняет границы вызовов write как границы сообщений у получателя.
Источник: man7.org.