客户反映,接口访问不定期的会出现慢响应的情况,单个请求,耗时近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通知发送方有拥塞发生,然后,发送方做出响应,缩小自己的拥塞窗口。

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

  1. linux如何查看丢弃数据包,导致Linux服务器丢弃数据包?

    我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处 ...

  2. 网络设备转发数据包的整个流程_网络工程师(33):路由转发工作原理

    网络中各种网络设备对业务数据的转发主要有二层转发和三层转发.二层转发主要由交换机在同一个VLAN内实现,其转发依据是MAC地址表.如果MAC地址表中存在目的MAC地址表项,就从对应接口发出去,否则会从 ...

  3. nginx丢弃http包体处理

    http框架丢弃http请求包体和上一篇文章http框架接收包体, 都是由http框架提供的两个方法,供http各个模块调用,从而决定对包体做什么处理.是选择丢弃还是接收,都是由模块决定的.例如静态资 ...

  4. linux 网卡丢弃多播包,rp_filter及Linux下多网卡接收多播的问题

    工作中曾遇到一个很奇怪的问题,我奉命调查.事情是这样的,有一台双网卡的机器,上面装有Fedora8,运行一个程序.该程序分别在两个网口上都接收多播数据,程序运行是正常的.但是,后来升级系统到Fedor ...

  5. IntelliJ IDEA中无法加载jar包导致出现“cannot resolve symbol...”问题的解决

    IntelliJ IDEA中无法加载jar包导致出现"cannot resolve symbol..."问题的解决 之前也经常碰到这样的错误,通过reimport.清缓存等方法都可 ...

  6. 传真故障排除示例--网络环境存在丢包导致传真失败

    原因: 网络环境丢包导致传真失败 故障现象:传真失败率很高 设备封包提示信息: 原因分析: 通过封包信息分析,信令交互正常,通过解析传真的RTP信息,确认存在丢包 处理措施: 排查网络环境 备注说明: ...

  7. 线程超时 php-fpm,php-fpm线程僵死导致网站无响应

    php-fpm线程僵死导致网站无响应 网站突然打不开,查看了网站日志,未发现有攻击和流量异常现象.查看内存,负载都未有异常,于是查看php-fpm日志,发现了大量以下样式的警告通知.[NOTICE]  ...

  8. 服务器:php-fpm线程卡死导致网站无响应

    服务器:php-fpm线程僵死导致网站无响应 网站突然打不开,查看了网站日志,未发现有攻击和流量异常现象.查看内存,负载都未有异常,于是查看php-fpm日志,发现了大量以下样式的警告通知. [NOT ...

  9. GTASA圣安地列斯大量高清贴图包导致游戏崩溃闪退的解决办法

    GTASA圣安地列斯大量高清贴图包导致游戏崩溃闪退的解决办法 记录博文 情况说明 在安装了很多不同的 HD 纹理包之后(例如美化包)&驾驶或飞行了大约10分钟,游戏导致崩溃.不管用啥 stre ...

最新文章

  1. div中移除某个元素 js_[JS基础] 13 - 其他 JS 基础
  2. nginx重定向到其他url方法_高级开发必须掌握Nginx之四,if、set、return
  3. 《暗时间》前两篇的笔记和总结
  4. android7.0 拦截短信,变化很大!微信安卓版7.0.17内测体验
  5. NAT STURN,ICE
  6. datax源码阅读一:python文件
  7. 【分享】Web前端开发第三方插件大全
  8. 持续交付一:从开发到上线的环境
  9. kotlin中判断字符串_Kotlin程序查找字符串中字符的频率
  10. 在不使用{}时,else执行到哪里结束
  11. PHP—str_replace()替换函数的使用
  12. JSP 页面 jstl 时间戳 long型转时间
  13. php支付回调怎么写_php 微信支付回调校验的两种做法
  14. 掘金翻译计划 GitHub Star 破3千--终于等到你
  15. python等待时间1009python等待时间_Python之学习Selenium(四):固定的休眠时间、隐式等待和显示等待...
  16. MatConvnet工具箱文档翻译理解一
  17. DB2数据库的备份还原详解
  18. win10隐藏桌面功能
  19. 天池大数据竞赛项目代码_竞赛以使用开放内容,开放数据或开放源代码开始新项目
  20. 实现原理 扫描枪_详细介绍扫描枪工作原理

热门文章

  1. 花12个月做成功网站
  2. NVIDIA Jetson之TF卡系统镜像备份与恢复
  3. 【深度学习】半监督学习入门:Mean teachers
  4. mysql联合索引排序_对mysql联合索引中的字段进行合理排序
  5. 蠕虫病毒的查杀 (转)
  6. 一点一点解读紫书中例子--大整数类BigInteger (1)
  7. MATLAB裁剪视频(裁剪固定区域)
  8. 昆明机床:10 月正式实施10 转增5 可期
  9. 抓rtmp推流地址_如何获取第三方推流地址?
  10. 计算机为何要用三级储存体系,计算机三级存储体系(1).ppt