网络协议分析习题答案_第1页
网络协议分析习题答案_第2页
网络协议分析习题答案_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、备注: 以下给出习题答案作为参考,对于部分习题,读者也可以思考给出更好的答案。第一章1. 讨论 tcp/ip 成功地得到推广和应用的原因tcp/ip 是最早出现的互联网协议,它的成功得益于顺应了社会的需求;darpa采用开放策略推广 tcp/ip ,鼓励厂商、大学开发tcp/ip 产品; tcp/ip 与流行的 unix 系统结合是其成功的主要源泉;相对iso 的 osi 模型, tcp/ip 更加精简实用; tcp/ip 技术来自于实践, 并在实践中不断改进。2. 讨论网络协议分层的优缺点优点:简化问题,分而治之,有利于升级更新;缺点:各层之间相互独立,都要对数据进行分别处理;每层处理完毕都

2、要加一个头结构,增加了通信数据量。3. 列出 tcp/ip 参考模型中各层间的接口数据单元(idu) 应用层 / 传输层:应用层报文;传输层 /ip层: tcp报文段或 udp分组; ip 层/ 网络接口层: ip 数据报;网络接口层 / 底层物理网络:帧。4. tcp/ip在哪个协议层次上将不同的网络进行互联?ip层。5. 了解一些进行协议分析的辅助工具可在互联网上搜索获取适用于不同操作系统工具,比如sniffer pro、wireshark以及tcpdump 等。利用这些工具,可以截获网络中的各种协议报文,并进一步分析协议的流程、报文格式等。6. 麻省理工学院的david clark是众多

3、 rfc的设计者,在论及tcp/ip 标准的形成及效果时,曾经讲过这样一段话 : ” werejectkings,presidentsand voting.webelievein rough consensus and running code.” 你对他的观点有什么评价。智者见智,我认为这就是“实践是检验真理的唯一标准”。7. 你认为一个路由器最基本的功能应该包含哪些?对于网桥、 网关、路由器等设备的分界已经逐渐模糊。现代路由器通常具有不同类型的接口模块并具有模块可扩展性,由此可以连接不同的物理网络;路由表的维护、更新以及ip数据报的选路转发等,都是路由器的基本功能。此外,路由器厂商应为使用

4、者提供管理功能。第二章1. 尝试用 modem拨入某个 isp,并根据你的操作分析ppp的流程实验题,若有接入isp 的环境,可直接测试;否则,可参考习题4 一起测试。2. 分析 pap和 chap的优缺点pap简单,但安全性差; chap相对安全,但开销较大,且需要通信双方首先共享密钥。3. 了解 l2f 和 l2tp 的思想及应用这两个协议把 ppp的两个端点延伸到互联网的任何角落,相当于在tcp/ip 的应用层扩展了 ppp的范围。其思想是发送方把ppp帧封装到 l2f 或 l2tp 报文中,接收方则对其解封以还原 ppp帧,这样对于通信的两端来说看到的是ppp帧,相当于在互联网上架设了

5、一条虚 拟的 ppp链路。它们主要用于构建vpn(虚拟专用网) 。4. 尝试 windows 操作系统的“超级终端”功能windows 超级终端功能在附件 / 通信功能下。可以用两台有modem的计算机,各自连接电话线,并尝试用该功能实现即时通信和文件传输的功能。第三章1. 理想情况下,可以有多少个a 类网,每个a 类网中包含多少个可以配置给主机的ip 地址?可以有多少个b 类网,每个 b 类网中包含多少个可以配置给主机的ip 地址?计算时去除广播地址、网络地址。2. 在图 3-7 的例子中,假设初始时主机a、 b 和路由器 r 的 arp缓存均为空,在 b 成功收到 a 的报文后, a、b、

6、r 的缓存中各包含了哪些条目?a: ip 1/mac1b: ip 2/mac2r: ip a/maca, ip b/macb3. 在 internet上下载 sniffer,截取 arp报文,分析其报文格式。实验题,目的有二:一是分析 arp的流程、报文格式以及相应的帧格式, 二是尝试 sniffer(协议分析工具)的不同功能。可利用 sniffer截获广播帧, 以便获取 arp报文。 也可以利用 sniffer监听网络中所有报文的功能以分析其中的arp报文。源物理地址 目标物理地址发送方物理地址mac amac broadcastmac a发送方 ip 地址ipaarp 请求报文接收方物理地

