Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5760255
  • 博文数量: 675
  • 博客积分: 20301
  • 博客等级: 上将
  • 技术积分: 7671
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 16:15
文章分类

全部博文(675)

文章存档

2012年(1)

2011年(20)

2010年(14)

2009年(63)

2008年(118)

2007年(141)

2006年(318)

分类: 网络与安全

2009-11-13 15:59:23

说起TCP的三次握手大家都熟悉,经典教材中都有讲到。

三次握手:

由于每一端都要向对方发送初始序列号,并向对方发送确认,理论上讲像TCP的关闭,需要4次握手,但是接收端将SYN和ACK报文合二为一,就形成了3次握手。
    1) A --> B  SYN my sequence number is X
2) A <-- B ACK your sequence number is X
3) A <-- B SYN my sequence number is Y
4) A --> B ACK your sequence number is Y

四次握手:
尝试4次握手,B接收到SYN报文时,发送SYN报文,而不是SYN/ACK,看A是如何响应的?

结果稍稍有些令人吃惊,A端竟然响应了SYN/ACK:

1) A --> B SYN my sequence number is X
2) That's nice. I'm not going to bother to ack that, because...
3) A <-- B SYN my sequence number is Y.
4) A --> B ACK your sequence number is Y, and my sequence number is X.
5) A <-- B ACK your sequence number is X

感兴趣的同学可以下载捕获的报文进行分析:
文件:triumph_pcaps.tar.gz
大小:4KB
下载:下载

注意:这种另类的TCP四次握手在网络中传输可能会有问题,主要是一些状态防火墙会block这样的数据包。

参考:

http://www.breakingpointsystems.com/community/blog/tcp-portals-the-three-way-handshake-is-a-lie

阅读(3210) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~