一次运营商网络抖动导致的上网慢问题分析

马谦马谦马谦 计算机网络评论1,119字数 824阅读 2 分 44 秒阅读模式

下午客户打电话过来说 QQ 总是掉线,怀疑 (一口咬定) 是我们设备 (我们的是路由设备,放在出口) 故障导致的,态度十分强硬。从客户提出问题的第一秒起就已经可以断定是运营商网络问题了,为什么呢:

  1. 对路由器来说,路由逻辑都是在系统内核实现的,linux 系统跑了这么多年,不可能还出现这种问题。
  2. 客户那里断网不是每次都是所有 PC 集体断,只有少部分 PC 时断时续,不稳定。如果路由器有问题肯定是集体短线,而运营商有问题就不一定了,不是所有的 QQ 都在同一个服务器上,线路不同,网络状态也不同。

但是没有真凭实据可以来证明这一点,并且现象不是一直存在的,所以最后只能用挫招了:在设备的 lan 和 wan 口抓包,每十分钟重抓一次,直到客户网络出现问题。

最后抓了一个小时,终于抓到了数据包,那么如何判断是路由器的问题还是运营商网络的问题呢:

  1. 对比 LAN 和 WAN 的数据包,如果 LAN 的数据没有经过 WAN 发出去,或者从 LAN 收到数据包到 WAN 发出数据包的时间太长,那说明路由设备有问题。
  2. 如果来自 LAN 的数据包在 WAN 口都发出去了,但是没有收到对端服务器的回复,或者回复时间太长,那么就是运营商网络有问题了。

要用到的一个重要的功能就是 Wireshark 的追踪流功能:

一次运营商网络抖动导致的上网慢问题分析-图片1

使用追踪流可以把当前连接的所有交互数据都显示出来:

一次运营商网络抖动导致的上网慢问题分析-图片2

这个是 lan 口的抓包数据,PC 的 IP 是 192.168.10.62,已经能看到有很多重传的数据包了,但是还不能确定是路由器丢包了还是服务端丢包了。此时就要对比两个口的数据包,看看 lan 口的数据包是否有被转发出去,lan 和 wan 的数据包可以通过目的 IP 地址来一一对应起来,因为不管数据怎么转发,目的 IP 都是不变的。可以先在 lan 口追踪每一个 TCP 流,然后在 wan 口过滤目的地址。

而在随机抓取的前面几个数据包中,发现,每个连接都是 wan 端发起的连接,然后服务端没有响应,一直在产生重传操作,这就可以证明是用户网络的问题而不是我们设备的问题了。

TCP 流 1

一次运营商网络抖动导致的上网慢问题分析-图片3

TCP 流 2

一次运营商网络抖动导致的上网慢问题分析-图片4

TCP 流 3

一次运营商网络抖动导致的上网慢问题分析-图片5

TCP 流 4

一次运营商网络抖动导致的上网慢问题分析-图片6

  最后更新:2020-4-12
马谦马谦马谦
  • 本文由 马谦马谦马谦 发表于 2019 年 6 月 17 日 23:38:59
  • 转载请务必保留本文链接:https://www.dyxmq.cn/network/network-traffic-analyse.html
system和popen返回ENOMEM问题 程序员

system 和 popen 返回 ENOMEM 问题

一、我为什么不喜欢 system 和 popen 要说到我为什么不喜欢 system 和 popen 这两个函数,这个说来就话长了。最开始,我还是很喜欢用这两个函数的,直到后来发现了太多因为滥用导致的程序异常后,它...
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定

拖动滑块以完成验证