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

时间:2016-04-05 09:15:07

标签: c# networking buffer networkstream

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

我有一个超级专业的格斗表示我的情况:enter image description here

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);
  }

目前我遇到的最快发送缓冲区大小为 1024 * 256 。 问题清单:

我如何确定最佳位置?(发送缓冲区大小理想)

是由文件类型决定的?

是否依赖于我的网络配置。

是否有“行业”标准?

0 个答案:

没有答案