计网笔记-数据链路层2

计网笔记-数据链路层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
发送窗口==接收窗口
单bit
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

课本上的代码在这里1,这里2,这里3以及这里4

关于line utilization(gzc的official理解)

当sender只有一个窗口时,也就是单bit的滑动窗口时,示意图如下。(分为a,b两种情况,从上往下为时间推进方向)
official理解

$\alpha=\cfrac{t_p}{t_f}$ , $t_p$即propagation time,传输时延,$t_f$是发送时延。
这里的$\alpha$其实就是sender和reciver之间可以放得下几个Frame。

当sender有W个窗口的时候就是这么个状态
W个窗口
常见介质中的信号传播速度

throughput:吞吐量=利用率*带宽

3.5数据链路层协议实例