通过网络发送的理想缓冲区/数据包大小是多少?

mem*_*eme 5 c# networking buffer networkstream

现在我有一个通过网络发送文件的应用程序。我正处于需要优化应用程序以便传输速度理想的阶段。

我有一个超级专业的 graff 显示我的情况:在此处输入图片说明

Y - 发送时间。X - 缓冲区大小。

Y 是发送时间,X 是缓冲区/数据包大小。你有没有看到,从我的实验中我注意到如果缓冲区大小太小发送时间很慢,如果缓冲区大小太大发送时间太长。有一个甜蜜点,缓冲区大小似乎是理想的。这就是我需要一些希望在网络方面有更多经验的人的帮助的地方。

现在这就是我发送缓冲区的方式。

 for (int i = 0; i < NoOfPackets; i++)
 {
       if (totalFileLength > netBufferSize)
       {
          currentPacketLength = netBufferSize;
          totalFileLength = totalFileLength - currentPacketLength;
       }
       else
          currentPacketLength = totalFileLength;

       SendingBuffer = new byte[currentPacketLength];
       compressed.Read(SendingBuffer, 0, currentPacketLength);
       netWorkStreamVar.Write(SendingBuffer, 0, currentPacketLength);
  }
Run Code Online (Sandbox Code Playgroud)

现在我遇到的最快的发送缓冲区大小是1024 * 256。问题清单:

我如何确定那个甜蜜点?(其中发送缓冲区大小是理想的)

是由文件类型决定的?

是否取决于我的网络配置。

有“行业”标准吗?