7、址接收方 ip 地址ipb帧首部源物理地址 目标物理地址 发送方物理地址 发送方 ip 地址 接收方物理地址 接收方 ip 地址mac bmac amac bipbmac aipa帧首部假设无盘站a( ip a/maca)请求自己的arp 应答报文ip 地址, rarp服务器的ip 和 mac地址映射关系为ips/macs,广播地址用 macbroadcast 表示。填充下图中带?的字段。源物理地址 目标物理地址mac amac broadcast发送方物理地址mac a发送方 ip 地址 接收方物理地址 接收方 ip 地址帧首部rarp 请求报文源物理地址 目标物理地址 发送方物理地址 发送

8、方 ip 地址 接收方物理地址 接收方 ip 地址mac smac amac sipsmac aipa帧首部rarp 应答报文5.在 apnic 的主页上查询你自己的ip 地址,得到的结果是什么? 利用 dos命令获取 ip 地址,并去 查询。4. 假设主机 a( ip a/maca)请求主机 b( ip b/macb)的物理地址,广播地址用macbroadcast 表示。填充下图中带?的字段。6. 从地址长度的角度看,ipv6 不再需要 arp,为什么?ipv6 地址长度为 16 字节,以太网 mac地址长度为 6 字节,可以利用直接映射的方法实现地址解析。7. windows操作系统对 d

9、os命令“ ping主机自身的ip 地址”和“ ping ”的后台处理方式有差别吗?设法用实验证实你的答案。有。拔掉网线, ping 主机自身的 ip 地址,结果是“ destination host unreachable”,但 ping,显示的是主机活动有应答。但是用sniffer截获数据,这两种ping 报文都不出现在网络中。8. 分析跨越 2 个或 3 个路由器转发 ip 数据报时 arp的使用步骤,以及经过每个步骤后通信双方及中间路由器arp缓存的变化情况。要点: arp请求和应答不能跨路由器投递。细节与跨一个路由器时类似。9. dos下的 arp

10、 命令仅能查看本地arp缓存。如果本地缓存中没有存储某个ip 对应的 mac,请结合其它 dos命令设计一个方法,在该方法使用后能够利用arp命令看到该 mac。首先使用“ ping ”命令,目标地址设置为目标ip ,此时操作系统会在后台完成arp的流程以获取目标 mac,并记入本地缓存。之后再利用arp命令,就可以看到这个mac了。10. 编写一个 arp欺骗程序,使得运行该程序的主机能够嗅探本网段内所有发往默认网关的数据。要点 1:该程序应能够获取网关的ip 和 mac以及宿主机的 ip 和 mac;(为实施欺骗作准备)要点 2:该程序应能够发送arp应答报文, 并把其中的发送方物理地址/

11、 发送方 ip 地址的映射关系设置为宿主机的mac/网关的 mac;(该步骤是实施欺骗)要点 3:该程序能够保存嗅探到的数据,并记录相应帧首部的源mac和 ip 数据报中包含的源 ip ;(保存嗅探到的数据,并为转发该数据做准备,以便被嗅探的双方无法察觉)要点 4:该程序应能够转发所有发送给网关的数据(arp请求除外)以及从网关发出的数据。对于发送给网关的数据, 帧首部的源和目标物理地址分别设置为被嗅探主机和网关的物理地址;对于从网关发出的数据,这两个地址分别设置为网关和被嗅探主机的ip 地址。11. 从传播的范围、实现的方式、需要的底层硬件支持等角度比较硬件广播、物理广播和ip 广播的差异及

12、联系。硬件广播是指网络投递方式,是由硬件技术本身的属性决定的。比如以太网,它使用载波监听多路访问及冲突检测技术,这种技术本身具备广播的特性,即发送一个物理帧,无论其目标物理地址设置为什么,都必须以广播的方式进行投递,而线路上的所有主机都具备 收到这个帧的可能性, 为了区分目标和源, 必须具备不冲突的地址。 而所有收到数据的主机都必须依靠这个地址进行过滤,忽略不属于自己的数据, 并把自己可接收的数据作进一步处理。对于拨号链路而言, 其投递的方式是点到点的,线路的另一端就是目标,因此可以不必设置目标地址。物理广播是指把帧的目标物理地址设置为硬件广播地址,这样网络中的所有主机都能收到这个数据并进行进

