首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

发送大量数据,socket API最优分包长度为多少?解决办法

2012-02-19 
发送大量数据,socket API最优分包长度为多少?假设要通过socket发送一个几M的数据,该如何确定每次send的数

发送大量数据,socket API最优分包长度为多少?
假设要通过socket发送一个几M的数据,该如何确定每次send的数据的大小。

[解决办法]
首先看你的网络状况,其次socket的缓冲,你要知道这个缓冲可以设置大小的,所以没这个标准
[解决办法]
尽量发大包吧,越大性能越好吧,tcp自己会分包控制大小的,

tcp就是流协议,无所谓分不分包的,你小包发的,他也可能组装成一个大包才发出去的。

书上这么说的,udp就不清楚了。


[解决办法]
TCP 会采用 Nagle 算法自动将一些小的缓冲区连接到一个报文段中。这样可以通过最小化所发送的报文的数量来提高应用程序的效率.关键在于设置发送和接收缓冲区。
最优的 TCP socket 缓冲区大小=link_bandwidth * RTT 
RTT:发送报文与接收到另一端的响应之间的延时

热点排行