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

马谦马谦马谦 2019年6月17日23:38:59 发表评论
文章最后编辑于:2019-6-19 21:39:17

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

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

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

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

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

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

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

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

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

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

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

TCP流1

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

TCP流2

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

TCP流3

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

TCP流4

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

本文共执行42次查询,耗时0.483秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: