TCP三次握手和四次挥手-前端文章论坛-前端交流-技术鸭(jishuya.cn)

TCP三次握手和四次挥手

tcp三次握手

第一步:客户端发送 SYN 请求

  1. 客户端发送 SYN(同步)报文: 客户端向服务器发送一个带有 SYN 标志的数据包,表示请求建立连接。

  2. 客户端选择初始序列号(ISN): 客户端随机选择一个初始序列号(ISN),用于后续数据的顺序和确认。

第二步:服务器回应 SYN+ACK

  1. 服务器收到 SYN 报文: 服务器接收到客户端的 SYN 请求报文。

  2. 服务器发送 SYN+ACK 报文: 服务器向客户端发送 SYN+ACK(同步和确认)报文,表示确认收到客户端的请求,并同意建立连接。同时,服务器也选择一个自己的初始序列号(ISN)。

第三步:客户端回应 ACK

  1. 客户端收到 SYN+ACK 报文: 客户端接收到服务器的 SYN+ACK 报文。

  2. 客户端发送 ACK 报文: 客户端向服务器发送 ACK(确认)报文,确认收到服务器的确认。至此,客户端和服务器成功建立了连接。

三次握手的目的:

  • 确认双方的发送和接收能力正常。 第一次握手是为了让服务器知道客户端发送能力正常,第二次握手是为了让客户端知道服务器接收能力正常,第三次握手是为了让服务器知道客户端接收能力正常。

  • 同步双方的初始序列号(ISN)。 初始序列号用于后续数据包的顺序和确认。

通过三次握手,客户端和服务器建立了可靠的双向通信,可以开始进行数据传输。

TCP 的三次握手是建立可靠连接的过程。客户端首先向服务器发送带有 同步序列编号(SYN) 标志的数据包,随机选择初始序列号(ISN)。服务器收到请求后,回复一个 SYN+ACK 报文表示接收并同意建立连接,并选择自己的 初始序列号(ISN)。最后,客户端发送确认 ACK 报文,确认服务器的响应,完成连接建立。这个过程确保双方的发送和接收能力正常,并同步初始序列号,使得后续数据传输可靠进行。

 

Tcp四次挥手

TCP 的四次挥手是用于终止 TCP 连接的过程,与建立连接的三次握手相比,它包含更多步骤,用于安全地关闭连接。

第一步:客户端发送 FIN 报文

  1. 客户端发送 FIN 报文: 客户端不再需要向服务器发送数据,它发送一个带有 FIN(终止)标志的数据包,表示客户端的数据发送完毕,但仍然可以接收数据。

第二步:服务器回应 ACK

  1. 服务器收到 FIN 报文: 服务器接收到客户端的 FIN 报文。

  2. 服务器发送 ACK 报文: 服务器向客户端发送 ACK(确认)报文,表示确认收到客户端的 FIN 报文,但服务器仍可向客户端发送数据。

第三步:服务器发送 FIN 报文

  1. 服务器发送 FIN 报文: 当服务器不再需要向客户端发送数据时,它也会发送一个带有 FIN 标志的数据包,表示服务器的数据发送完毕,但仍然可以接收数据。

第四步:客户端回应 ACK

  1. 客户端收到服务器的 FIN 报文: 客户端接收到服务器的 FIN 报文。

  2. 客户端发送 ACK 报文: 客户端向服务器发送 ACK(确认)报文,表示确认收到服务器的 FIN 报文。此时,TCP 连接彻底关闭。

四次挥手的目的:

  • 第一次挥手是为了告知服务器,客户端不再发送数据。

  • 第二次挥手是服务器确认收到客户端的关闭请求,并告知客户端,但仍可以发送数据。

  • 第三次挥手是服务器不再发送数据,并请求关闭连接。

  • 第四次挥手是客户端确认收到服务器的关闭请求,最终完成连接的关闭。

这个过程保证了双方的数据传输完毕并安全地关闭连接,避免数据丢失和连接资源的浪费。

TCP 的四次挥手是用于终止连接的过程:客户端发送 FIN 报文表示不再发送数据,服务器收到后发送 ACK 表示知晓请求,但仍可发送数据;服务器发送自己的 FIN 报文表示数据发送完毕,客户端收到后发送 ACK 表示知晓并完成连接关闭。这个过程确保双方安全终止连接,避免数据丢失和资源浪费。

请登录后发表评论

    请登录后查看回复内容