下午客户打电话过来说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

imagec46b15a9d92d3a02.png

TCP流2

image659c17255647c185.png

TCP流3

image68afd74093fafb22.png

TCP流4

imagede37053196e95251.png

最后修改:2019 年 06 月 18 日
如果觉得我的文章对你有用,请随意赞赏