《计算机网络》课程作业与参考答案一、计算机网络基本概念1.在OSI的第几层分别处理下面的问题?a. 将待传送的比特流化分成帧b. 决定使用哪一条路径通过子网c. 传输线路上的位流信号同步d. 两端用户间传输文件2.一个系统的协议结构有N层。
应用程序产生M字节的报文。
网络软件在每层都加上 h 字节长的协议头。
那么,网络带宽中有多大比率用于协议头信息的传输?3.有确认服务和无确认服务之间的差别是什么?在下列情况下,请说出哪些可能是有确认服务或无确认服务?哪些两者皆可?哪些两者皆不可?a. 连接建立b. 数据传输c. 连接释放4.参照下图回答问题。
图中的每个方框表示一个网络结点。
以星号标注的圆圈表示你的终端。
a.你的本地结点是哪一个?b.哪些结点是你的本地结点的相邻结点?c.对你的本地结点来说,哪些结点是远程结点?d.哪些结点是终端结点(END NODES)?e.哪些结点是路由结点(ROUTING NODES)?f.从结点F到G的最短通路有多少跳段(HOPS)?习题解答1.a.第二层(数据链路层)将待传输的比特流化分为帧b.第三层(网络层)决定使用哪条路径通过子网c.第一层(物理层)d.第七层(应用层)2.总共有N层,每层加h字节,在每个报文上附加的头字节的总数等于hN,因此,头消耗的有关空间所占的网络带宽的比率为hN/(M+hN)。
3.在有确认服务中,作为对请求原语的反应,接收方要发出一个明确的响应原语。
具体的说,有确认服务包括请求,指示,响应和证实4个原语,而无确认服务则只有请求和指示2个原语。
连接服务总是有确认服务,因为远程对等实体必须同意才能建立连接。
在所给出的3个例子中,a必须是有确认服务;取决于网络设计者的选择,b和c可以是有确认服务,也可以是无确认服务。
4. a. Cb. A和Gc.A,B,D,E,F,G和Hd.D,F,G和He.A,B,C和Ef. 5二、物理层1.一个用于发送二进制信号的3kHz信道,其信噪比为20dB,可以取得的最大数据速率是多少?2.比较在一个电路交换网和在一个(负载轻的)分组交换网上将x(bit)报文沿k个跳段传输的通路传输的延迟.假定电路建立时间是s,每跨段上的传输延迟为d,分组大小为p(bit),数据传输速率是b(b/s).在什么情况下,分组交换网的延迟更短?(忽略分组头的开销)3.在两个DTE之间传送1000bit的数据块.试对下列类型的链路分别计算传播延迟对发射延迟的比率.a. 100m的双绞线和10kb/s的发射速率.b. 10km的同轴电缆和1Mb/s的发射速率.c. 50000km的自由空间(卫星链路)和10Mb/s的发射速率。
假定在每种类型的电缆内电信号的传播速率时2 ×108 m/s,在自由空间内信号的传播速率时3 ×108m/s。
参考答案1.20=10lg100仙农极限是3log(1+100)=3×6.66=19.98kb/s奈魁斯特极限是6kb/s显然,瓶颈是奈魁斯特极限,最大数据速率是6kb/s。
2.对于电路交换,t=s时电路就会建立起来;t=s+x/b时报文的最后一位发送完毕;t=s+x/b+kd 时报文到达目的地。
而对于分组交换,最后一位在t=x/b时发送完毕。
为到达最终的目的地,最后1个分组必须被中间的路由器重发k-1次,每次重发花时间p/b(一个分组的所有比特都接收齐了,才能开始重发,因此最后1位在每个中间结点的停滞时间为最后一个分组的发送时间),所以总的延迟为:x/b+(k-1)p/b+kd为使分组交换比电路交换快,令:x/b+(k-1)p/b+kd < s+x/b+kd得: s > (k-1)p/b当满足此条件时,分组交换网得延迟更短。
3.(a)T P = S / V = 100 /2×108 = 5×10-7 sT X = N / R = 1000 / 10×103 = 0.1 sa = T P / T X = 5×10-7 / 0.1 = 5×10-6(b)T P = S / V = 10×103 / 2×108 = 5×10-5 sT X = N / R = 1000 / 1×106 = 1×10-3 sa = T P /T X = 5×10-5 / 1×10-3 = 5×10-2(c)T P = S / V = 5×107 / 3×108 = 1.67×10-1 sT X = N / R = 1000 / 10×106 = 1×10-4 sa = T P / T X = 1.67×10-1 /1×10-4 = 1.67×103三、数据链路层1.为提供比使用单个奇偶位可能得到的更大可靠性,一种检错编码方案使用一个奇偶位检测所有的奇数位,用第二个奇偶位检测所有的偶数位。
那么此代码的海明距离时多少?2.信息有效数据m是每个字符用7bit字节编码的ASCII码串“well”,即m长28位,其中,w=1110111,e=1100101,l=1101100,取多项式CRC-12=X做循环冗余检验编码,求该码串的冗余部分r(要求写出主要的计算步骤)。
3.一个信道的比特率是4kb/s,传输延迟为20ms,那么帧的大小在什么范围内,停-等协议才有至少50%的效率?4.一个3000km长的T1干线被用来传输采取后退n帧错误重传滑动窗口协议的长度都是64字节的数据链路帧。
如果传播速度是每公里6微秒,那么序列号应该是多少位?5.假定在一条无错线路上运行采用选择性重传的滑动窗口协议,线路速率是1Mb/s,最大帧长度是1000bit。
每一秒产生一个新帧。
超时间隔是10ms。
如果删除ACK超时机制,将会发生不必要的超时事件。
平均每个报文要传送多少次?6.在一个1Mb/s的卫星信道上发送1000bit长的帧。
确认总是捎带在数据帧中。
帧头很短,使用3位序列号。
对以下协议而言,可以取得的最大信道利用率是多少?(a)停-等协议(b)回退N滑动窗口协议(c)选择性重传滑动窗口协议7.使用选择性重传滑动窗口协议,在有重负载的50kb/s的卫星信道上,传输包括40位的头部和3960个数据位的数据帧,ACK帧从未发生过,NAK帧长40位,数据帧的错误率是1%,NAK的传输错误率可忽略不计,序列号长度是8位。
试计算花在开销(头和重传)上的带宽的比例。
8.使用一个64kb/s的无错卫星通道发送512字节的数据帧(在一个方向上),而在另一个方向上返回很短的确认帧。
对于窗口大小1,7,15,和127的最大吞吐率是多少?参考答案:1. 由于奇偶位性质,对任何有效码字做一个改变不会产生另一个有效码字。
对偶数位做两个改变或对奇数位做两个改变将产生另一个有效码字,因此海明距离是2。
2. 用被除数= 1110111 1100101 1101100 1101100 000000000000除数= 1100 0000 01111做二进制除法,得到商= 1011010 1010101 1001000 1010110余数r = 1111 0001 0010,因此该码串的冗余部分r就等于1111 0001 00103. 当发送一帧的时间等于信道的传播延迟的2倍时,信道的利用率是50%。
或者说,当发送一帧的时间等于来回路程的传播延迟时,效率将是50%。
20ms⨯2 = 40ms现在发送的速率是每秒4000bit,即发送一位需0.25ms40ms÷0.25ms/bit = 160bit所以当帧大于160位停-等协议才有至少50%的效率。
4.为了有效运行,序列空间(实际就是发送窗口的大小)必须足够大,以允许发送方在收到第1个确认应答之前可以不断发送。
6⨯3000 = 18000 us传播时间是18000us,即18ms。
在T1速率,即:8⨯24⨯8000 = 1.536⨯106b/s (不包括每个物理帧中的1个帧位) 发送64字节的帧需花时间:64⨯8÷1.536≈333 us, 即0.333 ms, 约等于0.3ms。
因此,第一个帧从开始发送起,18.3ms后完全到达接收方。
确认应答又花了回程18ms 加上很少的(可以忽略)发送时间,就可以完全收到。
这样,加在一起的总时间为36.3ms。
发送方应该有足够的窗口空间,从而能够连续发送36.3ms。
36.3÷0.3 = 121也就是说,为充满管道需要121帧,因此序列号应该是7位。
5. 发送1位用时间1us,发送1000bit的最长帧花时间1ms。
由于超时间隔是10ms,而1s才能产生一个新的数据帧,所以超时是不可避免的。
假定A站向B站发送一个帧,正确到达接收方,但较厂时间无反向交通。
不久,A站发生超时事件,导致重发已发过的一帧。
B站发现收到的帧的序列号错误,因为该序列号小于所期待接收的序列号。
因此B站将发送一个NAK,该NAK会携带一个确认号,导致不再重发该帧。
结果是,每个帧都被发送两次。
6. 对应三种协议的窗口大小值分别是1,7和4。
使用卫星信道端到端的传输延迟是270ms。
以1Mb/s发送,1000bit长的帧的发送时间是1ms。
我们用t = 0表示传输开始时间,那么在t = 1ms时,第一帧发送完毕。
t = 271ms,第一帧完全到达接收方。
t = 272ms时,对第一个帧的确认帧发送完毕。
t = 542ms时带有确认的帧完全到达发送方。
因此周期是542ms。
如果在542ms内可以发送k个帧,(每个帧发送用1ms 时间),则信道的利用率是k/542,因此:(a)k = 1,最大信道利用率= 1/542 = 0.18%(b)k = 7,最大信道利用率= 7/542 = 1.29%(c)k = 4,最大信道利用率= 4/542 = 0.74%7. 使用选择性重传滑动窗口协议,序列号长度是8位。
窗口大小为28÷2 = 128。
卫星端到端的传输延迟是270ms。
以50kb/s发送,4000bit(3960+40 = 4000)长的数据帧的发送时间是0.02⨯4000 = 80ms。
我们用t = 0表示传输开始时间,那么在t = 80ms时,第一帧发送完毕。
t =279+80 = 350ms时,第一帧完全到达接收方。
t = 350+80 = 430ms时,对第一帧做捎带确认的反向数据帧可能发送完毕。
t = 430+270 = 700ms时,带有确认的反向数据帧完全到达发送方。
因此周期是700ms。
在700ms内可以发送128帧,80ms⨯128 = 1024ms。