资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 Internet控制报文控制报文协议协议ICMP计算机与通信工程学院计算机与通信工程学院计算机与通信工程学院计算机与通信工程学院张张张张 然然然然网络协议分析网络协议分析主要内容主要内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例基本要求基本要求1、掌握、掌握ICMP协议的作用和报文类型协议的作用和报文类型2、掌握、掌握ICMP协议的回送、时戳、掩码请求与应答报文协议的回送、时戳、掩码请求与应答报文3、掌握、掌握ICMP的路由器恳求与通告报文的路由器恳求与通告报文4、掌握、掌握ICMP的差错报告报文的差错报告报文5、掌握、掌握Ping、Traceroute命令命令6、了解拥塞控制和路径控制技术、了解拥塞控制和路径控制技术学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例网络中可能遇到的异常情况网络中可能遇到的异常情况数据报在传送中可能会遇到各种异常,如数据报在传送中可能会遇到各种异常,如:选路回路,选路回路,IP数据报设置的数据报设置的TTL最终会递减为最终会递减为0分片丢失,信宿机分片重组时钟超时分片丢失,信宿机分片重组时钟超时路由器找不到路径或信宿关机或信宿无法识别某些字段路由器找不到路径或信宿关机或信宿无法识别某些字段IP层将丢弃数据报,并向源端发回通告。层将丢弃数据报,并向源端发回通告。其它情况:其它情况:拥塞控制,向源发送减慢速度的通知拥塞控制,向源发送减慢速度的通知发现最优路径的通知发现最优路径的通知测试源端是否可达测试源端是否可达获取各路由器的本地时间获取各路由器的本地时间ICMP的作用的作用传递网络控制信息、提供差错报告。传递网络控制信息、提供差错报告。问题:为什么要把这两项功能合二为一?问题:为什么要把这两项功能合二为一? (1)控制和差错报文都是特殊报文。)控制和差错报文都是特殊报文。 (2)差错报告与差错控制总是密切相关)差错报告与差错控制总是密切相关的。的。ICMP协议与协议与IP协议的关系协议的关系1. ICMP与与IP同层,只是同层,只是IP软件中的一个模块。软件中的一个模块。 (1)功能不独立,只是)功能不独立,只是IP的补充;的补充; (2)不是上层协议赖以存在的基础)不是上层协议赖以存在的基础 。2. ICMP报文封装在报文封装在IP数据报中传送,其数据报中传送,其IP首部首部“协议协议”域域指明为指明为ICMP报文(代码为报文(代码为1)。)。 ICMP首部首部ICMP数据数据数据报首部数据报首部数据报数据区数据报数据区帧首部帧首部帧数据区帧数据区学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例ICMP报文格式报文格式报文格式报文格式 ( (与类型相关,但是前与类型相关,但是前3 3个域相同个域相同) )类型类型代码代码校验和校验和其它字段(与类型相关)其它字段(与类型相关)数据区数据区 报文类型报文类型: 请求与应答报文请求与应答报文 差错报告报文差错报告报文 通知报文通知报文关于关于ICMP的说明的说明(1)对整个报文计算校验和)对整个报文计算校验和(2)路由器(主机)向其它路由器(主机)发送)路由器(主机)向其它路由器(主机)发送ICMP报文报文 对于差错类报文:对于差错类报文:(3)差错报告报文的数据区包括:出错数据报的首部)差错报告报文的数据区包括:出错数据报的首部 + 出错出错数据报数据区至少前数据报数据区至少前64bit (包含上层协议报文的重要信息包含上层协议报文的重要信息) 。?。?(4)非嵌套使用:不为携带)非嵌套使用:不为携带ICMP差错报文的数据报出现的差差错报文的数据报出现的差错而生成错而生成ICMP报文。如果该类报文出现差错,则产生异常。报文。如果该类报文出现差错,则产生异常。 (5)只能向源端报告差错,不能向中间路由器报告差错。)只能向源端报告差错,不能向中间路由器报告差错。(6)仅对第一个数据包分片应用)仅对第一个数据包分片应用ICMP协议。协议。学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例ICMP差错报告报文差错报告报文 ICMP差错报告的特点:差错报告的特点:(1)只向源站提供报告,本身一般不处理差错。)只向源站提供报告,本身一般不处理差错。(2)差错报文作为一般数据传输。)差错报文作为一般数据传输。(3)携带)携带ICMP报文的数据报出错时,放弃数据报。报文的数据报出错时,放弃数据报。目的站不可达报告报文目的站不可达报告报文v使用场景:无法转发或投递数据报时使用场景:无法转发或投递数据报时v代码字段给出了不可达的原因代码字段给出了不可达的原因 0,网络不可达:选路失败,网络不可达:选路失败 1,主机不可达:投递失败,主机不可达:投递失败 2,协议不可达:与,协议不可达:与TCP或更高层协议有关或更高层协议有关 3,端口不可达:与,端口不可达:与TCP/UDP协议端口有关协议端口有关 注:注:路由器收到一个需要分片的数据报,但是首部又设置了路由器收到一个需要分片的数据报,但是首部又设置了强制不允许分片位,则使用强制不允许分片位,则使用ICMP目的不可达报文报错目的不可达报文报错(代码值为(代码值为4的报文)。的报文)。可用来测试可用来测试MTU。 见课后作业见课后作业64页页12题。题。类型类型3代码代码0-12校验和校验和未用(未用(0)IP数据报首部数据报首部+数据报数据部分的前数据报数据部分的前64比特比特超时报告报文超时报告报文:TTL = 0或分片重组超时或分片重组超时参数出错报告报文参数出错报告报文:数据报首部出错或缺少选项时:数据报首部出错或缺少选项时类型类型11代码代码0/1校验和校验和未使用(未使用(0)IP数据报首部数据报首部 + 数据报数据部分的前数据报数据部分的前8字节字节类型类型(12)代码代码0/1校验和校验和指针指针IP数据报首部数据报首部 + 数据报数据部分的前数据报数据部分的前8字节字节未使用(未使用(0)指针:指向数据报出错的第一个字节指针:指向数据报出错的第一个字节学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例请求请求/应答报文应答报文检测可达性检测可达性: :回送请求与应答回送请求与应答(Echo Request & Echo Reply)标识和序号功能:匹配请求和应答标识和序号功能:匹配请求和应答 例例:ping命令命令 原理:基于原理:基于ICMP回送请求与应答报文回送请求与应答报文 使用:使用:v可测试网络的可达性可测试网络的可达性v可查看记录路由选项可查看记录路由选项v可指定松散源路由和严格源路由可指定松散源路由和严格源路由类型类型8/0代码代码0校验和校验和标识标识可选数据可选数据序号序号说明说明1. 用用Ping命令可以命令可以查看记录路由选项查看记录路由选项 UNIX:Ping R, Windows:Ping r 处理过程:处理过程:Ping报文(报文(ICMP Echo)封装在)封装在IP报文中,报文中,每个处理该每个处理该IP报文的路由器都把自己的报文的路由器都把自己的IP地址写到地址写到IP首首部的选项中。部的选项中。 这些地址被复制到封装回应报文(这些地址被复制到封装回应报文(ICMP Echo Reply)的的IP首部选项中,若选项中仍有空间,则返回路径上路首部选项中,若选项中仍有空间,则返回路径上路由器的地址也被记录其中。由器的地址也被记录其中。2. Ping命令可以指定命令可以指定严格源路由严格源路由和和松散源路由松散源路由 Ping k, Ping -j地址掩码请求地址掩码请求/ /应答报文应答报文子网掩码的作用?子网掩码的作用?地址掩码请求与应答报文的作用:获得子网掩码地址掩码请求与应答报文的作用:获得子网掩码应用:主机发往网关(单播或广播),请求地址掩码应用:主机发往网关(单播或广播),请求地址掩码类型类型17/18代码代码0校验和校验和标识标识掩码掩码序号序号时戳请求时戳请求/应答报文应答报文用于时钟同步与传送时间估计用于时钟同步与传送时间估计功能:功能:1. 时钟同步时钟同步2. 估算往返时间估算往返时间初始时间戳:发送方发送数据时填写初始时间戳:发送方发送数据时填写接收时间戳:接收方收到报文时填写接收时间戳:接收方收到报文时填写传送时间戳:接收方发送回应时填写传送时间戳:接收方发送回应时填写 问题:如何估算往返时间和传输时延问题:如何估算往返时间和传输时延?类型类型13/14代码代码0校验和校验和标识标识初始时间戳初始时间戳序号序号接收时间戳接收时间戳传送时间戳传送时间戳路由器恳求和路由器通告路由器恳求和路由器通告自动获得默认路由并动态调整自动获得默认路由并动态调整两种情况下使用:两种情况下使用:1. 主机主动寻找默认路由。主机主动寻找默认路由。主机启动后,通过组播或有主机启动后,通过组播或有限广播方式发路由器限广播方式发路由器恳求报文恳求报文,寻找默认路由器。路由,寻找默认路由器。路由器收到恳求报文后,立即发一个路由器器收到恳求报文后,立即发一个路由器通告报文通告报文作为响作为响应。应。 2. 路由器主动定期向主机通告可使用的路由。路由器每路由器主动定期向主机通告可使用的路由。路由器每隔隔10分钟向相邻网络中各主机发分钟向相邻网络中各主机发通告报文通告报文,以组播或有,以组播或有限广播的方式告诉各主机可使用的路由器。限广播的方式告诉各主机可使用的路由器。优点:优点:1. 主机可以不必配置默认网关。主机可以不必配置默认网关。2. 使用软状态技术,防止主机保持一个无效路由。使用软状态技术,防止主机保持一个无效路由。 报文格式报文格式类型类型(10)代码代码0校验和校验和未使用(未使用(0)类型类型(9)代码代码(0)校验和校验和地址数地址数路由器地址路由器地址1生命期生命期(30分钟分钟)地址大小地址大小(1)优先级优先级1路由器地址路由器地址2优先级优先级2学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例拥塞控制与源站抑制拥塞控制与源站抑制v什么是拥塞?什么是拥塞? 大大量量数数据据报报涌涌入入同同一一网网关关,导导致致该该网网关关资资源源耗耗尽尽而而必必须须丢丢弃弃后面到达的数据报时,就是拥塞。后面到达的数据报时,就是拥塞。 v拥塞控制:解决数据报大量涌入问题拥塞控制:解决数据报大量涌入问题v解决拥塞方法:源站抑制,即抑制信源发出数据报的速率。解决拥塞方法:源站抑制,即抑制信源发出数据报的速率。类型(类型(4)代码代码0校验和校验和未使用(未使用(0)IP数据报首部数据报首部 + 数据报数据区的前数据报数据区的前64比特比特v拥塞处理步骤:拥塞处理步骤:1.网关发现拥塞,按一定策略向某些源站发出网关发现拥塞,按一定策略向某些源站发出源站抑制报文源站抑制报文;2.源源站站收收到到源源抑抑制制报报文文后后,按按一一定定速速率率降降低低发发往往某某信信宿宿的的数数据据报的速率;报的速率;3.在在一一定定时时间间间间隔隔内内若若无无源源抑抑制制报报文文到到达达,则则源源站站认认为为拥拥塞塞解解除,逐渐提高发送速率。除,逐渐提高发送速率。 重定向(改变路由)报文重定向(改变路由)报文用于更新主机的路由表用于更新主机的路由表 主机的路由表如何更新?主机的路由表如何更新? 靠路由器发送的重定向报文。当路由器发现一台主机靠路由器发送的重定向报文。当路由器发现一台主机使用非优化路由时,向主机发一重定向报文,请求主使用非优化路由时,向主机发一重定向报文,请求主机更新路由。机更新路由。 类型(类型(5)代码代码(0-3)校验和校验和路由器路由器IP地址地址IP数据报首部数据报首部 + 数据报数据区的前数据报数据区的前64比特比特示例示例A的默认网关是的默认网关是R1,A发送数据给发送数据给B时,首先发给时,首先发给R1;R1发现合适的路由器是发现合适的路由器是R2,则向主机,则向主机A发送重定向报文。发送重定向报文。网络网络2网络网络1网络网络3R2R1BA重定向重定向思考:课后思考:课后64页第页第3题题问题问题对于教材对于教材54页表页表5-1中的中的ICMP报文,哪些报文,哪些ICMP报文是报文是由路由器发送出的,哪些是由目的主机发送出去的?由路由器发送出的,哪些是由目的主机发送出去的?哪些是由非目的主机发送出去的?哪些是由非目的主机发送出去的?学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例ICMP 域名报文域名报文用于通过用于通过IP获取目标域名获取目标域名(FQDN),类似于,类似于DNS的反向域的反向域名解析。名解析。请求请求/响应工作模式。响应工作模式。优点:不用配置优点:不用配置DNS服务器。服务器。类型类型37代码代码0校验和校验和标识标识序号序号类型类型38代码代码0校验和校验和标识标识TTL序号序号域名域名ICMP安全失败报文安全失败报文功能:用于功能:用于IPsec错误报告错误报告格式:差错报告报文格式:差错报告报文类型代码:类型代码:40代码字段含义:代码字段含义:0:SPI错误错误 3:解密失败:解密失败1:认证失败:认证失败 4:需要认证:需要认证2:解压缩失败:解压缩失败 5:需要授权:需要授权类型(类型(40)代码代码校验和校验和IP数据报首部数据报首部 + 数据报数据区的前数据报数据区的前64比特比特保留保留指针指针学习内容学习内容1、引言、引言2、ICMP报文报文3、差错报告类报文、差错报告类报文4、请求、请求/应答类报文应答类报文5、单向通知的控制类报文、单向通知的控制类报文6、实验性的、实验性的ICMP报文报文7、ICMP应用举例应用举例Traceroute(Windows系统:系统:tracert)功能功能:(1) 查看查看IP数据报所经过的路径数据报所经过的路径 (2) 支持宽松源路由选项支持宽松源路由选项 问题:问题:有了有了IP记录路由选项,为何还需要记录路由选项,为何还需要Traceroute?(1) 不是所有的路由器都支持记录路由选项不是所有的路由器都支持记录路由选项(2) IP首部中记录路由选项空间有限,最多存放首部中记录路由选项空间有限,最多存放9个地址个地址Traceroute 的工作原理的工作原理 利用了利用了ICMP超时报文超时报文和和IP首部的首部的TTL (1) 发送发送IP数据报,数据报,TTL = 1,则到达第一个路由器后,则到达第一个路由器后TTL = 0,该路由器向源端发送,该路由器向源端发送ICMP超时报文超时报文,该报文封装在,该报文封装在IP数据报中,源端收到该报文后提取数据报中,源端收到该报文后提取IP首部的首部的IP地址字段,地址字段,则记录了第一个路由器。则记录了第一个路由器。 (2) 发送发送IP数据报,数据报,TTL = 2,记录第二个路由器。,记录第二个路由器。 R1R2SDR3TTL=1ICMP超时超时TTL=2ICMP超时超时如何判断何时到达目的主机?如何判断何时到达目的主机?方法方法1:利用:利用端口不可达报文端口不可达报文 (1) 源端发送的源端发送的IP报文中封装了报文中封装了UDP报文报文,把目的端口设为不,把目的端口设为不常用的端口,同时常用的端口,同时IP首部按照首部按照Tracert的原理构造。的原理构造。 (2) 途中的路由器回应途中的路由器回应ICMP超时报文超时报文。 (3) 目的主机回应目的主机回应端口不可达报文端口不可达报文。 (4) 源端根据返回的报文类型判断是否到达目的端。源端根据返回的报文类型判断是否到达目的端。方法方法2:探测报文在:探测报文在IP数据报中封装数据报中封装ICMP ECHO request报文,报文,中间路由器回应中间路由器回应ICMP超时超时报文,目标回应报文,目标回应ICMP ECHO REPLY报文报文 v每一跳发三个报文,并记录往返时间。每一跳发三个报文,并记录往返时间。补充补充vWindows命令:命令: Tracert(-j) 可实现宽松源路由跟踪。可实现宽松源路由跟踪。v一个很好的可视化工具:一个很好的可视化工具:VisualRoutev课后自己查阅相关资料,练习使用,并观察结果。课后自己查阅相关资料,练习使用,并观察结果。小结小结ICMP属于网络层协议,是属于网络层协议,是IP层功能的补充。层功能的补充。 ICMP协议主要用于差错报告和网络控制。协议主要用于差错报告和网络控制。差错报告报文有差错报告报文有3类类请求请求/应答报文有应答报文有4类类通知报文有通知报文有2类类Ping和和Traceroute是使用了是使用了ICMP协议的协议的2个典型应用个典型应用课堂作业课堂作业书面:书面:P64,3题题课后作业课后作业课后认真看教材课后认真看教材, 查阅参考书相应部分内容查阅参考书相应部分内容。书面作业:书面作业:P64,1,2,7,10,11,12题题思考:思考:P64,5,13题题
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号