当前位置: 技术问答>linux和unix
发送大量数据,socket API最优分包长度为多少?
来源: 互联网 发布时间:2017-01-23
本文导语: 假设要通过socket发送一个几M的数据,该如何确定每次send的数据的大小。 | TCP 会采用 Nagle 算法自动将一些小的缓冲区连接到一个报文段中。这样可以通过最小化所发送的报文的数量来提高...
假设要通过socket发送一个几M的数据,该如何确定每次send的数据的大小。
|
TCP 会采用 Nagle 算法自动将一些小的缓冲区连接到一个报文段中。这样可以通过最小化所发送的报文的数量来提高应用程序的效率.关键在于设置发送和接收缓冲区。
最优的 TCP socket 缓冲区大小=link_bandwidth * RTT
RTT:发送报文与接收到另一端的响应之间的延时
最优的 TCP socket 缓冲区大小=link_bandwidth * RTT
RTT:发送报文与接收到另一端的响应之间的延时
|
尽量发大包吧,越大性能越好吧,tcp自己会分包控制大小的,
tcp就是流协议,无所谓分不分包的,你小包发的,他也可能组装成一个大包才发出去的。
书上这么说的,udp就不清楚了。
tcp就是流协议,无所谓分不分包的,你小包发的,他也可能组装成一个大包才发出去的。
书上这么说的,udp就不清楚了。
|
首先看你的网络状况,其次socket的缓冲,你要知道这个缓冲可以设置大小的,所以没这个标准