| GBN Go-Back-N | SR Selective Repeat | TCP 无 SACK | TCP + SACK Selective ACK | |
|---|---|---|---|---|
| 丢包场景 | 发送:12345 (2 丢失) | |||
| 接收端行为 | 收到 1 3,4,5 → 丢弃 1丢 3,4,5 | 收到 1 3,4,5 → 缓存 1345 | 收到 1 3,4,5 → 缓存 1345 | 收到 1 3,4,5 → 缓存 1345 |
| 回复 ACK | ACK=2(收到1) ACK=2(收到3,丢弃) ACK=2(收到4,丢弃) ACK=2(收到5,丢弃) 累计确认,重复 | ACK=2(确认1) ACK=3(确认3) ACK=4(确认4) ACK=5(确认5) 每包单独 ACK | ACK=2(确认1) ACK=2(收到3) ACK=2(收到4) ACK=2(收到5) 累计确认,重复 | ACK=2 ACK=2, SACK={3} ACK=2, SACK={3,4} ACK=2, SACK={3,4,5} 累计 + 选择确认 |
| 重传触发 | 超时计时器 | 每包独立计时器 | 3 重复 ACK 或超时 | 3 重复 ACK 或超时 |
| 重传内容 | 2345 全部重传 | 2 只重传丢失包 | 2 只重传 2缓存的 3-5 直接交付 | 2 精确只补 2发送方确知 3-5 已收 |
| 接收窗口 | = 1 | > 1 | > 1 | > 1 |
| ACK 类型 | 累计确认 | 逐包 ACK | 累计确认 | 累计 + SACK |
| 计时器 | 单一 RTO | 每包一个 | 单一 RTO | 单一 RTO |
| 效率 | 低 | 高 | 较高 | 最高 |
| TCP 与之的关系 | ACK 行为相同, 重传行为不同 | 重传策略相似, ACK 机制不同 | = GBN 的 ACK + SR 的重传 | 行为最接近 SR, 但仍用累计 ACK |