TCP建立连接

时间:2014-01-03 14:45:21

标签: networking tcp

我想知道为什么我们要进行3次握手,为什么我们只是与双向握手联系。

2 个答案:

答案 0 :(得分:0)

来自Ans

  

ACK伴随着序列号。    RFC在握手时非常清楚:

     

1)A - > B SYN我的序列号是X

     

2)A< -B ACK你的序列号是X

     

3)A< -B SYN我的序列号是Y

     

4)A - > B确认你的序列号是Y

     

步骤2和3合并为一个数据包。

     

关于它的事情是步骤4也是用于移动TCP窗口的内容   通过包含该步骤,您将使用常规协议   初始化过程。它基本上只是将传输窗口归零。

     

您不会被阻止与第4步一起发送数据。

     

如果您愿意,您可以使用您的第一个ACK发送数据,基本上可以说   “我收到的数据包最多为Y,这里有一些数据”。

enter image description here

正如我们在上面的图像中看到的,客户端连接在客户端从服务器接收到ACK但服务器端连接仍然处于不完整状态时完成,直到服务器没有从客户端收到ACK。

作为@EJP,在上面的评论中说我们需要两个序列号,因为常见的序列号会导致许多不一致。

答案 1 :(得分:0)

“因为,如果服务器B永远不会从客户端A回来,那么服务器B如何知道客户端A可以”听到“它所说的内容?”

http://forums.anandtech.com/showthread.php?t=2000522