一 、之前的旧经验

之前公司发生过wget过慢的情况,经过研究发现wget默认调用系统的getaddrinfo,会同时发送ipv4和ipv6的dns请求,只有当2个都收到或者ipv6超时时,才会进行下载流程。
而公司使用的dns不响应ipv6的请求,导致每次wget前都要在dns阶段卡顿5秒钟(等待超时),解决办法是修改了dns代码,遇到ipv6的请求后,直接返回空数据,有效解决了wget等一系统使用getaddrinfo函数的程序速度慢的问题。

二、第一反应

所以平时在操作中遇到ping首包慢的情况,潜意识里觉得应该是ipv6的问题,没有太过关注。但是帮同事解决问题的时候发现,首包卡顿是不定期的,而不是默认5秒钟。

三、抓包分析

感觉很奇怪,于是抓包看了一下,发现dns返回速度很快,也没有请求ipv6的域名地址,同时ping包的request和reply都很快。可是明明已经收到了reply,ping首包依然处于卡顿状态。


抓包发现icmp瞬间返回。


但是显示时间巨慢,需要等待3s。


于是对dns也进行抓包

发现在dns解析,ping响应后,又多了一步dns 用ip反查域名,耽误了很多时间。


四、解决问题

man了ping发现有个配置
-n Numeric output only. No attempt will be made to lookup symbolic names for host addresses.
使用这个参数解决了首包延迟的问题。
另外如果直接ping ip地址,也不会去反查dns。


五、后续问题

在公司内网测试的时候发现ping包经常收不到应答,但是抓包都是响应了的,于是把抓包拿到本地分析。

ping包的icmp是没有端口的,所以通过里面的字段来确定报文是谁发送的,有各个监控进程来自己选择处理响应结果。

如上请求包

如上响应包

但是在第二组抓包里面发现,响应包和请求包的标识字段不一致,没有使用同样的id,而是使用了上一次的识别字段,估计防火墙做了什么保护处理,把上一次的ping包结果给缓存的,用来响应新的ping请求。结果导致了故障。使得ping时通时不通。
所以说如果对协议了解的不清楚,不要随便给人做缓存。

转载于:https://blog.51cto.com/xzq2000/2402249

ping首包慢的问题(及icmp对应关系)相关推荐

  1. ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测...

    利用 ICMP 隧道穿透防火墙 转自:http://xiaix.me/li-yong-icmp-sui-dao-chuan-tou-fang-huo-qiang/ 以前穿透防火墙总是使用 SSH 隧道 ...

  2. linux 局域网内互ping丢包_ping命令还能这么用?

    ping (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序.Ping发送一个ICMP,回声请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP ...

  3. 计算机网络考试数据包格式,计算机网络实验 分析ICMP协议数据包格式.doc

    计算机网络实验 分析ICMP协议数据包格式 实 验 报 告 实验课程名称 计算机网络实验 实验项目名称 分析ICMP协议数据包格式 年 级 08 专 业 电子信息科学与技术 学生姓名 郎子龙 学 号 ...

  4. ping 丢包 网络摄像头_用ping ,mtr ,traceroute 进行网络丢包分析

    转自 https://blog.csdn.net/hankerzero/article/details/67062617 一.丢包原因 网络丢包原因很多,但是一般都是链路问题: 骨干拥塞 链路某个交换 ...

  5. Ping丢包故障处理流程

    一.常见故障:1.网络环路.ARP问题.ICMP报文限速配置的过小或ping洪水攻击 2.物理环境故障.网卡速率及工作模式与交换机端口不一致(全双工.半双工.单工) 3.网络规划问题 光纤弯曲度过大. ...

  6. linux ping时丢包怎么解决办法,ping丢包故障处理方法

    ping丢包故障处理方法 1.Ping丢包故障定位思路故障分析 Ping丢包是指Ping报文在网络中传输,由于各种原因(如线路过长.网络拥塞等)而产生部分Ping报文丢弃的现象.在使用Ping命令,出 ...

  7. #获得请求来源ip_以太网数据包TCP、IP、ICMP、UDP、ARP协议头结构详解

    以太网首部 目地MAC地址(8字节) 源MAC地址(8字节) 类型(2字节) 1.IP头的结构 版本(4位) 头长度(4位) 服务类型(8位) 封包总长度(16位) 封包标识(16位) 标志(3位) ...

  8. 支付宝和Ping++的包冲突问题:Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files defin

    问题: 百度了这个问题,说是jar包重复,翻遍了所有的包,也没发现重复的包.就想着是不是支付宝和Ping++的包冲突.把ping++的包删除了,没事了.

  9. Ping丢包故障案例

    一.Ping丢包故障 1.Ping丢包故障现象 二.故障猜想可能存在以下问题 1.物理环境故障: 2.网络环路: 三.故障定位 1.物理环境故障: 登录交换机dis int g1/0/1查看端口下面不 ...

最新文章

  1. HOG 特征计算实现
  2. 2018年08月19日发烧诸事记
  3. 2021中青杯数学建模C题 在线教学的分析与研究
  4. HTTP over QUIC重命名为“HTTP / 3”协议
  5. 2013年国家计算机一级考试试题,2013年计算机一级的考试试题.doc
  6. C字节对齐与C++类对象内存布局
  7. Adobe illustrator 论文图形编辑和排版 - 连载 2
  8. 输入数字自动找规律的软件_WPS2019 填充柄的顺序式填充、复制式填充、规律填充、自定义填充...
  9. 关于DOM的事件操作
  10. 孩子们各显神通对付 iOS 12「屏幕使用时间」的限制
  11. mysql事务和锁 SELECT FOR UPDATE
  12. 乡镇街道边界数据、行政村边界、省市县区划边界、建筑轮廓边界数据、流域边界数据、降雨量分布、气温分布、道路网分布
  13. 网上预约订餐系统(联网可用)
  14. 【原创】微信最新表情js代码
  15. 图像工作回顾之六:视频质量诊断
  16. 运维工程师的日常工作内容
  17. Cisco 防火墙Firwall Failover ActiveActive 双HSRP 实现双ISP完美切换
  18. Google的野心 Android未来方向分析
  19. 红外图像处理:去竖条
  20. Windows10系统安装软件时显示“无法访问Windows Installer服务。Windows Installer没有正确安装时可能发生这种情况。” or “错误2:系统找不到指定的文件”

热门文章

  1. python精确有理数实验_Python3标准库:fractions有理数
  2. declare sql语句_SQL高级知识——动态SQL
  3. 软件测试 - V模型、W模型、H模型、X模型
  4. JAVA集合Set之HashSet详解_Java基础———集合之HashSet详解
  5. java 静态内部类 内部类_Java中内部类和静态内部类的区别
  6. vscode中控制台不能输入_vscode控制台不能输入怎么办
  7. android item list居中,RecyclerView选中item居中显示
  8. qemu 运行arm linux,在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行...
  9. import pandas as pd什么意思_【医学名词】多发性骨髓瘤MR、SD、PD分别是什么意思?...
  10. python batch_size_Python config.batch_size方法代码示例