1、请列举出两个合适使用面向连接服务的计算机应用实例,再列举出两个最好使用无连接服务的计算机应用实例。
解:面向连接:文件传输,远程登录;无连接:信用卡核对,电子资金转账。
2、数据报网络将每个数据包当做独立的单位进行路由,路由过程彼此独立。虚电路网络不必采用这种方式,因为每个数据包都沿着一条预先确定的路由。试问,这是否意味着虚电路网络不需要具备将单个数据包从任意源端路由到任意接收方的能力呢?
解:虚电路的路由建立需要这样的能力。
3、请给出3个在建立连接时可能需要协商的协议参数例子。
解:需要通过协商给出窗口大小,最大包长,速率和定时值等参数。
4、假设所有的路由器和主机都正常工作,并且它们的软件也都没有错误。试问是否存在一个数据包被递交到错误目的地的可能性。
解:有可能,一个大的噪声突发可能眼中地篡改数据包。k位的校检无法检测出2-k的错误,如果目的地被篡改就有可能到达错误的目的地。
5、请给出一个简单的启发式算法,找出一个网络中从指定源端到指定目标端之间的两条路径,要求这两条路径在失去任何一条通信线路的情况下都能够辛免于难。
解:首先选择最短路径算法找到一条路由;然后移除已经找到的路径,再次使用最短路径算法找到另一条路径,这样可以相救。需要使用最大溢出算法防止这种启发式算法失败。
6、考虑下图中的网络,使用距离矢量路由算法。路由器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的新路由表,包括使用的出境线路和成本。
解:B的矢量(5,0,8,12,6,2)表示到ABCDEF的距离,那么C通过B到达其他节点的距离是:B的路径距离加上到C到B的链路成本(题目已经给出),即为(11, 6, 14, 18, 12, 8),比如B到A点距离为5,那么加上6就是11,以此类推。C通过D到达其他节点的路由距离为:(19, 15, 9, 3, 12, 13);C通过E到达其他节点的路由距离为 (12, 11, 8, 14, 5, 9)。所以C的最短路径为(11, 6, 0, 3, 5, 8),经过的线路为 (B, B, –, D, E, B)
7、在一个有50个路由器的网络中,如果成本以8位数字表示,并且距离矢量每分钟交换两次,试问每条(全双工)线路有多少带宽被这个分布式路由算法吞噬掉?假设每个路由器都有三条线路连到其他路由器。
解:路由表大小为400位。每分钟交换两次,每个方向需要800bps的带宽速度。
8、在下图中,每一行上的两组ACF位布尔或(OR)的结果是111.试问这仅仅是一种偶然情况,还是在所有情况下对于所有网络都成立?
解:它总是成立。发送标志表明该数据包必须在所指示的线路上发送,确认标志表明它必须在这条线路上得到确认。如果一条线路它的发送标志和确认标志都为0,说明数据包既不从这条线路转发出去,也不从这条线路返回确认值。如果都为1,说明数据包又沿着返回ACK的线路返回给了源,这两个都是错误的,不可能存在的。
9、一个有4800台路由器的网络采用了层次路由。试问对于三层结构来说,应该选择多大的区域和簇才能将路由表的尺寸降到最低?一个好的起点是假设这样的方案接近最优:有k个簇,每个簇有k个区域,每个区域有k个路由器。这意味着k大约是4800的立方根(约等于16)。反复试验找出所有这三个参数在16附近的各种组合。
解:组合是15个簇,16个区域,每个区域有20个路由器,或者一个对等的组合是20个簇,16个区域,15个路由器。所有情形的表大小是15+16+20=51。
10、在正文中提到当一台移动主机不在家乡网络时,发送至它本地LAN的数据包将被该LAN的家乡代理所截获。针对一个802.3LAN上的IP网络,试问家乡代理如何完成这样的工作?
解:常规方法是家乡代理欺骗路由器以便让路由器确定移动主机响应ARP请求。当路由器得到指向移动主机地址的数据包时,它就广播一次ARP查询,询问拥有这个ip地址的主机的以太网mac地址。当移动主机不在附近时,家乡代理就响应这次ARP查询,所以路由器就可以将移动主机的ip地址与家乡代理的以太网mac地址联系在一起。
11、参考图中的网络。试问若使用一下方法,从B发出的一次广播将生产多少个数据包?(1)逆向路径转发(2)汇集树
解:(1) 逆向路径转发算法需要五次传播完成,五次接收者分别是 AC, DFIJ, DEGHIJKN, GHKN, 和
LMO。一共需要生成21个数据包。 () 汇集树需要4次传播,一共14个数据包。
12、考虑图a中的网络。想象在F和G之间加入一条新的路线,但是图b中的汇集树仍然不变。试问对于图c中有什么变化。
解:G与A、D地位等同。加入新的线路没有形成环的原因是因为路由IFG并不在汇集树中。
13、请计算下面网络中路由器C生成的组播生成树。组成员分布在路由器A、B、C、D、E、F、I、K上。
解:生成树有多种可能,其中一个是:
14、假设图中节点B刚刚重新启动,它的路由表中没有任何信息。现在它突然需要一条到达H的路由,于是它发送广播包,其TTL分别设置为1、2、3等。试问它需要经过几轮广播后才能找到一条路由?
解:节点N距离B有三跳,所以需要三次广播。路径可以是BDFH或者BDGH。
15、在内部采用虚电路的网络中,可能采用这样一种拥塞控制机制:路由器推迟确认收到的数据包,直到(1)它知道沿着虚电路的最后一次传输已经被成功接收,并且(2)它有一个空闲缓冲区。为了简单期间,假定路由器使用了等-停式协议,并且每条虚电路的每个方向上都有一个专用的缓冲区。如果传输一个数据包(数据或者确认)需要T秒,在路径上有n台路由器,试问数据包被递交给目标主机的速率是多少?假设几乎没有传输错误,并且从主机到路由器之间连接的速度为无限快。
解:2T(n-1)秒。因为虚电路时沿着特定的路由的,传输一个数据包在路由器之间需要T秒,那么n个路由器会有(n-1)个T秒,加上确认数据包一共需要2T(n-1)秒。
16、一个数据报网络允许路由器在必要的时候丢弃数据包。路由器丢弃一个数据包的概率为p。请考虑这样的情形:源主机连接到源路由器,源路由器连接到目标路由器,然后目标路由器连接到目标主机。如果任何一台路由器丢掉了一个数据包,则源主机最终会超时,然后再重试发送。如果主机至路由器以及路由器至路由器之间的线路都记为一跳,试问:(1)每次传输数据包的平均跳数是多少?(2)数据包的平均传输次数是多少?(3)每个接收到数据包所需的平均跳数?
解:源主机发出的每一个数据包都会产生1、2或3跳。它跳一跳的概率是p。它产生两跳的概率是p(1−p)。它产生3跳的概率是(1−p)2。数据包可以期望的平均路径长度是这三个概率的加权和,p+2p(1-p)+3(1−p)2,即p2−3p+3。注意,对于p=0,平均值是3跳,对于p=1,平均是1跳。当0<p<1时,需要多次传输。数据包在线路上传输成功的概率为(1−p)2,所以数据包的平均传输次数为1/(1−p)2。每个接收到数据包所需的平均跳数为,每次传输数据包的平均跳数乘以传输次数,即(p2−3p+3)/(1−p)2。
17、针对两个拥塞避免方法ECN和RED,请给出它们的两个主要区别。
解:首先,ECN方法通过设置一位来显式地向源发送拥塞通知,而RED则通过简单地丢弃它的一个数据包来隐式地通知源。第二,ECN方法只在没有缓冲区空间时才丢弃数据包,而在所有缓冲区耗尽之前,RED丢弃数据包。
18、流量整形采用了令牌桶方案。每5微秒一个新的令牌被放入桶中。每个令牌刚好用于一个短数据包,数据包包含48个字节数据。试问最大的可持续数据率是多少?
解:每秒可以传输210548*8,最大的可持续数据率大约为76.8 Mbps。
19、在一个6Mbps网络上有一台主机,其流量通过一个令牌桶整型,令牌桶的填充速率为1Mbps。初始时令牌桶被填满到容量8MB。试问该计算机能以6Mbps的全速率传输多长时间。
解:用公式s=c/(m−ρ)可以得到正确的答案。我们得到s=8/(6−1)或1.6秒。
20、图中的网络使用RSVP预留资源主机1和主机2的组播树如图所示。假设主机3请求一条带宽为2Mbps的信道用于接收主机1的流,以及一条带宽为1Mbps的信道用于接收主机2的流。同时,主机4请求一条带宽为2Mbps的信道用于接收主机1 的流;主机5请求一条带宽为1Mbps的信道用于接收主机2 的流。试问在路由器A、B、C、E、H、K、J和L上,总共需要为这些请求预留多少带宽?
解:分别为2Mbps,0Mbps,1Mbps,3Mbps,3Mbps,3Mbps,2Mbps,1Mbps。
21、一个路由器可以每秒钟处理200万个数据包。提供给路由器的负载为每秒钟150万个数据包。如果从源端到接收方的路径上有10个路由器,试问路由器花在排队和服务的时间为多少?
解:排队理论证明一个数据包所经历的平均延迟T=(1/μ)*(1/(1-ρ)),ρ=λ/μ是CPU的使用率。这里的μ是200万,λ是150万,所以ρ=λ/μ是0.75,这里是T=2μ秒。在一条路径上有10个路由器,排队加服务时间为20μ秒。
22、假设网络采用区分服务模型。考虑使用加速转发服务的用户。试问是否可以保证加速型数据包比常规数据包的延迟更短?
解:不能保证。因为如果有太多加速数据包,它们的信道的性能将会比常规数据包信道的性能更差。
23、假设主机A和路由器R1连接,R1又与另一个路由器R2连接,R2与主机B连接,假定一个要发给主机B的TCP消息被传递给主机A的IP代码,其中包含了900个字节的数据包和20个字节的TCP头。请写出在三条链路上传输的每个数据包中IP头部的 Total length、Identification、DF、MF、和Fragment offset字段。假定链路A-R1链路可以支持的最大帧长为1024字节,其中包括14字节的帧头;链路R1-R2可以支持的最大帧长为512字节,其中包括8字节的帧头;链路R2-B可以支持的最大帧长为512字节,其中包括12字节的帧头。
解:在第一条线路上不需要分段,数据包包括900个字节的数据,20字节的TCP头以及20字节的IP头。
在第二条和第三条线路上需要分成两个包,所以会增加一个20字节的IP头。
(解释一下,offset的意思是偏移量,这个字段在ipv4协议上有13位,分段的长度必须是8的字节的倍数,为什么要是8的倍数?表示的多呗,14亿人口乘个8试试。本题中ip数据包的payload字段是920字节,第二三线路均分为两个包,第一个包是480字节加上ip头,所以下一个字段在整个数据中的偏移量自然是60乘8等于480字节了。)
A-R1:
Length = 940; ID = x; DF = 0; MF = 0; Offset = 0
R1-R2:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60
R2-B:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60
24、一个路由器往外发送大量的IP数据包,这些数据包的总长度(数据+头)为1024字节。假设这些数据包的生成时间为10秒,试问路由器运行的最大线速度达到多少才不会发生IP数据报和ID编号空间重绕的危险?
解:如果线路的比特率为b,则路由器可以发出的数据包/秒数为b/8192,因此发出数据包所需的秒数为8192/b。ID重绕也就是ID字段溢出,ID字段为16位,所以编号为0~65535,需要输出65,536个数据包,即需要65,536/(b/8192)=229/b秒。把它等同于最大值数据包的寿命,我们得到229/b=10。然后,b约为53,687,091 bps。
25、一个IP数据报使用了严格源路由选项,现在它必须被分段。你认为该选项应该被复制到每个段中,还是只需放到第一个段中就去足够了?
解:由于路由每个片段都需要该信息,该选项必须出现在每个片段中。
26、假定最初的B类地址的网络部分不是16位,而是20位。试问将有多少个B类网络。
解:B类网络地址开端为10,如果使用20位网络地址,那么还有18位可以分配,即网络数为 218=262,144,但是全0与全1不能使用,所以一共有262142个网络。
27、一个IP地址的十六进制表示为C22F1582,请将它转换为点分十进制表示法。
解:194.47.21.130。
28、Internet上一个网络的子网掩码为255.255.240.0。试问它最多能容纳多少主机。
解:易知主机位数为12位,所以可以容纳的主机数为:212-2=4094。(全0与全1一般不使用)。
29、尽管IP地址特定于一个网络,以太网址(指mac地址)却不是,你能想到一个好理由说明为什么以太网地址做不到吗?
解:在商店中销售的每个以太网适配器都是硬连接的,其中包含一个以太网(Mac)地址。当将地址刻入卡中时,制造商不知道在世界上将在哪里使用该卡,因此该地址对路由毫无用处。相反,IP地址要么由ISP或公司静态地或动态地分配,后者知道如何到达主机获取IP地址。
30、从198.16.0.0开始有大量连续的IP地址可以使用。假设4个组织A、B、C、D按照顺序依次申请4000、2000、4000、和8000个地址。对于每一个申请,请用w.x.y.z/s的形式写出所分配的第一个IP地址、最后一个IP地址以及掩码。
解:A: 198.16.0.0 – 198.16.15.255 written as 198.16.0.0/20
B: 198.16.16.0 – 198.16.23.255 written as 198.16.16.0/21
C: 198.16.32.0 – 198.16.47.255 written as 198.16.32.0/20
D: 198.16.64.0 – 198.16.95.255 written as 198.16.64.0/19
31、一个路由器刚刚接收到以下新的IP地址:57.6.96.0/21,57.6.104.0/21,57.6.112.0/21和57.6.120.0./21。如果所有这些地址都使用同一条出境线路,试问它们可以被聚合吗?如果可以,将被聚合到哪个地址上?
解:聚合地址为57.6.96.0/19。
32、从29.18.0.0到29.18.128.255的一组IP地址已经被聚合到29.18.0.0/17。然而,这里有一个空闲地址块,即从29.18.60.0到29.18.63.255之间的1024个地址还没有分配。现在这块空闲地址要分配给一台使用不同出境线路的主机。试问是否有必要将聚合地址分割成几块,然后把新的地址加入到路由表中,再来看是否可以重新聚合?如果没有必要,应该怎么办?
解:为新块添加一个新表条目就足够了:29.18.0.0/22。如果一个传入的数据包匹配29.18.0.0/17和29.18.0.0/22,最长的数据包将获胜。此规则可以将一个大块分配给一个传出行,但对其范围内的一个或多个小块做一个例外。
33、一个路由器的路由表中有如下表项:
地址/掩码 下一跳
135.46.56.0/22 Interface 0
135.46.60.0/22 Interface 1
135.46.40.0/23 Router 1
default Router 2
对于下列IP地址,如果到达的数据包带有这些地址,试问路由器如何处理?
(1)135.46.63.10(2)135.46.57.14(3)135.46.52.2(4)192.53.40.7(5)192.53.56.7
解:(1)下一跳为interface1(2)下一跳为interface0(3)下一跳为router2(4)下一跳为router1(5)下一跳为router2。
34、许多公司采取这样的策略:通过两个或多个路由器将公司连接到Internet。这种冗余度保证了其中一个路由器停机时网络还能用。试问采用NAT策略后,仍然能正常工作吗?
解:在安装NAT之后,所有与单个连接有关的数据包通过同一个路由器进出公司是至关重要的,因为这是映射保持的地方。如果每个路由器都有自己的ip地址,并且属于给定连接的所有流量都可以发送到同一个路由器,则映射可以正确地执行ping操作,并且可以使NAT进行多寻的工作。
35、你刚刚向胖友解释了ARP协议,当你解释完之后他说:“我明白了,ARP给网络层提供了一项服务,所以它是数据链路层的一部分。”你该如何向他解释呢?
解:你应该说ARP协议不是向网络层提供的一项服务,他是网络层的一个组成部分,用于帮助对传输层提供的服务。
36、请给出一种在目标主机上重组IP分段的方法。
解:在一般情况下,这个问题是非同寻常的。碎片可能会出现故障,有些可能会丢失。在重传时,数据报可能被分割成不同大小的块。此外,在最后一个片段到达之前,不知道总大小。处理重新组装的唯一方法可能是缓冲所有碎片,直到最后一个片段到达并知道大小。然后构建一个大小合适的缓冲区,并将片段放入缓冲区,维护一个每8字节1位的位映射,以跟踪缓冲区中存在哪些字节。当位图中的所有位都是1时,数据报就完成了。(没看懂)
37、大多数IP数据报重组算法有一个计时器,以免丢失的段永远占用重组缓冲区。假设一个数据报被分成4个段。前3段到达目的地,但最后一个延迟了。最终该计时器超时,接收方内存中的3个段丢弃。过来一会儿,最后一个段到达,试问应该用它做什么呢?
解:就接收者而言,这是新数据报的一部分,因为它的其他部分不为人所知。因此,它将排队,直到其余的出现。如果他们不这样做,这个人也会超时。
38、在IP中,校检和仅仅覆盖了头,而没有包括数据部分。你认为这样的设计方案的理由是什么?
解:头中的错误比数据中的错误严重得多。例如,一个错误的地址可能导致数据包被传送到错误的主机。许多主机不检查是否一个包交付给他们,实际上是为他们。他们认为网络永远不会给他们准备给另一个主机的数据包。数据有时是不加校验的,因为这样做是昂贵的(开销会比较大),而且上层经常这样做,这使得它在这里是多余的。
39、有一个人生活在波士顿,现在她带着自己的笔记本电脑去Minneapolis旅游。让她惊讶的是,在Minneapolis目的地的局域网是一个无线IP局域网,所以她根本不用插网线。试问,她是否仍然需要通过家乡代理和外部代理这一整套过程才能正确地接收到电子邮件或其他流量。
解:需要。明尼阿波利斯局域网是无线的,这并不会使到达波士顿的数据包突然跳到明尼阿波利斯。波士顿的家乡代理必须把他们引到明尼阿波利斯无线局域网上的外部代理那里。考虑这种情况的最好方法是,用户已接入明尼阿波利斯局域网,与其他明尼阿波利斯用户的方式相同。连接使用无线电而不是线缆。
40、IPv6地址使用16个字节的地址。如果每隔1ps(1-12秒,1皮秒)就分配掉一百万个地址(106),试问整个地址空间可以持续分配多久。
解:有16个字节,有2128或3.4×1038个地址。如果我们以每秒1018的速度分配它们,它们将持续1013年。这个数字是宇宙年龄的1000倍。当然,地址空间不是平坦的,所以它们不是线性分配的,但是这个计算表明,即使使用效率为1/1000(0.1%)的分配方案,也永远不会用完。
41、IPv4头中的Protocol字段并没有出现在IPv6的固定头中,试问为什么?
解:协议字段告诉目标主机要将IP数据包分配给哪个协议处理程序。中间路由器不需要此信息,因此在主标头中不需要该信息。
42、当IPv6协议被引入时,ARP协议需要作相应的改变吗?如果需要,这种改变是概念性的还是技术性的?
解:从概念上讲,没有变化。从技术上讲,请求的IP地址现在更大,所以需要更大的字段。