网络设备丢弃ECN包导致的慢响应问题

本文通过Wireshark抓包分析了接口不定期出现慢响应的原因,并详细介绍了如何通过关闭ECN功能解决该问题,同时给出了关闭ECN的具体命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户反映,接口访问不定期的会出现慢响应的情况,单个请求,耗时近10s。

用 WireShark 抓包并过滤本地端口,单个访问流:

这里写图片描述

包序列解析:

(1)No.9813:第一个包是 [SYN, ECN, CwR] 包,说明启用了 ECN,发送带有 ECN 位设置的包;

(2)正常情况下,目标会返回一个[ACK]包,告知当前链路上的拥塞情况,但这里并没有收到响应包;

(3)No.9815:重新发送一次 ECN 包,也无响应;

(4)No.9855:这时,距离第一次请求已经过去了9s,之后,放弃ECN,直接尝试建立连接;

(5)No.9855 ~ No.9865:建立TCP连接,建立Https通讯,完成数据交互;

(6)No.9866:RST包,请求完成。

分析:
两次 ECN 都无响应,判断是,通路上,某个设备不支持 ECN 或出错了,发现有 ECN位设置的包就直接丢弃。

解决办法:
关闭服务器的 ECN,问题解决,响应耗时正常。

ECN关闭方法为:

netsh interface tcp set global ecncapability=disabled

附上ECN的简介

Explicit Congestion Notification(显示拥塞通知)

基本原理:路由器在出现拥塞时通知TCP。
(1)TCP段传递时,路由器使用IP首部中的2位来记录拥塞;
(2)TCP段到达后,接收方知道报文段是否在某个位置经历过拥塞。
然而,需要了解拥塞发生情况的是发送方,而非接收方。
因此,接收方使用下一个ACK通知发送方有拥塞发生,然后,发送方做出响应,缩小自己的拥塞窗口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值