2024年1月6日发(作者:)

网络层作业

1. 考虑下图中的网络,使用距离矢量路由算法。路由器C刚刚收到下列矢量:来自B的(4,0,7,11,6,2);来自D的(15,13,6,0,9,9);来自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)

目的

A

B

C

D

E

F

目的

Net1

Net2

Net3

Net4

Net5

Net6

Net7

Net8

距离

11

6

0

3

5

8

距离

1

1

1

2

2

2

2

2

下一跳

B

B

-

D

E

B

下一跳

-

-

-

B

E

B

D

E

2. 假设图中节点B刚刚重新启动,它的路由表中没有任何信息。现在它突然需要一条到达H的路由,于是它发送广播包,其TTL分别设置为1、2、3等。试问它需要经过几轮广播后才能找到一条路由?

节点N距离B有三跳,所以需要三次广播。路径可以是BDFH或者BDGH。

3. 要给主机分配一个IP地址,以下地址哪个不合适,请说明原因

A)131.107.256.80 256超了255了

B)231.222.0.11 231是给组播的地址 111开头的

C)126.0.0.0 以全0结尾的IP地址是网络地址

D)198.121.254.255 110C类地址,主机号全1的IP地址是广播地址

E)202.117.34.32 可以

F)1.1.1.1 可以

G)127.0.0.1 可以

4. 网络193.1.1.0,子网掩码是255. 255. 255. 224。问:这个子网掩码可划分几个子网,每个子网的子网地址和主机IP地址范围是什么?

首先你说的IP应该是网络号。 将网络号于子网掩码换算成二进制如下:

网 络号: 11000001.00000001.00000001.00000000 (193.1.1.0)

子网掩码:11111111.11111111.11111111.11100000 (255.255.255.224)

子网掩码:11111111.11111111.11111111.00000000 (255.255.255.0 C类默认的子网掩码)

193.1.1.0为C类地址,默认子网掩码为255.255.255.0,网络号长度24位,255.255.255.224网络号27位,借用主机号的3位可以划分出8个子网

网络号 可用地址范围(0 0000~1 1111 一共32个,掐头去尾每个子网30个主机号)

193.1.1.0 193.1.1.1~193.1.1.30

193.1.1.32 193.1.1.33~193.1.1.62

193.1.1.64 193.1.1.65~193.1.1.94

193.1.1.96 193.1.1.97~193.1.1.126

193.1.1.128 193.1.1.129~193.1.1.158

193.1.1.160 193.1.1.161~193.1.1.190

193.1.1.192 193.1.1.193~193.1.1.222

193.1.1.224 193.1.1.225~193.1.1.254

在老的设备上193.1.1.0网络与193.1.1.224有可能不可用(0子网、广播子网),但新的设备都支持的。

1、请列举出两个合适使用面向连接服务的计算机应用实例,再列举出两个最好使用无连接服务的计算机应用实例。

解:面向连接:文件传输,远程登录;无连接:信用卡核对,电子资金转账。

2、数据报网络将每个数据包当做独立的单位进行路由,路由过程彼此独立。虚电路网络不必采用这种方式,因为每个数据包都沿着一条预先确定的路由。试问,这是否意味着虚电路网络不需要具备将单个数据包从任意源端路由到任意接收方的能力呢?

解:虚电路的路由建立需要这样的能力。

3、请给出3个在建立连接时可能需要协商的协议参数例子。

解:需要通过协商给出窗口大小,最大包长,速率和定时值等参数。

4、假设所有的路由器和主机都正常工作,并且它们的软件也都没有错误。试问是否存在一个数据包被递交到错误目的地的可能性。

解:有可能,一个大的噪声突发可能眼中地篡改数据包。k位的校检无法检测出2-k的错误,如果目的地被篡改就有可能到达错误的目的地。

5、请给出一个简单的启发式算法,找出一个网络中从指定源端到指定目标端之间的两条路径,

要求这两条路径在失去任何一条通信线路的情况下都能够辛免于难。

解:首先选择最短路径算法找到一条路由;然后移除已经找到的路径,再次使用最短路径算法找到另一条路径,这样可以相救。需要使用最大溢出算法防止这种启发式算法失败。

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地址联系在一起。

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

17、针对两个拥塞避免方法ECN和RED,请给出它们的两个主要区别。

解:首先,ECN方法通过设置一位来显式地向源发送拥塞通知,而RED则通过简单地丢弃它的一个数据包来隐式地通知源。第二,ECN方法只在没有缓冲区空间时才丢弃数据包,而在所有缓冲区耗尽之前,RED丢弃数据包。

18、流量整形采用了令牌桶方案。每5微秒一个新的令牌被放入桶中。每个令牌刚好用于一个短数据包,数据包包含48个字节数据。试问最大的可持续数据率是多少?

解:每秒可以传输2*105*48*8,最大的可持续数据率大约为76.8 Mbps。

19、在一个6Mbps网络上有一台主机,其流量通过一个令牌桶整型,令牌桶的填充速率为1Mbps。初始时令牌桶被填满到容量8MB。试问该计算机能以6Mbps的全速率传输多长时间。

解:用公式s=c/(m−ρ)可以得到正确的答案。我们得到s=8/(6−1)或1.6秒。

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地址现在更大,所以需要更大的字段。

