计算机网络课程作业与参考答案

计算机网络课程作业与参考答案
计算机网络课程作业与参考答案

《计算机网络》课程作业与参考答案

一、计算机网络基本概念

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. C

b. A和G

c.A,B,D,E,F,G和H

d.D,F,G和H

e.A,B,C和E

f. 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 s

T X = N / R = 1000 / 10×103 = 0.1 s

a = T P / T X = 5×10-7 / 0.1 = 5×10-6

(b)T P = S / V = 10×103 / 2×108 = 5×10-5 s

T X = N / R = 1000 / 1×106 = 1×10-3 s

a = 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 s

T X = N / R = 1000 / 10×106 = 1×10-4 s

a = 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 0010

3. 当发送一帧的时间等于信道的传播延迟的2倍时,信道的利用率是50%。或者说,当发送

一帧的时间等于来回路程的传播延迟时,效率将是50%。

20ms?2 = 40ms

现在发送的速率是每秒4000bit,即发送一位需0.25ms

40ms÷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。显然,1024ms>700ms意味着传输管道总是充满的。每个帧重传的概率是0.01,对于3960个数据位,头位开销40位,平均重传位数是4000?0.01 = 40位,传送NAK的平均位数是40?1/100 = 0.40位,所以每3960个数据位的总开销是80.4位。因此开销所占带宽比例等于80.4÷(3960+80.4)≈ 1.99%。

8. 使用卫星信道端到端的传输延迟是270ms,以64kb/s发送,512字节长的数据帧占据通道的时间是512?8÷64000 = 64ms。我们用t = 0表示传输开始时间,那么在t = 64ms时,第一帧发送完毕。t = 64+270 = 334,第一帧完全到达接收方,并开始返回很短的确认帧(发射时间忽略不记),

t =334+270 = 604ms,确认帧完全到达发送方。因此,周期等于604ms,我们需要窗口大小为

604÷64 ≈ 9个帧才能保持通道的不空。

对于窗口值1,每604ms可发送4096位,吞吐率为4096÷0.604 ≈ 6781b/s。

对于窗口值7,吞吐率为6781?7 = 47637b/s,约为47.5kb/s。

对于窗口值超过9帧,(包括15帧和127帧的情况),吞吐率达到完全速率64kb/s。

四、介质访问子层

1.一组N个站点共享一个56kb/s的纯ALOHA信道。每个站点平均每100秒输出一个1000bit的帧,即使前一个帧还没有发送完也依旧进行。N的最大值是多少?

2.一个1km长的10Mb/s的CSMA/CD局域网(不是802.3),其传播速度是每微秒200米。数据帧的长度是256bit,其中包括用于帧头部,检验和以及其他开销的32bit。传输成功后的第一个时槽被留给接收方,用来捕获信道并发送一个32bit的确认帧。假定没有冲突发生,有效数据速率(不包括开销)是多少?

3.有一个重负荷的1km长的10Mb/s的令牌环网,其传输速率是200米每微秒,50个站空间上均匀绕环分布。数据帧256位,其中包括32位开销,确认应答捎带在数据帧中,因此是包括在数据帧内备用的位中,而不占用额外的时间。令牌是8位。请问,这个环的有效数据速率比CSMA/CD网是高还是低?

4.一个用作城域网的光纤令牌环长200km,并且以100Mb/s速率运行。在发送一帧之后,一个站在重新产生令牌之前把该帧从环上清除。在光纤中的信号传播速率示每秒20万km,且最大帧长1000字节。问该环的最大效率示多少?(忽略所有其他的开销来源)

5.一个大学计算机系由3个以太子网用两个透明网桥连成一个线形网络。有一天,管理员有事临时由他人代替,这个新的管理员注意到网络两端没连,便用一个新的透明网桥进行连接组成一个环。请问回发生什么情况?

参考答案:

1.对于纯ALOHA,可用的带宽是:0.184?56Kb/s=10.304b/s

每个站需要的带宽是:1000÷100=10b/s

因此,N=10304÷10≈1030

所以,最多可以有1030个站,即N的最大值是1030。

2.电缆的来回路程传播时间是10us(=1000÷200?2)。一个完整的传输有4个阶段:发送方获取电缆(10us);发送数据帧(25.6us);

