TCPIP复习资料 作业题和答案

更新时间:2023-12-01 11:19:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1.1最多有多少个ABC类网络号:126,16382,2097150

1.3TCP/IP协议族每层的稳健性原则:自由的接收,保守的发送

3.1回路地址只能是127.0.0.1吗?:不是,只要网络号是127的IP地址就都可以 3.2指出有两个网络接口的路由器:横上的连接是以太网接口,虚的竖的连接是点到点链路。加上就是网络接口数

3.3子网号为16bit的A类地址与子网号为8bit的B类地址的子网掩码有什么不同?:一样,作为一个没有再分子网的C类地址,子网掩码都是255.255.255.0

3.6为什么回路接口的MTU设置为1536?:这是一个历史遗留问题,值是1024+512,MTU值包含了所有需要的首部字节数,solaris2.2将回路接口的MTU设置为8232(8192+40),8192的用户数据加上20字节的IP头和20字节的TCP头

4.1查看输入tcpdump命令生成的结果时,发现本地ARP快速缓存为空后,输入命令bsdi % rsh svr4 arp –a,如果发现目标主机上的ARP缓存也是空的,将会发生什么情况?:发出一条rsh命令与另一台主机建立一个TCP连接,这样做引起在两主机之间交换IP数据报。为此,在那台主机的ARP缓存中必须有我们这台主机的登记项。因此,即使在执行rsh命令之前,ARP缓存是空的,当rsh服务器执行arp命令时,必须保证ARP缓存中登记有我们这台主机。

4.2请描述如何判断一个给定主机是否能正确处理接口收到的非必要的ARP请求的方法:保证你的主机上的ARP缓存中没有登记以太网上的某个叫foo的主机,保证foo引导时改善一个免费ARP请求,也许是在foo引导时,在那台主机运行tcpdump,然后关闭主机foo ,使用说明了temp选项的arp命令,在你的系统的ARP缓存中为foo输入一个不正确的登记项,引导foo并在它启动好之后,察看主机的 ARP缓存,看看不正确 是不是已经被更正了。

4.4Host Requirements RFC和伯克利派生系统在处理活动A R P表目的超时时存在差异。那么如果我们在一个由伯克利派生系统的客户端上,试图与一个正在更换以太网卡而处于关机状态的服务器主机联系,这时会发生什么情况?如果服务器在引导过程中广播一份免费A R P,这种情况是否会发生变化?:假设当服务器关闭时,客户机保存了关于服务器的一个完整的 A R P登记项。如果我们继续试图与(已关闭的)服务器联系,过了2 0分钟以后,A R P将超时。最后,当服务器以另一个新的硬件地址重启动。如果它没有发出一个免费A R P,旧的、不再正确的A R P登记项仍然存在于客户机上。我们将无法和在新硬件地址上的服务器联系直到我们手工删除这个A R P登记项,或者在2 0分钟内停止与服务器联系的尝试。

5.1 RARP需要不同的帧类型字段吗?A R P和R A R P都使用相同的值0 x 0 8 0 6吗?:一个单独的帧类型并不是必需的,因为图4 - 3中的o p字段对于所有的四个操作(A R P请求、A R P应答、R A R P请求和R A R P应答)都有一个不同的值。但是实现一个 R A R P服务器,独立于内核中的A R P服务器,更容易处理不同的帧类型字段。

5.2 在一个有多个R A R P服务器的网络上,如何防止它们的响应发生冲突?:每个R A R P服务器在发送一个响应之前可以延迟一个小的随机时间。作为一个优化,可以指定一个R A R P服务器为主服务器,其他的为次服务器。主服务器发出响应不需要延迟,而次服务器发出响应则需要一个随机的延迟。作为另一个优化,也是指定一个主 R A R P服务器,其他为次服务器。次服务器只对在一个短时间段内发生的重复请求进行响应。这里假设出现重复请求的原因是由于主服务器停机了。

