每当我将数据写入 TCP 套接字时,它都会等到填充足够的数据,例如:64k(最大数据包大小),然后将数据发送到线路。这会错过另一端正确时间的数据。
当我设置 TCP_NODELAY 时,写入套接字的任何数据都会立即发送到线路。这会减少带宽,因为我们有很多带有 ACK 的小数据包。
我们可以为linux设置一个规则来有条件地清除套接字吗?前任:
if time gap between last sent packet and current data is greater than 100ms send immediately no matter how much data lendth is
else if current data length is bigger than 50kb send immediately no matter how much time gap is
else do nothing, wait some milliseconds for next decision
我不想减少 tcp 缓冲区大小,想修改 linux 刷新数据的方式。
我们可以通过修改linux配置文件来做到这一点吗?或者这必须在每个编写的软件中实现?
任何直接的答案、帮助、解决方案或文章链接都值得赞赏