计算机网络原理(11)——滑动窗口协议
流水线机制与滑动窗口协议
1、流水线协议
- 允许发送方在收到ACK之前连续发送多个分组
- 更大的序列号范围
- 发送方和/或接收方需要更大的存储空间以缓存分组
2、滑动窗口协议
- Sliding-window Protocol
- 窗口
- 允许使用的序列号范围
- 窗口尺寸为N:最多有N个等待确认的消息
- 滑动窗口
- 随着协议的运行,窗口在序列号空间内向前滑动
- 两种协议:GBN,SR
Go-Back-N(GBN)协议
1、发送方
- 分组头部包含k-bit序列号
- 窗口尺寸为N,最多允许N个分组未确认
- ACK(n):确认到序列号n(包含n)的分组均已被正确接收
- 可能收到重复ACK
- 为空中的分组设置计时器(timer)
- 超时Timeout(n)事件:重传序列号大于等于n,还未收到ACK的所有分组
2、接收方扩展FSM
- ACK机制:发送拥有最高序列号的,已被正确接收的分组的ACK
- 只能产生重复ACK
- 只需要记住唯一的expectedseqnum
- 乱序到达的分组
- 直接丢弃→接收方没有缓存
- 重新确认序列号最大的、按序到达的分组
Selective Repeat协议
- 接收方对每个分组单独进行确认
- 设置缓存机制,缓存乱序到达的分组
- 发送方只重传那些没收到ACK的分组
- 为每个分组设置定时器
- 发送方窗口
- N个连续的序列号
- 限制已发送且为确认的分组
- 问题:序列号空间大小与窗口尺寸需满足什么关系?
- Ns+NR≤2k