13、一步的处理。物理广播的范围是确定的,它不能跨越物理网络实现。ip 广播是指把目标 ip 地址设置为 ip 广播地址, 这样, 某个 ip 网段内的所有主机都可以收到这个数据并进行处理。ip 广播范围不限,可以跨越物理网络实现。如果硬件为广播方式,则ip 广播可以依托该技术实现,不必向每个主机复制数据;否则必须给目标网段中的每个ip 复制一份数据,以实现广播的目的。第四章1. 阅读 rfc2474,了解区分服务的目的。此题有误,应该是“了解其中提及的区分服务的用途”。即“使用相同的码点合并数据流,或者使用相同的端点地址、不同的码点区分数据流。”2. 只对数据报首部而不对数据计算检验和,有什么优缺

14、点?优点:简化 ip 软件的计算量,提高处理速度。对于路由器等转发设备,这点对于提高其性能很重要。此外,某些高层(或需要由ip 封装)的协议已经有计算校验和的功能,即ip 数据报的数据区已经被计算校验和,ip 仅针对首部计算校验和可以避免重复劳动。缺点:高层(或需要由ip 封装)协议若需要保证可靠性,必须实现校验功能。3. 在以太网上发送 ip 数据报时,是否总有必要使用校验和机制?请解释原因。以太网帧本身包含帧校验和字段,校验区域包含了数据报, 理论上 ip 不必使用校验和。但实际中, ip 使用校验和机制是默认的。4. ip规定数据报的重组地点是目的主机,有什么优缺点?优点:简化中间路由器

15、的操作,提高效率;避免重复分片;每个分片独立选路,增加了灵活性。缺点:中间经过 mtu较大的网络时,可能会浪费带宽。5. 用 c 语言写出 freebsd 分片重组算法。实验题,思想和要点已在教材中给出。6. 写出基于洞的分片重组算法的步骤。 实验题,思想和要点已在教材中给出。7. 设计程序,实现校验和算法。实验题,思想和要点已在教材中给出。8. 对拥有记录路由选项的数据报进行分片时,是否应将该选项复制到各分片中?为什么? 对于拥有时戳选项的数据报呢?不必。每个分片独自选路,即便记录,每个分片记录的信息也不一致。9. 严格源路由选项的代码字段值为137,是如何得出的?“复制”位为 1,表示选项

16、应复制到所有分片; “选项类”为 0,选项号为 9,即“ 01001”,则整个代码字段二进制为“10001001”,十进制为 137。10. 使用环回地址可方便网络软件的开发。正常情况下,主机发送到的数据报, 会不会出现在本地网络?(为了证实你的答案,可将网线拔掉,ping ,看是否有回送消息)不会,有回送消息。11. 对于如图 4-15 所示的互联网,请给出路由器s 的路由表。目的网络下一跳直接投递直接投递12. 使用 route程序,查看你的主机中的路由表,并

17、尝试对各表项进行解释。使用 routeprint即可查看本机路由表,其中通常包含到默认网关的路由、环回地址的路由、直连网段的路由、发往本主机的路由、本地广播路由、组播路由、全网路由(针对有限广播地址) 。,此页面给出了一个实例及每条路由的解释。13. 了解 isp(internet服务提供商)是如何进行流量计费和流量控制的。参考资料:,http:/www.mingpeng-, , 。14. 为什么中间路由器转发数据报之前要重新计算校验和?因为路由器对数据报进行了处理,部分字段值发生了变化:ttl 值减 1,包含选项时选项的内容也要发生更改。因此,必须针对变化后的内容重新计算校验和。15. 为什

18、么一个 ip 数据报在传输过程中可能会被多次分片?举例说明。在 ip 数据报的投递过程中可能会经过多个物理网络,每个网路的mtu不尽相同。只要转发过程中后一个网络的mtu小于之前网络的mtu,数据报就会被分片。16. mf位是片未完位,那么假设收到一个包含mf=0的分片,能否说明已经收到了所有的分片?如果答案是肯定的,请说明理由;如果是否定的,那么要这个位有什么用途呢?不能。 因为各个分片的投递是独立的,很可能最后一个分片(mf=0)的分片先于其它分片到达目的地。 这个位标识最后一个分片,结合这个分片里的片偏移量和长度等信息,可以计算原始数据报的长度,为分配缓冲区等提供便利。17. 为何使用源

