第5章ICMP.ppt

上传人:laozhun 文档编号:2429654 上传时间:2023-02-19 格式:PPT 页数:57 大小:601.50KB
返回 下载 相关 举报
第5章ICMP.ppt_第1页
第1页 / 共57页
第5章ICMP.ppt_第2页
第2页 / 共57页
第5章ICMP.ppt_第3页
第3页 / 共57页
第5章ICMP.ppt_第4页
第4页 / 共57页
第5章ICMP.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《第5章ICMP.ppt》由会员分享,可在线阅读,更多相关《第5章ICMP.ppt(57页珍藏版)》请在三一办公上搜索。

1、第五章 ICMP协议RFC792TCP/IP详解卷1:CH6、CH7、CH8,主要内容,5.1 因特网控制报文协议ICMP5.2 Ping程序5.3 Traceroute(Tracert)课下作业,5.1 因特网控制报文协议ICMPInternet Control Message Protocol,应用层,传输层,网络层t,数据链路层,物理层,目的不可达Echo(Ping)其它,ICMP,1,ICMP的目的,为了减少IP数据报的丢失,ICMP的类型,差错报文,询问报文,改变路由报文,源站抑制报文,Echo请求报文,ICMP时间戳请求报文,ICMP地址掩码请求报文,ICMP数据报的格式,位 0

2、8 16 31,ICMP报文,IP数据报,对I C M P差错报文有时需要作特殊处理,在对I C M P差错报文进行响应时,永远不会生成另一份I C M P差错报文如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去。,下面情况都不会导致产生I C M P差错报文,ICMP差错报文(但是,I C M P查询报文可能会产生I C M P差错报文)。目的地址是广播地址或多播地址的I P数据报。作为链路层广播的数据报不是I P分片的第一片源地址不是单个主机的数据报。这就是说,源地址不能为零地址、环回地址、广播地址或多播地址。,ICMP地址掩码请求与应

3、答,用于无盘系统在引导过程中获取自己的子网掩码无盘系统获取子网掩码的另一个方法是B O O T P协议,ICMP地址掩码请求和应答报文,ICMP时间戳请求与应答,I C M P时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间(Coordinated Universal Time,UTC)。这种I C M P报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间(如某些U n i x系统提供的r d a t e命令)只能提供秒级的分辨率。,ICMP时间戳请求和应答报文,请求端填写发起时间戳,然后发送报文。应答系统收到请求报文时填写

4、接收时间戳在发送应答时填写发送时间戳但是,实际上,大多数的实现把后面两个字段都设成相同的值提供三个字段的原因是可以让发送方分别计算发送请求的时间和发送应答的时间,计算出往返时间RTT,由于时间戳的值是自午夜开始计算的毫秒数,即U T C,因此它们的值始终小于86 400 000(2 46 06 01 0 0 0)。,获得时间和日期的其他方法,日期服务程序和时间服务程序网络时间协议(N T P)RFC 1305开放软件基金会(O S F)的分布式计算环境(D C E)定义了分布式时间服务(D T S)伯克利大学的U n i x系统提供守护程序t i m e d(8),来同步局域网上的系统时钟,I

5、CMP端口不可达差错,如果收到一份U D P数据报而目的端口与某个正在使用的进程不相符,那么U D P返回一个I C M P不可达报文。可以用T F T P来强制生成一个端口不可达报文一个I C M P端口不可达差错是立刻返回的I C M P差错报文必须包括生成该差错报文的数据报I P首部(包含任何选项),还必须至少包括跟在该I P首部后面的前8个字节。,UDP端口不可达时返回的ICMP报文,ICMP不可达报文的类型,I C M P不可达报文的一般格式,尽管在I C M P报文中的第二个32 bit字必须为0但是当代码为4时(“需要分片但设置了不分片比特”),路径M T U发现机制却允许路由器

6、把外出接口的MTU填在这个32 bit字的低16 bit中。,5.2 Ping程序,Ping程序由Mike Muuss编写目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。Ping程序还能测出到两台主机间的往返时间Ping还给我们提供了检测I P记录路由和时间戳选项的机会,大多数的T C P/I P实现都在内核中直接支持P i n g服务器,这种服务器不是一个用户进程是直接在内核中进行处理的,I C M P回显请求和回显应答报文,标识符 U n i x系统在实现p i n g程序时是把 I C M P报文中的标识符字段置成发送进程的I D号

7、。序列号 序列号从0开始,每发送一次新的回显请求就加1。,IP记录路由选项,p i n g程序为我们提供了查看I P记录路由(R R)选项的机会。大多数不同版本的p i n g程序都提供-R选项,以提供记录路由的功能。它使得p i n g程序在发送出去的I P数据报中设置I PR R选项(该I P数据报包含I C M P回显请求报文)。这样,每个处理该数据报的路由器都把它的I P地址放入选项字段中。当数据报到达目的端时,I P地址清单应该复制到I C M P回显应答中,这样返回途中所经过的路由器地址也被加入清单中。,现在的大多数系统都支持这些选项功能,只是有一些系统不把I C M P请求中的I

