滑动窗口协议
核心思想:
- 发送方在没有收到对方的ACK的时候可以发送多个数据包
特性
- 发送方使用
发送窗口
限制没收到确认时允许发送的数据量 - 必须
增加序号的个数
,发送方和接收方需要增加缓存 - 常见的两种滑动窗口协议:
GBN(回退N步)和SR(选择性重传)
GBN的工作方式
- 发送方:窗口不满则发送至窗口满,窗口满则等待,收到确认窗口向后移动,
某个分组出错或丢失则重传该分组及其后面所有已发送但未被确认的分组
- 接收方:
对按序正确到达的分组确认,乱序或错误的分组丢弃且发送最后一次正确收到的分组的确认
累计确认机制
- 发送方收到某个分组的确认意味着该分组及之前所有分组接收方都正确收到
GBN协议演示
SR的工作方式
SR(selective repeat)选择性重传
- 发送方
某个分组出错或丢失只重传该分组
- 接收方
增加接收窗口(接收缓存)
,若收到的分组在接受窗口内且乱序,缓存该分组
,等到分组按序后一起提交,接收窗口的大小一般等于发送方发送窗口的大小 - 也是累计确认
SR的演示
窗口大小和序号的关系
- GBN窗口的最大值等于序号的个数-1
- SR窗口的最大值等于序号的一半