19、路由选项时,中间路由器要用自己的出口ip 地址取代入口 ip 地址写入选项的地址表中?为目的端发回响应提供便利。若响应仍走这条路由,则路由器出口的ip 地址成为响应报文的入口 ip 。18. 分析在编写本文讨论的两个分片重组算法程序时,为应对teardrop和 ping of death攻击,在哪些地方必须特别注意?要点:特别注意分片合法性的验证。第五章1. 路由器是否应该优先处理icmp报文?不。 icmp报文封装在ip 报文中,和其它ip 报文一样在路由器的队列中进行排队,路由器则按照先入先出的规则处理报文。对路由器而言,与优先权有关的不是ip 数据报中封装的报文类型,而是ip 首部中的

20、qos字段。2. 如果携带 icmp报文的 ip 数据报出现差错,则不应产生新的icmp报文。试解释其原因。如果这个数据报再出现差错呢?这样规定是防止无休止地循环发送差错报告报文。3. 如图 5-16 所示,数据从 s 发送到 d,但是经过的路由器为:r1、r2、r3 和 r5。这是一条效率不高的路径。但r5 不能发送 icmp重定向报文,将路由改为r1、r4 和 r5。为什么?r2r3r1r5sr4d图 5-16 icmp 不能重定向的例子重定向报文仅能用于属于同一网络的主机和路由器之间。对于图中的例子,r5 仅可能向 d 发送重定向报文,仅r1 能向 s 发送重定向报文。4. 假设以太网上

21、有1 个主机 h 与 5 个路由器相连。设计1 个携带 ip 数据报的物理帧(稍微有点不合法) ,使得主机 h 发送它时,引起主机h 接收 10 个数据报。利用 icmp重定向报文和回送请求报文。h 发送一个 icmp回送请求报文,其目的ip 地址设计为自身, 但是目的物理地址设置为硬件广播地址。这样, 所有路由器都会收到这个报文并转发( 5 个),而这些路由器发现主机使用了非优化路由,则向该主机发送重定向报文(5 个)。5. 设计一个使用 icmp时戳请求和应答报文进行时钟同步的算法。假设初始时戳为 ti ,接收时戳为 tr ,传送时戳是 tt ,发送方收到回应的时间是th,则传输时延 dt

22、 的估算方法如下:dt = (t h - ti ) (t t - tr ) 。其中 (t h - ti ) 是整个往返的延时, 而(t t - tr ) 是接收方的处理时间。如果认为两个方向的通信时间大致相等,则单向传输时延应为dt /2 ,则发送方与接收方的时差应为tr dt /2-t i 。由此可以进行时钟同步。6. icmp 时戳请求报文是否应包含一个指明报文何时发送的时戳?不必。该机制中交互的对等端就是通信双方的icmp协议模块,没有必要考虑由生成请求到发送到网络这段处理时间。(接收方之所以要加入接收时戳和传送时戳,是因为这两个 时间的差值体现了icmp本身的处理时间。 )7. 在 w

23、indows 系统中,也可以使用ping程序来查看数据报所经过的路径。但当路径长度超过 9 时,则不能使用 ping 程序。试解释原因。ping r 可以实现记录路由的ping 功能。记录路由最大只能记录9 个路由器。8. 查阅资料,了解并使用图形化的traceroute工具。最常见的 visualroute,还有 3d traceroute,具体可到互联网搜索下载。9. 本章提到,使用icmp echo request报文时,数据区填充的内容由具体实现指定。在windows 下尝试 ping 命令,看看 windows 给数据区填的内容是什么? 见下图。10. 为什么仅能向源站报告差错?路由

24、器收到 ip 数据报时,如果该数据报不包含记录路由、源路由选项,则不体现任何中间路由器信息,仅能体现源ip 信息。因此,必须向源端报告差错。此外,路由器发现数据报发生差错时, 无法判断究竟是在投递过程中的哪一步发生差错,因此, 仅能向源站报告差错。11. 为什么路由器通告报文的发送周期是10 分钟,而一条路由的存活时间是30 分钟?考虑到通告报文可能丢失,存活时间必须大于发送周期。12. 在 icmp目的站不可达报文中,有一类错误是“需要分片但df 置位(不能进行分片) ”。基于此,请给出一个路径mtu的测量算法。思想:发送 ip 数据报并强制该数据报不能分片,如果收到该类错误报告,说明该报文

25、尺寸过大,则继续调小尺寸并继续发送该种ip 数据报;如果未收到该类报告,说明尺寸偏小或正好,此时可以增大ip 数据报的尺寸。为了较快地逼近实际值, 可以首先将第一个探测报文的尺寸设置为最大ip 数据报长度, 之后利用二分算法的思想调整探测报文尺寸。13. 你能否给出其它用于traceroute程序的判断是否到达目标的方法?可以将探测报文改为udp报文, 并把其目的端口号设置为一个不常用的端口。这样, 中间路由器返回的是icmp超时报文, 而目标返回的是 icmp端口不可达报文, 由此可以判断到达了目的端。14. 阅读 rfc1393,看看有没有其它实现traceroute的方法。该方法的思想是

