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