文章目录
- 一、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 , 此时认为该确认号 报文丢失 , 重传该报文<> ; 如 本次的
号报文丢失 , 一直发 1 号确认信息 ;