版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章Internet控制报文协议ICMP5.1因特网控制报文协议
5.2ICMP报文格式与类型
5.3ICMP差错报告
5.4ICMP控制报文
5.5ICMP请求与应答报文对
5.6ICMP报文封装
5.1因特网控制报文协议(ICMP)ICMP协议设计的最初目的主要是用于IP层的差错报告,由路由器或信宿以一对一的模式向信源报告传输错误的原因。随着网络的发展,检测和控制功能逐渐被引入到ICMP协议中,使得ICMP协议不仅用于传输差错报告,而且大量用于传输控制报文。ICMP与IP协议位于同一个层次(IP层),但ICMP报文是封装在IP数据报的数据部分进行传输的。ICMP协议是IP协议的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。返回5.2ICMP报文格式与类型ICMP报文由首部和数据段组成。首部为定长的8个字节,前4个字节是通用部分,后4个字节随报文类型的不同有所差异。ICMP报文的一般格式如图所示。ICMP报文虽然细分为很多类,但总的来看可以分为如图所示的三大类:差错报告、控制报文和请求应答报文。返回5.3ICMP差错报告ICMP差错报告的数据区包含出错数据报的首部及该数据报的前64位数据,这些信息有助于信源或管理人员发现错误原因。ICMP差错报告具有以下特点:
1)只报告差错,但不负责纠正错误,纠错工作留给高层协议去处理。
2)发现出错的设备只向信源报告差错。
3)差错报告作为一般数据传输,不享受特别优先权和可靠性。
4)产生ICMP差错报告的同时,会丢弃出错的IP数据报。形成ICMP差错报告时有以下例外:1)ICMP差错报文本身不会再产生ICMP差错报告。2)分片报文的非第一个分片不会产生ICMP差错报告。3)组播地址报文不会产生ICMP差错报告。4)特殊地址127.0.0.0和0.0.0.0的报文不会产生ICMP差错报告。5.3.1信宿不可达报告
当路由器无法根据路由表转发IP数据报时或主机无法向上层协议和端口提交IP数据报时,将丢弃当前的数据报,并产生信宿不可达差错报告,向信源报告出错。信宿不可达报文如图所示。信宿不可达报文可能由路由器产生,也可能由信宿机产生。产生信宿不可达报文的原因的16种可能:类型报文代码描述3信宿不可达0网络不可达1主机不可达2协议不可达3端口不可达4数据报无法分片5源路由失败6信宿网络未知7信宿主机未知8源主机被隔离9与信宿网络的通信被禁止10与信宿主机的通信被禁止11对特定的服务类型(TOS)网络不可达12对特定的服务类型(TOS)主机不可达13因管理者设置过滤而使主机不可达14因非法的优先权而使主机不可达15因报文的优先级低于网络设置的最小优先级而使主机不可达5.3.2数据报超时报告在数据报的传输过程中,首部的TTL值用于防止数据报因路由表的问题而无休止地在网络中传输。当TTL值为0时,路由器会丢弃当前的数据报,并产生一个ICMP数据报超时报告。另外。在信宿进行分片重组时会启动重组定时器,一旦重组定时器超时,信宿就会丢弃当前正在重组的数据报,然后产生一个ICMP数据报超时报告,并向信源发送该超时报告。数据报超时报告的报文格式与信宿不可达报告的报文格式相同,只是类型和代码值不同。数据报超时报告的类型和代码的含义如表所示。类型值11表示是数据报超时报文,代码“0”表示TTL超时,代码“1”表示分片重组超时。类型报文代码描述11超时0路由TTL超时1分片重组超时5.3.3数据报参数错报告数据报参数错报告是由数据报首部字段值不明确或空缺而引起的差错报告。一旦路由器或信宿机发现错误的数据报首部和错误的数据报选项参数时,便抛弃该数据报,并向信源发送差错报告报文。数据报参数错报文的格式如图4-4所示。类型12表明数据报参数错代码“0”表示数据报首部中的某个字段的值有错或不明确,这时ICMP报文首部的指针指向数据报中有问题的字节;代码“1”表示数据报首部中缺少某一选项所必须具有的部分参数,此时的ICMP报文没有指针字段。表4-3给出了数据报参数错报告的类型。代码为“0”的参数错只能报告一个出错参数代码为“1”的参数错只能报告缺少参数,不能说明缺少哪个参数。类型报文代码描述12参数错0IP首部参数错1缺少选项所要求的部分返回5.4ICMP控制报文ICMP控制报文包括源抑制报文和重定向报文源抑制报文——用于拥塞控制重定向报文——用于路径控制下表给出了这两类报文的类型和作用描述。类型作用代码描述4拥塞控制0源抑制报文5路径控制0网络重定向1主机重定向2基于服务类型的网络重定向3基于服务类型的主机重定向5.4.1源抑制报文IP协议采用的是无连接数据报方式进行传输发送方事先并不了解中间的路由器和信宿的处理能力和缓冲区大小在数据报传输过程中没有采用任何流量控制机制 当大量的数据报进入路由器或信宿时,会造成缓冲区溢出,即出现拥塞(Congestion)。ICMP利用源抑制的方法来进行拥塞控制。通过源抑制来减缓信源发出数据报的速率。源抑制报文的格式如图6-5所示。源抑制包括三个阶段:发现拥塞阶段、解决拥塞阶段和恢复阶段。在发现拥塞阶段,路由器对缓冲区进行监测,一旦发现拥塞,立即向相应的信源发送ICMP源抑制报文。该信源收到源抑制报文后,便知道拥塞已经发生,而且所发送的数据报已经丢掉。在解决拥塞阶段,信源根据收到的源抑制报文中所带的原数据报的首部信息决定对去往某一特定信宿的信息流进行抑制。通常信源在收到源抑制报文后,按一定的规则降低发往某信宿的数据报传输率。拥塞解除后,信源逐渐恢复数据报传输速率。在拥塞控制中以下几点值得关注:
1)虽然对于每个因拥塞而丢弃的数据报都产生ICMP源抑制报文,但信源只按照自己的时间段进行响应。
2)拥塞的解除由信源依据是否有进一步的源抑制报文到达来进行判断。
3)拥塞可能是由多个源共同行为的结果,由于各个信源的发送速率相差较大,源抑制的效果未必很好。5.4.2重定向报文因特网上的路由器和主机中都存有一个路由表,路由表决定了去往目的地的下一跳路由器的地址。路由器上的路由表能够及时地反映网络结构的变化,这一特点由路由器之间定期交换路由信息加以保证。主机因为不能保证全天开机,所以主机中的路由表不能及时反映网络结构的变化情况。另外,由于因特网上的主机数量远大于路由器的数量,主机如果参与路由信息的交换,势必带来大量的通信开销。因此主机中的路由表不通过路由协议进行更新。但主机所在的网络可能和多个路由器相连,主机在发送信息时也要根据其路由表来选择下一跳路由器,为了解决主机路由表的刷新问题,ICMP提供了重定向机制。主机路由表所给出的下一跳路由器可能并非去往信宿的最佳下一跳路由器,当主机的下一跳路由器收到数据报后,该路由器根据它的路由表判断本路由器是否是去往信宿的最佳选择,如果不是,该路由器仍然会向信宿网络转发该数据报,但在转发的同时会产生一个ICMP重定向报文,通知信源修改它的路由表,重定向报文中将给出信源最佳下一跳路由器的IP地址。主机A根据重定向报文修改路由表的例子。ICMP重定向报文的格式如图所示。代码从0到3分别代表不同的重定向方式,具体含义由前面的表4-4给出。主机开机后在ICMP重定向机制的作用下,经过不断积累逐渐充实和完善其路由表。动态且优化值得注意的是:
1)ICMP产生重定向报文的时候并不丢弃原数据报。
2)ICMP重定向报文由位于同一网络的路由器发送给主机,完成对主机的路由表的刷新。
3)被刷新的路由表项与重定向报文数据部分指示的IP数据报首部中的信宿地址相关。内容为重定向报文中目标路由器的IP地址。
返回5.5ICMP请求与应答报文对ICMP请求与应答报文对的出现使得因特网上的任何主机或路由器可以向其他主机或路由器发送请求并获得应答。通过ICMP请求与应答报文对,网络管理人员、用户或应用程序可以对网络进行检测,了解:设备的可达性地址掩码的设置时钟的同步等情况目的是利用这些有用的信息,对网络进行故障诊断和控制。ICMP请求与应答报文对如表4-5所示。其中的信息请求与应答报文已经不再使用。类型作用代码报文8回应请求与应答0回应请求00回应应答10路由器请求与通告0路由器请求90路由器通告13时间戳请求与应答0时间戳请求140时间戳应答15信息请求与应答(已不用)0信息请求160信息应答17地址掩码请求与应答0地址掩码请求180地址掩码应答5.5.1回应请求与应答报文回应请求与应答报文的目的是对网络进行诊断和测试。回应请求与应答不仅可以被用来测试主机或路由器的可达性,还可以测试IP协议的工作情况。TCP/IP网络系统所提供的ping命令大多是利用ICMP回应请求与应答报文来实现的,该命令通常用于测试信宿的可到达性。ICMP回应请求与应答报文的格式如图所示。类型“8”表明是回应请求报文类型“0”表明是回应应答报文协议未对标识符和序列号字段进行正式定义,通常将标识符和序列号用于匹配请求与应答,标识符一般为发起请求进程的进程ID。回应请求与应答报文的标识符和序列号一致。5.5.2时间戳请求与应答报文因特网中的各个主机和路由器都是独立运行的,因此在时钟上存在着较大的差异,而一些分布式应用系统要求各个设备的时钟是同步的,ICMP时间戳请求与应答报文就是用于设备间进行时钟同步的报文对。用时间戳请求与应答报文进行时钟同步的基本思路是请求方主机通过获取另一主机的时间戳信息,将该信息和请求方主机的时间戳信息进行比较后,估算两者的时钟差异。请求/应答格式如图。类型13:请求报文,类型14:应答报文。初始时间戳字段用于指示请求方发出请求的时间接收时间戳字段用于指示应答方主机收到请求的时间发送时间戳字段用于指示应答方主机发送应答的时间三个时间戳字段各为32比特长,以毫秒为单位从世界时间午夜0点起计时。时间戳的计数值不能超过86400000(24小时)。请求报文:填初始时间戳,接收时间戳和发送时间戳为0。应答报文:初始时间戳直接从请求报文中复制,接收时间戳和发送时间戳由应答方主机根据自己接收和发送时的时钟填写。
为了估算请求方与应答方之间的时钟差异,首先要计算出时间戳请求和应答的往返延迟,然后据此计算出单程传输延迟,最后由两设备的时间戳和单程传输延迟计算出两台设备之间的时间差,从而实现时钟的同步。 往返延迟时间可以用下式计算:往返时间=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毫秒。
5.5.3地址掩码请求与应答报文地址掩码请求与应答报文使得一台主机可以获得另一台主机或路由器的子网掩码。如果能够获得本网络中路由器的子网掩码,也就得到了本机所属子网的掩码。无盘机通过RARP获得IP地址后,可以利用地址掩码请求来获得子网掩码。地址掩码请求与应答报文的格式如图4-11所示。类型“17”表示地址掩码请求,地址掩码请求报文的地址掩码字段为“0”。类型“18”表示地址掩码应答。5.5.4路由器请求与通告报文初始化路由表的方法:在配置文件中指定静态路由利用ICMP路由器请求和通告报文来获得路由器的IP地址。 通过路由器请求和通告报文还可以知道路由器是否处于活动状态。 主机在引导以后通过广播或组播发出路由器请求报文。一台或更多台路由器以路由器通告报文作为响应。即使没有路由器请求报文,路由器也可以定期广播或组播路由器通告报文。ICMP路由器请求报文和路由器通告报文的格式如图。
地址数字段指明报文所含的地址项的个数。一个地址项由一个IP地址和一个4字节的地址优先级构成。地址项大小字段指明每个路由器地址项所占32比特字的数目,一般为2。生存期字段以秒为单位指明所通告地址的有效时间。数据区是一到多个地址项。地址项中的优先级指出该IP地址作为默认路由器地址的优先等级,值越小优先级越高。若地址优先级为0,则该地址可作为默认路由器地址。优先级为0x80000000时,表明该地址不能作为默认路由器地址使用。返回5.6ICMP报文封装向下:虽然ICMP协议可以接受来自上层的请求,但并不直接封装来自上层协议的数据。ICMP协议将请求转变为ICMP报文,然后将报文封装在IP协议中进行发送。包含ICMP报文的IP数据报首部的协议字段为“1”
。向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年无人机安防监控系统采购合同2篇
- 2025版委托持股业务尽职调查与风险评估合同3篇
- 2025版塔吊租赁合同解除及赔偿协议6篇
- 2025版小企业劳动合同修订与完善建议5篇
- 光纤通信在高速铁路信号系统中的应用考核试卷
- 《企业文化圣经》课件
- 初中生财经素养的培养与财经知识普及教育的实践探索策略考核试卷
- 人力资源管理培训课程课件-高效招聘与面试技巧
- 2025版高端商务区门面房使用权购买合同4篇
- 2025版商业地产物业委托居间合同范本3篇
- 2024年苏州工业园区服务外包职业学院高职单招职业适应性测试历年参考题库含答案解析
- 人教版初中语文2022-2024年三年中考真题汇编-学生版-专题08 古诗词名篇名句默写
- 2024-2025学年人教版(2024)七年级(上)数学寒假作业(十二)
- 山西粤电能源有限公司招聘笔试冲刺题2025
- 医疗行业软件系统应急预案
- 使用错误评估报告(可用性工程)模版
- 《精密板料矫平机 第2部分:技术规范》
- 2024光伏发电工程交流汇流箱技术规范
- 旅游活动碳排放管理评价指标体系构建及实证研究
- 2022年全国职业院校技能大赛-电气安装与维修赛项规程
- 2024年黑龙江省政工师理论知识考试参考题库(含答案)
评论
0/150
提交评论