
第6章差错与控制报文协议课件.ppt
38页Page 1第6章 差错与控制报文协议6.1 ICMP协议协议 6.2 ICMP报文格式与类型报文格式与类型 6.3 ICMP差错报告差错报告 6.4 ICMP控制报文控制报文 6.5 ICMP请求与应答报文对请求与应答报文对 6.6 ICMP报文的封装报文的封装 Page 26.1 因特网控制报文协议(因特网控制报文协议(ICMP))•ICMP的最初目的是用于的最初目的是用于IP层的层的差错报告差错报告,由,由路由器或信宿向信源报告传输错误的原因路由器或信宿向信源报告传输错误的原因•随着网络的发展,检测和控制功能逐渐被引入随着网络的发展,检测和控制功能逐渐被引入到到ICMP协议中,使得协议中,使得ICMP协议不仅用于传协议不仅用于传输输差错报告差错报告,而且大量用于传输,而且大量用于传输控制报文控制报文 •位置:位置:ICMP与与IP协议位于同一个层次(协议位于同一个层次(IP层)层),但,但ICMP报文是封装在报文是封装在IP数据报中进行传输数据报中进行传输的 •作用:作用:ICMP协议协议是是IP协议的补充协议的补充,用于,用于IP层层的差错报告、拥塞控制、路径控制以及路由器的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。
或主机信息的获取Page 36.2 ICMP报文格式与类型报文格式与类型•ICMP报文由报文由首部和数据首部和数据组成首部首部固定为固定为8个字节,前个字节,前4个字节是通用部分,后个字节是通用部分,后4个字个字节随报文类型的不同有所差异节随报文类型的不同有所差异ICMP报文报文的一般格式如图所示的一般格式如图所示Page 4•ICMP报文可以分为报文可以分为三大类三大类:差错报告报文、:差错报告报文、控制报文和请求应答报文控制报文和请求应答报文Page 56.3 ICMP差错报告报文差错报告报文•ICMPICMP差错报告报文的差错报告报文的差错报告报文的差错报告报文的数据区数据区数据区数据区包含包含包含包含出错数据报的首部出错数据报的首部出错数据报的首部出错数据报的首部及其前及其前及其前及其前6464位数据位数据位数据位数据,这些信息有助于信源或管理人员发,这些信息有助于信源或管理人员发,这些信息有助于信源或管理人员发,这些信息有助于信源或管理人员发现错误原因现错误原因现错误原因现错误原因•ICMPICMP差错报告具有以下差错报告具有以下差错报告具有以下差错报告具有以下特点特点特点特点:::: 1 1))))只报告差错只报告差错只报告差错只报告差错,但,但,但,但不负责纠正不负责纠正不负责纠正不负责纠正错误,纠错工作留给高错误,纠错工作留给高错误,纠错工作留给高错误,纠错工作留给高层协议去处理。
层协议去处理层协议去处理层协议去处理 2 2))))只向信源报告只向信源报告只向信源报告只向信源报告差错 3 3)差错报告)差错报告)差错报告)差错报告作为一般数据传输作为一般数据传输作为一般数据传输作为一般数据传输,不享受特别优先权和,不享受特别优先权和,不享受特别优先权和,不享受特别优先权和可靠性 4 4)产生差错报告的同时,会)产生差错报告的同时,会)产生差错报告的同时,会)产生差错报告的同时,会丢弃出错的丢弃出错的丢弃出错的丢弃出错的IPIP数据报数据报数据报数据报Page 6•以下情况不会产生以下情况不会产生ICMP差错报告:差错报告:1))ICMP差差错错报报文文本本身身不不会会再再产产生生ICMP差差错错报告2))IP数数据据报报的的非非第第一一个个分分片片不不会会产产生生ICMP差错报告差错报告3))组播报文组播报文不会产生不会产生ICMP差错报告差错报告4))特特殊殊地地址址和和的的报报文文不不会会产产生生ICMP差差错错报报告 ICMP差差错错报报告告可可分分为为::信信宿宿不不可可达达报报告告,,数数据报超时报告,数据报参数错报告据报超时报告,数据报参数错报告。
Page 76.3.1 信宿不可达报告信宿不可达报告 •当当路由器路由器无法根据路由表转发数据报时或无法根据路由表转发数据报时或主主机机无法向上层协议和端口提交数据报时,将无法向上层协议和端口提交数据报时,将丢弃当前的数据报丢弃当前的数据报,并,并向信源产生信宿不可向信源产生信宿不可达差错报告达差错报告信宿不可达报文如图所示信宿不可达报文如图所示Page 8类类类类型型型型报报报报 文文文文代代代代码码码码描描描描 述述述述3 3信宿不可达信宿不可达信宿不可达信宿不可达0 0网网网网络络络络不可达不可达不可达不可达1 1主机不可达主机不可达主机不可达主机不可达2 2协议协议协议协议不可达不可达不可达不可达3 3端口不可达端口不可达端口不可达端口不可达4 4数据数据数据数据报报报报无法分片无法分片无法分片无法分片5 5源路由失源路由失源路由失源路由失败败败败6 6信宿网信宿网信宿网信宿网络络络络未知未知未知未知7 7信宿主机未知信宿主机未知信宿主机未知信宿主机未知8 8源主机被隔离源主机被隔离源主机被隔离源主机被隔离9 9与信宿网与信宿网与信宿网与信宿网络络络络的通信被禁止的通信被禁止的通信被禁止的通信被禁止1010与信宿主机的通信被禁止与信宿主机的通信被禁止与信宿主机的通信被禁止与信宿主机的通信被禁止1111对对对对特定的服特定的服特定的服特定的服务类务类务类务类型型型型(TOS)(TOS)网网网网络络络络不可达不可达不可达不可达1212对对对对特定的服特定的服特定的服特定的服务类务类务类务类型型型型(TOS)(TOS)主机不可达主机不可达主机不可达主机不可达1313因管理者因管理者因管理者因管理者设设设设置置置置过滤过滤过滤过滤而使主机不可达而使主机不可达而使主机不可达而使主机不可达1414因非法的因非法的因非法的因非法的优优优优先先先先权权权权而使主机不可达而使主机不可达而使主机不可达而使主机不可达1515因因因因报报报报文的文的文的文的优优优优先先先先级级级级低于网低于网低于网低于网络设络设络设络设置的最小置的最小置的最小置的最小优优优优先先先先级级级级而使主机不可达而使主机不可达而使主机不可达而使主机不可达•信宿不可达报文可能由信宿不可达报文可能由信宿不可达报文可能由信宿不可达报文可能由路由器产生路由器产生路由器产生路由器产生,也可能由,也可能由,也可能由,也可能由信宿机信宿机信宿机信宿机产生产生产生产生。
产生信宿不可达报文的原因的产生信宿不可达报文的原因的产生信宿不可达报文的原因的产生信宿不可达报文的原因的1616种可能种可能种可能种可能 ::::“信宿信宿”有四个层次的概念有四个层次的概念:网络、主机、协议、端口网络、主机、协议、端口网络不可达可能是路由网络不可达可能是路由网络不可达可能是路由网络不可达可能是路由表有问题或者是目的地表有问题或者是目的地表有问题或者是目的地表有问题或者是目的地址有错主机不可达可能是信宿主机不可达可能是信宿主机不可达可能是信宿主机不可达可能是信宿不在运行中或信宿不存不在运行中或信宿不存不在运行中或信宿不存不在运行中或信宿不存在等,出现主机不可达在等,出现主机不可达在等,出现主机不可达在等,出现主机不可达错说明网络是可达的错说明网络是可达的错说明网络是可达的错说明网络是可达的协议不可达的原因是将协议不可达的原因是将协议不可达的原因是将协议不可达的原因是将IPIP数据报向上层协议数据报向上层协议数据报向上层协议数据报向上层协议((((TCPTCP、、、、UDPUDP等)提交等)提交等)提交等)提交时上层协议未在运行中,时上层协议未在运行中,时上层协议未在运行中,时上层协议未在运行中,协议不可达说明网络和协议不可达说明网络和协议不可达说明网络和协议不可达说明网络和主机都可达。
主机都可达主机都可达主机都可达端口不可达是因为信宿端口不可达是因为信宿端口不可达是因为信宿端口不可达是因为信宿机中与该端口对应的应机中与该端口对应的应机中与该端口对应的应机中与该端口对应的应用程序未运行,端口不用程序未运行,端口不用程序未运行,端口不用程序未运行,端口不可达说明网络、主机和可达说明网络、主机和可达说明网络、主机和可达说明网络、主机和协议都可达协议都可达协议都可达协议都可达Page 96.3.2 数据报超时报告数据报超时报告•数据报首部的数据报首部的TTL值值用于防止数据报因路由表的用于防止数据报因路由表的问题而无休止地在网络中传输当问题而无休止地在网络中传输当TTL值为值为0时,时,路由器路由器会丢弃当前的数据报,并向源主机发送一会丢弃当前的数据报,并向源主机发送一个个ICMP数据报超时报告数据报超时报告•另外,在信宿进行分片重组时会启动另外,在信宿进行分片重组时会启动重组定时器重组定时器,,一旦重组定时器超时,一旦重组定时器超时,信宿机信宿机就会丢弃当前正在就会丢弃当前正在重组的数据报,并向源主机发送一个重组的数据报,并向源主机发送一个ICMP数据数据报超时报告报超时报告。
Page 10•数据报超时报告的报文格式与信宿不可达数据报超时报告的报文格式与信宿不可达报告的报文格式相同,只是类型和代码报告的报文格式相同,只是类型和代码值不同•如表所示如表所示类型值类型值11表示是数据报超时报表示是数据报超时报文,代码文,代码“0”表示表示TTL超时,代码超时,代码“1”表示分片重组超时表示分片重组超时 类类类类型型型型报报报报 文文文文代代代代码码码码描描描描 述述述述1111超超超超时时时时0 0路由路由路由路由TTLTTL超超超超时时时时1 1分片重分片重分片重分片重组组组组超超超超时时时时Page 116.3.3 数据报参数错报告数据报参数错报告•数据报参数错报告是由于数据报首部字段数据报参数错报告是由于数据报首部字段值不明确或空缺而引起的一旦值不明确或空缺而引起的一旦路由器或路由器或信宿机信宿机发现此种错误,便抛弃该数据报,发现此种错误,便抛弃该数据报,并向信源发送数据报参数错报文报文的并向信源发送数据报参数错报文报文的格式如图格式如图6-4所示 Page 12类型类型类型类型1212表明数据报参数错表明数据报参数错表明数据报参数错表明数据报参数错– –代码代码代码代码“0”“0”表示数据报首部中的某个字段的值有错或不明表示数据报首部中的某个字段的值有错或不明表示数据报首部中的某个字段的值有错或不明表示数据报首部中的某个字段的值有错或不明确,这时确,这时确,这时确,这时指针指针指针指针指向数据报中有问题的字节;指向数据报中有问题的字节;指向数据报中有问题的字节;指向数据报中有问题的字节;– –代码代码代码代码“1”“1”表示数据报首部中缺少某一参数,此时的表示数据报首部中缺少某一参数,此时的表示数据报首部中缺少某一参数,此时的表示数据报首部中缺少某一参数,此时的ICMPICMP首部首部首部首部没有指针字段没有指针字段没有指针字段没有指针字段。
表表表表6-36-3给出了数据报参数错报告的类型注意:给出了数据报参数错报告的类型注意:给出了数据报参数错报告的类型注意:给出了数据报参数错报告的类型注意:•代码为代码为代码为代码为“0”“0”时时时时只能报告一个出错参数只能报告一个出错参数只能报告一个出错参数只能报告一个出错参数•代码为代码为代码为代码为“1”“1”时时时时只能报告缺少参数只能报告缺少参数只能报告缺少参数只能报告缺少参数,不能说明缺少,不能说明缺少,不能说明缺少,不能说明缺少哪个参数哪个参数哪个参数哪个参数类类类类型型型型报报报报 文文文文代代代代码码码码描描描描 述述述述1212参数参数错错0 0IPIP首部参数首部参数错错1 1缺少缺少选项选项所要求的部分所要求的部分Page 136.4 ICMP控制报文控制报文ICMPICMP控制报文包括源抑制报文和重定向报文控制报文包括源抑制报文和重定向报文控制报文包括源抑制报文和重定向报文控制报文包括源抑制报文和重定向报文•源抑制报文源抑制报文源抑制报文源抑制报文————用于拥塞控制用于拥塞控制用于拥塞控制用于拥塞控制•重定向报文重定向报文重定向报文重定向报文————用于路径控制用于路径控制用于路径控制用于路径控制下表给出了这两类报文的类型和代码值。
下表给出了这两类报文的类型和代码值下表给出了这两类报文的类型和代码值下表给出了这两类报文的类型和代码值类类类类型型型型作作作作 用用用用代代代代码码码码描描描描 述述述述4 4拥拥拥拥塞控塞控塞控塞控制制制制0 0源抑制源抑制源抑制源抑制报报报报文文文文5 5路径控路径控路径控路径控制制制制0 0网网网网络络络络重定向重定向重定向重定向1 1主机重定向主机重定向主机重定向主机重定向2 2基于服基于服基于服基于服务类务类务类务类型的网型的网型的网型的网络络络络重定向重定向重定向重定向3 3基于服基于服基于服基于服务类务类务类务类型的主型的主型的主型的主机重定向机重定向机重定向机重定向Page 146.4.1 源抑制报文源抑制报文为什么要进行源抑制?为什么要进行源抑制?为什么要进行源抑制?为什么要进行源抑制?•IPIP协议采用的是协议采用的是协议采用的是协议采用的是无连接无连接无连接无连接的传输方式的传输方式的传输方式的传输方式– –发送方事先并发送方事先并发送方事先并发送方事先并不了解路由器和信宿机的处理能力和缓冲区不了解路由器和信宿机的处理能力和缓冲区不了解路由器和信宿机的处理能力和缓冲区不了解路由器和信宿机的处理能力和缓冲区大小大小大小大小– –在在在在IPIP数据报数据报数据报数据报传输过程中没有采用任何流量控制传输过程中没有采用任何流量控制传输过程中没有采用任何流量控制传输过程中没有采用任何流量控制机制机制机制机制 •因此,当大量的数据报进入路由器或信宿时,会造因此,当大量的数据报进入路由器或信宿时,会造因此,当大量的数据报进入路由器或信宿时,会造因此,当大量的数据报进入路由器或信宿时,会造成其缓冲区溢出,即出现成其缓冲区溢出,即出现成其缓冲区溢出,即出现成其缓冲区溢出,即出现拥塞拥塞拥塞拥塞(Congestion)(Congestion)。
•ICMPICMP利用利用利用利用源抑制源抑制源抑制源抑制的方法来进行拥塞控制通过源抑的方法来进行拥塞控制通过源抑的方法来进行拥塞控制通过源抑的方法来进行拥塞控制通过源抑制来制来制来制来减缓减缓减缓减缓信源发出数据报的速率信源发出数据报的速率信源发出数据报的速率信源发出数据报的速率Page 15•源抑制报文的格式如图源抑制报文的格式如图6-5所示Page 16源抑制包括源抑制包括三个阶段三个阶段:发现拥塞阶段、解决拥塞:发现拥塞阶段、解决拥塞阶段和恢复阶段阶段和恢复阶段•在在发现拥塞阶段发现拥塞阶段,路由器对缓冲区进行监测,,路由器对缓冲区进行监测,一旦发现拥塞,立即向相应的信源发送一旦发现拥塞,立即向相应的信源发送ICMPICMP源源抑制报文该信源收到源抑制报文后,便知道抑制报文该信源收到源抑制报文后,便知道拥塞已经发生,并且所发送的数据报已经丢失拥塞已经发生,并且所发送的数据报已经丢失•在在解决拥塞阶段解决拥塞阶段,信源根据收到的源抑制报文,信源根据收到的源抑制报文中数据区所带的原数据报的首部信息决定中数据区所带的原数据报的首部信息决定对对去去往某一特定信宿的信息流进行抑制。
通常信源往某一特定信宿的信息流进行抑制通常信源按一定的规则降低按一定的规则降低发往某信宿的数据报传输率发往某信宿的数据报传输率•拥塞解除后拥塞解除后,信源,信源逐渐恢复逐渐恢复数据报传输速率数据报传输速率Page 17•在拥塞控制中以下几点值得在拥塞控制中以下几点值得注意注意:: 1)信源根据)信源根据有无进一步的源抑制报文到达有无进一步的源抑制报文到达来判断拥塞是否已经解除来判断拥塞是否已经解除 2)拥塞可能是由)拥塞可能是由多个源共同行为的结果多个源共同行为的结果,,由于各个信源的发送速率相差较大,源抑由于各个信源的发送速率相差较大,源抑制的效果未必很好制的效果未必很好Page 186.4.2 重定向报文重定向报文因特网上的路由器和主机中都存有一个路由表,路由表决因特网上的路由器和主机中都存有一个路由表,路由表决因特网上的路由器和主机中都存有一个路由表,路由表决因特网上的路由器和主机中都存有一个路由表,路由表决定了去往目的地的下一跳路由器的地址定了去往目的地的下一跳路由器的地址定了去往目的地的下一跳路由器的地址定了去往目的地的下一跳路由器的地址•由于路由器之间通过路由协议定期交换路由信息,由于路由器之间通过路由协议定期交换路由信息,由于路由器之间通过路由协议定期交换路由信息,由于路由器之间通过路由协议定期交换路由信息,路由路由路由路由器器器器上的上的上的上的路由表路由表路由表路由表能够能够能够能够及时及时及时及时地反映网络结构的变化。
地反映网络结构的变化地反映网络结构的变化地反映网络结构的变化•但主机因为不能保证全天开机;另外,由于因特网上的但主机因为不能保证全天开机;另外,由于因特网上的但主机因为不能保证全天开机;另外,由于因特网上的但主机因为不能保证全天开机;另外,由于因特网上的主机数量远大于路由器的数量,因此为了避免大量的开主机数量远大于路由器的数量,因此为了避免大量的开主机数量远大于路由器的数量,因此为了避免大量的开主机数量远大于路由器的数量,因此为了避免大量的开销,销,销,销,主机主机主机主机中的中的中的中的路由表路由表路由表路由表不通过路由协议进行更新不通过路由协议进行更新不通过路由协议进行更新不通过路由协议进行更新 ,所以,所以,所以,所以主机中的路由表主机中的路由表主机中的路由表主机中的路由表不能及时不能及时不能及时不能及时反映网络结构的变化情况反映网络结构的变化情况反映网络结构的变化情况反映网络结构的变化情况主机所在的网络可能和多个路由器相连,主机在发送信息主机所在的网络可能和多个路由器相连,主机在发送信息主机所在的网络可能和多个路由器相连,主机在发送信息主机所在的网络可能和多个路由器相连,主机在发送信息时需要根据其路由表来选择最佳下一跳路由器,为了解时需要根据其路由表来选择最佳下一跳路由器,为了解时需要根据其路由表来选择最佳下一跳路由器,为了解时需要根据其路由表来选择最佳下一跳路由器,为了解决决决决主机路由表的更新问题主机路由表的更新问题主机路由表的更新问题主机路由表的更新问题,,,,ICMPICMP提供了提供了提供了提供了重定向重定向重定向重定向机制。
机制Page 19LANLANAR1R2BIP分组分组1重定向报文重定向报文IP分组分组1IP分组分组1IP分组分组2主机根据重定向报文更主机根据重定向报文更新自己的寻径表新自己的寻径表主机路由表所给出的下一跳路由器主机路由表所给出的下一跳路由器主机路由表所给出的下一跳路由器主机路由表所给出的下一跳路由器可能并非是去往信宿的最佳下一可能并非是去往信宿的最佳下一可能并非是去往信宿的最佳下一可能并非是去往信宿的最佳下一跳路由器跳路由器跳路由器跳路由器,当主机的下一跳路由器收到数据报后,该,当主机的下一跳路由器收到数据报后,该,当主机的下一跳路由器收到数据报后,该,当主机的下一跳路由器收到数据报后,该路由器路由器路由器路由器根据它根据它根据它根据它的路由表的路由表的路由表的路由表判断判断判断判断本路由器是否是去往信宿的最佳选择,如果不是,该本路由器是否是去往信宿的最佳选择,如果不是,该本路由器是否是去往信宿的最佳选择,如果不是,该本路由器是否是去往信宿的最佳选择,如果不是,该路由器仍然会向信宿网络路由器仍然会向信宿网络路由器仍然会向信宿网络路由器仍然会向信宿网络转发转发转发转发该数据报,但同时会向信源产生一个该数据报,但同时会向信源产生一个该数据报,但同时会向信源产生一个该数据报,但同时会向信源产生一个ICMPICMP重定向报文重定向报文重定向报文重定向报文,通知信源修改它的路由表,重定向报文中将给,通知信源修改它的路由表,重定向报文中将给,通知信源修改它的路由表,重定向报文中将给,通知信源修改它的路由表,重定向报文中将给出信源的最佳下一跳路由器的出信源的最佳下一跳路由器的出信源的最佳下一跳路由器的出信源的最佳下一跳路由器的IPIP地址地址地址地址。
Page 20ICMP重定向报文的格式如图所示重定向报文的格式如图所示代码代码从从0到到3分别代表不同的重定向方式,具体含分别代表不同的重定向方式,具体含义由前面的表义由前面的表6-4给出主机开机后在主机开机后在ICMP重定向机制的作用下,逐渐重定向机制的作用下,逐渐充实和完善其路由表充实和完善其路由表Page 21•值得值得注意注意的是:的是: 1))ICMP产生重定向报文的时候产生重定向报文的时候并不丢弃并不丢弃原数据报原数据报 2))ICMP重定向报文由位于同一网络的路重定向报文由位于同一网络的路由器发送给主机,完成对主机的路由表的由器发送给主机,完成对主机的路由表的刷新 3))被刷新的路由表项被刷新的路由表项与引起重定向的与引起重定向的IP数数据报首部中的信宿地址相关此首部会置据报首部中的信宿地址相关此首部会置于重定向报文数据部分于重定向报文数据部分Page 226.5 ICMP请求与应答报文对请求与应答报文对•ICMP请求与应答报文对:可由因特网上任何主请求与应答报文对:可由因特网上任何主机或路由器向其他主机或路由器发送请求并获得机或路由器向其他主机或路由器发送请求并获得应答。
应答•通过通过ICMP请求与应答报文对,网络管理人员、请求与应答报文对,网络管理人员、用户或应用程序可以用户或应用程序可以对网络进行检测对网络进行检测,可了解:,可了解:–设备的可达性设备的可达性–地址掩码的设置地址掩码的设置–时钟的同步等情况时钟的同步等情况•方便对网络进行故障诊断和控制方便对网络进行故障诊断和控制Page 23•ICMP请求与应答报文对如表所示其中的信请求与应答报文对如表所示其中的信息请求与应答报文已经不再使用息请求与应答报文已经不再使用 类类类类型型型型作作作作 用用用用代代代代 码码码码报报报报 文文文文8 8回回应请应请求与求与应应答答0 0回回应请应请求求0 00 0回回应应应应答答1010路由器路由器请请求与通告求与通告0 0路由器路由器请请求求9 90 0路由器通告路由器通告1313时间时间戳戳请请求与求与应应答答0 0时间时间戳戳请请求求14140 0时间时间戳戳应应答答1515信息信息请请求与求与应应答(已不用)答(已不用)0 0信息信息请请求求16160 0信息信息应应答答1717地址掩地址掩码请码请求与求与应应答答0 0地址掩地址掩码请码请求求18180 0地址掩地址掩码应码应答答Page 246.5.1 回应请求与应答报文回应请求与应答报文•作用:作用:不仅可以被用来测试不仅可以被用来测试主机或路由器的可主机或路由器的可达性达性,还可以测试,还可以测试IP协议的工作情况协议的工作情况。
•TCP/IP网络系统所提供的网络系统所提供的ping命令命令就是利用就是利用ICMP回应请求与应答报文来实现的,该命令回应请求与应答报文来实现的,该命令通常用于测试信宿的可达性通常用于测试信宿的可达性 Page 25ICMP回应请求与应答报文的格式如图所示回应请求与应答报文的格式如图所示•类型类型“8”表明是回应请求报文表明是回应请求报文•类型类型“0”表明是回应应答报文表明是回应应答报文协议未对标识符和序列号字段进行正式定义,通协议未对标识符和序列号字段进行正式定义,通常用于常用于匹配请求与应答匹配请求与应答,标识符一般为发起请,标识符一般为发起请求进程的进程求进程的进程ID请求与应答报文的标识符和请求与应答报文的标识符和序列号一致序列号一致 Page 266.5.2 时间戳请求与应答报文时间戳请求与应答报文•因特网中的各个主机和路由器都是独立运行的,因特网中的各个主机和路由器都是独立运行的,因此在时钟上存在着较大的因此在时钟上存在着较大的差异差异,而一些分布式,而一些分布式应用系统要求各个设备的时钟是应用系统要求各个设备的时钟是同步同步的ICMP时间戳请求与应答报文就是用于设备时间戳请求与应答报文就是用于设备时钟同步时钟同步的。
的•基本思路基本思路:请求方主机通过获取另一主机的时间:请求方主机通过获取另一主机的时间戳信息,将该信息和请求方时间戳信息进行比较,戳信息,将该信息和请求方时间戳信息进行比较,估算两者的时钟差异估算两者的时钟差异Page 27请求请求请求请求/ /应答格式如图应答格式如图应答格式如图应答格式如图类型类型类型类型13131313:请求报文,:请求报文,:请求报文,:请求报文,类型类型类型类型14141414:应答报文应答报文应答报文应答报文•初始时间戳初始时间戳初始时间戳初始时间戳字段由请求方填入发出请求的时间字段由请求方填入发出请求的时间字段由请求方填入发出请求的时间字段由请求方填入发出请求的时间•接收时间戳接收时间戳接收时间戳接收时间戳字段由应答方填入收到请求的时间字段由应答方填入收到请求的时间字段由应答方填入收到请求的时间字段由应答方填入收到请求的时间•发送时间戳发送时间戳发送时间戳发送时间戳字段由应答方填入发送应答的时间字段由应答方填入发送应答的时间字段由应答方填入发送应答的时间字段由应答方填入发送应答的时间三三三三个个个个时时时时间间间间戳戳戳戳字字字字段段段段各各各各为为为为32323232比比比比特特特特长长长长,,,,以以以以毫毫毫毫秒秒秒秒为为为为单单单单位位位位从从从从世世世世界界界界时时时时间间间间午午午午夜夜夜夜0 0 0 0点起计时。
时间戳的计数值不能超过点起计时时间戳的计数值不能超过点起计时时间戳的计数值不能超过点起计时时间戳的计数值不能超过86400000864000008640000086400000((((24242424小时)请求报文:填初始时间戳,而接收时间戳和发送时间戳为请求报文:填初始时间戳,而接收时间戳和发送时间戳为请求报文:填初始时间戳,而接收时间戳和发送时间戳为请求报文:填初始时间戳,而接收时间戳和发送时间戳为0 0 0 0应应应应答答答答报报报报文文文文::::初初初初始始始始时时时时间间间间戳戳戳戳直直直直接接接接从从从从请请请请求求求求报报报报文文文文中中中中复复复复制制制制,,,,接接接接收收收收时时时时间间间间戳戳戳戳和和和和发发发发送时间戳由应答方主机根据自己接收和发送时的时钟填写送时间戳由应答方主机根据自己接收和发送时的时钟填写送时间戳由应答方主机根据自己接收和发送时的时钟填写送时间戳由应答方主机根据自己接收和发送时的时钟填写Page 28 为了估算请求方与应答方的时钟差异,首先要计算出为了估算请求方与应答方的时钟差异,首先要计算出为了估算请求方与应答方的时钟差异,首先要计算出为了估算请求方与应答方的时钟差异,首先要计算出时间戳请求和应答的时间戳请求和应答的时间戳请求和应答的时间戳请求和应答的往返延迟往返延迟往返延迟往返延迟,然后据此计算出,然后据此计算出,然后据此计算出,然后据此计算出单单单单程传输延迟程传输延迟程传输延迟程传输延迟,最后由两设备的时间戳和单程传输延,最后由两设备的时间戳和单程传输延,最后由两设备的时间戳和单程传输延,最后由两设备的时间戳和单程传输延迟计算出两台设备之间的迟计算出两台设备之间的迟计算出两台设备之间的迟计算出两台设备之间的时间差时间差时间差时间差,进而实现时钟的,进而实现时钟的,进而实现时钟的,进而实现时钟的同步。
同步Page 29 往返延迟时间可以用下式计算:往返延迟时间可以用下式计算:往返时间往返时间==(t(t当前当前--t t初始初始) )--(t(t发送发送--t t接收接收) )==(t(t接收接收--t t初始初始) ) ++(t(t当前当前--t t发发送送) )假假设传输请设传输请求的求的时时延和延和传输应传输应答的答的时时延相延相同,那么同,那么单单程程时时延就等于往返延就等于往返时间时间的一半的一半 时间差=时间差=t t接收接收--(t(t初始初始+单程时延+单程时延) ) Page 30一一个个时时钟钟同同步步的的例例子子::主主机机A A发发出出时时间间戳戳请请求求时时的的初初始始时时间间戳戳为为10001000毫毫秒秒,,主主机机B B收收到到请请求求时时的的接接收收时时间间戳戳是是10551055毫毫秒秒,,主主机机B B给给出出应应答答时时的的发发送送时时间间戳戳是是10571057毫毫秒秒,,主主机机A A收收到到应应答答时时的的时时间间为为10301030毫毫秒秒主主机机A A可可以以根根据据这这些些时时间间戳计算出两台主机间的时间差戳计算出两台主机间的时间差。
往返时间=往返时间=t t当前当前--t t初始初始--(t(t发送发送--t t接收接收) )==10301030--10001000--(1057(1057--1055)1055)==28(28(毫秒毫秒) )单程时延=单程时延=28÷228÷2==14 (14 (毫秒毫秒) )时时间间差差==t t接接收收--(t(t初初始始++单单程程时时延延) )==10551055--(1000(1000++14)14)==41 (41 (毫秒毫秒) )•由上面的计算可知:由上面的计算可知:主机主机B B的时钟比主机的时钟比主机A A的的时钟快了时钟快了4141毫秒毫秒 Page 316.5.3 地址掩码请求与应答报文地址掩码请求与应答报文•作用:可使得一台主机获得另一台主机或路由器的子作用:可使得一台主机获得另一台主机或路由器的子作用:可使得一台主机获得另一台主机或路由器的子作用:可使得一台主机获得另一台主机或路由器的子网掩码•应用:应用:应用:应用:无盘机通过无盘机通过无盘机通过无盘机通过RARPRARP获得获得获得获得IPIP地址后,可以利用地地址后,可以利用地地址后,可以利用地地址后,可以利用地址掩码请求来获得子网掩码址掩码请求来获得子网掩码址掩码请求来获得子网掩码址掩码请求来获得子网掩码。
如果能够获得本网络中如果能够获得本网络中如果能够获得本网络中如果能够获得本网络中路由器的子网掩码,也就得到了本机所属子网的掩码路由器的子网掩码,也就得到了本机所属子网的掩码路由器的子网掩码,也就得到了本机所属子网的掩码路由器的子网掩码,也就得到了本机所属子网的掩码•报文的格式如图报文的格式如图报文的格式如图报文的格式如图6-116-11所示类型所示类型所示类型所示类型“17”“17”表示地址掩码表示地址掩码表示地址掩码表示地址掩码请求,类型请求,类型请求,类型请求,类型“18”“18”表示地址掩码应答表示地址掩码应答表示地址掩码应答表示地址掩码应答Page 32 路由器请求与通告报文路由器请求与通告报文•作用:用来获得路由器的地址和是否工作等信作用:用来获得路由器的地址和是否工作等信息•主机在引导以后主机在引导以后通过广播或组播发出路由器请通过广播或组播发出路由器请求报文求报文,一台或更多台路由器以路由器通告报,一台或更多台路由器以路由器通告报文作为响应即使没有路由器请求报文,路由文作为响应即使没有路由器请求报文,路由器也可以器也可以定期广播或组播定期广播或组播路由器通告报文,通路由器通告报文,通告报文不仅通告自己的存在,还通告它所知道告报文不仅通告自己的存在,还通告它所知道的本网络上其他路由器的情况。
的本网络上其他路由器的情况 Page 33路由器请求报文和路由器通告报文的格式如图路由器请求报文和路由器通告报文的格式如图路由器请求报文和路由器通告报文的格式如图路由器请求报文和路由器通告报文的格式如图 地址数地址数字段指明报文所含的地址项的个数一个地地址数字段指明报文所含的地址项的个数一个地地址数字段指明报文所含的地址项的个数一个地地址数字段指明报文所含的地址项的个数一个地址项由一个址项由一个址项由一个址项由一个IPIP地址和一个地址和一个地址和一个地址和一个4 4字节的地址优先级构成字节的地址优先级构成字节的地址优先级构成字节的地址优先级构成地址项大小地址项大小字段指明每个路由器地址项所占地址项大小字段指明每个路由器地址项所占地址项大小字段指明每个路由器地址项所占地址项大小字段指明每个路由器地址项所占3232比特字的数比特字的数比特字的数比特字的数目,一般为目,一般为目,一般为目,一般为 2 2生存期生存期字段以秒为单位指明所通告地址的有效时间生存期字段以秒为单位指明所通告地址的有效时间生存期字段以秒为单位指明所通告地址的有效时间生存期字段以秒为单位指明所通告地址的有效时间数据区数据区数据区数据区是一到多个地址项。
是一到多个地址项是一到多个地址项是一到多个地址项地址项中的优先级指出该路地址项中的优先级指出该路地址项中的优先级指出该路地址项中的优先级指出该路由器作为默认路由器的优先由器作为默认路由器的优先由器作为默认路由器的优先由器作为默认路由器的优先等级,等级,等级,等级,值越小优先级越高值越小优先级越高值越小优先级越高值越小优先级越高Page 346.6 ICMP报文封装报文封装•虽然虽然虽然虽然ICMPICMP协议可以接受来自上层的请求,但并不直协议可以接受来自上层的请求,但并不直协议可以接受来自上层的请求,但并不直协议可以接受来自上层的请求,但并不直接封装来自上层协议的数据接封装来自上层协议的数据接封装来自上层协议的数据接封装来自上层协议的数据ICMPICMP协议协议协议协议将上层的请将上层的请将上层的请将上层的请求转变为求转变为求转变为求转变为ICMPICMP报文报文报文报文,然后将报文,然后将报文,然后将报文,然后将报文封装在封装在封装在封装在IPIP协议中协议中协议中协议中进进进进行发送包含行发送包含行发送包含行发送包含ICMPICMP报文的报文的报文的报文的IPIP数据报首部的数据报首部的数据报首部的数据报首部的协议字段协议字段协议字段协议字段为为为为“1”“1” 。
Page 35ICMP头标头标ICMP数据数据IP报头报头IP数据区数据区ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据ICMP头标头标ICMP数据数据帧头帧头数据数据CRCIP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头数据报数据区数据报数据区IP报头报头IP数据报数据区数据报数据区Page 36作业作业 6-3 ICMP与IP协议是什么关系?6-4 在利用时间戳请求应答报文进行时钟同步时,主机A的初始时间戳为32530000,接收到主机B应答时的时间戳为32530246,主机B的接收时间戳和发送时间戳分别为32530100和32530130,主机A和主机B之间的时间差是多少Page 376-4 在利用时间戳请求应答报文进行时钟同步时,主机A的初始时间戳为32530000,接收到主机B应答时的时间戳为32530246,主机B的接收时间戳和发送时间戳分别为32530100和32530130,主机A和主机B之间的时间差是多少图中图中,t初始初始=32530000, t当前当前=32530246, t接收接收=3253100, t发送发送=32530130Page 38往返延迟时间计算:往返延迟时间计算:往返延迟时间计算:往返延迟时间计算:往返时间=往返时间=往返时间=往返时间=(t (t当前-当前-当前-当前-t t初始初始初始初始) )----(t (t发送-发送-发送-发送-t t接收接收接收接收) )====(t (t接收-接收-接收-接收-t t初始初始初始初始) ) ++++(t (t当前-当前-当前-当前-t t发送发送发送发送) )= (32530246= (32530246---- 32530000) 32530000) ----(32530130 (32530130 ---- 32530100) 32530100) =246 =246 ---- 30= 216 30= 216单程时延=单程时延=单程时延=单程时延=216÷2216÷2216÷2216÷2====108108108108时时时时 间间间间 差差差差 ==== t t t t接接接接 收收收收---- (t(t(t(t初初初初 始始始始++++ 单单单单 程程程程 时时时时 延延延延 ) ) ) )==== 3253010032530100 ----( ( ( (3253000032530000 ++++108)108)108)108)====-8-8-8-8由上面的计算可知:由上面的计算可知:由上面的计算可知:由上面的计算可知:主机主机主机主机B B B B的时钟比主机的时钟比主机的时钟比主机的时钟比主机A A A A的时钟慢了的时钟慢了的时钟慢了的时钟慢了8 8 8 8个个个个单位单位单位单位。
325300003253010010832530108。
