TCP_QUICKACK、TCP_NODELAY

TCP_QUICKACK

TCP会侦听通信两端,假如通信双方采用的是一应一答的交互模式,tcp会开启延迟确认机制。
一应一答的交互模式如下:
1.C->S 发送请求
2.S->C 发送收到请求确认ACK
3.S->C 发送响应
4.C->S 发送收到响应确认ACK

TCP的延迟确认机制:将第二步和第三步合并在一块,不再单独发送请求包的单独ACK回包,而是放在缓冲区中跟响应数据包一起发送出去。如果没有响应数据包,超时200ms后会把ACK包发送出去。
可以使用TCP_QUICKACK关闭延迟确认机制。

TCP_NODELAY

该选项用于控制关闭nagle算法。
nagle算法如下:
1.如果当前数据包 > MSS,则发送数据
2.否则检测当前连接是否有未被确认的小分组
3.如果有,则缓冲当前小分组,知道受到确认分组。
4.如果没有则发送当前小分组。
nagle算法的目的在于:保证当前连接任意时刻网络只有一个未被确认的小分组,保证网络不会过分拥塞。
什么时候禁用nagle算法:需要网络对小包有实时的响应。

你可能感兴趣的:(TCP_QUICKACK、TCP_NODELAY)