计算机网络学习笔记之数据链路层的流量控制与可靠传输机制
数据链路层的流量控制与可靠传输机制
流量控制、可靠传输与滑动窗口机制
流量控制涉及对链路上的帧的发送速率的控制,以使接收方有足够的缓冲空间来接收每个帧。
例如,在面向帧的自动重传请求系统中,当待确认帧的数量增加时,有可能超出缓冲存储空间而造成过载。
流量控制的基本方法是由接收方控制发送方发送数据的速率,常见的方式有两种:停止-等待协议和滑动窗口协议。
- 停止-等待流量控制基本原理
发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。每次只允许发送一帧,然后就陷入等待接收方确认信息的过程中,因而传输效率很低。 - 滑动窗口流量控制基本原理
在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。
- 发送窗口用来对发送方进行流量控制,而发送窗口的大小W代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。
- 同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。
单帧滑动窗口与停止-等待协议
无差错
有差错
数据帧丢失或检测到帧出错
ACK(Acknowledge character,确认字符)丢失
ACK迟到
信道利用率
?
注
:
T
D
为
发
送
时
延
,
R
T
T
为
往
返
时
延
,
T
A
为
确
认
时
延
\star注:T_D为发送时延,RTT为往返时延,T_A为确认时延
?注:TD?为发送时延,RTT为往返时延,TA?为确认时延
多帧滑动窗口与后退N帧协议(GBN)
滑动窗口长度
★
\bigstar
★
若采用n个比特对帧编号,那么发送窗口的尺寸
W
T
W_T
WT?应满足:
1
≤
W
T
?
<
2
n
?
1
1≤W_T-<2^n-1
1≤WT??<2n?1。因为发送窗口尺寸过大,就会使得接收方无法区别新帧和旧帧。
GBN协议要点
- 累积确认(偶尔捎带确认)
- 接收方只按顺序接收帧,不按序无情丢弃
- 确认序列号最大的、按序到达的帧
- 发送窗口最大为
2
n
?
1
2^n-1
2n?1,接收窗口大小为1
优点 | 缺点 |
---|
因连续发送数据帧而提高了信道利用率 | 在重传时必须把原来已经正确传送的数据帧重传,使传送效率降低 |
?
\star
?选择重传协议可以解决GBN的缺点。
多帧滑动窗口与选择重传协议(SR)
滑动窗口长度
★
\bigstar
★
发送窗口最好等于接收窗口。
W
T
m
a
x
=
W
R
m
a
x
=
2
(
n
?
1
)
W_{Tmax}=W_{Rmax}=2^{(n-1)}
WTmax?=WRmax?=2(n?1)
GBN协议要点
- 对数据帧逐一确认。收一个确认一个
- 只重传出错帧
- 接收方有缓存
-
发
送
窗
口
W
T
m
a
x
=
接
收
窗
口
W
R
m
a
x
=
2
(
n
?
1
)
发送窗口W_{Tmax}=接收窗口W_{Rmax}=2^{(n-1)}
发送窗口WTmax?=接收窗口WRmax?=2(n?1)
例题
选择题
1.从滑动窗口的观点看,当发送窗口为1、接收窗口也为1时,相当于ARQ的()方式. A.回退N帧ARQ B.选择重传ARQ C.停止-等待 D.连续ARQ 解析:停止-等待协议的工作原理是:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧,如果接收方不反馈应答信号,那么发送方必须一直等待。
2.在简单的停止等待协议中,当帧出现丢失时,发送端会永远等待下去,解决这种死锁现象的办法是(). A.差错校验 B.帧序号 c. NAK机制 D.超时机制 解析:在停止-等待协议中,发送端设置了计时器,在一个帧发送之后,发送端等待确认,如果在计时器计满时仍未收到确认,那么再次发送相同的帧,以免陷入永久的等待。
3.一个信道的数据传输速率为4kb/s,单向传播时延为30ms,如果使停止-等待协议的信道最大利用率达到80%,那么要求的数据帧长度至少为(). A.160bit B.320bit C.560bit D.960bit 解析:设C为数据传输速率,L为帧长,R为单程传播时延,2R为往返传播时延(RTT),停止-等待协议的信道最大利用率为
(
L
/
C
)
(
L
/
C
+
2
R
)
=
L
(
L
+
2
R
C
)
=
L
(
L
+
2
×
30
m
s
×
4
k
b
/
s
)
=
80
%
\frac{(L/C)}{(L/C+2R)}=\frac{L}{(L+2RC)}=\frac{L}{(L+2×30ms×4kb/s)}= 80\%
(L/C+2R)(L/C)?=(L+2RC)L?=(L+2×30ms×4kb/s)L?=80%,得出
L
=
960
b
i
t
L= 960bit
L=960bit.
4.数据链路层采用后退N帧协议方式,进行流量控制和差错控制,发送方已经发送了编号0~6的帧。计时器超时时,只收到了对1、3和5号帧的确认,发送方需要重发的帧的数是(). A.1 B.2 C.5 D.6 解析:GBN一般采用累计确认,因此收到了对5号帧的确认意味着接收方已收到1~5号帧,因此发送方仅需要重传6号帧。
5.【2009统考真题】数据链路层采用了后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是(). A.2 B.3 C.4 D.5 解析:在后退N帧协议中,当接收方检测到某个帧出错后,会简单地丢弃该帧及所有的后续帧,发送方超时后需重传该数据帧及所有的后续帧。这里应注意,连续ARQ 协议中,接收方一般采用累计确认的方式,即接收方对按序到达的最后一个分组发送确认,因此本题中收到3的确认帧就表示编号为0,1,2,3的帧已接收,而此时发送方未收到1号帧的确认只能代表确认帧在返回的过程中丢失,而不代表1号帧未到达接收方。因此需要重传的帧为编号是4,5,6,7的帧。
6.数据链路层采用了后退N帧的(GBN)协议,如果发送窗口的大小是32,那么至少需要()位的序列号才能保证协议不出错. A.4 B.5 C.6 D.7 解析:在后退N帧的协议中,序列号个数不小于MAX_SEQ+1,题中发送窗口的大小是32,那么序列号个数最少应该是33个。所以最少需要6位的序列号才能达到要求。
7.【2012统考真题】两台主机之间的数据链路层采用后退N帧协议(GBN)传输数据,数据传输速率为16kb/s,单向传播时延为270ms,数据帧长度范围定128~512字节,接收方总是以与数据帧等长的帧进行确认。为使信道利用率达到最高,帧序列的比特数至少为(). A.5 B.4 C.3 D.2 解析:数据帧长度是不确定的,范围是128~512B,但在计算至少窗口大小时,为了保证无论数据帧长度如何变化,信道利用率都能达到最高,应以最短的帧长计算。如果以512B计算,那么求得的最小帧序号数在128B的帧长下,达不到最高信道利用率。首先计算出发送一帧的时间
128
×
8
/
(
16
×
1
0
3
)
=
64
m
s
128×8/(16×10^3)=64ms
128×8/(16×103)=64ms;发送一帧到收到确认为止的总时间为
64
+
270
×
2
+
64
=
668
m
s
64+270×2+64=668ms
64+270×2+64=668ms;这段时间总共可以发送
668
/
64
=
10.4
帧
668/64 = 10.4帧
668/64=10.4帧,发送这么多帧至少需要用4位比特进行编号。
8.若采用后退N帧的ARQ协议进行流量控制,帧编号字段为7位,则发送窗口的最大长度为(). A.7 B.8 C.127 D.128 解析:接收窗口整体向前移动时,新窗口中的序列号和旧窗口的序列号产生重叠,致使接收方无法区别发送方发送的帧是重发帧还是新帧,因此在后退N帧的ARQ协议中,发送窗口
W
T
≤
2
n
?
1
W_T≤ 2^n-1
WT?≤2n?1.本题中n=7,因此发送窗口的最大长度是127。
9.【2011统考真题】数据链路层采用选择重传协议(SR)传输数据.发送方已发送0~3号数据帧,现已收到1号帧的确认,而0、2号帧依次超时,则此时需要重传的帧数是() A.1 B.2 C.3 D.4 解析:选择重传协议中,接收方逐个确认正确接收的分组,不管接收到的分组是否有序,只要正确接收就发送选择ACK分组进行确认。因此选择重传协议中的ACK分组不再具有累积确认的作用。对于这一点,要特别注意与GBN协议的区别。此题中只收到1号帧的确认,0、2号帧超时,由于对1号帧的确认不具累计确认的作用,因此发送方认为接收方未收到0、2号帧,于是重传这两帧。
10.一个使用选择重传协议的数据链路层协议,如果采用了5位的帧序列号,那么可以选用的最大接收窗口是(). A.15 B.16 C.31 D.32 解析:在选择重传协议中,若采用n比特对帧进行编号,为避免接收端向前移动窗口后,新的窗口与旧的窗口产生重叠,接收窗口的最大尺寸应该不超过序号范围的一半,即
W
R
≤
2
(
n
?
1
)
=
2
(
5
?
1
)
=
2
4
=
16
W_R≤2^{(n-1)}=2^{(5-1)}=2^4=16
WR?≤2(n?1)=2(5?1)=24=16。因此选B。
11.对于窗口大小为n的滑动窗口,最多可以有()帧已发送但没有确认。 A.0 B.n-1 C.n D.n/2 解析:在连续ARQ协议中,
发
送
窗
口
的
大
小
≤
窗
口
总
数
?
1
发送窗口的大小≤窗口总数-1
发送窗口的大小≤窗口总数?1。例如,窗口总数为8,编号为0~7,假设这8个帧都已发出,下一轮又发出编号0 ~ 7的8个帧,接收方将无法判断第二轮发的8个帧到底是重传帧还是新帧,因为它们的序号完全相同。另一方面,对于回退N帧协议,
发
送
窗
口
的
大
小
可
以
等
于
窗
口
总
数
?
1
发送窗口的大小可以等于窗口总数-1
发送窗口的大小可以等于窗口总数?1,因为它的接收窗口大小为1,所有的帧保证按序接收。因此对于窗口大小为n的滑动窗口,其发送窗口大小为n-1,即最多可以有n-1帧已发送但没有确认。
12.对无序接收的滑动窗口协议,若序号位数为n,则发送窗口最大尺寸为(). A.
2
n
?
1
2^n-1
2n?1 B. 2n c. 2n-1 D.
2
n
?
1
2^{n-1}
2n?1 解析:本题并未直接告知使用的是选择重传协议,而是通过间接方式给出的。题目说无序接收的滑动窗口协议,说明接收窗口大于1,所以得出数据链路层使用的是选择重传协议,而选择重传协议的发送窗口最大尺寸为
2
n
?
1
2^{n-1}
2n?1。
13.采用滑动窗口机制对两个相邻结点A(发送方)和B(接收方)的通信过程进行流量控制。假定帧的序号长度为4,发送窗口和接收窗口的大小都是7,使用累计确认。当A发送编号为0、1、2、3这四个帧后,而B接收了这4个帧,但仅应答了0、3两个帧,此时发送窗口将要发送的帧序号为(①); 若滑动窗口机制采用选择重传协议来进行流量控制,则允许发送方在收到应答之前连续发出多个帧;若帧的序号长度为k比特,那么接收窗口的大小W(②)
2
k
?
1
2^{k-1}
2k?1; 如果发送窗口的上边界对应的帧序号为U,那么发送窗口的下边界对应的帧序号为(③). ① A.2 B.3 C.4 D.5 ② A.< B.> C.≥ D.≤ ③ A.≥(U-W+1) mod
2
k
2^{k}
2k B.≥(U-W) mod
2
k
2^{k}
2k C.≥(U-W) mod
2
k
?
1
2^{k-1}
2k?1 D.≥(U-W-1) mod
2
k
?
1
2^{k-1}
2k?1 解析: 1)发送窗口大小为﹖意味着发送方在没有收到确认之前可以连续发送7个帧,由于发送方A已经发送编号为0~3的四个帧,下一个帧将是编号为4的帧。 2)当帧的序号长度为k比特时,对于选择重传协议,为避免接收端向前移动窗口后,新的窗口与旧的窗口产生重叠,接收窗口的最大尺寸应该不超过序列号范围的一半,即
W
R
≤
2
k
?
1
W_R≤2^{k-1}
WR?≤2k?1。 3)设发送窗口为[L,U],发送窗口大小的初始值为W,发送窗口的大小应该大于等于0,但小于等于W,所以有
0
≤
U
?
L
+
1
≤
W
。
因
此
L
≥
(
U
?
W
+
1
)
m
o
d
?
2
k
0≤U-L+1≤W。因此L≥(U-W+1)mod \ 2^k
0≤U?L+1≤W。因此L≥(U?W+1)mod?2k。
14.【2014统考真题】主机甲与主机乙之间使用后退N帧协议(GBN)传输数据,甲的发送窗口尺寸为1000,数据帧长为1000字节,信道带宽为100Mb/s,乙每收到一个数据帧立即利用一个短帧(忽略其传输延迟)进行确认,若甲、乙之间的单向传播时延是50ms,则甲可以达到的最大平均数据传输速率约为(). A.10Mb/s B.20Mb/s C.80Mb/s D.100Mb/s 解析:考虑制约甲的数据传输速率的因素。首先,信道带宽能直接制约数据的传输速率,传输速率一定是小于等于信道带宽的;其次,主机甲、乙之间采用后退N帧协议,那么因为甲、乙主机之间采用后退N帧协议传输数据,要考虑发送一个数据到接收到它的确认之前,最多能发送多少数据,甲的最大传输速串受这两个条件约束,所以甲的最大传输速率是这两个值中小的那一个。甲的发送窗口的尺寸为1000,即收到第一个数据的确认之前,最多能发送1000个数据帧,也就是发送
1000
×
1000
B
=
1
M
B
1000×1000B=1MB
1000×1000B=1MB的内容,而从发送第一个帧到接收到它的确认的时间是一个帧的发送时延加上往返时延,即
1000
B
/
100
M
b
/
s
+
50
m
s
+
50
m
s
=
0.10008
s
1000B/100Mb/s + 50ms + 50ms = 0.10008s
1000B/100Mb/s+50ms+50ms=0.10008s,此时的最大传输速率为
1
M
B
/
0.10008
s
≈
10
M
B
/
s
=
80
M
b
/
s
1MB/0.10008s\approx10MB/s = 80Mb/s
1MB/0.10008s≈10MB/s=80Mb/s。信道带宽为
100
M
b
/
s
100Mb/s
100Mb/s,所以答案为
m
i
n
{
80
M
b
/
s
,
100
M
b
/
s
}
=
80
M
b
/
s
min\{80Mb/s,100Mb/s\}=80Mb/s
min{80Mb/s,100Mb/s}=80Mb/s,选C。
15.【2015统考真题】主机甲通过128kb/s卫星链路,采用滑动窗口协议向主机乙发送数据,链路单向传播时延为250ms,帧长为1000字节。不考虑确认帧的开销,为使链路利用率不小于80%,帧序号的比特数至少是(). A.3 B.4 C.7 D.8 解析:从发送周期思考,开始发送帧到收到第一个确认帧为止,用时为
T
=
第
一
个
帧
的
传
输
时
延
+
第
一
个
帧
的
传
播
时
延
+
确
认
帧
的
传
输
时
延
+
确
认
帧
的
传
播
时
延
T=第一个帧的传输时延+第一个帧的传播时延+确认帧的传输时延+确认帧的传播时延
T=第一个帧的传输时延+第一个帧的传播时延+确认帧的传输时延+确认帧的传播时延,这里忽略确认帧的传输时延。因此
T
=
1000
B
/
128
k
b
/
s
+
R
T
T
=
0.5625
s
T=1000B/128kb/s+ RTT=0.5625s
T=1000B/128kb/s+RTT=0.5625s,接着计算在T内需要发送多少数据才能满足利用率不小于80%。设数据大小为L字节,则
(
L
/
128
k
b
/
s
)
/
T
≥
0.8
(L/128kb/s)/T≥0.8
(L/128kb/s)/T≥0.8,得
L
≥
7200
B
L≥7200B
L≥7200B,即在一个发送周期内至少发7.2个帧才能满足要求,设需要编号的比特数为n,则
2
n
?
1
≥
7.2
2^n-1≥7.2
2n?1≥7.2,因此n至少为4。
16.【2018统考真题】主机甲采用停止-等待协议向主机乙发送数据,数据传输速率是3kb/s,单向传播时延是200ms,忽略确认帧的传输时延。当信道利用率等于40%时,数据帧的长度为(). A.240比特 B.400比特 C.480比特 D.800比特 解析:
信
道
利
用
率
=
传
输
帧
的
有
效
时
间
/
传
输
帧
的
周
期
信道利用率=传输帧的有效时间/传输帧的周期
信道利用率=传输帧的有效时间/传输帧的周期。假设帧的长度为x比特。对于有效时间,应该用帧的大小除以数据传输速率,即
x
/
(
3
k
b
/
s
)
x/(3kb/s)
x/(3kb/s)。对于帧的传输周期,应包含4部分:帧在发送端的发送时延、帧从发送端到接收端的单程传播时延、确认帧在接收端的发送时延、确认帧从接收端到发送端的单程传播时延。这4个时延中,由于题目中说“忽略确认帧的传输时延”,因此不计算确认帧的发送时延(注意区分传输时延和传播时延的区别,传输时延也称发送时延,和传播时延只有一字之差)。所以帧的传输周期由三部分组成:首先是帧在发送端的发送时延
x
/
(
3
k
b
/
s
)
x/(3kb/s)
x/(3kb/s),其次是帧从发送端到接收端的单程传播时延200ms,最后是确认帧从接收端到发送端的单程传播时延200ms,三者相加可得周期为
x
/
(
3
k
b
/
s
)
+
400
m
s
x/(3kb/s)+400ms
x/(3kb/s)+400ms。代入信道利用率的公式,求出
x
=
800
b
i
t
x=800bit
x=800bit。答案选D。
17.【2019统考真题】对于滑动窗口协议,若分组序号采用3比特编号,发送窗口大小为5,则接收窗口最大是(). A.2 B.3 C.4 D.5 解析:从滑动窗口的概念来看,停止等待协议:发送窗口大小= 1,接收窗口大小=1;后退N协议:发送窗口大小>1,接收窗口大小=1;选择重传协议:发送窗口大小>1,接收窗口大小>1。在选择重传协议中,需要满足:发送窗口大小+接收窗口大小≤
2
n
2^n
2n;接收窗口大小不应超过发送窗口大小,因此接收窗口大小不应超过序号范围的-一半,即
≤
2
n
?
1
≤ 2^{n-1}
≤2n?1。根据以上规则,采用3比特编号,发送窗口大小为5,接收窗口大小应≤3.
18.【2020统考真题】假设主机甲采用停–等协议向主机乙发送数据帧,数据帧长与确认帧长均为1000B,数据传输速率是10kb/s,单项传播延时是200ms。则甲的最大信道利用率为( )。 A.80% B.66.7% C.44.4% D.40% 解析:发送数据帧和确认帧的时间均为
t
=
1000
×
8
b
/
10
k
b
/
s
=
800
m
s
t=1000×8b/10kb/s = 800ms
t=1000×8b/10kb/s=800ms.发送周期为
T
=
800
m
s
+
200
m
s
+
800
m
s
+
200
m
s
=
2000
m
s
T= 800ms + 200ms + 800ms + 200ms = 2000ms
T=800ms+200ms+800ms+200ms=2000ms.信道利用率为
t
/
T
×
100
%
=
800
/
2000
=
40
%
t/T×100\%=800/2000= 40\%
t/T×100%=800/2000=40%。
应用题
1.在选择ARQ协议中,设编号用3bit,发送窗口
W
T
=
6
W_T=6
WT?=6,接收窗口
W
T
=
3
W_T=3
WT?=3。试找出一种情况,使得在此情况下协议不能正确工作。 解析: 对于选择重传协议,接收窗口和发送窗口的尺寸需满足:
接
收
窗
口
尺
寸
W
R
+
发
送
窗
口
尺
寸
W
T
≤
2
n
接收窗口尺寸W_R+发送窗口尺寸W_T≤2^n
接收窗口尺寸WR?+发送窗口尺寸WT?≤2n,而题目中给出的数据是
W
T
+
W
R
=
9
≥
2
3
W_T+W_R=9≥2^3
WT?+WR?=9≥23,所以是无法正常工作的。 举例如下:
发送方 | 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 4 5 6 7 0 |
发送方发送0~5号共6个数据帧时,因发送窗口已满,发送暂停。接收方收到所有数据帧,对每个帧都发送确认帧,并期待后面的6、7、0号帧。若所有的确认帧都未到达发送方,经过发送方计时器控制的超时时间后,发送方再次发送之前的6个数据帧,而接收方收到0号帧后,无法判断是新的数据帧还是旧的重传的数据帧。
2.假设一个信道的数据传输速率为5kb/s,单向传输时延为30ms,那么帧长在什么范围内才能使用于差错控制的停止-等待协议的效率至少为50%? 解析: 设帧长为L。在停止-等待协议中,协议忙的时间为数据发送的时间L/B,协议空闲的时间为数据发送后等待确认返回的时间2R。要使协议的效率至少为50%,要求信道利用率u至少为50%而信道利用率=数据发送时延/(传播时延+数据发送时延),则
L
/
B
(
L
/
B
+
2
R
)
≥
50
%
\frac{L/B}{(L/B+2R)}\ge50\%
(L/B+2R)L/B?≥50% 可得
L
≥
2
R
B
=
2
×
5000
×
0.03
b
i
t
=
300
b
i
t
L≥2RB= 2×5000×0.03bit= 300bit
L≥2RB=2×5000×0.03bit=300bit。 因此,当帧长大于等于300bit时,停止-等待协议的效率至少为50%。
3.假定卫星信道的数据率为100kb/s,卫星信道的单程传播时延为250ms,每个数据帧的长度均为2000位,并且不考虑误码、确认帧长、头部和处理时间等开销,为达到传输的最大效率,试问帧的顺序号应为多少位?此时信道利用率是多少? 解析:
R
T
T
=
250
×
2
=
500
m
s
=
0.5
s
RTT=250×2 = 500ms = 0.5s
RTT=250×2=500ms=0.5s。 一个帧的发送时间等于
2000
b
i
t
/
(
100
k
b
/
s
)
=
20
×
1
0
?
3
s
2000bit/(100kb/s) = 20×10^{-3}s
2000bit/(100kb/s)=20×10?3s. 一个帧发送完后经过一个单程时延到达接收方,再经过一个单程时延发送方收到应答,从而可以继续发送,因此要达到传输效率最大,就是不用等确认也可继续发送帧。设窗口值等于x,令
2000
b
i
t
×
x
/
(
100
k
b
/
s
)
=
20
×
1
0
?
3
s
+
R
T
T
=
20
×
1
0
?
3
s
+
0.5
s
=
0.52
s
2000bit×x/(100kb/s)= 20×10^{-3}s+ RTT= 20×10^{-3}s+0.5s = 0.52s
2000bit×x/(100kb/s)=20×10?3s+RTT=20×10?3s+0.5s=0.52s得
x
=
26
x=26
x=26。 要取得最大信道利用率,窗口值是26即可,因为在此条件下,可以不间断地发送帧,所以发送速率保持在100kb/s。 由于
2
4
=
16
<
26
<
32
=
2
5
2^4=16<26<32=2^5
24=16<26<32=25,帧的顺序号应为
5
5
5位。在使用后退N帧ARQ的情况下,最大窗口值是
最
大
帧
长
?
1
=
32
?
1
=
31
,
大
于
26
最大帧长-1=32-1=31,大于26
最大帧长?1=32?1=31,大于26,可以不间断地发送帧,此时信道利用率是100%。
4.在数据传输速率为50kb/s的卫星信道上传送长度为 1kbit 的帧,假设确认帧总由数据帧捎带,帧头的序号长度为3bit,卫星信道端到端的单向传播延迟为270ms。对于下面三种协议,信道的最大利用率是多少? 1)停止-等待协议。 2)后退N帧协议。 3)选择重传协议(假设发送窗口和接收窗口相等). 解析: 最大信道利用率即每个传输周期内每个协议可发送的最大帧数。由题意,数据帧的长度为1kbit,信道的数据传输速率为50kb/s,因此信道的发送时延为1/50s = 0.02s,另外信道端到端的传播时延=0.27s。本题中的确认帧是捎带的(通过数据帧来传送),因此每个数据帧的传输周期为
(
0.02
+
0.27
+
0.02
+
0.27
)
s
=
0.58
s
(0.02+0.27+0.02+0.27)s =0.58s
(0.02+0.27+0.02+0.27)s=0.58s, 1)在停止-等待协议中,发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧;接收方每接收一帧,都要反馈一个应答信号,表示可接收下一帧。其中用于发送数据帧的时间为0.02s。因此,信道的最大利用率为
0.02
/
0.58
=
3.4
0.02/0.58=3.4%
0.02/0.58=3.4。 2)在后退N帧协议中,接收窗口尺寸为1,若采用n比特对帧编号,则其发送窗口的尺寸W满足
1
<
W
≤
2
n
?
1
1<W≤2^n-1
1<W≤2n?1。发送方可以连续再发送若干数据帧,直到发送窗口内的数据帧都发送完毕。如果收到接收方的确认帧,那么可以继续发送。若某个帧出错,则接收方只是简单地丢弃该帧及所有的后续帧,发送方超时后需重传该数据帧及所有的后续数据帧。根据题目条件,在达到最大传输速率的情况下,发送窗口的大小应为
2
n
?
1
=
7
2^n-1=7
2n?1=7,此时在第一帧的数据传输周期0.58s内,实际连续发送了7帧(考虑极限情况,0.58s后接收方只收到0号帧的确认,此时又可以发出一个新帧,这样依次下去,取极限即是每个传输周期0.58s内发送了7帧),因此此时的最大信道利用率为
7
×
0.02
/
0.58
=
24.1
7×0.02/0.58=24.1%
7×0.02/0.58=24.1。 3)选择重传协议的接收窗口尺寸和发送窗口尺寸都大于1,可以–次发送或接收多个帧。若采用n比特对帧编号,则窗口尺寸应满足:
接
收
窗
口
尺
寸
+
发
送
窗
口
尺
寸
≤
2
n
接收窗口尺寸+发送窗口尺寸≤2^n
接收窗口尺寸+发送窗口尺寸≤2n,当发送窗口与接收窗口尺寸相等时,应有
接
收
窗
口
尺
寸
≤
2
n
?
1
接收窗口尺寸≤2^n-1
接收窗口尺寸≤2n?1且
发
送
窗
口
尺
寸
≤
2
n
?
1
发送窗口尺寸≤2^n-1
发送窗口尺寸≤2n?1。发送方可以连续发送若干数据帧,直到发送窗口内的数据帧都发送完毕。如果收到接收方的确认帧,那么可以继续发送。若某个帧出错,则接收方只是简单地丢弃该帧,发送方超时后需重传该数据帧。 和2)问中的情况类似,唯一不同的是为达到最大信道利用率,发送窗口大小应为
2
n
?
1
=
4
2^{n-1}=4
2n?1=4,因此,此时的最大信道利用率为
4
×
0.02
/
0.58
=
13.8
%
4×0.02/0.58= 13.8\%
4×0.02/0.58=13.8%。
5.对于下列给定的值,不考虑差错重传,非受限协议(无须等待应答)和停止-等待协议的有效数据率是多少?(即每秒传输了多少真正的数据,单位为b/s.) R=传输速率(
16
M
b
/
s
16Mb/s
16Mb/s) S=信号传播速率(
200
m
/
μ
s
200m/\mu s
200m/μs) D=接收主机和发送主机之间传播距离(200m) T=创建帧的时间(
2
μ
s
2\mu s
2μs) F=每帧的长度(500bit) N=每帧中的数据长度(450bit) A一确认帧ACK的帧长(80bit) 解析: 1)非受限协议 有效数据率
N
T
+
F
R
=
450
b
i
t
2
μ
s
+
500
b
i
t
16
b
i
t
s
/
μ
s
≈
13.53
M
b
/
s
\frac{N}{T+\frac{F}{R}}=\frac{450bit}{2\mu s+\frac{500bit}{16bits/\mu s}}\approx13.53Mb/s
T+RF?N?=2μs+16bits/μs500bit?450bit?≈13.53Mb/s 2)停止等待协议 有效数据率
N
2
×
(
T
+
D
/
S
)
+
F
+
A
R
=
450
b
i
t
2
×
(
2
μ
s
+
200
m
200
m
/
μ
s
)
+
500
b
i
t
16
b
i
t
s
/
μ
s
≈
10.65
b
i
t
/
μ
s
≈
10.65
M
b
/
s
\frac{N}{2×(T+D/S)+\frac{F+A}{R}}=\frac{450bit}{2×(2\mu s+\frac{200m}{200m/\mu s})+\frac{500bit}{16bits/\mu s}}\approx10.65bit/\mu s\approx10.65Mb/s
2×(T+D/S)+RF+A?N?=2×(2μs+200m/μs200m?)+16bits/μs500bit?450bit?≈10.65bit/μs≈10.65Mb/s
6.在某个卫星信道上,发送端从一个方向发送长度为512B的帧,且发送端的数据发送速率为64kb/s,接收端在另一端返回一个很短的确认帧。设卫星信道端到端的单向传播延时为270ms,对于发送窗口尺寸分别为1、7、17和117的情况,信道的吞吐率分别为多少? 解析: 这里要注意题目中的单位。数据帧的长度为512B,即
512
×
8
b
i
t
=
4.096
k
b
i
t
512×8bit =4.096kbit
512×8bit=4.096kbit,一个数据帧的发送时延为
4.096
/
64
=
0.064
s
4.096/64=0.064s
4.096/64=0.064s。因此-一个发送周期时间为
0.064
+
2
×
0.27
=
0.604
s
0.064+2×0.27=0.604s
0.064+2×0.27=0.604s。 因此当窗口尺寸为1时,信道的吞吐率为
1
×
4.096
/
0.604
=
6.8
k
b
/
s
1×4.096/0.604=6.8kb/s
1×4.096/0.604=6.8kb/s;当窗口尺寸为7时,信道的吞吐率为
7
×
4.096
/
0.604
=
47.5
k
b
/
s
7×4.096/0.604= 47.5kb/s
7×4.096/0.604=47.5kb/s。 由于一个发送周期为
0.604
s
0.604s
0.604s,发送一个帧的发送延时是
0.064
s
0.064s
0.064s,因此当发送窗口尺寸大于
0.604
/
0.064
0.604/0.064
0.604/0.064,即大于等于10时,发送窗口就能保证持续发送。因此当发送窗口大小为17和117时,信道的吞吐率达到完全速率,与发送端的数据发送速率相等,即
64
k
b
/
s
64kb/s
64kb/s。
7.【2017统考真题】甲乙双方均采用后退N帧协议(GBN)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为1000B。
S
x
,
y
S_{x,y}
Sx,y?和
R
x
,
y
R_{x,y}
Rx,y?分别表示甲方和乙方发送的数据帧其中x是发送序号,y是确认序号(表示希望接收对方的下一帧序号),数据帧的发送序号和确认序号字段均为3比特。信道传输速率为100Mb/s,RTT=0.96ms。下图给出了甲方发送数据帧和接收数据帧的两种场景,其中
t
0
t_0
t0?为初始时刻,此时甲方的发送和确认序号均为0,
t
1
t_1
t1?时刻甲方有足够多的数据待发送. 请回答下列问题。 1)对于图(a),
t
0
t_0
t0?时刻到
t
1
t_1
t1?时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?正确接收的是哪几个帧(请用
S
x
,
y
S_{x,y}
Sx,y?形式给出)? 2)对于图(a),从
t
1
t_1
t1?时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?其中第一个帧和最后一个帧分别是哪个(请用
S
x
,
y
S_{x,y}
Sx,y?形式给出)? 3)对于图(b),从t时刻起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?重发的第一个帧是哪个帧(请用
S
x
,
y
S_{x,y}
Sx,y?形式给出)? 4)甲方可以达到的最大信道利用率是多少? 解析: 1)
t
0
t_0
t0?时刻到
t
1
t_1
t1?时刻期间,甲方可以断定乙方己正确接收3个数据帧,分别是
S
0
,
0
、
S
1
,
0
、
S
2
,
0
。
R
3
,
3
S_{0,0}、S_{1,0}、S_{2,0}。R_{3,3}
S0,0?、S1,0?、S2,0?。R3,3?说明乙发送的数据帧确认号是3,即希望甲发送序号3的数据帧,说明乙已经接收序号为0~2的数据帧。 2)从
t
1
t_1
t1?时刻起,甲方最多还可以发送5个数据帧,其中第一个帧是
S
5
,
2
S_{5,2}
S5,2?,最后一个数据帧是
S
1
,
2
S_{1,2}
S1,2?。发送序号3位,有8个序号。在GBN协议中,序号个数≥发送窗口+1,所以这里发送窗口最大为7。此时已发送
S
3
,
0
S_{3,0}
S3,0?和
S
4
,
1
S_{4,1}
S4,1?,,所以最多还可以发送5个帧。 3)甲方需要重发3个数据帧,重发的第一个帧是
S
2
,
3
S_{2,3}
S2,3?。在GBN协议中,接收方发送N帧后,检测出错,则需要发送出错帧及其之后的帧。
S
2
,
0
S_{2,0}
S2,0?超时,所以重发的第一帧是
S
2
S_{2}
S2?。已收到乙的
R
2
R_2
R2?帧,所以确认号应为3。 4)甲方可以达到的最大信道利用率是
7
×
8
×
1000
100
×
1
0
6
0.96
×
1
0
?
3
+
2
×
8
×
1000
100
×
1
0
6
100
%
=
50
\frac{7×\frac{8×1000}{100×10^6}}{0.96×10^{-3}+2×\frac{8×1000}{100×10^6}}100\%=50%
0.96×10?3+2×100×1068×1000?7×100×1068×1000??100%=50
U
=
发
送
数
据
的
时
间
/
从
开
始
发
送
第
一
帧
到
收
到
第
一
个
确
认
帧
的
时
间
=
N
×
T
d
/
(
T
d
+
R
T
T
+
T
)
U=发送数据的时间/从开始发送第一帧到收到第一个确认帧的时间=N×T_d/(T_d+RTT+ T)
U=发送数据的时间/从开始发送第一帧到收到第一个确认帧的时间=N×Td?/(Td?+RTT+T)。其中,U是信道利用率,N是发送窗口的最大值,
T
d
T_d
Td?是发送一数据帧的时间,RTT是往返时间,T是发送一确认帧的时间。这里采用捎带确认,
T
a
=
T
d
T_a= T_d
Ta?=Td?.
参考文献
[1] 谢希仁. 计算机网络. 7版. 北京:电子工业出版社,2017 [2] 王道论坛. 2022计算机网络考研复习指导. 北京:电子工业出版社,2021
|