第一步:客户端发送 SYN 请求
-
客户端发送 SYN(同步)报文: 客户端向服务器发送一个带有 SYN 标志的数据包,表示请求建立连接。
-
客户端选择初始序列号(ISN): 客户端随机选择一个初始序列号(ISN),用于后续数据的顺序和确认。
第二步:服务器回应 SYN+ACK
-
服务器收到 SYN 报文: 服务器接收到客户端的 SYN 请求报文。
-
服务器发送 SYN+ACK 报文: 服务器向客户端发送 SYN+ACK(同步和确认)报文,表示确认收到客户端的请求,并同意建立连接。同时,服务器也选择一个自己的初始序列号(ISN)。
第三步:客户端回应 ACK
-
客户端收到 SYN+ACK 报文: 客户端接收到服务器的 SYN+ACK 报文。
-
客户端发送 ACK 报文: 客户端向服务器发送 ACK(确认)报文,确认收到服务器的确认。至此,客户端和服务器成功建立了连接。
三次握手的目的:
-
确认双方的发送和接收能力正常。 第一次握手是为了让服务器知道客户端发送能力正常,第二次握手是为了让客户端知道服务器接收能力正常,第三次握手是为了让服务器知道客户端接收能力正常。
-
同步双方的初始序列号(ISN)。 初始序列号用于后续数据包的顺序和确认。
通过三次握手,客户端和服务器建立了可靠的双向通信,可以开始进行数据传输。
TCP 的三次握手是建立可靠连接的过程。客户端首先向服务器发送带有 同步序列编号(SYN) 标志的数据包,随机选择初始序列号(ISN)。服务器收到请求后,回复一个 SYN+ACK 报文表示接收并同意建立连接,并选择自己的 初始序列号(ISN)。最后,客户端发送确认 ACK 报文,确认服务器的响应,完成连接建立。这个过程确保双方的发送和接收能力正常,并同步初始序列号,使得后续数据传输可靠进行。
Tcp四次挥手
TCP 的四次挥手是用于终止 TCP 连接的过程,与建立连接的三次握手相比,它包含更多步骤,用于安全地关闭连接。
第一步:客户端发送 FIN 报文
-
客户端发送 FIN 报文: 客户端不再需要向服务器发送数据,它发送一个带有 FIN(终止)标志的数据包,表示客户端的数据发送完毕,但仍然可以接收数据。
第二步:服务器回应 ACK
-
服务器收到 FIN 报文: 服务器接收到客户端的 FIN 报文。
-
服务器发送 ACK 报文: 服务器向客户端发送 ACK(确认)报文,表示确认收到客户端的 FIN 报文,但服务器仍可向客户端发送数据。
第三步:服务器发送 FIN 报文
-
服务器发送 FIN 报文: 当服务器不再需要向客户端发送数据时,它也会发送一个带有 FIN 标志的数据包,表示服务器的数据发送完毕,但仍然可以接收数据。
第四步:客户端回应 ACK
-
客户端收到服务器的 FIN 报文: 客户端接收到服务器的 FIN 报文。
-
客户端发送 ACK 报文: 客户端向服务器发送 ACK(确认)报文,表示确认收到服务器的 FIN 报文。此时,TCP 连接彻底关闭。
四次挥手的目的:
-
第一次挥手是为了告知服务器,客户端不再发送数据。
-
第二次挥手是服务器确认收到客户端的关闭请求,并告知客户端,但仍可以发送数据。
-
第三次挥手是服务器不再发送数据,并请求关闭连接。
-
第四次挥手是客户端确认收到服务器的关闭请求,最终完成连接的关闭。
这个过程保证了双方的数据传输完毕并安全地关闭连接,避免数据丢失和连接资源的浪费。
请登录后查看回复内容