Сначала я думал, что ответом на этот вопрос будет «нет», но Wireshark, похоже, доказывает, что я не прав.
В нашем приложении мы заметили, что больший TcpClient
размер буфера приема приводит к тому, что несколько сообщений будутсгруппированы в более крупные кадры.Когда мы уменьшаем размер буфера приема до 100 байт, Wireshark сообщает нам, что наши сообщения больше не группируются, и мы получаем от сервера более мелкие кадры.
Насколько я понимаю, TcpClient
работаетна более высоком уровне, и у нас нет контроля над размером кадра.Моя теория состоит в том, что крошечный размер буфера заставляет Windows согласовывать крошечный максимальный размер сегмента , и это приводит к тому, что каждый сегмент помещается в одном кадре.Я здесь далеко?
Согласно Документам Microsoft ...
Свойство ReceiveBufferSize получает или задает количество байтов, которое вы ожидаете сохранитьв буфере приема для каждой операции чтения.Это свойство фактически управляет сетевым буферным пространством, выделенным для приема входящих данных.
Это не сильно помогает.