流量控制和滑动窗口机制
数据链路层和传输层流量控制的对比
- 数据链路层控制的是相邻结点之间的流量;而传输层控制的是端到端的流量
- 数据链路层的控制手段是接收方收不下就不返回确认;传输层的控制手段是接收方通过确认报文段中的窗口值来调整发送方的发送窗口
停止-等待协议
发送方每次只允许发送一个帧,接收方每接受一个都要反馈一个应答信号,发送方收到应答信号后才能发送下一帧。
滑动窗口协议
发送方每收到一个按序确认的确认帧,就将发送窗口向前滑动一个位置。
可靠传输机制
为了实现可靠传输,通常使用确认和超时重传两种机制实现。
自动重传请求(ARQ)的重传是自动进行的,在 ARQ 中,数据帧和确认帧都必须编号。ARQ 协议分为停止-等待协议、后退 N 帧协议和选择重传协议。
三种协议的对比:
- 只有接收窗口向前滑动,发送窗口才能可能向前滑动
- 停止-等待协议的发送窗口 ,接收窗口
- 后退 N 帧协议的发送窗口 ,接收窗口
- 选择重传协议的发送窗口 ,接收窗口
- 若采用 n 比特对帧编号,则
- 当 时可保证有序接收
- 数据链路层的滑动窗口协议的窗口大小在传输过程中是固定的(与传输层不同)
停止-等待协议(S-W)
发送窗口 ,接收窗口
发送方每次只允许发送一个帧,接收方每接受一个都要反馈一个应答信号,发送方收到应答信号后才能发送下一帧。
后退 N 帧协议(GBN)
发送窗口 ,接收窗口
GBN 使用累积确认,即接收方不需要对每个帧都确认,可在接收一系列帧后,对最后一个帧进行确认,需要指明是对哪一个帧的确认。对某个数据帧的确认就代表接收方已正确收到该帧和之前的所有帧。
如果收到了缺失的一个帧的后序帧,则必须全部丢弃
信道利用率
假设连续 ARQ 协议的发送窗口为 n,即发送方可连续发送 n 个分组,分为两种情况:
- ,信道利用率为
- ,即一个发送周期内发不完 n 个分组,此时发送方可以一直不停发,信道利用率为 1
选择重传协议(SR)
发送窗口 ,接收窗口
在接收窗口内,先手下失序但是正确到达的帧,等到所缺序号的数据收齐后,再一并送交上层。
一般情况下 和 是相同的。
信道利用率
[[#后退 N 帧协议(GBN)#信道利用率|多帧滑动窗口的信道利用率]]都一致