9.2 在9 . 4节开头列出的s v r 4主机上的路由表中,到主机s l i p(1 4 0 . 2 5 2 . 1 3 . 6 5)的特定路由是必需的吗?如果把这一项从路由表中删除会有什么变化?:这一项并不需要,但是如果把它删除了,所有到 s l i p的I P数据报将被发送到默认的路由器(s u n) ,后者又将把它们送到路由器b s d i。既然s u n将数据报从与接收数据报相同的接口转发出去,它把一个I C M P重定向到s v r 4。这样在s v r 4中又创建了我们删除过的同样的路由表项,尽管这一次是因为重定向而创建的,而不是在引导时增加的。 9.3 考虑有一电缆连接4 . 2 B S D主机和4 . 3 B S D主机。假定网络号是1 4 0 . 1。4 . 2 B S D主机把主机号为全0的地址识别为广播地址( 1 4 0 . 1 . 0 . 0 ),而4 . 3 B S D通常使用全1的主机号(1 4 0 . 1 . 2 5 5 . 2 5 5)发送广播。另外,4 . 2 B S D主机在默认条件下要尽力转发接收到的数据报,尽管它们只有一个接口。请描述当4 . 2 B S D主机收到一份目的地址为1 4 0 . 1 . 2 5 5 . 2 5 5的I P数据报时会发生什么事。:当那个4 . 2 B S D主机收到目的地址是 1 4 0 . 1 . 2 5 5 . 2 5 5的数据报,发现它有一个通往该网络(1 4 0 . 1)的路由,因此就试图转发数据报。它发送一个 A R P广播来寻找1 4 0 . 1 . 2 5 5 . 2 5 5。这个A R P请求没有收到任何应答,所以这个数据报最终被丢弃。如果在网线上有很多这样的4 . 2 B S D主机,每一个都在差不多同一时刻发送 A R P这个广播,将会暂时地阻塞网络。

10.1在图1 0 - 9中哪些路由是从路由器k p n o进入g a t e w a y的?:路由表中有1 3条来自于k p n o:除了1 4 0 . 2 5 2 . 1 0 1 . 0和1 4 0 . 2 5 2 . 1 0 4 . 0之外的所有g a t e w a直接相连的其他网络。

10.2 假设一个路由器要使用R I P通告3 0个路由,这需要一个包含2 5条路由和另一个包含5条路由的数据报。如果每过一个小时,第一个包含 2 5条路由的数据报丢失一次,那么其结果如何?:丢失的数据报中通告的2 5条路由需要6 0秒才能得到更新。这不成问题,因为一般来说一条路由如果连续3分钟没有得到更新,R I P才会声明它失效。 10.3 OSPF报文格式中有一个检验和字段,而R I P报文则没有此项,这是为什么?:R I P运行在U D P上,而U D P提供了U D P数据报中数据部分的一个可选的检验和,然而,O S P F运行在I P上,I P的检验和只覆盖了I P首部,所以O S P F必须增加它自己的检验和字段。

10.4 像O S P F这样的负载平衡,对于传输层的影响是什么?:负载平衡增加了分组被失序交付的机会,并且很可能使得运输层计算的环回时间出错。

10.5查阅RFC1058 关于实现R I P的其他资料。在图1 0 - 8中,1 4 0 . 2 5 2 . 1网络的每个路由器只通告它所提供的路由,而它并不能通过其他路由器的广播中知道任何其他路由。这种技术的名称是什么?:这叫作简单的分裂范围(split horizon) 。

10.6 在3 . 4节中,我们说过除了图1 0 - 7中所示的8个路由器外,1 4 0 . 2 5 2 . 1子网上还有超过1 0 0个主机。那么这100个主机是如何处理每30秒到达它们的8个广播信息呢(图10-8)?:在图1 2 - 1中,我们显示了1 0 0个主机的每一个都通过设备驱动程序、 I P层和U D P层来处理这个广播的U D P数据报。当它们发现U D P端口5 2 0没有被使用时,这个广播数据报才最终被丢弃。 11.1向U D P数据报中写入1 4 7 3字节用户数据时导致以太网数据报片的发生。在 采用以太网IEEE 802封装格式时,导致分片的最小用户数据长度为多少?:因为使用IEEE 802封装时,存在8个额外的首部字节,所以1 4 6 5个字节的用户数据是引起分片的最小长度。

