欢迎关注:1,欢迎关注本博客,你可点击右手边的【QQ邮件订阅】订阅本博客!2,本博客推出江湖救急计划,主要为工作中遇到疑难杂症的兄弟提供远程技术支持和分析,如有需要,请在江湖救急计划页面给我留言!

某单位经过CA认证的业务应用访问缓慢故障分析案例

作者:易隐者 发布于:2012-9-3 9:47 Monday 分类:网络分析

【写在之前】:

1,此案例为业务应用系统客户端程序BUG问题导致的故障;

2,此案例可作为业务系统分析评估的应用场景,为业务系统正式上线前测试阶段通过网络分析技术手段发现业务系统稳定性问题的案例;

3,此案例中涉及到的知识点,请大家参考本博的《TCP重传》一文;

【我的案例】:

故障环境
      故障网络结构如下图所示: 

点击查看原图


       该单位的网络划分有办公区域和服务器区域,办公区域的机器经过防火墙的地址转换,访问服务器区域的相关服务器。

业务应用访问的流程

       业务应用是基于B/S架构的,客户端通过IE浏览器对服务器进行访问;进行访问时,在IE浏览器中输入认证服务器的地址,经过CA认证服务器认证成功后,在通过CA认证服务器的代理,访问业务应用服务器。

故障现象

1,客户端在访问应用服务器时,有时页面打开的速度非常的慢,要等好几分钟才能完全打开页面,打开页面后进行站内访问时,速度也很慢;
2,直接将客户端接在服务器区,访问正常;
3,其他的业务应用全部正常;
4,业务系统开发商与网络集成商均否认是自己维护的系统导致故障了出现。

故障分析

1 分析思路

       通过故障现象,我们可以明确这是单一的业务应用故障,问题应该跟该业务的数据交互有关,因此,我们应该将分析的重点放在该业务交互的详细过程。
       另外,由于这个故障并不是一直出现,因此,我们需要在故障出现时,捕获其数据报文的详细交互过程,从而发现故障原因所在。

2 分析过程

1, 在测试主机上开启网络分析工具,并在故障现象出现时,捕获其交互的数据报文。
2,分析故障时数据报文详细的交互过程,如下图所示: 

点击查看原图

        通过上图交互过程的分析,我们发现,第一个数据报文是客户端向服务器发送的SYN请求报文,第二个报文是服务器对客户端SYN报文的响应,其SYN标志和ACK标志位都置1了,下面5个报文都是第二个报文的重传。在这里我们没有看到正常的TCP三次握手建立连接的过程,客户端并没有响应来自服务器的SYN报文,服务器因此不断地重传SYN报文,正是这个原因导致了客户端与服务器业务交互异常缓慢。
3,由于该报文是在客户端直接捕获的,因此我们可以确定是客户端未响应服务器的SYN报文,而不是中间设备丢弃了客户端对服务器SYN报文的响应报文。那么为什么客户端不响应服务器的SYN报文呢?
4,将上述分析情况与业务系统开发商沟通之后,开发商才确认是自己的业务客户端出现了问题。 

3 分析结论

       通过上面的分析,可以得出该故障是由客户端本身不响应服务器的SYN报文导致的。

故障解决

       通过我们的分析定位,找到故障的源头是客户端,通过与CA认证程序提供厂商沟通后,发现程序中有一段代码编写存在一些问题,当客户端与服务端的IP地址不在同一网段时,有时会出现客户端不响应服务器SYN报文的情况,在业务开发商优化客户端的程序代码后,该故障得到解决。

阅读全文>>

标签: 疑难故障 TCP TCP重传 SYN 重传 SYN重传 CA BUG

评论(5) 引用(0) 浏览(11423)

TCP SACK选项

作者:易隐者 发布于:2012-8-1 22:37 Wednesday 分类:网络分析

一般TCP的ACK过程

       在TCP的交互过程中,除了第一个SYN请求报文的ACK标志未置1外,其他的报文的ACK标志都是置1的。当客户端与服务器在交互的过程中,某些数据报被丢弃时,其ACK确认和后续数据交互的过程如下图所示:

点击查看原图 
图 1  一般丢包情况下的ACK确认和后续数据交互的过程示意图

       在上图所示的交互过程中,我们可以清楚的发现,在交互中由于某些未知的不可控的原因导致包含data-2的数据报文丢失。虽然仅有包含data-2的报文丢失,客户端已经收到其他的data,但是,服务器却要将data-2以及data-2之后的其他Data重传一次,这就造成了交互效率的低下。正是为了解决这个问题,诞生了SACK。

SACK介绍

       SACK(Selective Acknowledgment,选择性确认)技术,使TCP只重新发送交互过程中丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到了。如此大大提高了客户端与服务器端数据交互的效率,其确认和数据交互的过程如下图所示:

点击查看原图
图 2  SACK确认和丢包后续数据交互示意图

阅读全文>>

标签: TCP重传 sack TCP丢包 TCP选项

评论(2) 引用(0) 浏览(22820)

TCP重传

作者:易隐者 发布于:2012-4-28 23:53 Saturday 分类:网络分析

Ø  为什么TCP存在重传

TCP是一种可靠的协议,在网络交互的过程中,由于TCP报文是封装在IP协议中的,IP协议的无连接特性导致其可能在交互的过程中丢失,在这种情况下,TCP协议如何保障其传输的可靠性呢?

T C P通过在发送数据报文时设置一个超时定时器来解决这种问题,如果在定时器溢出时还没有收到来自对端对发送报文的确认,它就重传该数据报文。

Ø  导致重传的常见状况

阅读全文>>

标签: TCP TCP重传 重传机制 序列号 SYN ACK确认

评论(1) 引用(0) 浏览(32330)

Powered by 易隐者 基于emlog 皖ICP备12002343号-1