问题描述 内网部分PC在telnet外网服务器的时候,服务器回复非常慢,PC会显示2到3秒“正在连接“,最后还才会telnet通
处理过程 1、设备开直通和全局排除都不行,设备路由部署无法绕开。 2、使用设备的抓包工具或者在PC上使用wireshark工具,针对正常的PC和异常的PC的抓包做对比,如下: 异常的PC在发送syn请求的时候,多了个ECN的字段,通过确认ECN代表终端通知服务器网络有拥塞,需要服务器等待通知。上图就是服务器收到syn ecn cwr包之后,一直没有回ack包,等待PC重新发单纯的syn包之后,服务器才回了ACK包。
根因 PC发送了ECN字段,让服务器端误以为网络有拥塞,会一直等待PC发正常的syn包。
解决方案 由于Windows系统的ECN功能缺省是关闭的,如果发现windows终端或者服务器开启了ECN字段,可以在PC上通过netsh interface tcp set global ecncapability=disabled命令关闭,如下: PS:补充一下Linux系统不编译内核的ECN关闭方法:echo "0" >/proc/sys/net/ipv4/tcp_ecn |