资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ICMP协议1 ICMP协议的概念与作用2 ICMP数据包的层次与格式 3 ICMP数据包的类型 4 ICMP差错报文的特点5 各种ICMP数据包5.1 差错报告报文5.2 icmp控制报文5.3 icmp请求/应答报文 6.ICMP应用:1.ping 2.tracert3.MTU计算2021/6/311 ICMP协议的概念与作用ICMP(Internet Control Messages Protocol, 网际控制报文协议),通过它可以知道故障的具体原因和位置。由于IP不是为可靠传输服务设计的, ICMP的目的主要是用于在TCP/IP网络中发送出错发送出错和控制消息控制消息。ICMP的错误报告只能通知出错数据包的源主机只能通知出错数据包的源主机,而无法通知从源主机到出错路由器途中的所有路由器(环路时)。ICMP数据包是封装在IP数据包中的。2021/6/322 ICMP数据包的层次与格式层次: ICMP数据包是封装在IP数据包中的。2021/6/332 ICMP数据包的层次与格式ICMP数据包格式如图5-1所示。2021/6/343 .ICMP数据包类型ICMP报文的种类有三大类种,即ICMPICMP差差错错报报告告报文、报文、控制控制报文、报文、请求请求/ /应答应答报文报文。各大类型报文又分多种类型报文。(见后面附图)2021/6/353 .ICMP数据包类型IP协议全貌协议全貌2021/6/363. ICMP数据包类型ICMP报文的类型和代码字段的值与ICMP报文类型的对应关系2021/6/373. ICMP数据包类型ICMP报文类型2021/6/383. ICMP数据包类型ICMP报文类型2021/6/393. ICMP数据包类型ICMP报文类型2021/6/3104 ICMP差错报文的特点报告IP数据报在传输中的差错是ICMP报文最基本的功能,ICMP差错报文有如下特点:(1) ICMP差错报文都是由路由器发送到源主机的,因为IP数据报中含有源主机的IP地址,报告给源主机是最可行的方案,另外,发出IP数据报的源主机最需要知道数据是否到达目标主机。(2) ICMP差错报文只提供IP数据报在传输过程中的差错报告,并不规定对各类差错应采取什么样的处理措施。具体对差错的处理,由收到ICMP差错报文的源主机将相应的差错与应用程序联系起来才能进行相应的差错处理。2021/6/3114 ICMP差错报文的特点(3) ICMP差错报文不享受任何优先权,也没有特别的可靠性保证措施,与普通的IP数据报一样进行传输,传输过程中可能被丢失、损坏,甚至被抛弃。(4) ICMP差错报文是伴随着抛弃出错的IP数据报而产生的。(5) 当路由器发送一份参数错误等的ICMP差错报文时,ICMP报文数据区始终包含产生ICMP差错报文的IP数据报的头部和其数据区的前8个字节(64位)。2021/6/3124 ICMP差错报文的特点 当路由器发送参数错误等的ICMP报文数据字段由两部分组成,一部分是收到的需要进行差错报告的IP数据报的首部,另一部分是IP数据报的数据字段的前8个字节,如图5-3所示。2021/6/3134 ICMP差错报文的特点(6) 在有些情况下,为了防止在网络中产生大量的ICMP差错报文(广播风暴),影响网络的正常工作,即使发生差错,也不会产生ICMP差错报文,这些情况包括: ICMP报文发生差错。这是为了避免差错报文无休止产生而规定的(但ICMP查询报文可能会产生ICMP差错报文)。 目的地址是广播地址或多播地址(D类地址)的IP数据报。 作为链路层广播的数据报。 不是IP分片的第一片。 源地址不是单个主机的数据报。这就是说,源地址不能为零地址、回送地址、广播地址或多播地址。2021/6/3145.1 差错报告报文信息不可达信息不可达报文文网关在以下情况下发出信息不可到达报告 1) 信宿机硬件出现故障或关机; 2) 发送者指定的地址不存在; 3) 网关不知道去往信宿的路径;信宿不可到达报告的格式2021/6/315码域值:码域值: 0 12, 0 12,进一步说明信宿不可到达的具体原因进一步说明信宿不可到达的具体原因 码值码值 意意 义义 码值码值 意义意义 0 网络不可到达 1 主机不可到达 2 协议不可到达 3 端口不可到达 4 需分片,但DF置位 5 源路由失败 6 信宿网络未知 7 信宿主机未知 8 源主机被隔离 9 与信宿网络的通信被隔离 10 与信宿主机的通信被隔离 11 对请求的服务类型,网络不可到达 12 对请求的服务类型,主机不可到达5.1 差错报告报文信息不可达信息不可达报文文2021/6/3165.1 差错报告报文互连网寻址是路由器根据本地寻径表进行的;如果寻址出现错误,可能出现routing cycle;为了避免报文无限制的在网中循环,IP 协议采用了两种措施: 在数据报头设置TTL域; 对分片数据报采用定时器技术;当报文超时出现时,路由器或信宿立即丢弃该数据报,并使用ICMP超时报文向信源机发送报告;超超时报文文2021/6/3175.1 差错报告报文1) 参数出错报文参数出错报文报告出错的报文头与错误的报文选项参数2) 路由器或信宿机在丢弃参数出错的报文时,将向信源机发出参数出错报文;3) 参数出错报文格式:0 - 数据报某个参数错,指针域指向出错的字节;1 - 数据报缺少某个选项,无指针域;参数出参数出错报文文2021/6/3185.2 ICMP控制报文 ICMP控制报文1拥塞控制与源站抑制报文当一个路由器接收IP数据报的速度比其处理IP数据报的速度快,或一个路由器传入数据报的速率大于传出数据报的速率时,就会产生拥塞(Congestion)现象。这时路由器可以通过发送源站抑制(Source Quench)报文来抑制源主机发送IP数据报的速率,避免可能产生的差错。2021/6/3195. 2ICMP控制报文源站抑制报文的类型字段为4,代码字段只能为0。源站抑制技术进行拥塞控制的方法如下:(1) 当路由器发生拥塞时,便发出ICMP源站抑制报文。拥塞的判别可以用三种方法:一是检查路由器缓存区是否已满;二是给缓存区输出队列设置一个阈值,判断队列中数据报的个数是否超过阈值;三是检测某输入线路的传输率是否过高。(2) 源主机收到抑制报文后,按一定的速率降低发往目标主机的数据报传输率。(3) 如果在一定的时间间隔内源主机没有收到抑制报文,便认为拥塞已解除,源主机可以逐渐恢复到原来数据报的流量。 2021/6/3205. 2ICMP控制报文2. 路由控制与重定向报文假如源主机要向目标主机发送IP数据报,源主机的默认路由是路由器1,则源主机先把IP数据报送到路由器1,再由路由器1进行路由选择。路由器1经过选路后,把IP数据报送到路由器2。同时路由器1也发现源主机要发送到目标主机的IP数据报以后可以直接发送到路由器2(因为路由器1和路由器2同在一个网络中),则路由器1向源主机发送一个ICMP重定向报文,告诉它可以直接把IP数据报送到路由器2。这样,就使源主机始终保持着一个动态的、既小且优的路径表。2021/6/3215. 2ICMP控制报文ICMP重定向例子2021/6/3225. 2ICMP控制报文重定向优缺点与报文格式优点:保证主机有一个动态、小而优的寻径表缺点:只能用于同一网络内的网关与主机之间的路径信息交换而不能用于网关之间的路径信息交换;码值: 1 - 对主机重定向报文; 2 - 对服务类型和网络的重定向报文 3 - 对服务类型和主机的重定向报文ICMP差错报告与控制报文是单向传输的报文2021/6/3235.3请求与应答报文回送请求与应答报文回送请求与应答报文1)目的:测试信宿机或路由器是否可以到达;2)报文格式:1)标识符与序号用来确定是哪一台主机发出的回应请求;2)回应请求与应答报文以IP数据报方式在互连网中传输,如果成功接收到应答报文的话,则说明数据传输系统、 IP与 ICMP软件工作正常,信宿机可以到达;3)TCP/IP实现中,用户的ping命令就是利用回应请求与应答报文测试信宿机是否可以到达;2021/6/3245.3请求与应答报文1)目的:同步互连网中各个主机的时钟;2)方法: 首先利用该报文从其它主机处获得其时钟的当前时间, 根据时戳请求与应答报文接收的时间,计算出两地的往返延迟, 以此数据来同步时钟,因此这种时钟同步能力是有限的;3)时戳请求与应答报文的格式:时戳请求与应答报文时戳请求与应答报文2021/6/3255.3请求与应答报文地址掩码请求与应答报文地址掩码请求与应答报文1)用于无盘系统在引导过程中获取自己的子网掩码。2)主机启动时,会广播一个地址掩码请求报文。路由器收到地址掩码请求报文后,回送一个包含本网使用的32位地址掩码的应答报文。2021/6/326 有三种基于有三种基于ICMPICMP的简单而广泛使用的应用为:的简单而广泛使用的应用为:PingPing , TracerouteTraceroute,MTUMTU测试测试PingPing 使用使用ICMPICMP回送和应答消息来确定一台主机是否回送和应答消息来确定一台主机是否可达。可达。ICMP应用应用发送数据Z我不知道怎样访问Z广域网到Z目的端不可达ICMP描述了目的地不可达A2021/6/327B可以到达吗?可以,我在这里。ICMP回声请求ICMP回声应答由PING命令产生的回声应答ABPing是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP或UDP.2021/6/328TracertTracert 该程序用来确定通过网络的路由该程序用来确定通过网络的路由IPIP数据报。数据报。TracertTracert基于基于ICMPICMP和和UDPUDP。它把一个它把一个TTLTTL为为1 1的的IPIP数据报数据报发送给目的主机。第一个路由器把发送给目的主机。第一个路由器把TTLTTL减小到减小到0 0,丢弃,丢弃该数据报并把该数据报并把ICMPICMP超时消息返回给源主机。这样,路超时消息返回给源主机。这样,路径上的第一个路由器就被标识了。随后用不断增大的径上的第一个路由器就被标识了。随后用不断增大的TTLTTL值重复这个过程,标识出通往目的主机的路径上确值重复这个过程,标识出通往目的主机的路径上确切的路由器系列切的路由器系列. . 继续这个过程直至该数据报到达目的主机。但是目继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到的主机哪怕接收到TTLTTL为为1 1的的IPIP数据报,也不会丢弃该数据报,也不会丢弃该数据并产生一份超时数据并产生一份超时ICMPICMP报文,这是因为数据报已经报文,这是因为数据报已经到达其最终目的地。到达其最终目的地。那么如何判断是否已经到达目的那么如何判断是否已经到达目的主机了呢?主机了呢? 2021/6/3292021/6/330用用ICMPICMP发现路径发现路径MTUMTU网络网络MTU:Max Transmission Unit是网是网络最大传输单元(包长度),络最大传输单元(包长度),IP路由器必须对超过路由器必须对超过MTU的的IP报进行分片,报进行分片,目的主机再完成重组处理,所以确定源到目的路径目的主机再完成重组处理,所以确定源到目的路径MTU对提高传输效率是对提高传输效率是非常必要的。确定路径非常必要的。确定路径MTU的方法是的方法是“要求报告分片但又不被允许要求报告分片但又不被允许” 的的ICMP报文。报文。1、将、将IP数据报的标志域中的分片数据报的标志域中的分片BIT位置位置1,不允许分片。,不允许分片。2、当路由器发现、当路由器发现IP数据报长度大于数据报长度大于MTU时,丢弃数据报,并发回一个要求时,丢弃数据报,并发回一个要求分片的分片的ICMP报。报。3、将、将IP数据报长度减小,分片数据报长度减小,分片BIT位置位置1重发,接收返回的重发,接收返回的ICMP报的分报的分析。析。4、发送一系列的长度递减的、不允许分片的数据报,通过接收返回的、发送一系列的长度递减的、不允许分片的数据报,通过接收返回的ICMP报的分析,可确定路径报的分析,可确定路径MTU。2021/6/331部分资料从网络收集整理而来,供大家参考,感谢您的关注!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号