多次RST以及不同场景下的RST报文的差异
作者:易隐者 发布于:2012-10-9 11:27 Tuesday 分类:网络分析
在某个TCP交互过程中,我们发现在交互的后期,客户端多次向服务器端发送RST报文,如下图所示:
我们首先来看客户端发出的第一个RST报文的解码:
RST与ACK标志位都置一了,并且具有ACK number,非常明显,这个报文在释放TCP连接的同时,完成了对前面已接收报文的确认。
我们再来看看客户端发出的后续RST报文的解码:
我们可以看到,这些后续的RST报文仅Reset位置一,ACK位未置一,在这种情况下,该报文的ACK确认号应该为0,但是我们留意到在这个报文中,其ACK确认号与序列号是一致的。
这是为什么呢?
因为ACK位未置一,ACK确认号也就失去了意义,因此,不论ACK确认号是什么值都不会对接收端产生影响,因此大部分的系统都会将ACK确认号设置为0,之所以在这个报文中出现ACK确认号非0而是与序列号一致的情况,个人认为应该是该主机端系统的处理机制与大部分系统不一样导致的。
另外,我们也看到了wireshark的专家系统在此处给出了提示,由此可见wireshark在传输层的专家系统的强大之处。
为什么前后RST报文会出现这种差异?
原因为第一个RST报文是异常释放TCP连接的,在端系统发送RST报文之前,这个TCP连接尚在端系统的连接表中,因此其ACK位置一并且具有ACK确认号。而客户端后续收到DATA报文,因其连接表中已经没有相关信息与之对应,此时客户端发送的RST报文ACK位无需置一。
也许有朋友会问:服务器端为什么在收到客户端的RST报文后,还继续给客户端发送报文呢?
原因只有一个,那就是TCP成块数据流。服务器端一次性向客户端发送数个数据块,在客户端发出第一个RST报文之后,后续的报文已经在网络中传输了,并陆续达到客户端。
其交互过程大致如下:
标签: TCP wireshark RST ACK 连接表 TCP成块数据流 端系统 ACK确认号 连接
端系统对RST报文的过滤
作者:易隐者 发布于:2012-10-8 17:00 Monday 分类:网络分析
前段时间在分析网上一个兄弟传给我的报文时,发现了几个有意思的现象,我觉得值得分析讨论,我们首先来看一个服务器与客户端交互的会话:
在这个交互的过程中,我们可以看到一个比较奇怪的现象,那就是客户端10.16.137.56在收到来自服务器的FIN报文之后,紧接着向服务器端发送RST报文,但是服务器给其回应了一个ICMP主机管理性禁止差错报文,并且不断尝试向服务器发送FIN报文。
我们来看一下服务器给客户端回应的ICMP主机管理性禁止差错报文的解码:
Type 3,Code 10——主机管理性禁止差错,其封装的原始报文报头信息显示,该ICMP差错报文正是由客户端发往服务器端的RST报文引起的。下图为客户端发往服务器端的RST报文解码:
另外,我们注意到,服务器发送给客户端的ICMP差错报文的TTL值为48,而服务器端发送给客户端的FIN报文报头中的TTL值也是48,如下图所示:
这从侧面说明这个ICMP差错报文的确是服务器端系统发送的,而不是中间设备发出的。
那么为什么服务器端系统会过滤掉客户端的RST报文呢?
想想TCP会话劫持和TCP RST攻击,大家就能够体会,服务器管理员为什么这么做了。
TCP会话劫持的实施者经常会扮演对端的身份分别向客户端或服务器端发送RST报文,以达到干扰客户端与服务器端正常交互的目的。有些服务器的管理员可能遇到过这种TCP会话劫持的攻击,因此在服务器端系统上利用相关工具设置了过滤RST报文的策略,当服务器收到RST报文时,直接忽略掉,因此服务器端系统的传输层并不会收到这个RST报文。
其交互过程大致如下图所示:
过滤RST报文可能带来的影响
服务器传输层无法收到客户端的RST 报文,只能在多次尝试重传FIN报文直至超时,然后主动向客户端发送RST报文。如此带来的影响就是执行过滤策略的端系统无法正常处理来自于TCP连接对端的异常释放行为(RST),这将导致端系统的TCP连接释放需要更长的时间,在有大量对端通过RST报文异常释放TCP连接的场景下,可能会对性能产生一定的影响。
日历
最新日志
链接
分类
最新碎语
- 如果一个人想要做一件真正忠于自己内心的事情,那么往往只能一个人独自去做"——理查德·耶茨
2019-06-25 21:34
- 日后我们知道,真正的人生道路是由内心决定的。不论我们的道路看上去如此曲折、如此荒谬地背离我们的愿望,它终归还是把我们引到我们看不见的目的地。(茨威格《昨日世界》)
2019-03-16 21:27
- 如果你渴望得到某样东西,你得让它自由,如果它回到你身边,它就是属于你的,如果它不会回来,你就从未拥有过它。——大仲马《基督山伯爵》
2018-10-09 22:07
- 人生有两大悲剧:一个是没有得到你心爱的东西;另一个是得到了你心爱的东西。人生有两大快乐:一个是没有得到你心爱的东西,于是可以寻求和创造;另一个是得到了你心爱的东西,于是可以去品味和体验。——弗洛伊德
2018-09-25 18:06
- 一个人越有思想,发现有个性的人就越多。普通人是看不出人与人之间的差别的——布莱兹·帕斯卡尔
2018-08-30 18:44
存档
- 2020年11月(2)
- 2018年1月(1)
- 2017年12月(1)
- 2017年11月(6)
- 2017年6月(1)
- 2017年5月(1)
- 2017年4月(1)
- 2017年3月(1)
- 2016年11月(1)
- 2016年4月(1)
- 2015年7月(2)
- 2015年6月(1)
- 2015年5月(5)
- 2014年12月(1)
- 2014年11月(1)
- 2014年10月(1)
- 2014年8月(1)
- 2014年7月(1)
- 2014年6月(1)
- 2014年5月(1)
- 2014年4月(3)
- 2014年2月(2)
- 2014年1月(2)
- 2013年12月(1)
- 2013年11月(1)
- 2013年10月(2)
- 2013年9月(1)
- 2013年8月(1)
- 2013年7月(3)
- 2013年6月(2)
- 2013年5月(1)
- 2013年4月(3)
- 2013年3月(1)
- 2013年2月(2)
- 2013年1月(2)
- 2012年12月(11)
- 2012年11月(12)
- 2012年10月(12)
- 2012年9月(26)
- 2012年8月(29)
- 2012年7月(18)
- 2012年6月(2)
- 2012年5月(25)
- 2012年4月(16)
- 2012年3月(13)
- 2012年2月(6)