传输层作业

1. UDP协议校验和字段做校验的数据包含哪些?

UDP计算校验和的方法和IP数据报首部校验和的方法相似。不同的是:IP数据报校验和只校验IP数据报的首部,但UDP的校验和是把首部和数据部分一起都检验。

UDP的校验和需要计算UDP首部加数据荷载部分,但也需要加上UDP伪首部。这个伪首部指,源地址、目的地址、UDP数据长度、协议类型(0x11),协议类型就一个字节,但需要补一个字节的0x0,构成12个字节。伪首部+UDP首部+数据一起计算校验和。

UDP检验和的计算方法是:

按每16位求和得出一个32位的数;

如果这个32位的数,高16位不为0,则高16位加低16位再得到一个32位的数;

重复第2步直到高16位为0,将低16位取反,得到校验和。

2. 为什么会存在UDP,用户进程使用原始IP数据包还不够吗?

不够。IP数据包包含指定目标计算机的IP地址。一旦这样的数据包到达,网络处理程序不知道将它交给哪个进程。UDP数据包包含目标端口,因此它们可以被传递到正确的过程中。

3. UDP和TCP都使用端口号来标识接收方实体。请给出两个理由说明为什么要发明这个新的抽象ID(端口号),而不直接使用进程ID。在设计这两个协议时,进程ID的概念已经存在。

这里有三个原因。首先,进程ID是OS特定的,使用进程ID会使这些协议依赖于OS(所以不同的主机是有不同的进程ID)。第二,单个进程可以建立多个通信渠道。第三,让进程监听众所周知的端口很容易,但众所周知的进程ID是不可能的。

4. 主机1和主机2分别分配了端口p和q,试问在这两个端口上有没有可能同时存在两个或两个以上的TCP连接?

不能。连接仅由其套接字标识。因此,(1,p)-(2,q)是这两个端口之间唯一可能的连接。

5. 在“慢启动”拥塞解决方案中,当发生一次数据丢失时,先假设前一次数据传输时的CWND为32MSS字节,则此时的SSTHRESH和CWND分别为多少个MSS?

SSTHRESH为32/2=16 CWND=1

6. 当全部数据传输完成后要释放一个TCP传输连接时,则要将所发送的数据段的TCP头部信息中的哪个位置为1

6位标志位包含如下几项中的FIN

URG标志,表示紧急指针(urgent pointer)是否有效。

ACK标志,表示确认号是否有效。我们称携带ACK标识的TCP报文段为确认报文段。

PSH标志,提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间(如果应用程序不将接收到的数据读走,它们就会一直停留在TCP接收缓冲区中)。

RST标志,表示要求对方重新建立连接。我们称携带RST标志的TCP报文段为复位报文段。

SYN标志,表示请求建立一个连接。我们称携带SYN标志的TCP报文段为同步报文段。

FIN标志,表示通知对方本端要关闭连接了。我们称携带FIN标志的TCP报文段为结束报文段。

7. 一台主机在一条线路上发送1500字节的TCP有效载荷,最大数据包生存时间为120秒。要想不让序号回绕,试问该线路的最快速度为多少?要考虑TCP、IP和以太网的开销。假设可连续发送以太网数据帧。

1.

比较传输层与数据链路层的区别(此处数据链路层不包含MAC子层)

想象用两次握手过程而不是三次握手过程来建立连接。换句话说,第三个消息不再是要求的。试问现在有可能死锁吗?请给出一个例子说明存在死锁,或者证明死锁不存在。

解:死锁是有可能的。例如,一个包突然到达一个,并确认它,但是确认丢失了。a现在是开放的,而b根本不知道发生了什么。同样的事情发生在b上,两者都是打开的,但是需要不同的序列号。必须引入超时以避免死锁。

数据报的分段和重组机制由IP 来处理,对于TCP 不可见。试问,这是否意味着TCP不用担心数据错序到达的问题?

解:即使每个数据报都完好无损地到达,数据报也有可能以错误的顺序到达,因此TCP必须准备好适当地重新组装消息的各个部分。

一台主机在一条线路上发送1500 字节的TCP 有效载荷,最大数据包生存期为120 秒,要想不让序号回绕,试问该线路的最快速度为多少?要考虑TCP 、IP 和以太网的开销。假设可以连续发送以太网帧。

解:目标是在120秒内发送232字节或35 791 394个有效负载字节/秒(32是序号位数,注)。这是23 860 个1500字节帧/秒。TCP开销为20字节。IP开销为20字节。以太网开销为26个字节。这意味着对于1500字节的有效负载,必须发送1566字节。如果我们要每秒钟发送23860个帧(每帧1566字节),我们需要一条299 Mbps的线路。在任何比这更快的情况下,我们都会面临两个不同的tcp段同时拥有相同的序列号的风险。

对于地球同步卫星上的一条50Mbps 信道,试问它的带宽-延迟乘积是多少?如果所有的数据包都是1500 字节(包括开销〉,试问窗口应该为多大(按数据包为单位〉?

解:往返延迟约540毫秒,因此在50 Mbps信道下,带宽产品延迟为27兆位或3 375 000字节。对于1500个字节的数据包,需要2250个数据包来填充管道,因此窗口至少应该是2250个数据包。