TCP 握手

TCP(传输控制协议)使用**三次握手**(也称为TCP握手、三报文握手或SYN-SYN-ACK)在基于IP的网络上建立TCP/IP连接。类似地,**四次握手**用于终止连接。

TCP传输的三个报文用于协商和启动TCP会话,分别被称为SYN、SYN-ACK和ACK,分别代表**SYN**chronize(同步)、**SYN**chronize-**ACK**nowledgement(同步确认)和**ACK**nowledge(确认)。这三个报文机制的设计是为了让两台想要相互传递信息的计算机,在传输诸如HTTP浏览器请求等数据之前,能够协商连接参数。

  1. 发起方,通常是浏览器,向另一台主机(通常是服务器)发送TCP SYNchronize数据包。
  2. 服务器接收SYN并发送SYNchronize-ACKnowledgement。
  3. 发起方接收服务器的SYN-ACK并发送ACKnowledge。服务器接收ACK,TCP套接字连接建立。

此握手步骤发生在DNS查找之后,在创建安全连接时,TLS握手之前。连接可以通过每一方独立地通过四次握手终止,其中一对FIN(结束)和ACK报文由每一方独立发送和接收。

  1. 发起方向另一台主机发送FIN数据包。
  2. 另一台主机向发起方发送ACK数据包。
  3. 现在,连接处于半关闭状态,另一台主机仍然可以发送数据。(例如,当客户端关闭到服务器的连接时,服务器可以完成向客户端发送数据。)
  4. 另一台主机向发起方发送FIN数据包。
  5. 发起方向另一台主机发送ACK数据包。

另请参阅