11.3假定有一个以太网和一份8 1 9 2字节的U D P数据报,那么需要分成多少个数据报片,每个数据报片的偏移和长度为多少?:对于I P来说有8 2 0 0字节的数据需要发送, 8 1 9 2字节的用户数据和 8个字节的U D P首部。采用t c p d u m p记号,第1个分片是1 4 8 0 @ 0 +(1 4 8 0字节的数据,偏移为0,将“更多片”比特置1) 。第2个是1 4 8 0 @ 1 4 8 0 +,第3个是1 4 8 0 @ 2 9 6 0 +,第4个是1 4 8 0 @ 4 4 4 0 +,第5个是1 4 8 0 @ 5 9 2 0 +,第6个是8 0 0 @ 7 4 0 0。1 4 8 0×5 + 800 = 8200,正好是要发送的字节。

11.4 继续前一习题,假定这些数据报片要经过一条 M T U为5 5 2的S L I P链路。必须记住每一个数据报片中的数据(除 I P首部外)为8字节的整数倍。那么又将分成多少个数据报片?:每个数据报片的偏移和长度为多少?每个1 4 8 0字节的数据报片被分成三小片:两个 5 2 8字节和一个4 2 4字节。小于5 3 2(5 5 2-2 0)的8的最大倍数是5 2 8。8 0 0字节的数据报片被分成两小片:一个 5 2 8字节和一个2 7 2字节。这样,原来8 1 9 2字节的数据报变成了S L I P链路上的1 7个帧。

11.5 一个用U D P发送数据报的应用程序,它把数据报分成 4个数据报片。假定第1片和第2片到达目的端,而第3片和第4片丢失了。应用程序在1 0秒钟后超时重发该U D P数据报,并且被分成相同的4片(相同的偏移和长度) 。假定这一次接收主机重新组装的时间为6 0秒,那么当重发的第3片和第4片到达目的端时,原先收到的第 1片和第2片还没有被丢弃。接收端能否把这4片数据重新组装成一份I P数据报?:不。问题是当应用程序超时重传时,重传产生的 I P数据报有一个新的标识字段。而重新装配只针对那些具有相同标识字段的分段。 11.6 你是如何知道图11 - 1 5中的片实际上与图11 - 1 4中第5行和第6行相对应?:IP首部中的标识字段(4 7 9 4 2)是一样的。 11.7主机g e m i n i开机3 3天后,n e t s t a t程序显示48 000 000份I P数据报中由于首部检验和差错被丢弃1 2 9份,在30 000 000个T C P段中由于T C P检验和差错而被丢弃2 0个。但是,在大约18 000 000份U D P数据报中,因为U D P检验和差错而被丢弃的数据报一份也没有。请说明两个方面的原因: 第一,从图11 - 4我们看到g e m i n i没有使能输出U D P的检验和。如果输出U D P的检验和没有被使能,这个主机上的操作系统( SunOS 4.1.1)就不会验证一个进入 U D P的检验和。第二,大多数的 U D P通信量都是本地的,而不是 WA N的,因此没有服从所有的WA N特征。

11.8 在讨论分片时没有提及任何关于 I P首部中的选项——它们是否也要被复制到每个数据报片中,或者只留在第一个数据报片中?我们已经讨论过下面这些 I P选项:记录路由(7 . 3节) 、时间戳(7 . 4节) 、严格和宽松的源站选路(8 . 5节) 。你希望分片如何处理这些选项?对照RFC 791检查你的答案。: 不严格的和严格的源站选路选项被复制到每一个数据报片中。时间戳选项和记录路由选项没有被复制到每一个数据报片中—它们只出现在第1个数据报片中。 11.9在图1 - 8中,我们说U D P数据报是根据目的U D P端口号进行分配的。这正确吗?:不。在11 . 1 2节中,我们看到很多实现可以根据目的I P地址、源I P地址和源端口号来过滤送往一个给定U D P端口号的输入数据报。

