计网笔记-数据链路层2
四月 06, 2022
上一个太长了,再分一个
3.4滑动窗口协议
英文是:
Sliding Window
捎带应答Piggy backing
查了一下piggy的意思是贪心的,🐷🐷风评被害
就是说俩边不停的来回发,(全双工),就可以把ACK信息放在sck field里面,跟着另一方的回复发回去。
发送/接收窗口Sending window & Receiving window
发送窗口维护一组序号,一个时间对应一组可以发送的序号
接收窗口同理,维护的是一组可以接受的信号。接收窗口大于1的时候,落在接收窗口的帧不能马上接受,需要把没按顺序到达的帧先存起来。
几种协议:(由简到繁,由最简单的调整参数就可以依次实现)
- A One-Bit Sliding Window Protocol 实际上就是停等协议
- A Protocol Using Go Back N GBN协议
- A Protocol Using Selective Repeat SR协议
单bit的滑动窗口协议
Protocol 4
发送窗口==接收窗口
A sliding window of size 1, with a 3-bit sequence number.
窗口关闭的意思是没有帧在发送
(a) 初始状态
(b) 第一个帧发送完成
(c) 第一个帧已经被接收
(d) 第一个ACK被接收
课本上的代码在这里1以及这里2
gzc说实际工程里的发送方的序号是期望收到的序号,但是课本上不是,whatever,👴不懂
- 关于line utilization(线路利用)
👴自己的理解大概就是
$\frac{发送端在发送消息的时间}{消息到达并收到ACK的时间}$
其中
消息到达并收到ACK的时间=发送消息的时间+传播(propagation)延迟$\times2$ - 单bit滑动窗口协议的问题就在于线路利用率太低了
Go Back N 协议
Protocol 5
SR协议Selective Repeat/Reject
Protocol 6
关于滑动窗口的数量
Ws:sender window
Wr: reciver window
他们的数量关系满足以下式子:
Ws+Wr <=2n
Ws>=Wr
可以推出:
Ws,Wr<= 2n -1
关于line utilization(gzc的official理解)
当sender只有一个窗口时,也就是单bit的滑动窗口时,示意图如下。(分为a,b两种情况,从上往下为时间推进方向)
$\alpha=\cfrac{t_p}{t_f}$ , $t_p$即propagation time,传输时延,$t_f$是发送时延。
这里的$\alpha$其实就是sender和reciver之间可以放得下几个Frame。
当sender有W个窗口的时候就是这么个状态
常见介质中的信号传播速度
throughput:吞吐量=利用率*带宽
3.5数据链路层协议实例
查看评论