当前位置:  开发笔记 > 编程语言 > 正文

为FTP和HTTP传输选择缓冲区大小

如何解决《为FTP和HTTP传输选择缓冲区大小》经验,为你挑选了2个好方法。

在实现低级HTTP和FTP传输时,如何选择缓冲区的大小(我从套接字读取或写入的字节数)以获得最大吞吐量?我的应用程序应该使用HTTP或FTP在130 Kbps到3 Mbps之间的连接上传输数据(我事先知道预期的速度).有时它是单向转移,有时它是双向转移.我应该坚持使用一些平均缓冲区大小,还是必须根据连接速度改变它?

谢谢.



1> SoapBox..:

选择超过8KB的缓冲区大小.9000通常是即使是最快的网络中使用的最大MTU(最大传输单元)大小.

当您使用大于连接MTU的缓冲区时,操作系统会根据需要将其分解为MTU大小的部分,因此您在MTU上使用的任何内容对网络性能影响不大.

但是,如果要传输文件,使用大缓冲区可能会对性能产生其他影响,那么使用大缓冲区可能会提高读取性能,从而提高应用程序的速度.

所以,通常选择一个像16KB这样的好轮数是个好主意.绝对不要低于1500,因为这会对网络性能产生负面影响(导致操作系统有时会发送小数据包,从而降低网络性能).



2> S.Lott..:

首先,进行一些测量.

然后,在进行可靠的性能测量后,更改缓冲区大小并绘制速度与缓冲区大小的关系图.

由于您事先知道连接速度,因此您应该能够使用不同的实际缓冲区大小来测量实际速度.

操作系统,协议栈和网络太复杂,无法从第一原理中得出答案.你需要在做任何事之前进行测量.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有