Для OpenBSD реализована настройка, включающая режим TCP_NODELAY для всей системы

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3249
Зарегистрирован: 20.08.2022

#

Для OpenBSD реализована настройка, включающая режим TCP_NODELAY для всей системы
Дата публикации:Wed, 15 May 2024 08:45:31 +0300




Джоб Снейдерс (Job Snijders), маститый разработчик OpenBSD, руководитель одного из комитетов в IETF (Internet Engineering Task Force), автор 11 RFC, связанных с маршрутизацией и RPKI, и создатель IRRd (Internet Routing Registry Daemon), опубликовал набор патчей для OpenBSD, добавляющих новый sysctl-параметр "net.inet.tcp.nodelay" для отключения алгоритма Нейгла на уровне всей системы. Параметр избавляет разработчиков приложений от выставления флага TCP_NODELAY для отдельных сокетов.



Алгоритм Нейгла используется для агрегирования мелких сообщений с целью снижения трафика. Алгоритм приостанавливает отправку новых сегментов TCP до получения подтверждения о приёме ранее отправленных данных или до наступления таймаута. Например, без применения агрегирования при отправке 1 байта, дополнительно отправляется 40 байтов с TCP и IP заголовками пакета, а с применением алгоритма Нейгла - сообщения, отправленные до прихода подтверждения от удалённой стороны, накапливаются и отправляются одним пакетом. Из-за наличия оптимизации "delayed ACK", задерживающей отправку ACK-пакетов, сигнал через пакеты с подтверждением на деле не работает, и отправка накопленных сообщений выполняется при наступлении таймаута.



Снейдерс придерживается мнения, что в современных реалиях алгоритм Нейгла, разработанный во времена, когда несколько пользователей конкурировали за полосу пропускания 1200 бод, устарел и в высокоскоростных сетях от него больше вреда чем пользы. Недавно подобную позицию также высказал Марк Брукер (Marc Brooker) из компании Amazon Web Services (AWS). С доводами в пользу отключения алгоритма Нейгла по умолчанию
можно ознакомиться в опубликованной несколько дней назад заметке.




Для отключения алгоритма Нейгла предусмотрена опция TCP_NODELAY, которая может быть выставлена для отдельных сетевых сокетов. Режим TCP_NODELAY давно выставляется во многих приложениях OpenBSD, среди которых openssh, httpd, iscsid, relayd, bgpd и unwind, и, по мнению Снейдерса, настало время для предоставления возможности его включения для всех TCP-сокетов на уровне всей системы. Снейдерс также предлагает обсудить вопрос включения TCP_NODELAY по умолчанию и перевода алгоритма Нейгла в разряд отдельной включаемой опции.





Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61176

Жизнь за Нер'зула!

Ответить