一个同事在办公室用mac电脑碰到一种很奇怪的网络访问异常的情况。网络不可达并不意外,网络访问慢才能你如坐针尖。

当时的网络访问异常是这样的:

(1)mac电脑---通过wifi模式---接入到无线路由器(AP)---通过网线---接入到公司办公室内网网口----访问Internet。

现象:mac电脑从百度网盘下载或者是直接看高清电影网速均很快,但是唯独访问一个web邮箱网址很慢。

(2)mac电脑---通过网线---接入到公司办公室内网网口----访问Internet。

现象:所有网址都很快,包括之前访问慢的某邮箱网址。

一、初步定位

站在网络运维的角度,初步怀疑是网间丢包或者AP有异常。

针对这个访问慢的某邮箱网址,通过ping、tracert等方式进行进一步分析。重复多次发现,ping延时很少,tracert跳转也看不出异常,网间丢包的可能性被排除。

针对AP,排查配置准确性。AP通常有WAN和LAN两种配置模式。配置为WAN模式,WAN网口会构建出一个内部局域网。WAN网口会对应两个IP,其中一个是公司内网分配的IP地址(192.168.86.37),另外一个IP是内部局域网的网关(这个IP网段可以自己设置,我们设置为192.168.100.1)。此时mac电脑获取到的IP地址,是192.168.100.67,是AP分配的内部局域网地址。mac电脑访问外部,需要通过AP进行一次地址转换。配置为LAN模式,AP类似于一个有线转wifi的转换器。此时mac电脑获取到的IP地址,公司内网分配的IP地址。mac电脑访问外部,无需通过AP进行一次地址转换。通过变更AP的配置模式,发现MAC电脑获取到的IP地址与上述分析一致,两种模式下访问某邮箱网址仍然很慢。

目前AP配置并未异常,进一步分析AP性能是否符合预期。故进一步分析故障场景,发现AP和MAC电脑之间有线和无线时,访问现象有较大差别。这时候总结故障现象如下:

(1)mac电脑-------(wifi)---------AP(LAN/WAN模式)------网线--- 公司内网-----Internet:

现象:web方式访问某邮箱网址很慢,其余网址均很快

(2)mac电脑-------(网线)---------AP(LAN/WAN模式)-----网线-----公司内网----Internet:

现象:所有网址都很快,包括之前访问慢的某邮箱网址

这时候故障基本聚焦在AP在wifi环境下性能,以及为啥“单单访问某邮箱网址慢,其余网址很快”的这种现象。

二、抓包软件出手

在上述情况下,若要进一步分析出异常,只能从数据包层面入手了。可以用wireshock软件,也可以用其余商用抓包软件。我这边采用了科来网络分析系统9.1版本,安装在自己电脑上,可以针对电脑不同网卡抓包,还可以针对抓取到的数据包进行详细分析。需要注明的是,科来软件不支持mac电脑。针对这种情况有两种解决方案,一是在mac电脑上安装一个64位虚拟机,通过虚拟机安装科来并进行抓包分析;二是直接找个其他型号window电脑,省心省事。

1、抓包

打开科来软件,选择左上角的“实时分析”,然后再选取对应的网络接口,单击下方“开始”按钮就可以进行抓包。

wKiom1fgoozCWIyGAANYHocn9AI011.jpg-wh_50

抓包设置:为定位电脑通过有线/wifi两种方式接入AP的差异,我们分别针对电脑的有线接入/无线接入两种方式,分别进行抓包。

电脑设置:为区分“某访问慢的邮箱网址”和"其余网址都很快"的情况,每次抓包时,电脑都同时打开三个软件,并进行如下操作。

(1)视屏播放:打开优酷或者其它类似视屏网站,播放高清视屏,查看视屏是否卡顿。

(2)网盘文件下载:打开百度网盘或者其它类似网站,进行文件下载,并查看文件下载速度。

(3)访问慢的邮箱文件下载:打开访问慢的某邮箱网址,进行文件下载,并查看文件下载速度。

2、数据分析

(1)针对电脑通过有线方式接入AP:

通过电脑上的三个软件直接发现:

  • 视屏播放:视屏完全不存在卡顿。

  • 网盘文件下载:百度网盘文件下载速度达到5.8MB/秒

  • 慢的邮箱文件下载:打开访问慢的某邮箱网址,文件下载速度达到3.2MB/秒

通过抓包软件分析:

  • 视屏播放:无异常。

  • 网盘文件下载:无异常。

  • 慢的邮箱文件下载:无异常

(2)针对电脑通过有wifi方式接入AP:

通过电脑上的三个软件直接发现:

  • 视屏播放:视屏完全不存在卡顿。

  • 网盘文件下载:百度网盘文件下载速度达到588KB/秒

  • wKiom1fgp7rixCtXAAC2uJfZ1yM665.png-wh_50

  • 慢的邮箱文件下载:打开访问慢的某邮箱网址,文件下载速度达到23.9KB/秒

  • wKioL1fgp8ugQqavAACoGCc--A0000.jpg-wh_50



通过抓包软件分析:

因为都是通过http方式,因此在科来软件上我们来分析数据包的TCP会话情况(单击中间一列对话框的TCP会话选项)。可以从下面图片中看到,最上面的百度云的TCP会话连接,第二行是某访问慢的邮箱的TCP会话连接。

wKioL1fgqKnTvdLzAAHxSTyIoNI269.jpg-wh_50

同时,还可以进步一分析每个TCP会话的详细情况,单击对应的会话选项即可。

  • 网盘文件下载:

  • 此时整个网络质量都变差了,整个网络对话过程中,有1个重传包。在客户端(192.168.100.182,自己电脑)侧发出了较多的重复ACK请求。需要说明的是,客户端要连续发出3个同一个序列号的ack请求,服务端才会针对整个数据包进行一次重发。若是服务端连续收到3个ack请求并再次重发一次数据包,这时候可以定义为有一个重传包。

  • wKioL1fgqbXAXFhAAAO8aCGCom8115.jpg-wh_50

  • 慢的邮箱文件下载:

  • 此时整个网络质量都变差了,整个网络对话过程中,有554个重传包。在客户端(192.168.100.182,自己电脑)侧发出了较多的重复ACK请求(对应图片红色箭头)。同时,服务端也重复发了554个数据包(对应图片右端红色长方形)。同时,还有一个显著特征,这个TCP会话中数据包间的等待延时普遍较长,进行有170ms或者300ms这种较长等待时间(对应图片箭头间较大间隔块)。

wKiom1fgqgzTweydAAQlQqCixoo806.jpg-wh_50

三、结果分析

通过上面数据分析可以发现,AP在wif模式下网络质量显著变差,存在较多数据丢包情况,因此无论是访问百度网盘还是某特别慢的邮箱,其下载速度均明显减低。为啥访问某邮箱特别慢呢,首先是电脑到至邮箱网址的网间质量相对较差,如会话间延时相对较长,经过AP无线模式将此问题再次放大,显著超出了影响访问感知的临界状态,即经常有连续3次以上的重复ack请求导致大量数据重传,影响数据包下载速度。

网络可达但是慢这种情况,算是网络维护相对挑战的事情之一啦,也是很多网络运维工程师比较头疼的一个问题。通过抓包和分析软件,对定位和分析故障还是有较大帮助的。

很有意思的一次故障排查,生活中处处充满意外和惊喜。