8、 P清单复制到I C M P应答中。但是,最大的问题是I P首部选项中只有有限的空间来存放I P地址。,I P数据报中的R R选项的一般格式,c o d e 指明I P选项的类型。对于R R选项来说,它的值为7。l e n 是R R选项总字节长度,最大为3 9。p t r 指针字段,是一个基于1的指针,指向存放下一个I P地址的位置。它的最小值为4,指向存放第一个I P地址的位置。随着每个I P地址存入清单,p t r的值分别为8,1 2,1 6,最大到3 6。当记录下9个I P地址后,p t r的值为4 0,表示清单已满。,当路由器在清单中记录I P地址时,它应该记录哪个地址呢?是入口地址还

9、是出口地址?RFC 791 Postel 1981a指定路由器记录出口I P地址。有时会看到,当原始主机(运行p i n g程序的主机)收到带有R R选项的I C M P回显应答时,它也要把它的入口I P地址放入清单中。,做实验并分析:IP记录路由,IP时间戳选项,时间戳选项的代码为0 x 4 4l e n 选项的总长度,一般为3 6或4 0。p t r指向下一个可用空间的指针(5,9,1 3等)O F表示溢出字段 F L表示标志字段。,时间戳选项的操作根据标志字段来进行,如果路由器由于没有空间而不能增加时间戳选项,那么它将增加溢出字段的值。,Ping命令,ping命令是测试连接的一个非常有用

10、的工具,可以在各种协议中用来检查同远程主机之间的连接,合理利用ping可以对95%以上的网络故障进行定位。,影响Ping的因素,主机忙引起超时 路径长引起超时访问列表引起超时,主机忙引起超时,如果有足够的时间和资源来进行响应,主机会立即响应的。如果没有足够的时间或资源来响应,ping请求将被放在队列中,并在能够响应的时候再响应。Ping请求的缺省超时时间为2秒也许当主机有能力响应ping命令已经超时,虽然两站之间是可达的,但ping的反馈结果是不可达。,路径长引起超时,缺省情况下,ping将TTL设为32 ping每经过一个路由器TTL减1如果路径特别长,还没有到达目的地时TTL已经变为0,这

11、时,最后一台路由器将发送回ICMP超时消息。,访问列表引起超时,在IP连接可用的情况下,ping总是显示连接不可用,最常见的原因是访问列表。假定访问列表中有下列行,并且在路由器的入站串行端口上已经激活:Deny icmp any any echo-replyPermit icmp any any echo-request这时,请求能发送出去,但不允许应答发送进来,最终ping 将超时。这种情况下,其他网络中的主机也许可以ping到你的主机,但你的主机将永远无法成功地ping到经过该接口的主机。,Ping命令的格式,ping-t-a-n count-l length-f-i ttl-v tos-

12、r count-s count-j computer-list|-k computer-list-w timeout destination-list,-t 不停地Ping指定的计算机直到按Ctrl+C中断。-n count 发送count 指定的ECHO 数据包数和目标主机连接。默认值为4。-l length 发送包含由length 指定的数据量的ECHO 数据包。默认为32 字节;最大值是65,527。-w timeout 指定超时间隔,单位为毫秒,缺省值为1000。-a 将地址解析为计算机名。-f 在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段。-i ttl将“生存时间”

13、字段设置为ttl 指定的值。,-v tos 将“服务类型”字段设置为tos 指定的值。-r count 在“记录路由”字段中记录传出和返回数据包的路由。count 可以指定最少1 台,最多9 台计算机。-s count 指定count 指定的跃点数的时间戳。-j computer-list 利用computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(宽松源站选路)IP 允许的最大数量为9。-k computer-list 利用computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(严格站选路)IP 允许的最大数量为9。destinat

14、ion-list 指定要ping 的远程计算机。,使用Ping排除故障的顺序,使用winipcfg、ipconfig、show run等命令查看当前的IP地址、子网掩码和缺省网关,保证这些设置都正确。ping本机IP地址检查网卡,如果连接超时,说明网卡有问题,检查网卡本身、配置和驱动程序。ping 127.0.0.1,测试本设备上的网络接口。若连接超时,很可能是IP协议没有正确安装,在Windows系统中,可能是IP协议栈出现了问题,重新安装协议即可解决问题。,ping缺省网关,如果超时,ping本地子网上的其他主机,如果连接正常,则说明问题肯定出现在缺省网关上;如果连接超时,进行下一个步骤。

