在实现低级 HTTP 和 FTP 传输时,如何选择缓冲区的大小(从套接字读取或写入套接字的字节数)以获得最大吞吐量?我的应用程序应该在 130 Kbps 到 3 Mbps 的连接上使用 HTTP 或 FTP 传输数据(我事先知道预期的速度)。有时是单向转移,有时是双向转移。我应该坚持使用某个平均缓冲区大小还是必须根据连接速度来改变它?
Thanks.
选择超过 8KB 的缓冲区大小。 9000 通常是最快网络中使用的最大 MTU(最大传输单元)大小。
当您使用大于连接 MTU 的缓冲区时,操作系统会根据需要将其分解为 MTU 大小的片段,因此您使用的任何超过 MTU 的内容对网络性能几乎没有影响。
但是,使用大缓冲区可能会对性能产生其他影响,如果您正在传输文件,那么使用大缓冲区可能会提高读取性能,从而提高应用程序的速度。
因此,通常选择一个合适的整数(例如 16KB)是一个好主意。绝对不要低于 1500,因为这会对网络性能产生负面影响(导致操作系统有时发送小数据包,从而降低网络性能)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)