TCP_NODELAY在延迟敏感的场景下适合设置

结论先行

TCP发送报文有时比较短,但又对延迟比较敏感的场景,例如,应用控制信令,非常适合启用TCP_NODELAY套接字选项。

现象

  • 发送者在TCP链路上连续发送两条请求,第一条请求立即发送出去了,而第二条要等到TCP Ack后,才能再次发送出去

TCP存在随路Ack确认和延迟Ack确认,TCP对端在没有报文发送时,会出现延迟回复Ack确认

启用代码

c 复制代码
  int enable = 1;
  // 注意使用第二个参数特别需要注意,需要设置为SOL_TCP
  setsockopt(fd, SOL_TCP, TCP_NODELAY, &enable, sizeof(enable));

拷贝粘贴代码易错提示

笔者曾出现设置第二个参数为SOL_SOCKET级别,但TCP_NODELAY特性不生效的情况

后记

后来回想了下,setsockopt第二个参数选项,体现为套接字的协议工作层次,与网络协议栈的层次划分有一定的对应关系。

所以,对于TCP_NODELAY套接字选项,应该设置在传输层上!

猜测TCP_NODELAY默认不启用原因

  • 吞吐量因素

Nagle算法的优化场景

  • 避免发送过多未经确认的数据

工具小贴士

  • putty小程序在配置中提供了TCP_NODELAY的选项控制,以利于界面交互的及时性
相关推荐
2401_868534788 小时前
NFV:将安全设备部署到虚拟机上
网络
zhengfei6118 小时前
【渗透工具】Payloader — 渗透测试辅助平台(payload一键所有)
网络·安全·web安全
鼎讯信通8 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
Multipath71210 小时前
无人区不掉线:多链路聚合路由,为环塔拉力赛筑起“空中通讯走廊”
网络·5g·安全·无人机·实时音视频
o0麦嘎11 小时前
内网ip配置https
网络协议·tcp/ip·https
上海云盾-小余12 小时前
接口高频恶意刷取怎么防?网关限流搭配 WAF 联合防护方案
网络·安全
潜创微科技12 小时前
4K60 over IP 方案简介
网络·嵌入式硬件·网络协议·tcp/ip·音视频
treesforest12 小时前
自媒体账号限流排查指南:从风控算法视角看IP纯净度与网络隔离
网络·tcp/ip·ip·媒体
pride.li12 小时前
海思视觉Hi3516CV610--开机自动设置ip
linux·网络·网络协议·tcp/ip
源图客13 小时前
Minio配置HTTPS服务
服务器·网络协议·https