15、到本网内的另一个工作站上,并尝试通过网关进行ping。如果该工作站正常,则问题出在开始的工作站上,检查连接到开始工作站的网线和接口;如果这个工作站也不正常,则说明问题出在缺省网关上。,5.3 Traceroute(Tracert),由Van Jacobson编写的Traceroute程序是一个能更深入探索TCP/IP协议的方便可用的工具。尽管不能保证从源端发往目的端的两份连续的IP数据报具有相同的路由,但是大多数情况下是这样的。Traceroute 程序可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。Traceroute 程序还可以让我们使用IP源路由选项。,开发Tracerou

16、te的原因,既然已经有I P记录路由选项(R R),为什么不使用这个选项而另外开发一个新的应用程序?原因:原先并不是所有的路由器都支持记录路由选项记录路由一般是单向的选项IP首部中留给选项的空间有限,Traceroute的用途,Traceroute同ping命令一样,可以用来测试连接性,它耗费的时间比ping命令长,但它可以提供更多的信息所以,在用ping命令无法查出故障时,traceroute可以帮助我们较好地解决问题。,Traceroute的工作原理,Traceroute开始将发送3个ICMP echo-request报文,TTL设置为1,使得第一台路由器处理这些数据报,并发送回ICMP超

17、时消息。Traceroute查看ICMP超时消息并在控制屏幕上显示出该路由器然后,traceroute将发送另外一组echo-request报文,且每次将TTL增加1。这种请求传到第二台路由器,TTL减为0,第二台路由器将发送回超时消息。这个过程一直持续下去,直到目的主机响应或者能够确定目的主机不可达为止。,在远程主机响应时,traceroute将显示出完整路径以及每两个路由器之间花费的时间。如果目的主机没有响应,仍然回报尝试寻找主机所经历的路径。Traceroute命令如下:Router#traceroute 169.26.3.1,用traceroute命令检查循环路由举例,Router#t

18、raceroute 169.26.3.1Type escape sequence to abort.Tracing the route to 169.26.3.11 169.22.1.5 4 msec 0 msec 4 msec2 169.22.1.1 4 msec 0 msec 4 msec3 169.22.1.5 4 msec 0 msec 4 msec4 169.22.1.1 4 msec 0 msec 4 msec 任何时候,只要路由器多次显示同一个接口,就说明产生了循环路由。静态路由的错误使用和路由的重分布常常会导致这种问题的发生。,关于Traceroute的说明,并不能保证现在的路

19、由也是将来所要采用的路由,甚至两份连续的I P数据报都可能采用不同的路由。不能保证I C M P报文的路由与t r a c e r o u t e程序发送的U D P数据报采用同一路由。返回的I C M P报文中的信源I P地址是U D P数据报到达的路由器接口的I P地址。I P记录路由选项不同,记录的I P地址指的是发送接口地址。,IP源站选路选项,通常I P路由是动态的,即每个路由器都要判断数据报下面该转发到哪个路由器。应用程序对此不进行控制,而且通常也并不关心路由。它采用类似Tr a c e r o u t e程序的工具来发现实际的路由。源站选路(source routing)是由发送

20、者指定路由,源站选路的方法,严格的源站选路宽松的源站选路Traceroute程序提供了一个查看源站选路的方法作业:先用Traceroute查看路径,再在选项中指明源站选路,然后检查其运行情况。注:Traceroute提供了宽松的源站选路和严格的源站选路 Tracert只提供了宽松的源站选路,源站选路选项的格式,c o d e 对于宽松的源站选路其值为0 x 8 3,而对于严格的源站选路,其值为0 x 8 9。l e n和p t r字段与I P数据报中的R R选项的一般格式中所描述的一样。,Tracert 命令格式,tracert-d-h maximum_hops-j computer-list

21、-w timeout target_name-d 指定不将地址解析为计算机名-h maximum_hops 指定搜索目标的最大跳数-j computer-list 指定沿computer-list 的宽松源站选路-w timeout 每次应答等待timeout 指定的微秒数 target_name 目标计算机的名称,课下作业(必做),1.查资料:网络时延的测量技术 并做相应的实验2.Ping和Traceroute是如何计算往返时延的,它们计算往返时延有什么不同?3.查资料:ICMP的安全性及防御策略研究 并做相应的实验4.用Ping做实验并分析:IP记录路由-r 选项 作实验:先用Tracert查看路径,再在选项中源站选路,然后检查其运行情况。5.用Ping和Tracert做更多的实验,课下作业(选做),1.编程序,实现Ping和Traceroute(Tracert)2.编程序,利用ICMP数据包,发现指定网段中的活动主机。运行格式:程序名 被搜索网段的开始IP 被搜索网段的结束IP 实现方法一:用原始套接字生成ICMP报文来进行活动主机的探查 实现方法二:在Windows下利用ICMP.DLL发送Ping消息,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号