四次握手连接终止可以减少到三路甚至两路。是否有可能将三次握手连接建立扩展到四路?
SYN=>
<=ACK
<=SYN
ACK=>
答案 0 :(得分:4)
考虑到SYN和ACK的语义,应该可以在不同的数据包中发送SYN + ACK,并延迟握手。例如。客户端发送SYN,服务器回复ACK以确认客户端对新连接的愿望,但它尚未批准该愿望。稍后,服务器发送SYN并从客户端获取匹配的ACK,并建立连接。但我怀疑是否有人以这种方式进行连接建立,而且可能是某些操作系统会对其进行连接。
但是,还有另一种情况是四次握手,但是数据包的顺序不同。如果双方试图同时建立与另一方的连接,例如,可能会发生这种情况。两者都向对等体发送SYN,并返回ACK。它在RFC 793(TCP)第3.4节中描述。但我怀疑你会看到这样的握手,因为它不适合典型的客户端 - 服务器场景,其中一端正在等待连接而另一端正在进行连接。
编辑:您想象的握手存在,它被称为“分裂握手”。见http://hackmageddon.com/2011/04/17/tcp-split-handshake-attack-explained/。就像我预期的那样,它并没有得到普遍的支持。