Рейтинг:-2

TCP-соединение localhost loopback в Windows: увеличьте узкое место на 65535 байт на сегмент

флаг us

Сценарий, который у меня есть, таков: у меня есть петлевой сеанс TCP, и я хочу улучшить его производительность. У меня есть объекты, подобные сокетам (System.Net.Sockets в .NET Framework, если быть точным), отправляющие сообщения размером до 9 МБ, каждое из которых течет в обоих направлениях TCP-соединения. Я наблюдал типичные задержки около 20 мс для такого большого сообщения, чтобы добраться до другой стороны.

С помощью WireShark я обнаружил, что поток TCP ограничен 65535 байтами на сегмент. Я подозреваю, что это узкое место производительности скорости.В заголовках TCP включена опция масштабирования окна, и расчетный размер окна достаточно велик. Я подозреваю, что «Параметр TCP — максимальный размер сегмента» (MSS) в пакете SYN ограничивает размер каждого сегмента TCP. Пожалуйста, посмотрите изображения WireShark и укажите, если я ошибаюсь.

сегменты TCP с ограниченным размером и параметры масштабирования окна Пакет SYN и MSS

Теперь возвращаемся к вопросу в заголовке. В Windows 7/8/10/11 есть ли способ увеличить этот предельный размер сегмента TCP? Я надеюсь найти метод, который увеличивает MSS только для петлевых соединений или только для определенных портов или что-то в этом роде.

Рейтинг:1
флаг ru

Сегмент TCP инкапсулируется пакетом IP, который обычно ограничен 65 535 байтами (2^16-1), поскольку Общая длина поле 16 бит. Это конец лестницы как для TCP, так и для IP.

Если вы не можете обеспечить требуемую пропускную способность, вам нужно либо более быстрое оборудование, либо более быстрое программное обеспечение. По умолчанию мой настольный компьютер работает с однопоточным режимом ~35 Гбит/с. Возможно, вы захотите спросить у Переполнение стека для оптимизации вашего кода.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.