好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第6章差错与控制报文协议概要.ppt

38页
  • 卖家[上传人]:今***
  • 文档编号:107618206
  • 上传时间:2019-10-20
  • 文档格式:PPT
  • 文档大小:693.50KB
  • / 38 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第6章 差错与控制报文协议,6.1 ICMP协议 6.2 ICMP报文格式与类型 6.3 ICMP差错报告 6.4 ICMP控制报文 6.5 ICMP请求与应答报文对 6.6 ICMP报文的封装,6.1 因特网控制报文协议(ICMP),ICMP的最初目的是用于IP层的差错报告,由路由器或信宿向信源报告传输错误的原因 随着网络的发展,检测和控制功能逐渐被引入到ICMP协议中,使得ICMP协议不仅用于传输差错报告,而且大量用于传输控制报文 位置:ICMP与IP协议位于同一个层次(IP层),但ICMP报文是封装在IP数据报中进行传输的 作用:ICMP协议是IP协议的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取6.2 ICMP报文格式与类型,ICMP报文由首部和数据组成首部固定为8个字节,前4个字节是通用部分,后4个字节随报文类型的不同有所差异ICMP报文的一般格式如图所示ICMP报文可以分为三大类:差错报告报文、控制报文和请求应答报文6.3 ICMP差错报告报文,ICMP差错报告报文的数据区包含出错数据报的首部及其前64位数据,这些信息有助于信源或管理人员发现错误原因。

      ICMP差错报告具有以下特点: 1)只报告差错,但不负责纠正错误,纠错工作留给高层协议去处理 2)只向信源报告差错 3)差错报告作为一般数据传输,不享受特别优先权和可靠性 4)产生差错报告的同时,会丢弃出错的IP数据报以下情况不会产生ICMP差错报告: 1)ICMP差错报文本身不会再产生ICMP差错报告 2)IP数据报的非第一个分片不会产生ICMP差错报告 3)组播报文不会产生ICMP差错报告 4)特殊地址127.0.0.0和0.0.0.0的报文不会产生ICMP差错报告 ICMP差错报告可分为:信宿不可达报告,数据报超时报告,数据报参数错报告6.3.1 信宿不可达报告,当路由器无法根据路由表转发数据报时或主机无法向上层协议和端口提交数据报时,将丢弃当前的数据报,并向信源产生信宿不可达差错报告信宿不可达报文如图所示信宿不可达报文可能由路由器产生,也可能由信宿机产生产生信宿不可达报文的原因的16种可能 :,,“信宿”有四个层次的概念:网络、主机、协议、端口,网络不可达可能是路由表有问题或者是目的地址有错主机不可达可能是信宿不在运行中或信宿不存在等,出现主机不可达错说明网络是可达的协议不可达的原因是将IP数据报向上层协议(TCP、UDP等)提交时上层协议未在运行中,协议不可达说明网络和主机都可达。

      端口不可达是因为信宿机中与该端口对应的应用程序未运行,端口不可达说明网络、主机和协议都可达6.3.2 数据报超时报告,数据报首部的TTL值用于防止数据报因路由表的问题而无休止地在网络中传输当TTL值为0时,路由器会丢弃当前的数据报,并向源主机发送一个ICMP数据报超时报告 另外,在信宿进行分片重组时会启动重组定时器,一旦重组定时器超时,信宿机就会丢弃当前正在重组的数据报,并向源主机发送一个ICMP数据报超时报告数据报超时报告的报文格式与信宿不可达报告的报文格式相同,只是类型和代码值不同 如表所示类型值11表示是数据报超时报文,代码“0”表示TTL超时,代码“1”表示分片重组超时6.3.3 数据报参数错报告,数据报参数错报告是由于数据报首部字段值不明确或空缺而引起的一旦路由器或信宿机发现此种错误,便抛弃该数据报,并向信源发送数据报参数错报文报文的格式如图6-4所示类型12表明数据报参数错 代码“0”表示数据报首部中的某个字段的值有错或不明确,这时指针指向数据报中有问题的字节; 代码“1”表示数据报首部中缺少某一参数,此时的ICMP首部没有指针字段 表6-3给出了数据报参数错报告的类型注意: 代码为“0”时只能报告一个出错参数 代码为“1”时只能报告缺少参数,不能说明缺少哪个参数。

      6.4 ICMP控制报文,ICMP控制报文包括源抑制报文和重定向报文 源抑制报文——用于拥塞控制 重定向报文——用于路径控制 下表给出了这两类报文的类型和代码值6.4.1 源抑制报文,为什么要进行源抑制? IP协议采用的是无连接的传输方式 发送方事先并不了解路由器和信宿机的处理能力和缓冲区大小 在IP数据报传输过程中没有采用任何流量控制机制 因此,当大量的数据报进入路由器或信宿时,会造成其缓冲区溢出,即出现拥塞(Congestion) ICMP利用源抑制的方法来进行拥塞控制通过源抑制来减缓信源发出数据报的速率源抑制报文的格式如图6-5所示源抑制包括三个阶段:发现拥塞阶段、解决拥塞阶段和恢复阶段 在发现拥塞阶段,路由器对缓冲区进行监测,一旦发现拥塞,立即向相应的信源发送ICMP源抑制报文该信源收到源抑制报文后,便知道拥塞已经发生,并且所发送的数据报已经丢失 在解决拥塞阶段,信源根据收到的源抑制报文中数据区所带的原数据报的首部信息决定对去往某一特定信宿的信息流进行抑制通常信源按一定的规则降低发往某信宿的数据报传输率 拥塞解除后,信源逐渐恢复数据报传输速率在拥塞控制中以下几点值得注意: 1)信源根据有无进一步的源抑制报文到达来判断拥塞是否已经解除。

      2)拥塞可能是由多个源共同行为的结果,由于各个信源的发送速率相差较大,源抑制的效果未必很好6.4.2 重定向报文,因特网上的路由器和主机中都存有一个路由表,路由表决定了去往目的地的下一跳路由器的地址 由于路由器之间通过路由协议定期交换路由信息,路由器上的路由表能够及时地反映网络结构的变化 但主机因为不能保证全天开机;另外,由于因特网上的主机数量远大于路由器的数量,因此为了避免大量的开销,主机中的路由表不通过路由协议进行更新 ,所以主机中的路由表不能及时反映网络结构的变化情况 主机所在的网络可能和多个路由器相连,主机在发送信息时需要根据其路由表来选择最佳下一跳路由器,为了解决主机路由表的更新问题,ICMP提供了重定向机制主机路由表所给出的下一跳路由器可能并非是去往信宿的最佳下一跳路由器,当主机的下一跳路由器收到数据报后,该路由器根据它的路由表判断本路由器是否是去往信宿的最佳选择,如果不是,该路由器仍然会向信宿网络转发该数据报,但同时会向信源产生一个ICMP重定向报文,通知信源修改它的路由表,重定向报文中将给出信源的最佳下一跳路由器的IP地址ICMP重定向报文的格式如图所示 代码从0到3分别代表不同的重定向方式,具体含义由前面的表6-4给出。

      主机开机后在ICMP重定向机制的作用下,逐渐充实和完善其路由表值得注意的是: 1)ICMP产生重定向报文的时候并不丢弃原数据报 2)ICMP重定向报文由位于同一网络的路由器发送给主机,完成对主机的路由表的刷新 3)被刷新的路由表项与引起重定向的IP数据报首部中的信宿地址相关此首部会置于重定向报文数据部分6.5 ICMP请求与应答报文对,ICMP请求与应答报文对:可由因特网上任何主机或路由器向其他主机或路由器发送请求并获得应答 通过ICMP请求与应答报文对,网络管理人员、用户或应用程序可以对网络进行检测,可了解: 设备的可达性 地址掩码的设置 时钟的同步等情况 方便对网络进行故障诊断和控制ICMP请求与应答报文对如表所示其中的信息请求与应答报文已经不再使用6.5.1 回应请求与应答报文,作用:不仅可以被用来测试主机或路由器的可达性,还可以测试IP协议的工作情况 TCP/IP网络系统所提供的ping命令就是利用ICMP回应请求与应答报文来实现的,该命令通常用于测试信宿的可达性ICMP回应请求与应答报文的格式如图所示 类型“8”表明是回应请求报文 类型“0”表明是回应应答报文 协议未对标识符和序列号字段进行正式定义,通常用于匹配请求与应答,标识符一般为发起请求进程的进程ID。

      请求与应答报文的标识符和序列号一致6.5.2 时间戳请求与应答报文,因特网中的各个主机和路由器都是独立运行的,因此在时钟上存在着较大的差异,而一些分布式应用系统要求各个设备的时钟是同步的ICMP时间戳请求与应答报文就是用于设备时钟同步的 基本思路:请求方主机通过获取另一主机的时间戳信息,将该信息和请求方时间戳信息进行比较,估算两者的时钟差异请求/应答格式如图类型13:请求报文,类型14:应答报文 初始时间戳字段由请求方填入发出请求的时间 接收时间戳字段由应答方填入收到请求的时间 发送时间戳字段由应答方填入发送应答的时间 三个时间戳字段各为32比特长,以毫秒为单位从世界时间午夜0点起计时时间戳的计数值不能超过86400000(24小时) 请求报文:填初始时间戳,而接收时间戳和发送时间戳为0 应答报文:初始时间戳直接从请求报文中复制,接收时间戳和发送时间戳由应答方主机根据自己接收和发送时的时钟填写为了估算请求方与应答方的时钟差异,首先要计算出时间戳请求和应答的往返延迟,然后据此计算出单程传输延迟,最后由两设备的时间戳和单程传输延迟计算出两台设备之间的时间差,进而实现时钟的同步往返延迟时间可以用下式计算: 往返时间=(t当前-t初始)-(t发送-t接收) =(t接收-t初始) +(t当前-t发送) 假设传输请求的时延和传输应答的时延相同,那么单程时延就等于往返时间的一半。

      时间差=t接收-(t初始+单程时延),一个时钟同步的例子:主机A发出时间戳请求时的初始时间戳为1000毫秒,主机B收到请求时的接收时间戳是1055毫秒,主机B给出应答时的发送时间戳是1057毫秒,主机A收到应答时的时间为1030毫秒主机A可以根据这些时间戳计算出两台主机间的时间差 往返时间=t当前-t初始-(t发送-t接收) =1030-1000-(1057-1055)=28(毫秒) 单程时延=28÷2=14 (毫秒) 时间差=t接收-(t初始+单程时延)=1055-(1000+14)=41 (毫秒) 由上面的计算可知:主机B的时钟比主机A的时钟快了41毫秒6.5.3 地址掩码请求与应答报文,作用:可使得一台主机获得另一台主机或路由器的子网掩码 应用:无盘机通过RARP获得IP地址后,可以利用地址掩码请求来获得子网掩码如果能够获得本网络中路由器的子网掩码,也就得到了本机所属子网的掩码 报文的格式如图6-11所示类型“17”表示地址掩码请求,类型“18”表示地址掩码应答6.5.4 路由器请求与通告报文,作用:用来获得路由器的地址和是否工作等信息 主机在引导以后通过广播或组播发出路由器请求报文,一台或更多台路由器以路由器通告报文作为响应。

      即使没有路由器请求报文,路由器也可以定期广播或组播路由器通告报文,通告报文不仅通告自己的存在,还通告它所知道的本网络上其他路由器的情况路由器请求报文和路由器通告报文的格式如图地址数,,地址数字段指明报文所含的地址项的个数一个地址项由一个IP地址和一个4字节的地址优先级构成地址项大小,,地址项大小字段指明每个路由器地址项所占32比特字的数目,一般为 2生存期,,生存期字段以秒为单位指明所通告地址的有效时间数据区是一到多个地址项地址项中的优先级指出该路由器作为默认路由器的优先等级,值越小优先级越高6.6 ICMP报文封装,虽然ICMP协议可以接受来自上层的请求,但并不直接封装来自上层协议的数据ICMP协议将上层的请求转变为ICMP报文,然后将报文封装在IP协议中进行发送包含ICMP报文的IP数据报首部的协议字段为“1” 作业,6-3 ICMP与IP协议是什么关系? 6-4 在利用时间戳请求应答报文进行时钟同步时,主机A的初始时间戳为32530000,接收到主机B应答时的时间戳为32530246,主机B的接收时间戳和发送时间戳分别为32530100和32530130,主机A和主机B之间的时间差是多少,6-4 在利用时间戳请求应。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.