四路握手连接终止可以简化为三路甚至双向。三方握手连接的建立是否可能扩展到四方?
SYN=>
<=ACK
<=SYN
ACK=>
考虑到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/。正如我所料,它并没有得到普遍支持。