接收方获取电缆(10us);发送确认帧(3.2us)。

4个阶段的时间总和是48.8us,在这期间共发送224个数据比特。224÷48.8≈4.6Mb/s。因此,有效数据速率约为4.6Mb/s。

3.从获取到令牌的时刻开始计量,发送一个分组需要0.1?256 = 25.6us。此外,必须发送一个令牌,需要0.1?8 = 0.8us的时间。令牌必须传输20(=1000÷50)m,经过时间20÷200 = 0.1us才能到下一站。此后,下一站又可以再发送数据帧。因此,我们在26.5(=25.6+0.8+0.1)us内发送了224(=256-32)位的数据,数据速率等于224÷26.5≈8.5Mb/s,而10Mb/s的CSMA/CD在重负荷50个站的情况下的有效数据率不超过3Mb/s。显然,该令牌环强于以太网的有效带宽。

4.由环长200km和传播速率每秒20万km,可知1bit绕环一周的时间是200÷(20?104)= 10-3s,即1ms。发送速率是100Mb/s,因此发送1bit的时间是0.01us。发送最长帧1000字节需要的时间是0.01?1000?8 = 80us,即0.08ms。当一个站抓到了令牌时,它发送数据帧用0.08ms,然后等待最后1位绕环一周用1ms。当它再放出一个闲令牌时,下一站通过把令牌中的1个令牌位置1就可以立即把该令牌转换成一个常规数据帧的开头3个字节,从而又抓住了令牌,开始发送数据帧。

5.将不会发生什么特殊情况。新的桥接器在网上宣告自己的存在,生成树算法为新的配置计算一个生成树。新的拓扑会把其中的一个桥接器设置成备用方式,它将在其他桥接器失效的情况下投入工作。这种类型的配置以附加的代价提供附加的可靠性,但并非不正常。它不会引起任何的问题,因为无论你连接多少个桥接器,结果总是以生成树的形式运行网络。

五、网络层

1.考虑下图所示的子网。使用距离向量路由选择,下列向量刚刚被路由器C收到:来自B:(5,0,8,12,6,2)

来自D:(16,12,6,0,9,10)

来自E:(7,6,3,9,0,4)

路由器C测量得到的到达B,D,和E的延时分别等于6,3和5。试问路由器C的新的路由表是什么?请给出所使用的输出线路和所预期的延时。

2.一个6Mb/s网络上的一台计算机受到令牌桶的交通管制。假定令牌填入速率为1Mb/s,开始时漏桶装填的容量是8Mb。那么,计算机可以用完全速率6Mb/s发送多长时间?

3.假定IP的B类地址不是使用16位而是使用20位作为B类地址的网络号部分,那么将会有多少个B类网络?

4.在因特网上的一个B类网络具有子网掩码255.255.240.0。问每个子网中的最大主机数目是多少?

参考答案:

1.通过B给出(11,6,14,18,12,8 )

通过D给出(19,15,9,3,12,13)

通过E给出(12,11,8,14,5,9)

取到达每一目的地的最小值(C除外)得到:(11,6,0,3,5,8)

输出线路是:(B,B,-,D,E,B)

2.我们使用公式S = C/(M-P),这里的S表示以秒计量的突发时间长度,M表示以每秒字节计量的最大输出速率,C表示以字节计量的桶的容量,P表示以每秒字节计量的令牌到达率。

将 C = 8?106÷8 =106,M = 6?106÷8,P = 1?106÷8代入公式得到:S = 1.6s。

因此,计算机可以用完全速率6Mb/s发送1.6s的时间。

3.除去2位作为前缀,将剩下的18位表示网络。从概念上讲,网络数目可以有218个,即262144个。然而全0和全1是特别地址,所以只有262142个可提供分配。

4.对于一个B类网络,高端16位形成网络号,低端16位是子网或主机域。在子网掩码的低端16位中,最高有效4位是1111,因此剩下12位(第3字节低4位和第4字节)用于主机号。因此,存在4096个主机地址,但由于然而全0和全1是特别地址,因此最大主机数目是4094个。

六、传输层

1.数据报的分片和重组由IP控制,并且对于TCP不可见。这是不是意味着TCP不必担心到达数据的失序问题?

