滑动窗口协议演示
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
发送端连续发出N个帧,接收端以流水线方 式顺序接收各个帧,并进行差错检测。
一旦某个帧有错,则丢弃该帧和它之后所收 到的所有帧。
回退N协议的最大发送窗口大小
假设 模m =2n ,最大序号Smax = m-1 = 2n – 1 发送序号:0, 1, 2, 3, ……... 2n – 1
超时 WT 发方
WT<m-1
最大发送窗口为:WT = 2n – 1 = m - 1
• 选择重传协议
在回退N-ARQ基础上,当接收端发现其中有出 错的帧时,它有选择地反馈要求重发的信息, 使发送端只重发出错的帧,其余(N-1)个正确 帧被接收端先存储起来。
选择重传协议
重传
发方
正常传输 重传
1 2 3 4 5 6 7 3 8 9 10 7 11 12 13 14
6 5
1 2
6 5
1 2
准备接收0
准备接收1
准备接收4
• 发送窗口WT与接收窗口WR的关系
if WT >1, WR =1, then 滑动窗口协议 = 回退-N if WT >1, WR >1, then 滑动窗口协议 = 选择重传 if WT =1, then 滑动窗口协议 = 停等式
• 回退N协议
0 1 2 3 4
m-1
丢失 丢失
0 1
丢失
收方
0 1 2 3 4
m-1
0 1 ?
回退N协议的最大发送窗口大小
WT=m 当确认全部丢失时易造成混肴 发送序号:0,1,2,· · · ,m-2; 重发的第一个序号是0,而下一 轮发送的第一个序号是m-1; 更不会混淆
(0…m-1)
WT=m-1
(0…m-2)
RRn:准备接收从n开始的PDU; RNRn:已接收直到n-1的所有PDU,但不能再接收了。 发送窗口 控制发送 控制接收
每个站都保持两个窗口
接收窗口
ห้องสมุดไป่ตู้
双方既发数据又发确认
• 捎带确认与累计确认
捎带技术 既有数据又有确认时,将两 者合在一个PDU中发送; PDU:顺序号+确认号
累计确认 收方可对K帧(K<WT)发一个ACK告知发 方已正确接收前(k-1)帧并期待第K帧。
序列号 发送的最 后帧序号 发出一帧后窗口 的下限前移一格 收到确认后窗 口的上限前移
已接收的帧
可接收帧
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0
最后确 认的帧 接收一帧后窗 口的下限前移 发出确认后窗 口的上限前移
• 流量控制方式
RR: receive-ready RNR: receive-not-ready
ACK
NAK
收方
1 2 3 4 5 6 7 3 8 9 10 7 11 12
出错
选择重传协议的最大发送窗口大小
假设: 模m =2n ,最大序号Smax = m-1 = 2n – 1 序号空间:0, 1, 2, 3, ……... 2n – 1(m-1); n=3, WT=WR = w=8. 超时
WT
当收到的帧数大到某个值或从接收第一帧开始等待的时 间超过某一定值时,要单独发ACK,以免发方超时重发。 当收到的第i帧有错时,则马上用NAK应答
源系统A
0 1 2 3 4 5 6 7 0 1 2 3
t0
累计确认
F0 F1 F2
目标系统B
0 1 2 3 4 5 6 7 0 1 2 3
0 1 2 3 4 5 6 7 0 1 2 3 t1
2.滑动窗口流量控制
• 工作原理
两个站(A,B)通过全双工链路连接 每个站为n个帧分配缓冲区 为每个发送的帧分配一个序号
发送窗口(WT) :允许发送方连续发送的序号表; 接收窗口(WR):允许接收方接收的序号表; 序号空间:序号的取值范围。
如序号用二进制n位表示, 则取值范围:0,1,2,….2n-1
0 1 2 3 4
7
丢失
0 1
7
发 方
收 方
0 1 2 3 4 WR
7 等待接收
0 1
7
选择重传协议的最大发送窗口大小
收发窗口的最大值:w ≤ m/2 = 2n-1
连续ARQ协议的工作原理: 在发送完一个数据帧后,不是停下来等待应答帧,而是连续 再发送若干个数据帧……...
时 间
重传
tf
A 0 1 2 3
tout
4 5 2 3 4 5 6
B 送主机 丢弃 送主机
• 发送窗口与接收窗口
已发送的帧
可发送帧
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0
0 1 2 3 4 5 6 7 0 1 2 3
• 滑动窗口的大小
6 5 7 0 4 3 1 2
假设:发送窗口WT=5;接收窗口WR=1
7 0 4 3 7 0 4 3
发送窗口
6 5
1 2
6 5
1 2
连续发0~4 7 0 4 3
收到ACK1 7 0 4 3
收到ACK4 7 0 4 3
接收窗口
6 5
1 2
0 1 2 3 4 5 6 7 0 1 2 3 t2
0 1 2 3 4 5 6 7 0 1 2 3 RR3
t3
0 1 2 3 4 5 6 7 0 1 2 3 t4
F3 F4
F5
F6 0 1 2 3 4 5 6 7 0 1 2 3 RR4 0 1 2 3 4 5 6 7 0 1 2 3 t6
0 1 2 3 4 5 6 7 0 1 2 3 t5