14.1讨论一个DNS 名字解析器和一个D N S名字服务器作为客户程序、服务器或同时作为客户和服务器的情况。: 一个解析器总是一个客户,但一个名字服务器既是一个客户又是一个服务器。

14.2说明图1 4 - 1 2中构成响应的7 5个字节的含义。: 问题被返回,它占用了前 4 4个字节。一个回答占用了剩下来的 3 1个字节:2个字节指向域名的指针(即,指向问题中域名的一个指针) ,1 0字节固定长度的字段(类型、种类、T T L和资源长度),1 9字节的资源数据(一个域名)。注意到资源数据中的域名(s v r 4 . t u c . n o a o . e d u .)没有共享问题(3 4 . 1 3 . 2 5 2 . 1 4 0 . i n - a d d r . a r p a .)中域名的后缀,所以不能使用一个指针。

14. 我们说一个名字服务器必须知道根名字服务器的 I P地址,这一信息可通过匿名F T P获得。不幸的是当根名字服务器表发生变化时,并不是所有的系统管理员都会更新他们的 D N S配置文件(根名字服务表的确会发生变化,尽管不是经常的)你认为 D N S如何处理这个问题?:当一个名字服务器启动时,它一般从一个磁盘文件中读出一个根服务器列表(可能已经过时了) 。然后尝试和这些根服务器中的一个联系,请求根域的名字服务器记录(一个N S的查询类型) 。这个请求返回了当前最新的根服务器列表。启动磁盘文件中根服务器项中至少需要一个是有效的。

14.7 维护一个名字服务器和一个无状态的名字解析器高速缓存的问题分别是什么?:就像应用是不定的一样,解析器也是不定的。如果系统配置成使用多个名字服务器,而且

解析器是无状态的,那么解析器就不能记住不同的名字服务器的往返时间。这样定时太短的解析器将会超时,引起不必要的重传。 18.2在图1 8 - 1 5中,我们键入1 2个字符,看到T C P发送了1 3个字节。在图1 8 - 1 6中我们键入8个字符,但T C P发送了1 0个字符。为什么在第1种情况下增加1个字节,而在第2种情况下增加2个字节?:在第1种情况下,我们使用了s o c k程序。默认情况下它把U n i x的新行字符不作改变地进行传输—单个A S C I I字符0 1 2(八进制) 。在第2种情况下,我们使用了Te l n e t客户,它把U n i x的新行字符转变为两个 A S C I I字符—一个回车符(八进制 0 1 5)跟着一个换行符(八进制0 1 2) 。 18.3 半打开连接和半关闭连接的区别是什么?:在一个半关闭的连接上,一个端点已经发送了一个 F I N,正等待另一端的数据或者一个F I N。一个半打开的连接是当一个端点崩溃了,而另一端还不知道的情况。 18.8 在图1 8 - 6中,我们没有见到一个A R P请求或一个A R P应答。显然主机s v r 4的硬件地址一定在b s d i的A R P高速缓存中。如果这个A R P高速缓存不存在,这个图会有什么变化?:我们将只看到A R P请求,而不是TCP SYN报文段,但A R P请求将和图中具有相同的计时。

18.9 解释如下的t c p d u m p输出,并和图1 8 - 1 3进行比较。:客户在主机s o l a r i s上,服务器在主机b s d i上。客户对服务器S Y N的确认(A C K)和客户的第一个数据段结合在一起(第 3行) 。这种处理非常符合T C P的规则,尽管大多数的实现都没有这么做。接着,客户在等待它的数据的确认之前发送了它的 F I N(第4行) 。 这样使得服务器可以在第5行同时确认客户数据和它的F I N。

这次交互(将一个报文段从客户发送到服务器)需要 7个报文段,而正常的连接建立和终止(图1 8 - 1 3) ,以及一个数据段和它的确认,需要9个报文段。

本文来源:https://www.bwwdw.com/article/uuft.html

Top