mirror of
https://github.com/Didnelpsun/CS408.git
synced 2026-11-01 21:07:12 +08:00
更新数据链路层
This commit is contained in:
@@ -131,3 +131,57 @@ $C.2n-1$
|
||||
$D.2^{n-1}$
|
||||
|
||||
解:$D$。虽然没有明确给出哪个协议,但是可以根据无序接收知道这个指选择重传协议。所以选$D$。
|
||||
|
||||
**例题** 在选择$ARQ$协议中,设编号用$3bit$,发送窗口$W_T=6$,接收窗口$W_R=3$。试找出一种情况,使得在此情况下协议不能正确工作。
|
||||
|
||||
解:对于选择重传协议,接收窗口和发送窗口的尺寸需满足:接收窗口尺寸$W_R$+发送窗口尺寸$W_T\leqslant2^n$,而题目中给出的数据是$W_R+W_T=9\leqslant2^3$,所以是无法正常工作的。
|
||||
|
||||
举例如下:
|
||||
|
||||
发送方:$01234567012345670$
|
||||
|
||||
接收方:$01234567012345670$
|
||||
|
||||
发送方发送$0\sim5$号共$6$个数据帧时,因发送窗口已满,发送暂停。接收方收到所有数据帧,对每个帧都发送确认帧,并期待后面的$6$、$7$、$0$号帧。若所有的确认帧都未到达发送方,经过发送方计时器控制的超时时间后,发送方再次发送之前的$6$个数据帧,而接收方收到$0$号帧后,无法判断是新的数据帧还是旧的重传的数据帧。
|
||||
|
||||
**例题** 假定卫星信道的数据率为$100kb/s$,卫星信道的单程传播时延为$250ms$,每个数据帧的长度均为$2000$位,并且不考虑误码、确认帧长、头部和处理时间等开销,为达到传输的最大效率,试问帧的顺序号应为多少位,此时信道利用率是多少。
|
||||
|
||||
解:首先卫星信道的单程传播时延为$250ms$,所以$RTT=250\times2=500ms=0.5s$。
|
||||
|
||||
**例题** 在数据传输速率为$50kb/s$的卫星信道上传送长度为$1kbit$的帧,假设确认帧总由数据帧捎带,帧头的序号长度为$3bit$,卫星信道端到端的单向传播延迟为$270ms$。对于下面三种协议,信道的最大利用率是多少。
|
||||
|
||||
1)停止——等待协议。
|
||||
|
||||
2)后退$N$帧协议。
|
||||
|
||||
3)选择重传协议(假设发送窗口和接收窗口相等)。
|
||||
|
||||
**例题** 对于下列给定的值,不考虑差错重传,非受限协议(无须等待应答)和停止——等待协议的有效数据率是多少?(即每秒传输了多少真正的数据,单位为$b/s$。)
|
||||
|
||||
$R$=传输速率($16Mb/s$)
|
||||
|
||||
$S$=信号传播速率($200m/\mu s$)
|
||||
|
||||
$D$=接收主机和发送主机之间传播距离($200m$)
|
||||
|
||||
$T$=创建帧的时间($2\mu s$)
|
||||
|
||||
$F$=每帧的长度($500bit$)
|
||||
|
||||
$N$=每帧中的数据长度($450bit$)
|
||||
|
||||
$A$=确认帧$ACK$的帧长($80bit$)
|
||||
|
||||
**例题** 在某个卫星信道上,发送端从一个方向发送长度为$512B$的帧,且发送端的数据发送速率为$64kb/s$,接收端在另一端返回一个很短的确认帧。设卫星信道端到端的单向传播延时为$270ms$,对于发送窗口尺寸分别为$1$、$7$、$17$和$117$的情况,信道的吞吐率分别为多少?
|
||||
|
||||
**例题** 甲乙双方均采用后退N帧协议($GBN$)进行持续的双向数据传输,且双方始终采用捎带确认,帧长均为$1000B$。$S_{x,y}$和$R_{x,y}$分别表示甲方和乙方发送的数据帧,其中$x$是发送序号,$y$是确认序号(表示希望接收对方的下一帧序号),数据帧的发送序号和确认序号字段均为$3$比特。信道传输速率为$100Mb/s$,$RTT=0.96ms$。下图给出了甲方发送数据帧和接收数据帧的两种场景,其中$t$为初始时刻,此时甲方的发送和确认序号均为$0$,$t_1$时刻甲方有足够多的数据待发送。请回答下列问题。
|
||||
|
||||
1)对于图($a$),$t_0$时刻到$t_1$时刻期间,甲方可以断定乙方已正确接收的数据帧数是多少?正确接收的是哪几个帧(请用$S_{x,y}$形式给出)?
|
||||
|
||||
2)对于图($a$),从$t_1$时刻起,甲方在不出现超时且未收到乙方新的数据帧之前,最多还可以发送多少个数据帧?其中第一个帧和最后一个帧分别是哪个(请用$S_{x,y}$形式给出)?
|
||||
|
||||
3)对于图($b$),从$t_1$时刻起,甲方在不出现新的超时且未收到乙方新的数据帧之前,需要重发多少个数据帧?重发的第一个帧是哪个帧(请用$S_{x,y}$形式给出)?
|
||||
|
||||
4)甲方可以达到的最大信道利用率是多少?
|
||||
|
||||
|
||||
|
||||
@@ -297,7 +297,7 @@ GBN会一次性将在发送窗口内的$n$个帧一个个全部发送完,然
|
||||
#### GBN发送方必须响应的事件
|
||||
|
||||
1. 上层调用:上层发送数据,发送方必须检查发送窗口是否已满,未满则产生帧并发送,若已满则先缓存数据,等窗口不满时再发送。
|
||||
2. 收到一个$ACK$:对$n$号帧采取累积确认(偶尔捎带确认)的方式,即标明接收方已经收到$n$号帧和其之前的全部帧。
|
||||
2. 收到一个$ACK$:对$n$号帧采取累积确认,偶尔捎带确认(在计算机通信中,当一个数据帧到达的时候,接收方并不是立即发送一个单独的控制帧,而是抑制一下自己并且开始等待,直到网络层传递给它下一个分组。然后,确认信息被附在往外发送的数据帧上——帧头中的$ACK$域。实际上,确认报文搭了下一个外发数据帧的便车。这种“将确认暂时延迟以便可以钩到下一个外发数据帧”的技术称为捎带确认)的方式,即标明接收方已经收到$n$号帧和其之前的全部帧。
|
||||
3. 超时事件:如果出现超时,则发送方重传所有已发送但是未被确认的帧。接收方只按顺序接受帧,对于其非期待的确认帧则丢弃。
|
||||
|
||||
#### GBN接收方要做的事件
|
||||
|
||||
Reference in New Issue
Block a user