【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

文章目录

  • 一、TCP 可靠传输
  • 二、TCP 可靠传输机制
  • 三、TCP 快速重传 机制

一、TCP 可靠传输


可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 完全一致 ;

① 网络层 可靠性 : 只 负责 提供 最大努力交付 , 是 不可靠传输 ;

② 传输层 可靠性 : 传输层 使用 TCP 协议 实现 可靠传输 ;

二、TCP 可靠传输机制


TCP 实现可靠传输机制 :

① 校验 : 使用 伪首部 进行校验 ;

② 序号 : 每个字节编一个序号 ; 序号 字段 的值是 报文段 第一个字节的序号 ;

③ 确认 : 累计确认 ;

④ 重传 : 重传 与 确认机制 结合使用 , 发送方 如果 在 规定时间内 , 没有收到 接收端的确认 , 就要重发报文段 ;

  • 重传时间 : TCP 使用 自适应 算法 , 动态改变重传时间 RTTs , 该时间成为 加权平均往返时间 ;

三、TCP 快速重传 机制


TCP 快速重传 机制 : 使用 冗余确认 机制 , 实现快速重传 ;

① 冗余 ACK 确认信息 : 接收方 接收到 接收到 比 期望序号大的 失序报文段 , 就向 发送方 发送 冗余 ACK , 表明下一个期待的序号 ;

② 快速重传示例 :

  • 发送方 发送 1 , 2 , 3 , 4 , 5 报文段 ;
  • 接收方 收到 1 号报文 , 向 发送方 返回 1 号 确认 ACK ;
  • 2 号报文 丢失 ;
  • 接收方 收到 3 号报文 , 向 发送方 返回 1 号 确认 ACK ;
  • 接收方 收到 4 号报文 , 向 发送方 返回 1 号 确认 ACK ;
  • 接收方 收到 5 号报文 , 向 发送方 返回 1 号 确认 ACK ;
  • 如果 发送方 连续收到 3 个相同 确认号 的 冗余 ACK , 此时认为该确认号 报文丢失 , 重传该报文<> ; 如 本次的
2

号报文丢失 , 一直发 1 号确认信息 ;