- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章差错与控制报文协议分析
第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种可能 : 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源抑制报文。该信源收到源抑制报文后,便知道拥塞已经发生,并且所发送的数据报已经丢失。 在解决拥塞阶段,信源根据收到的源抑制报文中数据区所带的原数据报的首部信息决定对去往某一特定信宿的信息流进行抑制。通常信源按一定的规则降低发往某信宿的数据报传输率。 拥塞解除后,信源逐渐恢复数据报传输速率。 在拥塞控制中
文档评论(0)