26、对icmp echo报文进行扩展,增加新选项以实现路径发现功能,具体阅读该标准既可。第六章1. 分析传输层的作用,并与概述中所讨论的通用分层模型思想相比较。加强和弥补 ip 层的服务。“加强”指提供可靠性,而tcp/ip 的传输层则提供了不同的可靠性级别以适应不同的应用需求;弥补指提供端到端的服务,并通过不同的端口号区分不同的上层应用。2. 利用端口号而不是进程标识符来指定一台机器的目的进程,有什么优点?进程标识符是动态变化的,每次应用程序重启都会对应不同的标识符,而端口号是相对固定的。 网络通信中的客户端需要主动与服务器建立连接,其连接的目标必须是固定的,因此,必须用端口号来标识。3. 使用

27、预分配的 udp端口号,有什么优点? 此题忽略,无意义。4. 能否将同一端口号分配给两个进程使用,设法通过实验证实你的结论?不能。利用 socket 编程,使用 bind 函数将同一端口绑定给两个应用(套接字),后启动的应用(进程)无法使用该套接字。5. 为什么 udp校验和独立于 ip 校验和?你是否反对这样一个协议:对包括udp报文在内的整个 ip 数据报使用一个校验和?ip 仅针对首部计算校验和,udp报文封装在 ip 数据报中作为数据报的数据区,因此单独计算校验和。这样整个ip 数据报都可以被校验。反对。 ip 和 udp属于不同的协议模块和层次,合并校验不利于区分错误来源。此外,在数

28、据报投递过程中, 对于目标不是自身的数据报,路由器则仅处理ip 部分, 不关注高层, 分开计算时,当发现ip 发生差错就可进行相应处理,合并计算校验和则不便于这种处理。在目的端,数据在接收过程中则是沿着协议栈逐层向上递交的,分开计算时当ip 首部发生差错,数据报就不会递交给udp模块,合并时则无法实现这一点。6. 接收端收到有差错的udp报文时应如何处理?发生差错有几种情况:若udp目的端口号未开放,则返回icmp端口不可达报文;若检验校验和时发生差错,则丢弃。7. 一个 udp数据报首部的十六进制表示为:0632 0045 001c e217。试求源端口、目的端口、用户数据报的总长度、数据部

29、分长度。这个数据报是从客户发送给服务器还是从服务器发送给客户的?使用udp的这个服务器程序是什么?题目有误,应改成0632 0035 001c e217。(不用改)源端口: 1568 (0632),目的端口53( 0035),报文长度28 字节( 001c),数据部分长度 28-8=20 字节。客户端发给服务器,服务器程序是dns。原题目是 45,是 69, tftp。8. 假定一台主机连接在以太网上,它要发送总长度为8192 字节的 udp报文。该报文最终被分成多少个 ip 数据报投递?以太网 mtu为 1500 字节。假设ip 不使用选项,则其长度为20 字节,所以预留给udp的长度为 1

30、480 字节。所以最终的分片数为|8192/1480|+1=6,其中“ | ”标识取整。9. 如何判断远程机器上的某个udp端口是否开放?向该端口发送 udp报文,若收到 icmp端口不可达报文,则该端口未开放。10. 从网络安全的角度看,使用知名端口号会不会存在安全风险?单看这种行为, 不会存在风险。 但是知名端口与一些知名应用相关,这些应用可能存在安全缺陷, 比如协议本身有缺陷,或者实现有安全漏洞。因此,黑客攻击的第一步往往是实施端口扫描,为随后的攻击步骤奠定基础。第八章8.1 对于使用代理 arp的路由器,如果使用主机地址表来决定是否回答arp请求,只要在某个网络中添加一个新主机,就必须修改该选路表。考虑如何分配ip 地址才能在不改变选路表的情况下添加主机。 (提示:考虑子网)用路由器连接的每个物理网络被分配连续的ip 地址段, 这样, 路由器可以使用网络号/ 掩码的格式来表述: 到某个网段的机器用代理arp。这样,只要新主机的地址处于这个网段, 就不必修改选路表。8.2 透明路由器可否用于局域网,如以太网?为什么?从

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论