下午客户打电话过来说QQ总是掉线,怀疑(一口咬定)是我们设备(我们的是路由设备,放在出口)故障导致的,态度十分强硬。从客户提出问题的第一秒起就已经可以断定是运营商网络问题了,为什么呢:
- 对路由器来说,路由逻辑都是在系统内核实现的,linux系统跑了这么多年,不可能还出现这种问题。
- 客户那里断网不是每次都是所有PC集体断,只有少部分PC时断时续,不稳定。如果路由器有问题肯定是集体短线,而运营商有问题就不一定了,不是所有的QQ都在同一个服务器上,线路不同,网络状态也不同。
但是没有真凭实据可以来证明这一点,并且现象不是一直存在的,所以最后只能用挫招了:在设备的lan和wan口抓包,每十分钟重抓一次,直到客户网络出现问题。
最后抓了一个小时,终于抓到了数据包,那么如何判断是路由器的问题还是运营商网络的问题呢:
- 对比LAN和WAN的数据包,如果LAN的数据没有经过WAN发出去,或者从LAN收到数据包到WAN发出数据包的时间太长,那说明路由设备有问题。
- 如果来自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
此处评论已关闭