TCP三路握手 - 捎带ACK

时间:2015-06-05 06:47:49

标签: networking tcp protocols handshake

据我所知,在三次握手中,有时接收端会在建立连接时发送一个SYNACK数据包(捎带),但什么时候会发送一个SYN然后发送一个ACK数据包?

例如:

  

- > SYN

     

< -SYN_ACK

     

- > ACK

  

- > SYN

     

< -SYN

     

- > SYN_ACK

谢谢!

1 个答案:

答案 0 :(得分:4)

不,它不会 - 这就是

的原因

SYN通常由'客户端发送。 (例如,您的浏览器)当它想要打开到服务器(例如您的Web服务器)的TCP连接时。服务器无法知道'事先哪个客户端想要打开一个连接(并因此发送一个SYN)。所以它不能发送未经请求的SYN。

SYN和ACK是标志,因此来自服务器的SYN-ACK是对客户端SYN(以及它自己的SYN)的ACK。从技术上讲,它可以单独发送它们,但是,单独发送SYN和ACK将涉及额外的半往返。 ' cos那么它将是一个四向握手((c)SYN - >,< - SYN(s),< -ACK(s),(c)ACK - >),它们不是' ; t实现比三次握手提供更多的可靠性。因此,这样做是没有意义的。

话虽如此,理论上你可以设计一个4路握手的协议,但TCP并没有这样设计。

希望有所帮助。