目录

一、什么是 TCP 三次握手?
TCP(Transmission Control Protocol,传输控制协议)的 三次握手(Three-Way Handshake)是 TCP 连接建立的过程。在 TCP 中,连接的建立和关闭都是通过客户端和服务器之间的一系列握手完成的。三次握手用于确保客户端和服务器之间的连接是双向的,并且双方都能发送和接受数据。
三次握手的过程如下:

注意:图中,
seq表示序列号;seq=x中x表示在客户端序列号已经迭代到x了,如果是第一次请求,x就是0;seq=y中y表示在服务端序列号已经迭代到y了,如果是第一次响应,y就是0。
- 第一次握手(同步请求):
- 客户端发送一个带有
SYN(同步序列编号)标志的 TCP报文段给服务器,请求建立连接。这个报文段还包含一个初始序列号,用于后续的数据传输。 - 客户端进入
SYN_SENT状态,等待服务器确认。
- 客户端发送一个带有
- 第二次握手(同步确认):
- 服务器收到客户端的
SYN报文段后,如果同意建立连接,会回复一个SYN+ACK(同步确认)报文段。这个报文段同样包含一个确认序列号,确认客户端的序列号,并提供自己的初始序列号。 - 服务器进入
SYN_RECEIVED状态。
- 服务器收到客户端的
- 第三次握手(确认):
- 客户端收到服务器的
SYN+ACK报文段后,会发送一个带有ACK(确认)表示的报文段给服务器,确认服务器的序列号。 - 客户端和服务器都进入
ESTABLISHED状态,此时连接完全建立,双方可以开始数据传输。
- 客户端收到服务器的
三次握手是 TCP 连接建立的必要步骤,它保证了在不可靠的网络环境中,TCP 能提供可靠的数据传输服务。
三次握手确保了以下几点:
- 客户端和服务器都能发送和接收数据。
- 双方都确认了对方的序列号,用于数据包的顺序恢复和重复检测。
- 连接是双向的,确保了数据的可靠传输。
二、什么是 TCP 四次挥手?
TCP 四次挥手(Four-Way Wave)是TCP协议中终止一个已建立连接的过程。与三次握手用于建立连接类似,四次挥手用于在双方完成数据交换后,安全地关闭连接。四次挥手的过程 确保了所有数据都被正确传输,并且双方都同意关闭连接。
TCP四次挥手的过程如下:

- 第一次挥手(终止请求):
- 任意一方(通常是客户端)发送一个带有
FIN(Finish)标识的 TCP 报文段,表示数据传输完毕,希望关闭连接。这个报文段也包含一个序列号。 - 发送
FIN的一方进入FIN_WAIT_1状态。
- 任意一方(通常是客户端)发送一个带有
- 第二次挥手(终止确认):
- 接受
FIN的一方(通常是服务器)会发送一个带有ACK(Acknowledgement)表示的报文段,确认接收到FIN。这个ACK报文段确认的是FIN报文段的序列号。 - 发送
ACK的一方进入CLOSE_WAIT状态,而发送FIN的一方收到ACK后进入FIN_WAIT_2
- 接受

最低0.47元/天 解锁文章
2344

被折叠的 条评论
为什么被折叠?



