计算机网络4章习题及参考答案0720.docx
《计算机网络4章习题及参考答案0720.docx》由会员分享,可在线阅读,更多相关《计算机网络4章习题及参考答案0720.docx(14页珍藏版)》请在冰豆网上搜索。
![计算机网络4章习题及参考答案0720.docx](https://file1.bdocx.com/fileroot1/2023-1/28/15b80611-9310-4140-90b3-52025560131c/15b80611-9310-4140-90b3-52025560131c1.gif)
计算机网络4章习题及参考答案0720
第4章数据链路层
1.指出数据链路连接和物理连接的区别与联系。
答案:
当位于链路两端结点上的包交换机(路由器或结点交换机)处于关闭状态时,就称连接这两个结点的物理媒体(即通信线路)处于静止状态。
当链路两端的结点交换机开机后,由于物理层协议的作用,该二结点就可以通过物理媒体传送比特了。
因此,称从结点交换机开机到通信完毕后关机为止的这段时间为物理连接生存期。
在物理连接生存期中,由于通信线路中总存在着噪声和干扰,使数据传输不够可靠,因此,通常并不利用这种物理连接传送比特流,称该物理媒体现在处于空闲状态。
当数据链路连接在物理连接的基础上建立起来以后,由于数据链路连接具有差错检测功能,可以使不太可靠的链路变得更为可靠。
称该物理媒体现在处于活动状态,可靠的数据传输正是在这一状态下进行的。
数据链路从建立到断连,即为数据链路的生存期。
当数据链路断连时,物理连接既可以保持,也可以断开。
2.一个上层报文被分成10帧,每帧无损坏地到达目的地的可能性是80%。
假设数据链
路协议不进行差错控制,请问该报文要完整地到达接收方平均要发送多少次?
答案:
由于每一帧以0.8的概率到达,整个信息到达的概率是p=0.810≈0.107。
一次发送成功的概率是P,二次成功的概率是(l-P)P,三次成功的概率是(l-P)2P,i次成功的概率是(l-P)i-1P。
因此,为使信息完整地到达接收方,平均发送次数等于:
E=l×p+2(l-p)p+3(l-p)2p+…+i(1-p)i-1p+…
=
[i(1-p)i–1p]=p
i(1-p)i-1
为化简这个式子,利用公式:
S=
ai=a/(1-a)(a<1)
S’=
iai-1=1/(1-a)2
令(l-P)=a
E=P
iai-1=P/(1-a)2=P/[1-(l-P)]2=P/P2=1/P
代入p=0.810≈0.107
E=1/P≈1/0.107≈9.3
因此,假设数据链路协议不进行差错控制,该报文要完整地到达接收方平均要发送9.3
次。
3.一个报文被分成多块传输,需在每一块上附加诸如同步、差错控制及地址字段比特,
假设每个块包含N比特(其中有H个附加比特),出错的块必须重发。
当发送一个1352比特的报文时,若在每一块上附加的比特数H为168比特,线路的比特错误率e=10-4,试确定能使平均传送的比特数(包括重传比特)最小的块长度N。
当e=10-3时,结果会有什么不同?
答案:
传送一块的出错概率是p=l-(1-e)N
每块需要传送的平均次数是:
T=1+
ipi(1-p)=1+p/(1-p)=1/(1-p)
(注:
1代表成功的那一次,
重传的平均次数
ipi(1-p)=p(1-p)
ipi-1
=p(1-p)/(1-p)2=p/(1-p);
计算中利用了公式:
S=
ai=a/(1-a)(a<1),S’=
iai-1=1/(1-a)2)
由于报文长度等于1352比特,则该报文将分成[1352/(N-168)]块。
则平均该报文传送的总次数是[1352/(N一168)]×[1/(l-P)]
所以总共传送的比特数是:
G=[1352/(N一168)]×[1/(l-P)]×N
用p=l-(1-e)N代人,得到
G=[1352/(N一168)]×[1/(l-P)]×N
=[1352/(N一168)]×[1/(1-e)N]×N
=[1352/(1-e)N]×[1/(N一168)]×N
当e<<1时,(1-e)N≈1-eN,所以
G=[1352/(1-eN)]×[1/(N一168)]×N
令dG/dN=0
得到eN2=168
所以N=
当e=10-4,N≈1296;当e=10-3,N≈410。
4.一个报文由100个8比特字符组成,使用下列方案在一条数据链路上传输,需要多少附加的比特?
(1).异步方式,每个字符使用一个起始位和两个停止位,每个报文使用一个帧起始字符和一个帧结束字符;
(2).同步方式,每个报文使用两个同步字符(一个帧起始字符和一个帧结束字符)。
答案:
(1).异步方式,每个字符中的附加位数等于1+2=3,(3×100)+2×(3+8)=322,
所以,传输一个报文需要322个附加的比特。
(2).同步方式,每个报文附加两个同步字符(一个帧起始字符和一个帧结束字符)。
2×8=16,所以,传输一个报文需要16个附加的比特。
5.报文片断(ABESCCESCFLAGFLAGD)出现在一个数据流的中间,而成帧方法采用的是字节填充法,请问经过填充之后的输出是什么?
答案:
经过填充后,得到ABESCESCCESCESCESCFLAGESCFLAGD。
6.有人认为,每一帧的结束处是一个标志字节,而下一帧的开始处又是另一个标志字节,这种做法非常浪费空间。
用一个标志字节也可以完成同样的任务,这样就可以节省一个字节。
你同意这种观点吗?
答案:
如果一直在发送或接收一个无尽的帧流,一个标志字节就够了。
但是如果一帧结束(有一个标志字节)后,而在随后例如60分钟之内都没有新的帧,那会发生什么情况呢?
接收方如何知道下一字节就是新帧的起始位而不是线路上噪音呢?
这种起始和结束均依靠同一个标志字节的协议过于简单了。
7.数据链路协议中使用了下面的字符编码:
A:
01000111;B:
11100011;FLAG:
01111110;ESC:
11100000为了传输一个包含4个字符的帧:
ABESCFLAG,请给出当使用下面的成帧方法时所对应的位序列(用二进制表达):
(a)字符计数。
(b)包含字节填充的标志字节。
(c)包含位填充的起始和结束标志。
答案:
(a)使用字符计数成帧方法时所对应的位序列:
0000010001000111111000111110000001111110
(b)使用包含字节填充的标志字节成帧方法时所对应的位序列:
0111111001000111111000111110000011100000111000000111111001111110
(c)使用包含位填充的起始和结束标志成帧方法时所对应的位序列:
011111100100011111010001111100000001111101001111110
8.在面向比特同步协议(HDLC)的帧数据段中,为了实现数据的透明传输,采用“0”比特插入技术。
假定在数据流中包含:
5F、9E、71、7F、E1,请给出其原始比特序列和“0”比特插入后的比特序列。
原始比特序列为:
“0”比特插入后的比特序列为:
答案:
9.差错的定义是什么?
在数据传输中差错是如何产生的?
由哪些原因可能引起差错?
答案:
差错是指通过信道后,接收的数据与发送的数据不一致的现象。
由于通信信道中总是有一定的噪声存在,接收端收到的是信号与噪声的叠加;因此如果噪声对信号叠加的结果在电平判断时出错,就会引起传输数据的差错。
通信信道的噪声分为热噪声和突发噪声两类。
热噪声是由传输介质导体的电子热运动产生的,由热噪声引起的差错是一种随机差错。
突发噪声是由外界电磁干扰引起的,由突发噪声引起的差错是一种突发差错。
突发噪声幅度与热噪声相比较大,它是引起传输差错的主要原因。
10.误码率的定义是什么?
为什么通过电话线进行计算机通信要采取差错控制技术?
答案:
误码率是指二进制码元在数据传输系统中被传错的概率。
误码率是衡量数据传输系统正常工作状态下传输可靠性的主要参数之一。
由于在电话线上进行数据传输的平均误码率远高于计算机通信要求的水平,因此如果在普通电话线路上不采取差错控制技术,那么计算机所进行的数据传输是相当不可靠的。
11.某一个数据通信系统采用CRC校验方式,并且生成多项式G(x)的二进制比特序列为11001,目的结点接收到的二进制比特序列为110111001(含CRC校验码)。
请判断传输过程中是否出现了差错?
答案:
由于接收到的二进制比特序列为“110111001”不能被生成多项式对应的二进制比特序列“11001”整除,故断定在传输过程中出现了差错。
12.假设使用位填充成帧的方法,请问,因为丢失一位、插入一位,或者窜改一位而引起的错误是否能通过校验和检测出来?
如果不能的话,请问为什么不能?
如果能够检测出来的话,请问校验和长度在这里是如何起作用的?
答案:
这有可能。
假设原文包含的数据部分为比特序列01111110。
经过比特填充后,序列会变为011111010。
如果第二个0因为传输错误丢失了,接收到的是01111110,导致接收方认为是帧的结束位。
然后,它对帧结束位之前的数据进行校验和处理并进行检验。
如果校验和占16比特,就有1/216的机会是正确的(即错误不能够被检测出来),其余均错(错误能够被检测出来)。
校验和越长,错误发生而未察觉的概率就越低,但是概率永远不会为0。
13.检测错误的一种方法是按n行、每行k位来传输数据,并且在每行和每列加上奇偶位。
其中右下角是一个检查它所在行和所在列的奇偶位。
这种方案能够检测出所有的单个错吗?
2位错误呢?
3位错误呢?
答案:
一个单一错误会导致水平和垂直奇偶校验都出错。
2个错误也会倍容易地检测出来。
如果它们是不同的行,行奇偶就会捕获它们。
如果它们在同一行,列奇偶会捕获它们。
3个错误可能不会被检测出来,例如,如果一些比特和它的行或列奇偶比特一起倒转了。
连右下角比特都不会捕获它。
14.利用CRC方法来传输位流10011101。
生成多项式为
。
请给出实际被传输的位串。
假设在传输过程中左边第三位变反了。
请证明,这个错误可以在接受端被检测出来。
答案:
该帧是10011101。
生成多项式是1001。
经过添加3个0后信息为10011101000。
100111011000被1001除得余数100。
所以,实际比特串传输的是10011101100。
接收到的带一个错误(在左边第三个比特)的比特流从左至右为10111101100。
此数被1001除产生的余数为100,这与0不同。
因此,接收方检测到这个错误,并要求重传。
15.数据链路协议几乎总是将CRC放在尾部,而不是头部,请问这是为什么?
答案:
CRC在传输期间被计算,一旦把最后一个比特发送出去,CRC就被计算出来了,并可添加到输出流尾部。
如果CRC在头部,在传输前为了计算CRC,必须将该帧扫描一次。
这就要求每个字节要处理两次:
一次进行校验和计算,一次进行传输,使工作量加班加点,不合理。
16.简介CRC的检错能力。
答案:
每个CRC标准都能检测出所有长度≤k的突发差错和奇数个比特错。
当所有位模式的出现等可能时,长度大于k+1的突发错不能被查出的概率是2-k。
此处,k是生成多项式的次数,也是校验位的个数。
17.简介CRC的编码过程中的运算规则。
答案:
CRC的编码过程中,对多项式的运算是根据代数理论的规则作模2运算(其实质是对由该多项式的系数构成的二进制位串作模2运算),模2加减的规则为:
两数相同为0,两数相异为1,没有加法进位和减法借位。
多项式除法与通常的十进制多项式除法采用相同的方法,只是减法要采用与上面一样的模2运算。
18.在一个1Mb/s的卫星信道上发送1000b长的帧。
确认总是捎带在数据帧中。
帧头很短,使用3位的序列号。
对以下协议而言,可以取得的最大信道利用率是多少?
(1).停一等协议
(2).回退N滑动窗口协议
(3).选择重传滑动窗口协议
答案:
对应三种协议的窗口大小值分别是1、7和4。
使用卫星信道端到端的传输延迟是270ms,以1Mb/s发送,1000b长的帧的发送时间是1ms。
用t=0表示传输开始时间,那么在t=1ms时,第一帧发送完毕。
t=27lms,第一帧完全到达接收方。
t=272ms时,对第一个帧的确认帧发送完毕。
t=542ms时带有确认的帧完全到达发送方。
因此周期是542ms。
如果在542ms内可以发送k个帧(每个帧发送用1ms时间),则信道利用率是k/542,因此,
(1).k=1,最大信道利用率=1/542=0.18%
(2).k=7,最大信道利用率=7/542=1.29%
(3).k=4,最大信道利用率=4/542=0.74%
19.图4-11给出了停止等待协议的模型,停止等待协议算法的流程图如图4-12所示。
在接收结点,算法的几个步骤是:
…
(2)等待。
…
(4)若N(S)=V(R),则…,否则丢弃此数据帧,然后转到(7)。
…
(7)发送确认帧ACK,并转到
(2)。
(8)发送否认帧NAK,并转到
(2)。
对上述停止等待协议算法,在接收方,当执行步骤(4)时,若将“否则…转到(7)”改为“否则…转到(8)”,将产生什么结果?
答案:
“否则”是指发送方发送的帧的N(S)与接收方的状态变量V(R)不同。
这表明发送方没有收到接收方发出的ACK,于是重传上次的帧。
接收方丢弃此数据帧,然后转到(7)发送确认帧ACK,将使发送方回到正常状态(发下一帧)。
若“转到(8)”,接收方就要发送NAK。
发送方收到NAK,将以为检查结果有误,则将继续重传上次的帧,并一直这样下去。
20.信道速率为4kb/s。
采用停止等待协议。
传播时延tp=20ms。
确认帧长度和处理时间均可忽略。
问帧长为多少才能使信道利用率达到至少50%?
答案:
假定信道传输无差错。
信道利用率为50%,相当于帧的发送时间等于往返时延。
得出帧长为160bit。
21.举例说明:
当用n个比特进行编号时,若接收窗口的大小为1,则只有在发送窗口的大小WT2n1时,连续ARQ协议才能正确运行。
答案:
如图4-37所示。
设接收窗口正好在7号帧处(有阴影的帧)。
图4-37连续ARQ协议的发送窗口
发送窗口WT的位置不可能比②更靠前,也不可能比③更靠后,也可能不是这种极端位置,如①。
对于①和②的情况,在WT的范围内无重复序号,即WT2n。
对于③的情况,在WTWR的范围内无重复序号,即WTWR2n。
现在WR=1,考虑最坏情况③,显然,发送窗口的最大值WT2n–1。
22.举例说明:
对于选择重传ARQ协议,若用n比特进行编号,则接收窗口的最大值受公式WR≤2n/2的约束。
答案:
因WTWR2n,而WR的最大值不能超过WT(否则无意义),故得出WR≤2n/2式。
23.在选择重传ARQ协议中,设编号用3比特,发送窗口WT=5,接收窗口WR=4。
举出使协议不能正确工作的一种情况。
答案:
设想在发送窗口内的序号为0,1,2,3,4;而接收窗口等待后面的,5,6,7,0。
接收端若收到0号帧,则无法判断是新帧或重传的(当确认帧丢失)。
24.在连续ARQ协议中,设编号用3比特,发送窗口WT=8。
试找出使协议不能正确工作的一种情况,
答案:
设想在发送窗口内的序号为0,1,2,3,4,5,6,7;而接收窗口等待后面的0。
接收端若收到0号帧,则无法判断是新帧或重传的帧(当确认帧丢失)。
25.分析使选择重传ARQ协议和连续ARQ协议效果一致的条件?
答案:
当传输无差错时,或当WR=1时。
26.卫星信道的容量为1Mb/s,数据帧长为2000b,忽略确认帧长和处理时间。
计算以下情况的信道利用率:
(1)停止等待协议。
(2)连续ARQ协议,WT=7。
(3)连续ARQ协议,WT=127。
(4)连续ARQ协议,WT=255。
答案:
题目忽略确认帧长和处理时间,也忽略误码。
对应4种协议的窗口大小值分别是1、7、127和255。
设使用卫星信道端到端的传输延迟是270ms,以1Mb/s发送,2000b长的帧的发送时间是2ms。
用t=0表示传输开始时间,则在t=2ms时,第一帧发送完毕。
t=272ms,第一帧完全到达接收方。
t=272ms时,对第一个帧的确认帧发送完毕(忽略确认帧长和处理时间)。
t=542ms时带有确认的帧完全到达发送方。
因此周期是542ms。
如果在542ms内可以发送k个帧(k=WT),每个帧发送用2ms时间,则信道利用率U=2k/542=k/271,因此各情况下的信道利用率为:
(1)停止等待协议:
U=1/271=0.36%。
(2)连续ARQ协议,WT=7:
U=7/271=2.52%。
(3)连续ARQ协议,WT=127:
U=127/271=45.72%。
(1)连续ARQ协议,WT=255:
U=255/271=91.8%。
27.一条3000km的T1线路被用来传输64字节的帧,发送方与接收方之间使用回退N帧技术的滑动窗口协议。
如果传输速度为6μs/km,则序列号应该有多少位?
答案:
信号跨越3000km的传播的时间是18ms。
一个64字节帧以T1速度(即1.536Mbps,不包括1bit头部)发送,需要0.3ms。
因此,第一个帧自开始发送到完全到达对方需要18.3ms。
对方的确认经过另一个18ms返回(加上一个小的可以忽略的时间)。
因此,到确认完全返回所用的时间总共为36.3ms。
为了有效操作,序列空间(实际上,发送窗口尺寸)必须足够大才能保证发送方持续发送直到第一个确认被收到。
根据上述分析可知,发送方的窗口空间必须足够持续36.3ms。
发送一帧需要0.3ms,所以填充发送方与接收方之间36.3ms的数据管道总共需要121个帧。
7-bit序列编号即可满足此要求。
28.想象你正在编写一个数据链路层软件,它被用在一条专门给你发送资料的线路上,而不是让你往外发送资料。
另一端(发送方)使用了HDLC,3位序列号和一个可容纳7帧的窗口(发送窗口)。
你希望将乱序的帧尽可能多地缓存起来,以提高效率,但是你又不允许修改发送方的软件。
是否有可能让接收方的窗口大于1,并且保证该协议仍然不会失败呢?
如果可能的话,能够安全地使用的最大接收窗口是多少?
答案:
不可能。
最大接受窗口尺寸只能是1。
现在,假设最大接受窗口尺寸是2。
开始时,发送方发送帧0~6,假定所有的帧都被收到并被确认(接收方返回对6的确认帧,因为接受窗口尺寸是2,所以接收方现在准备接收帧7和0)。
不幸的是确认帧(对0~6的确认帧)丢失了。
超时后,发送方会重传帧0~6。
当重传的0帧到达接收方时,因为接收方现在准备接收的是帧7和0。
重传的0帧就会被缓存(接收方认为此0帧在接受窗口内,但次序超前了,显然,这是接收方的误解。
同时会把1~6帧抛弃,因为接收方现在只准备接收帧7和0,当然还是接收方的误解。
)。
基于误解,接收方将返回对6的再次确认。
当7进入时,7和0会被送给主机,导致协议失效。
29.在一个负载很重的50kbps的卫星信道上使用选择重传滑动窗口协议,数据帧包含40位的头和3960位的数据,请计算一下浪费在头部和重传的开销占多少比例。
假设从地球到卫星的信号传输时间为270ms。
ACK帧永远不会发生。
NAK帧为40位。
数据帧的错误率为1%,NAK帧的错误率忽略不计。
序列号为8位。
答案:
对一个50kbps信道和8bit序列号,管道总是满的。
每帧的重传数大约是0.01。
大约每100帧一次重传,即加上一个4000比特的重传帧,并再加上一个40bitNAK。
每个好的帧浪费(开销)40比特的头部。
加上4000比特的1%(重传),并再加上一个40bitNAK的1%。
于是,每3960数据比特会附加80.4比特开销(浪费),则浪费在头部和重传的开销占的比例为80.4/(3960+80.4)=1.99%。
30.考虑在一个无错误的64kbps卫星信道上单向发送512字节的数据帧,有一些非常短的确认从另一个方向回来。
对于窗口大小为1、7、15和27的情形,最大的吞吐量分别是多少?
从地球到卫星的传输时间为270ms。
答案:
数据帧的传输开始于t=0。
当t=(4096/64000)s=64ms时,最后一比特被发送。
当t=334ms,最后一个比特到达卫星,很短的ACK被发送(即可忽略其发送时间)。
当t=604ms时,ACK到达地球。
这里的数据速率是604ms内4096bits,即6781bps。
当窗口尺寸是7帧时,全窗口传输时间是448ms,此时发送方不得不停下来。
在604ms,第一个ACK到达,循环可以再次开始。
这里604msec有74096=28,672bits。
数据速率是47470.2bps。
当第一个ACK在604ms返回并且发送器仍在发送时,持续的传输才会出现。
换句话说,如果窗口尺寸大于604ms的等值传输量(帧数为604ms/64ms),它就可以全速运行。
自然,当窗口尺寸为10或者更大时,这个情况也会遇到。
所以对于任何窗口尺寸为10或者更大(15或者127),数据速率都为64kbps。
31.简介HDLC帧控制字段中P/F比特的作用。
答案:
HDLC所有三种帧(I、S、U)在控制字段的第5个比特均是询问/终止(Poll/Final)比特,简称P/F比特。
仅当P/F比特的值为1时才具有意义,若P/F值为零,则没有意义。
在不同的数据传送方式中,P/F比特的用法不一样。
在非平衡配置的正常响应方式NRM中,主站将该位置1,则为P比特;次站将该位置1,则为F比特。
次站仅当收到主站发出的P比特为1的命令帧(S帧或I帧)后才能发送响应帧。
若次站有数据发送,则在最后一个数据帧中将F比特置1。
若无数据发送,则应在回答的S帧中将F比特置1。
在非平衡配置的异步响应方式ARM或在平衡配置的异步平衡方式ABM中,任何一个站都可以在主动发送的S帧和I帧中将P比特置1。
对方站收到P=1的帧后,应尽早地回答本站的状态并将F比特置1,此时F比特置1不表示数据已发完并不再发送数据了。
32.HDLC规定,接收序号N(R)表示序号为[N(R)1](mod8)的帧以及在这以前的各帧都已正确无误地收妥了。
如果定义N(R)表示序号为N(R)(mod8)的帧以及在这以前的各帧都已正确无误地收妥了,有何不便之处?
答案:
并无不便。
33.PPP协议的适用环境是什么?
答案:
PPP协议的适用环境是点到点的数据链路。
34.PPP基本上是以HDLC为基础的,HDLC则使用了位填充技术来防止在有效载荷数据中偶尔出现标志字节,以避免引起混淆。
说明为什么PPP使用字节填充技术?
答案:
很明显,PPP被设计为用软件来实现,不像HDLC差不多总是用硬件来实现。
由于是软件实现,字节处理方式要比单个比特处理方式简单得多。
35.用PPP来发送IP分组的最小开销是多少?
只计算由于PPP本身而引入的开销,不计算IP头部的开销。
答案:
在最小开销情况下,每一帧有2个标志字节,1个协议字节,2个校验和字节,每帧一共5个开销字节。
36.为何要采用形式描述(FormalDescription)的方法精确地描述协议?
答案:
实际的计算机网络协议往往是非常复杂的,为了正确地理解和实现协议,首先需要采用形式描述的方法精确地描述协议,而在具体实现协议之前还需要验证