前段时间客户反馈一个使用pc上的命令行ping无线设备(WiFi4)时,设备平均响应时间(测试时长2小时,1秒Ping一次)相比其它机型偏慢的问题,并上传上具体的时间的Log.从log中看到,大多数包的响应还是比较快的,只是个别响应时间较长,且响应时间长的包时间几乎都是一样的100多ms.如下是部分响应时间截图.

整个2小时的测试时间里,总是时不时的出这么上102,104ms的响应时间,这直接导致了平均响应时间被拉大.于是本地测试,也发现了类似的延迟.本地测试时,现象略有不同,具体现象是Pc每ping28包,设备就有一次响应时间100ms的现象出现.连续测试多次都是这样的规律.将路由设备成open模式,使用抓包卡抓Ping包,发现pc发出echo的时间是很准的,就是默认的1次一包;而设备回复的echo reply则时快时慢,慢的时候也正是有将近100ms的延迟.即收到echo后100多ms才有看到echo reply发出,于是可以确认延迟是设备侧的处理问题,与发送侧无关.具体抓包的延迟见下图(下图不是100ms,而是50ms,是因为这是已经找到了延迟的地方了,所以改了延迟的时间以进一步确认是否找对地方.):

后面就在接收流程上加打印,确认延迟是卡在哪个步骤上.通过步步调试,最终确认延迟是因为接收的802.11数据的seqnum不连续,导致umac层进行了reorder的处理.即umac检测到丢了一个seqnum,于是将这个新来的数据包放到了一个reorder的队列(Q_r),而不是放的正常的给到上层(tcpstack)的队列(Q_t).而reorder队列会等一段时间(默认100ms),只为了等到那个丢失的seqnum的数据包,之后再将Q_r中的数据重新放回Q_t中,以供上层处理.如果100ms内那个丢失的seqnum来了,会重新排序后立即放回Q_t中,但是这里因为每次那个丢失seqnum都不来,所以每次都是100ms超时.

那么,那个seqnum为什么总是丢?还这么有规律,去哪了?是个什么包呢? 继续抓包看吧!

见上图,通过加打印丢失的seqnum与抓包对应,发现是本次丢失的seqnum是177,原来是个arp_req!!!

好吧,明白了.

一个响应ping包延迟偏大的问题相关推荐

  1. 计算机网络丢包排查,ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通...

    原标题:ping命令图文教程,电脑测试网络丢包延迟,检测网络故障通不通 你好,我是老盖,首先感谢你观看本文,本篇文章我做的有视频,视频讲述的比较详细,也可以看我发布的视频. 这里演示一下ping的命令 ...

  2. TTL、Ping包最大字节数、网络时延、抖动、丢包率,看完瞬间变大神!

    Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令,用于测试网络连接量,以及DNS解析是否正常.通过向特定的目的主机发送 ICMP  Echo 请求报文,测试目的站是否可达及了解其有关状 ...

  3. php fping,【Linux 命令】fping ping 包间隔时间详解

    服务器间检查会用到fping的命令,期间遇到了一个问题,需要将ping包间的间隔时间设置为100毫秒,查看fping -h看下,找到了-i和-p两个参数: 看到这两个参数,我当时的表情是这样的: 看不 ...

  4. ping 包命令使用

    1.使用背景:       ping只有在安装了TCP/IP协议以后才可以使用: 2.基本命令: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] ...

  5. 在MTU为1500,不分片的条件下,ping包长最大为1472B的理解

    环境: os:CentOS Linux 7 1. 背景 使用vmware创建了一个centos7的虚机,端口ens33的mtu值默认为1500,如图 使用命令ping <ip> -M do ...

  6. 【亡羊补牢】计算机网络灵魂之问 第12期 tcp握手结束第一次的包有多大

    这是博主面向腾讯学习的面试题大整理系列,可以在如下github仓库Issues中通过 Labels 标签分类查看相关内容,同时欢迎大家指正可能的错误并且提出自己的解答,希望大家学的鱼块,春秋招顺利! ...

  7. 弱网测试:丢包 + 延迟

    弱网测试:丢包 + 延迟 丢包:丢包应该是最常见的问题.在TCP协议中,需要不停的发送请求,来确认连接状态,一旦发生丢包,就需要重传.这个时候就需要去检查产品的处理机制,给予什么提示,如果未响应怎么处 ...

  8. ZABBIX 配置 ping监测网络延迟

    安装 fping 命令 # yum install fping -y 写配置文件,通过命令提取到延迟并使用zabbix_get可以正常调用返回结果 # 配置文件 [root@zabbix_server ...

  9. Linux停止ping包,linux开启、禁止ping包

    linux开启ping以及禁止ping Linux默认是允许Ping响应的,系统是否允许Ping由2个因素决定的:A.内核参数,B.防火墙,需要2个因素同时允许才能允许Ping,2个因素有任意一个禁P ...

最新文章

  1. RelativeLayout布局,不希望文本盖住其他组件
  2. ubuntu查看python版本-linux查看python安装路径,版本号
  3. oracle10_client的安装,Oracle10.2ClientWindows安装.doc
  4. 乌班图系统的MySQL_乌班图系统mysql主从备份
  5. Java Web工程结构_项目结构
  6. 360浏览器怎么保存网页账号密码
  7. java字段描述符_Java 的方法签名与字段类型表示-[Ljava.lang.String;
  8. python难学吗-我没有基础,能否学会Python?Python难吗?
  9. 经典卷积神经网络---VGG16详解
  10. 【Pix4d精品教程】Pix4d模型成果导出OSGB并加载OSGB到EPS进行三维测图完美案例教程
  11. 初了解IsPostBack
  12. 聚类分析-K-means clustering 在生物信息学中的应用
  13. 大量用户反馈 QQ 账号被盗;​AirPods Pro2 或支持查找功能;Spring Boot 2.7.1发布|极客头条
  14. macbook卡在进度条开不了机_解决MacBook Pro开机卡死在进度条无反应,进不去桌面...
  15. SimpleWord 简词开发记录笔记
  16. WebGL 绘制Line的bug(一)
  17. 使用 IDEA 翻译插件
  18. 随笔-20191217
  19. 外汇交易员必读:使用EA做外汇要注意的细节,尤其第三点
  20. On saturday

热门文章

  1. 7、Node.js EventEmitter
  2. dns-prefetch,新打开页面预抓取
  3. 简单CSS3代码实现立方体以及3D骰子
  4. 关于创业公司产品开发原则
  5. Build与Version
  6. CodeSmith实用技巧(二):使用FileNameEditor
  7. wpf展开树节点_【转】WPF TreeView如何展开到某个节点
  8. android n AES加密,AndroidP AES 加密适配
  9. 将svn设置开机启动linux,ubuntu安装SVN并设置开机启动
  10. html测试页,打印机测试页