Skip to content

TCP协议

772字约3分钟

2022-04-18

提问

  1. TCP协议
  2. 三次握手

TCP协议

TCP协议是面向链接的,提供可靠数据传输服务的传输层协议

特性

  • 在通信前,通信双方需要通过三次握手建立链接,并在端系统中维护双方链接的状态信息
  • 通过序号、确认好、定时重传、检验和等机制,提供可靠的数据传输服务
  • 点对点服务。提供的是 单个发送方和单个接收方之间的连接
  • 全双工服务。连接成功的双方都能够向对方发送和接收数据
  • 拥塞控制机制。在网络用色是会控制发送数据的速率,减少数据包丢失概率和减轻网络拥塞程度
  • 流量控制机制。保证通信双方的发送和接收速率相同。

三次握手过程

  1. 第一次握手,客户端向服务端发送一个SYN链接请求报文段。
  2. 第二次握手,服务端接收到客户端发送的SYN链接请求报文段后,会为该连接分配缓存和变量, 然后向客户端发送 SYN ACK 报文段。
  3. 第三次握手,客户端接收到服务端的肯定应答后,会为这次TCP连接分配缓存和变量, 同时向服务器发送一个对服务端的报文段的确认。

说明

简单来说,

  • 第一次握手就是 客户端对服务端说:你好,我是 A。
  • 第二次握手就是 服务端对客户端说:你好,我是 B。
  • 第三次握手就是 客户端对服务端说:那现在我们认识了。

四次挥手过程

  1. 第一次挥手,客户端认为没有数据要再发送给服务端,向服务端发送一个 FIN 报文段,申请断开客户端到服务端的连接状态。
  2. 第二次挥手,服务端收到客户端断开连接的请求后,向客户端发送一个确认报文段, 表示已经接收到了客户端释放连接的请求,以后不再接收来自客户端的数据。
  3. 第三次挥手,服务器发送完所有数据后,向客户端发送 FIN 报文段,申请断开服务器到客户端的连接状态。
  4. 第四次挥手,客户端收到服务器的 FIN 后,像服务器发送一个确认应答,等待一段时间后,确认服务器没有重发请求。 服务器收到客户端的确认应答。 双方没有重发请求,那么TCP连接就完成了释放。

说明

简单来说,

  • 第一次挥手: 客户端对服务端说:没啥事,我准备撤了
  • 第二次挥手: 服务端对客户端说:好的,知道了
  • 第三次挥手: 服务端对客户端说:那我也准备撤了
  • 第四次挥手: 客户端对服务端说:那一起撤吧