TCP协议
提问
- TCP协议
- 三次握手
TCP协议
TCP协议是面向链接的,提供可靠数据传输服务的传输层协议
特性
- 在通信前,通信双方需要通过三次握手建立链接,并在端系统中维护双方链接的状态信息
- 通过序号、确认好、定时重传、检验和等机制,提供可靠的数据传输服务
- 点对点服务。提供的是 单个发送方和单个接收方之间的连接
- 全双工服务。连接成功的双方都能够向对方发送和接收数据
- 拥塞控制机制。在网络用色是会控制发送数据的速率,减少数据包丢失概率和减轻网络拥塞程度
- 流量控制机制。保证通信双方的发送和接收速率相同。
三次握手过程
- 第一次握手,客户端向服务端发送一个
SYN
链接请求报文段。 - 第二次握手,服务端接收到客户端发送的
SYN
链接请求报文段后,会为该连接分配缓存和变量, 然后向客户端发送SYN ACK
报文段。 - 第三次握手,客户端接收到服务端的肯定应答后,会为这次TCP连接分配缓存和变量, 同时向服务器发送一个对服务端的报文段的确认。
说明
简单来说,
- 第一次握手就是 客户端对服务端说:你好,我是 A。
- 第二次握手就是 服务端对客户端说:你好,我是 B。
- 第三次握手就是 客户端对服务端说:那现在我们认识了。
四次挥手过程
- 第一次挥手,客户端认为没有数据要再发送给服务端,向服务端发送一个
FIN
报文段,申请断开客户端到服务端的连接状态。 - 第二次挥手,服务端收到客户端断开连接的请求后,向客户端发送一个确认报文段, 表示已经接收到了客户端释放连接的请求,以后不再接收来自客户端的数据。
- 第三次挥手,服务器发送完所有数据后,向客户端发送
FIN
报文段,申请断开服务器到客户端的连接状态。 - 第四次挥手,客户端收到服务器的
FIN
后,像服务器发送一个确认应答,等待一段时间后,确认服务器没有重发请求。 服务器收到客户端的确认应答。 双方没有重发请求,那么TCP连接就完成了释放。
说明
简单来说,
- 第一次挥手: 客户端对服务端说:没啥事,我准备撤了
- 第二次挥手: 服务端对客户端说:好的,知道了
- 第三次挥手: 服务端对客户端说:那我也准备撤了
- 第四次挥手: 客户端对服务端说:那一起撤吧