您好,欢迎访问三七文档
1第2章互联网基础协议体系2.1ARP协议和RARP协议2.2ICMP协议2.3多播和IGMP协议2.4因特网路由选择协议2知识点•ICMP概念和功能•主要ICMP差错报文/询问报文与功能,ICMP工作原理•ICMP应用Ping、Traceroute和MTU测试3要求•掌握ICMP概念和在TCP/IP体系中的作用和地位,主要的ICMP差错报文和询问报文;•熟悉ICMP传送过程和差错报文主要包含内容;•了解什么时候不发送ICMP;•掌握ICMP的典型应用Ping,了解Traceroute和MTU测试4IP提供的尽力数据报通信服务无连接服务,而并不能解决网络低层的数据报丢失、重复、延迟或乱序等问题,TCP在IP基础建立有连接服务解决以上问题,不能解决网络故障或其它网络原因无法传输的包的问题。Internet控制报文协议ICMP(InternetControlMessageProtocol)所以,ICMP设计的本意就是希望对IP包无法传输时提供报告,这些差错报告帮助了发送方了解为什么无法传递,网络发生了什么问题,确定应用程序后续操作。注意:IP中有关于差错检测的机制——用于检测传输错误的头部检验和。5ICMP具有如下一些特征:•ICMP就像一个更高层的协议那样使用IP(即,ICMP消息被封装在IP数据报中)。然而,ICMP是IP的一个组成部分,并且所有IP模块都必须实现它。•ICMP用来报告错误,是一个差错报告机制。它为遇到差错的路由器提供了向最初源站报告差错的办法,源站必须把差错交给一个应用程序或采取其它措施来纠正问题。6•ICMP不能用来报告ICMP消息的错误,这样就避免了无限循环。当ICMP查询消息时通过发送ICMP来响应。•对于被分段的数据报,ICMP消息只发送关于第一个分段中的错误。也就是说,ICMP消息永远不会引用一个具有非0片偏移量字段的IP数据报。•响应具有一个广播或组播目的地址的数据报时,永远不会发送ICMP消息•响应一个没有源主机IP地址的数据报时永远不会发送ICMP消息。也就是说,源地址不能为0,一个回送地址,一个广播地址或者一个组播地址。7•ICMP的两级封装每个ICMP报文放在IP数据报的数据部分中通过互联网传递,而IP数据报本身放在帧的数据部分中通过物理网络传递。ICMP首部ICMP数据IP数据报首部IP数据报数据区帧首部帧数据区8ICMP报文格式ICMP定义了五种常用差错报文和六种询问报文类型,以及用代码表达某类型下面不同情况的细分。类型代号校验和ICMP数据(取决于消息类型)………………ICMP-报文格式用来标识报文,有15个不同的值提供有关报文类型的进一步信息覆盖整个ICMP报文9ICMP主要差错报文类型代码校验和路由器互联网地址IP数据报首部+数据的前64比特…………………………….所有ICMP差错报告报文中的数据字段都具有同样的格式。将收到的需要进行差错报告的IP数据报的首部和数据字段的前8个字节提取出来,作为ICMP报告的数据字段。再加上相应的ICMP差错报告报文的前8个字节,就构成了ICMP差错报告报文。提取收到的数据报的数据字段的前8个字节是为了得到运输层的端口号(对于TCP和UDP)以及运输层报文的发送序号(对于TCP)10•重定向Redirect(5)当一个源主机创建的数据报发至某路由器,该路由器发现数据报应该选择其他路由,则向源主机发送改变路由报文。改变路由的报文能指出网络或特定主机的变化,一般发生在一个网络连接多路由器的情况下。IP数据报首部ICMP的前8个字节8字节IP数据报首部8字节首部ICMP差错报告报文收到的IP数据报ICMP差错报告报文装入ICMP报文的IP数据报11下面对改变路由报文进行简短的解释:在因特网中各路由器之间要经常交换路由信息,以便动态更新各自的路由表。但在因特网中主机的数量远大于路由器的数量。主机如果也像路由器那样经常交换路由信息,就会产生很大的附加通信量,因而大大浪费了网络资源。所以,出于效率的考虑,连接在网络上的主机的路由表一般都采用人工配置,并且主机不和连接在网络上的路由器定期交换路由信息。在主机刚开始工作时,一般都在路由表中设置了一个默认路由器的IP地址。不管数据报要发送到哪个目的地址,都一律先将数据报传送给网络上的这个默认路由器,而这个默认路由器知道到每一个目的网络的最佳路由。如果默认路由器发现主机发往某个目的地址的数据报的最佳路由不应当经过默认路由器,而是应当经过网络上的另一个路由器R时,就用改变路由报文将此情况报告主机。于是,该主机就在其路由表中增加一项:到某某目的地址应经过路由器R(而不是默认路由器)。12•目的站不可达DestinationUnreachable(3)当路由器检测到数据报无法传递到目的地时,向创建数据报的源主机发出目的地不可达报文。这报文区分:网络不通(如路由器故障),目的主机连不通(没开机),协议不可达、端口不可达、以及共15种不同的情况,用不同代码表示。•源站抑制SourceQuench(4)当路由器收到太多的数据报以致内存不够时,在丢弃所收数据报的同时,向创建数据报的源主机发送源抑制报文。源主机收到源抑制报文后,需要降低发送数据报的速率。13•超时TimeExceeded(11)有两种情况需要发送超时报文。一种是路由器把数据报的生存时间减至零时,路由器丢弃数据报,并向源主机发送超时报文;另一种是一个数据报的所有段到达前,重组计时到点,接收主机也会向源主机发送超时报文。•参数问题ParameterProblem:数据报头部的标志出现差错,或缺少必须的选项14①请求/应答EchoRequest/Reply:可以对任何一台网上主机的ICMP软件发请求/应答报文。③时间戳请求/应答TimestampRequest/Reply:主机发出查询当前时间的请求,应答报文建议值是自午夜开始计算的毫秒数,UTCCoodinatedUniversaltime,协调统一时间)。②地址掩码请求/应答AddressMaskRequest/Reply:主机启动时,会广播一个地址掩码请求报文。路由器收到地址掩码请求报文后,回送一个包含本网使用的32位地址掩码的应答报文。④其它还有DNS请求/应答,以及最新IPv6、安全、移动定位等类型定义注意ICMP差错报文和询问报文有什么差别?ICMP常用询问报文这种询问报文用来测试目的站是否可达以及了解其有关状态。Ping服务就是采用这个报文来获得两个主机之间的连通性。可用来进行时钟同步和测量时间。用于无盘系统在引导过程中获取自己的子网掩码。15有三种基于ICMP的简单而广泛使用的应用为:Ping,Traceroute,MTU测试•Ping使用ICMP回送和应答消息来确定一台主机是否可达。ICMP应用发送数据Z我不知道怎样访问Z广域网到Z目的端不可达ICMP描述了目的地不可达A16B可以到达吗?可以,我在这里。ICMP回声请求ICMP回声应答由PING命令产生的回声应答ABPing是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP.17•Traceroute该程序用来确定通过网络的路由IP数据报。Traceroute基于ICMP和UDP。它把一个TTL为1的IP数据报发送给目的主机。第一个路由器把TTL减小到0,丢弃该数据报并把ICMP超时消息返回给源主机。这样,路径上的第一个路由器就被标识了。随后用不断增大的TTL值重复这个过程,标识出通往目的主机的路径上确切的路由器系列.继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到TTL为1的IP数据报,也不会丢弃该数据并产生一份超时ICMP报文,这是因为数据报已经到达其最终目的地。那么如何判断是否已经到达目的主机了呢?18Traceroute实现有两种方法:一种:发生一个ICMP回应请求报文;目的主机将会产生一个ICMP回应答复报文。Microsoft实现(tracert)中采用该方法。当回应请求到达目的主机时,ICMP就产生一个答复报文,它的源地址等于收到的请求报文中的目的IP地址。另一种:发生一个数据报给一个不存在的应用进程;目的主机将会产生一个ICMP目的不可达报文。大多数UNIX版本的traceroute程序采用该方法。Traceroute程序发送一份UDP数据报给目的主机,但它选择一个不可能的值作为UDP端口号(大于30,000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的UDP模块产生一份“端口不可达”错误的ICMP报文。这样,Traceroute程序所要做的就是区分接收到的ICMP报文是超时还是端口不可达,以判断什么时候结束。19•用ICMP发现路径MTU网络MTU:MaxTransmissionUnit是网络最大传输单元(包长度),IP路由器必须对超过MTU的IP报进行分片,目的主机再完成重组处理,所以确定源到目的路径MTU对提高传输效率是非常必要的。确定路径MTU的方法是“要求报告分片但又不被允许”的ICMP报文。1、将IP数据报的标志域中的分片BIT位置1,不允许分片。2、当路由器发现IP数据报长度大于MTU时,丢弃数据报,并发回一个要求分片的ICMP报。3、将IP数据报长度减小,分片BIT位置1重发,接收返回的ICMP报的分析。4、发送一系列的长度递减的、不允许分片的数据报,通过接收返回的ICMP报的分析,可确定路径MTU。2021思考题1、请简要说明ICMP主要差错控制报文的基本作用2、当IP报头校验机制出错后将丢弃该IP包,此时是否要向源发出ICMP,为什么?2、PING程序主要利用什么ICMP报文,基本原理如何3、一个不可达ICMP报文返回那些基本内容。4、ICMP数据报是否可以用UDP或TCP协议传送?为什么?
本文标题:ICMP协议
链接地址:https://www.777doc.com/doc-5273307 .html