2.一台TCP机器在1Gb/s的通道上使用65535字节的发送窗口,单程延迟时间等于10ms。问可以取得的最大吞吐率是多少?线路效率是多少?

3.考虑在一条具有10ms来回路程时间的线路上采用慢启动拥塞控制而不发生网络拥塞情况下的效应。接收窗口24KB,且最大段长2KB。那么,需要多长时间才能够发送第一个完全窗口?

4.假定TCP 拥塞窗口被置成18K字节,并且发生了超时事件。如果接着的4个突发量传输都是成功的,那么该窗口将是多大?假定最大报文段长度是1KB。

5.一个TCP链接使用256kb/s的链路,其端到端延时为128ms。经测试发现吞吐量只有128kb/s。试问窗口大小是多少?忽略PDU封装的协议开销以及接收方应答分组的发射时间(假定应答分组长度很小)。

参考答案

1.尽管到达的每个数据报都是完整的,但可能到达的数据报顺序是错误的,因此,TCP必须准备适当地重组报文的各个部分。

2.10ms×2=20ms

每20ms可以发送一个窗口大小的交通量,每秒50个窗口(1000÷20=50)。65535×8×50=26.214Mb/s

26.214Mb/s ÷1000Mb/s=2.6%

所以,最大吞吐率是26.214Mb/s,线路效率约为2.6%。

3.慢启动拥塞控制考虑了两个方面的问题,即网络容量和接收方容量,并且分别处理了每一个问题。为此,每个发送方都维持两个窗口,即接收方准许的窗口和拥塞窗口。发送方可以发送的字节数是这两个窗口中的最小值。

当建立一条连接的时候,发送方把拥塞窗口初始化为在该连接上使用的最大报文段尺寸,然后它发送一个最大报文段。如果这个报文段在超时之前得到确认,发送方就把拥塞窗口增加到两个最大报文段长,并发送两个报文段。当发出的每个报文段被确认时,拥塞窗口都要增加一个最大报文段长。因此,当拥塞窗口是n个报文段时,如果所有n个报文段都及时得到确认,那么拥塞窗口将增加相当于n个最大报文段的字节数。事实上,每一次突发性连续报文段都会使拥塞窗口加倍。

拥塞窗口继续按指数型增长,直到超时发生,或者到了接受方窗口的边界。其思想是,如果突发量1024,2048和4096字节工作得很好,但8192字节的突发量引起超时,那么,拥塞窗口应该设置为4096以避免拥塞。只要拥塞窗口保持在4096,不管接受方准许什么样的窗口空间,都不会发送大于4096字节的突发量。这种算法就被称为慢启动。当然,它根本不是慢的意思。现在所有的TCP实现都需要支持这个算法。

现在,最大的段长是2KB,开始的突发量分别是2K,4K,8K和16K字节,下面

是24KB,即第一个完全窗口。10ms×4=40ms。

因此,需要40ms才能发送第一个完全窗口。

4.在Internet的拥塞控制算法中,除了使用慢启动的接收窗口和拥塞窗口外,还使用第3个参数,即门槛值,开始置成64K。当发生超时的时候,该门槛值被设置成当前拥塞窗口值的一半,而拥塞窗口则重置成一个最大报文段长。然后再使用慢启动的算法决定网络可接受的突发量,一直增长到门槛值为止。从这一点开始,成功的传输线性地增加拥塞窗口,即每一次突发传输后只增加一个最大报文段,而不是每个报文段传输后都增加一个最大报文段的窗口值。

现在由于发生了超时,下一次传输将是1个最大报文段,然后是2个,4个和8个最大报文段,所以在4次突发量传输后,拥塞窗口将是8K字节。

5.来回路程的时延等于256ms(128×2)。设窗口值为X(注意:以字节为单位)假定依次最大发送量等于窗口值,且发送时间等于256ms,那么每发送依次都得停下来期待再次得到下一窗口的确认,以得到新的发送许可。这样,发送时间等于停止等待应答的时间,结果,测到的平均吞吐率就等于发送速率的一半,即128ms。

8X÷(256×1000)=256×0.001

X=256×1000×256×0.001÷8=256×32=8192

所以,窗口值为8192。

相关文档
最新文档