Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net TcpClient.ReceiveBufferSize是否影响基础帧大小?_.net_Tcp_Network Programming_Buffer_Tcpclient - Fatal编程技术网

.net TcpClient.ReceiveBufferSize是否影响基础帧大小?

.net TcpClient.ReceiveBufferSize是否影响基础帧大小?,.net,tcp,network-programming,buffer,tcpclient,.net,Tcp,Network Programming,Buffer,Tcpclient,我最初认为这个问题的答案是“不”,但Wireshark似乎证明我错了 在我们的应用程序中,我们注意到较大的TcpClient接收缓冲区大小会导致多个消息被分组到较大的帧中。当我们将接收缓冲区大小减少到100字节时,Wireshark告诉我们消息不再分组在一起,我们从服务器接收更多更小的帧 我的理解是,TcpClient在更高的层上运行,我们无法控制帧大小。我的理论是,微小的缓冲区大小会导致窗口协商一个微小的缓冲区,这会导致每个片段都适合单个帧。我离这儿远吗 根据 ReceiveBufferSiz

我最初认为这个问题的答案是“不”,但Wireshark似乎证明我错了

在我们的应用程序中,我们注意到较大的
TcpClient
接收缓冲区大小会导致多个消息被分组到较大的帧中。当我们将接收缓冲区大小减少到100字节时,Wireshark告诉我们消息不再分组在一起,我们从服务器接收更多更小的帧

我的理解是,
TcpClient
在更高的层上运行,我们无法控制帧大小。我的理论是,微小的缓冲区大小会导致窗口协商一个微小的缓冲区,这会导致每个片段都适合单个帧。我离这儿远吗

根据

ReceiveBufferSize属性获取或设置每个读取操作预期存储在接收缓冲区中的字节数。此属性实际上操纵分配用于接收传入数据的网络缓冲区空间


这没有多大帮助。

事实证明,缓冲区较小会导致TCP连接的缓冲区较小。此窗口大小与远程计算机通信,以便它知道一次可以发送多少数据。因此,是的,将缓冲区大小设置为足够小的值将导致远程计算机以较小的数据块发送数据。

好的,文档说网络缓冲区(即TCP堆栈缓冲区)正受到小型接收缓冲区的影响。。。看看客户提供的SYN框架,以验证您的理论。