C# 通过网络发送的理想缓冲区/数据包大小是多少?
现在我有一个通过网络发送文件的应用程序。我在这个阶段,我需要优化应用程序,使传输速度是理想的 我有一个看起来非常专业的格拉夫,展示了我的情况: Y-发送时间。 缓冲区大小 Y是发送时间,X是缓冲区/数据包大小。 你可以看到,从我的实验中我注意到,如果缓冲区大小太小,发送时间就会变慢,如果缓冲区大小太大,发送时间就会变长。 缓冲区大小似乎是理想的,这是一个最佳点。这就是我需要一些人帮助的地方,希望他们在网络方面有更多的经验 现在这就是我发送缓冲区的方式C# 通过网络发送的理想缓冲区/数据包大小是多少?,c#,networking,buffer,networkstream,C#,Networking,Buffer,Networkstream,现在我有一个通过网络发送文件的应用程序。我在这个阶段,我需要优化应用程序,使传输速度是理想的 我有一个看起来非常专业的格拉夫,展示了我的情况: Y-发送时间。 缓冲区大小 Y是发送时间,X是缓冲区/数据包大小。 你可以看到,从我的实验中我注意到,如果缓冲区大小太小,发送时间就会变慢,如果缓冲区大小太大,发送时间就会变长。 缓冲区大小似乎是理想的,这是一个最佳点。这就是我需要一些人帮助的地方,希望他们在网络方面有更多的经验 现在这就是我发送缓冲区的方式 for (int i = 0; i <
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);
}
for(int i=0;inetBufferSize)
{
currentPacketLength=netBufferSize;
totalFileLength=totalFileLength-currentPacketLength;
}
其他的
currentPacketLength=总文件长度;
SendingBuffer=新字节[currentPacketLength];
压缩读取(发送缓冲区,0,currentPacketLength);
netWorkStreamVar.Write(发送缓冲区,0,currentPacketLength);
}
现在我遇到的最快的发送缓冲区大小是1024*256。
问题清单:
如何确定最佳点?(发送缓冲区大小理想时)
是否由文件类型确定
这是否取决于我的网络配置
是否有“行业”标准 理想的缓冲区大小取决于网络速度、封装大小、当前PC和许多其他参数。因此,请尝试设置不同的大小-512、1024 e.t.c.,并为您的情况找到最佳大小。嗯,因为这不是一个单一的计算机程序,我是否需要修正算法来确定每次尝试发送文件时的理想数据包大小?可能会尝试使用数据包大小来确定缓冲区大小(它不取决于文件类型)只有大小。你说的包大小是什么意思?让我们假设你发送10mb的文件/少数文件-然后缓冲区大小将设置为2048,然后文件大小为200Kb-然后使用1024。但缓冲区大小不应该太大。