案例背景
1、故障描述
- 某运营商Boss系统向服务器提交订单,每天会有600个左右不成功的订单,不成功的订单需手工录入,极大的影响工作效率;该情况已持续2-3个月;
- 持续ping服务器和boss,未出现任何的丢包现象;
- 应用部门和应用厂商检查应用程序和规则说一切正常;
- 网管人员检查网络设备的性能,设置(MTU、MSS等)一切正常;
- 管理人员在boss系统上抓取的同步数据包大于在PIX之前抓取的数据包,怀疑有丢包,但其它应用和ping都正常,网络丢包没有说服力。
2、网络拓扑
图 1 网络拓扑图
案例分析
订单提交不成功有两种情况,一是服务端未收到boss的请求,二是服务端收到请求后未响应,由于用户反映在boss和pix上抓包不一致,遂选择在boss和pix上进行抓包(将便携式和回溯系统的时间同步)。
分别提取回溯系统和便携式上的数据包,进行对比分析。
在6503上捕获到10.238.230.50和10.238.103.86的会话中,存在多个syn包无响应的会话,从而证实确实存在订单提成不成功的问题,而在PIX的入口并没有捕获到该会话,也就是说服务端并未收到boss的应用请求,所以该现像与服务器端无关。
如图2:
图 2 boss端TCP会话
再来看在PIX前抓取的数据:
服务端没有收到boss系统的请求包,是不是因为包被丢弃了?从拓扑上看,数据经过的都是路由、交换设备,该数据包并未到达防火墙,且该链路上的其它应用一切正常,网络丢包没有说服力。
进一步分析发现网络中存在大量的FIN数据包,4452个数据包就有2498个包带FIN标记。
过滤FIN数据包,发现绝大部份FIN数据包都是由boss服务器发出来的。
再定位到TCP会话,通过时序图查看会话中FIN包的情况,可以看到在一个会话中存在多个FIN位置1的数据包,而且没收到对端的确认,这表示该会话没有正常关闭。
网络中存在大量的在一个会话中发送大量FIN+ACK置1且window为0的数据包的情况(我们知道,在数据传输过程窗口为0表示不能接受任何数据,至于关闭连接的window为0是否表示不能接收任何数据包有待验证,但可以肯定是不正常的),且这些会话都与10.238.230.50有关,这就表示在10.238.230.50上有很多未关闭的TCP会话,这是不正常的,需要进一步分析原因。
简单的说,在通讯过程中,客户端和服务端的TCP状态迁移如下:
客户端TCP状态迁移:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
服务器TCP状态迁移:
CLOSED->LISTEN->SYN
收到->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED登录10.238.230.50后台,通过netstat查看主机的会话状态。
10.238.230.50上存在近5000个状态为colse_wait的连接,会话处于Colse_wait表示该连接还没有发FIN+ACK数据包。通常情况下,一个colse_wait会维持至少2个小时的时间,这样,随着时间的增加就会导致不能释放的会话越来越多,直到系统没有资源处理新的连接请求。
分析结论
10.238.230.50上存在大量未释放的TCP连接,TCP是有队列限制的,当队列已满时,TCP将不会处理传入的SYN,也不会发RST应答,因为队列已满是由应用程序和操作系统繁忙造成的(详见TCP/IP卷1第18章),这也能解释为什么服务端没有收到boss的SYN包了,实际上这些数据包是boss系统收到的营业厅的SYN包,但由于boss系统队列已满或繁忙,则对其不做处理。
10.238.230.50在与server关闭连接的过程中,window为0,可能是系统忙于处理colse_wait会话所致,从而导致boss与server的通讯异常。
订单提交不成功的原因是boss系统队列已满或繁忙,没有资源对连接请求进行处理,问题出在boss系统。
分析建议
检查10.238.230.50与10.254.126.227和10.238.159.90的应用通讯和应用程序(因为colse_wait的会话大部分与这两个IP有关,而10.238.230.50 与server的连接状态是正常的)。
修改tcp_keepalive_*的相关参数。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
科来:利用网络分析技术分析航空客服系统故障
某航空公司华南客服中心,客服人员用客服系统接电话时经常出现接听失败的现象,由于客服服务器位于北京数据中心,中间涉及的网络设备较多,一直未能定位到故障原因。
-
科来:基于网络分析技术的丢包分析案例
近日接到某公安机关信息中心电话,反应整个公安系统传输数据丢包。虽然个机房内网络通信正常,但是办公区域都访问服务器都会丢包。导致视频会议传输不正常,严重影响正常办公。
-
利用网络分析技术解决VPN异常中断故障
某保险公司北京总公司与各地分公司均通过双线与当地电信和联通两大互联网运营商相连,各地分公司通过IPsec VPN接入总公司内部网络。
-
基于网络分析技术的网银系统访问缓慢案例
某银行用户反映银行网银系统有时访问较慢,主要现象为打开登录界面需很长时间,银行客户希望能对网银系统做一个全面的分析,找出故障的原因。