文档介绍:学习目标
理解ICMP的概念和作用。
掌握ICMP报文的格式和各种报文类型的作用。
了解ICMP报文的封装过程。
第1页/共16页
网际控制报文协议
IP是一种不可靠的,无连接的数据报传输协议,提供了一种尽力而为的点到点数据传输服务,但不能保证所有数据报都可以成功地从信源到达信宿。为此人们在网络层(也称为IP层)引入了另外一种协议——网际控制报文协议(Internet Control Message Protocol,ICMP)来实现IP层数据报传输过程中的差错控制。通过ICMP配合IP的使用,提高了数据报传递的成功率。
ICMP是IP的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。
第2页/共16页
ICMP报文格式与类型
ICMP报文分为两大类,即ICMP差错报告报文和ICMP查询报告报文。
第3页/共16页
ICMP报文格式与类型
ICMP报文格式
类型:用于定义ICMP报文类型。
代码:用于标识发送这个特定报文类型的原因。
校验和:用于数据传输过程的差错控制,提供ICMP整个报文的校验和。
首部其他部分:由报文类型来确定相应内容,大部分差错报告报文未使用该字段;
数据:提供了ICMP差错和状态报告信息,内容因报文类型而异。
第4页/共16页
ICMP报文
信宿不可达报告:当路由器无法转发IP数据报时,或主机无法向上一层协议或端口提交IP数据报时,将丢弃当前的数据报,并产生信宿不可达差错报告向信源报告出错信息。
第5页/共16页
ICMP报文
源端抑制报告:源端抑制报告报文为IP增加了流量控制能力。当路由器或信宿机由于拥塞而造成数据报丢弃时,它们可以向信源机发送源端抑制报告报文。该报文可以起到两方面的作用:其一是通知信源机数据报已经被丢弃;其二是警告信源机,在传输路径上出现了拥塞,必须放慢发送速度。
第6页/共16页
ICMP报文
重定向报告:为了使主机的路由表信息能根据需要进行更新,在ICMP中引入了重定向报告报文,原理如下:由于主机上的路由表不会随着网络拓扑结构的变化进行实时更新,因此,信源机就有可能将数据报发送给一个错误的路由器(或非最优路由器);此时,收到这个数据报的路由器会把所收到的数据报转发给正确的路由器,同时向信源机发送一个重定向报告报文;当信源机收到该报文后,将根据报文信息更新信源机中路由表的路由信息。
第7页/共16页
ICMP报文
超时报告:每个IP数据报首部都有一个生存时间字段TTL,并通过设置相应的TTL值来控制数据报在网络上的传输时间。每当数据报通过路由器时,该字段值就减1。当TTL值为0时,路由器会丢弃该数据报,同时产生一个ICMP超时报告报文发送给信源机。另外,在信宿机进行分片重组时,也会启动一个重组定时器。一旦重组定时器超时,信宿机也将丢弃当前正在重组的数据报,并产生一个ICMP超时报告报文发送给信源机。
第8页/共16页
ICMP报文
数据报参数错误报告:在数据报传输过程中,如果路由器或信宿机发现数据报首部参数存在问题,如首部字段值不明确和空缺等,进而无法转发或处理该数据报,则会将该数据报丢弃,同时向信源机发送一个数据报参数错误报告。
第9页/共16页
ICMP报文
时间戳请求与应答报告:为了实现不同主机或设备之间的时钟同步,在ICMP中引入了时间戳请求和应答报告。
信源机向信宿机发送一个时间戳请求报告报文,其中包含信源机发送该报告的时间Tss,要求返回信宿机当前的时间;信宿机收到该请求报告后将返回一个时间戳应答报告报文,该报文中包含信源机发送请求报告的时间Tss、信宿机收到请求报告时间Tsr和信宿机发送应答报告时间Tts。因此信源机和信宿机之间的系统时间差(∆T= (Tss-Tsr+Ttr-Tts)/2),并依据该时间差调整自己的系统时间,实现与信宿机的时间同步。
第10页/共16页