TCP报文段结构

image.pngURG: 紧急指针数据有效
ACK:确认号有效
PSH:数据可推送提交
RST:复位
SYN:同步请求
FIN:拆除连接

TCP连接管理

三次握手

连接建立——三次握手:

  1. SYN连接请求: 客户端发给服务端
  2. SYN ACK确认: 服务端发给客户端
  3. ACK确认:客户端发给服务端

image.png
seq代表序号

四次挥手

TCP断开连接的过程-四次挥手
image.png

TCP可靠数据传输

  1. TCP的可靠数据传输实现机制包括差错编码、确认、序号、重传、计时器等
  2. TCP的可靠数据传输是基于滑动窗口协议,但是发送窗口大小动态变化
  • 封装TCP报文段
  • 发出一个报文段后启动一个计时器
  • 通过检验和发现数据差错
  • 通过序号重新排序,丢弃重复的报文段
  • 流量控制

    TCP流量控制

  1. TCP协议利用窗口机制实现流量控制,但不是简单的滑动窗口协议。
  2. TCP连接建立时,双方都为之分配了固定大小的缓冲空间;TCP的接收端只允许另一端发送其缓冲区所能接纳的数据。
  • 接收端在给发送端发送确认段时,通告接收窗口大小;
  • 发送端在接下来发送数据段时,确保未确认段的应用层数据总量不超过接收端通过的接收窗口大小,从而确保接收端不会发生缓存溢出。

    TCP拥塞控制

  1. 窗口机制

通过调节窗口的大小实现对发送数据速率的调整

  1. 窗口调整的基本策略

AIMD(Additive Increase, Multiplicative Decrease)加性增加,乘性减小
网络未发生拥塞时,逐渐“加性”增大窗口大小,当网络拥塞时“乘性”快速减少窗口大小

  1. TCP的拥塞控制算法

包括了慢启动、拥塞避免、快速重传和快速恢复4部分