📜  TCP 3 次握手过程

📅  最后修改于: 2021-09-27 14:38:50             🧑  作者: Mango

这也可以看作是建立 TCP 连接的一种方式。在深入细节之前,让我们先了解一些基础知识。 TCP代表传输控制协议,它表示它以可靠的方式控制数据的传输。

设备之间通过 Internet 进行通信的过程根据当前的TCP/IP套件模型(OSI 参考模型的剥离版本)进行。应用层是 TCP/IP 模型堆栈的最顶层,客户端的网络引用应用程序(如 Web 浏览器)与服务器建立连接。从应用层,信息被传输到传输层,在那里我们的主题出现。该层的两个重要协议是 – TCP、 UDP(用户数据报协议) ,其中 TCP 流行(因为它为建立的连接提供可靠性)。但是,您可以在查询 DNS 服务器时找到 UDP 的应用,以获取用于网站的域名的二进制等效项。

TCP 通过称为带重传的肯定确认 (PAR) 的东西提供可靠的通信。传输层的协议数据单元(PDU)称为段。现在使用 PAR 的设备重新发送数据单元,直到它收到确认。如果接收端接收的数据单元损坏(它使用传输层的校验和功能检查数据,用于错误检测),则接收端丢弃该段。因此,发送方必须重新发送未收到肯定确认的数据单元。您可以通过上述机制实现在发送方(客户端)和接收方(服务器)之间交换三个段,以建立可靠的 TCP 连接。让我们深入研究这种机制是如何工作的:

  • Step 1 (SYN) :在第一步中,客户端想要与服务器建立连接,所以它发送一个带有 SYN(同步序列号)的段,它通知服务器客户端可能开始通信以及它以什么序列号开始段和
  • 第 2 步(SYN + ACK):服务器响应客户端请求并设置 SYN-ACK 信号位。 Acknowledgement(ACK) 表示它收到的段的响应,SYN 表示它可能以什么序列号开始段
  • 第 3 步(ACK):在最后一部分,客户端确认服务器的响应,并且它们都建立可靠的连接,通过该连接开始实际的数据传输

    步骤 1、2 为一个方向建立连接参数(序列号)并确认。步骤 2、3 为另一个方向建立连接参数(序列号)并得到确认。有了这些,就建立了全双工通信。

    注 –在客户端和服务器之间建立连接时随机选择初始序列号。

    参考-

    连接建立 – 维基百科
    TCP 三向握手
    TCP 3 次握手 – TCPIPguide