差错与控制报文协议

上传人:206****923 文档编号:51714377 上传时间:2018-08-16 格式:PPT 页数:43 大小:951KB
返回 下载 相关 举报
差错与控制报文协议_第1页
第1页 / 共43页
差错与控制报文协议_第2页
第2页 / 共43页
差错与控制报文协议_第3页
第3页 / 共43页
差错与控制报文协议_第4页
第4页 / 共43页
差错与控制报文协议_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《差错与控制报文协议》由会员分享,可在线阅读,更多相关《差错与控制报文协议(43页珍藏版)》请在金锄头文库上搜索。

1、第6章 差错与控制报文协议6.1 因特网控制报文协议 6.2 ICMP报文格式与类型 6.3 ICMP差错报告 6.4 ICMP控制报文 6.5 ICMP请求与应答报文对 6.6 ICMP报文封装 6.1 因特网控制报文协议(ICMP)lICMP协议设计的最初目的主要是用于IP层的 差错报告,由路由器或信宿以一对一的模式向 信源报告传输错误的原因。 l随着网络的发展,检测和控制功能逐渐被引入 到ICMP协议中,使得ICMP协议不仅用于传 输差错报告,而且大量用于传输控制报文。 lICMP与IP协议位于同一个层次(IP层),但 ICMP报文是封装在IP数据报的数据部分进行 传输的。 lICMP协

2、议是IP协议的补充,用于IP层的差错 报告、拥塞控制、路径控制以及路由器或主机 信息的获取。返回6.2 ICMP报文格式与类型lICMP报文由首部和数据段组成。首部为定 长的8个字节,前4个字节是通用部分,后4 个字节随报文类型的不同有所差异。ICMP 报文的一般格式如图所示。lICMP报文虽然细分为很多类,但总的来看 可以分为如图所示的三大类:差错报告、 控制报文和请求应答报文。返回6.3 ICMP差错报告l ICMP差错报告的数据区包含出错数据报的首部及该 数据报的前64位数据,这些信息有助于信源或管理 人员发现错误原因。 l ICMP差错报告具有以下特点:1)只报告差错,但不负责纠正错误

3、,纠错工作留给 高层协议去处理。2)发现出错的设备只向信源报告差错。3)差错报告作为一般数据传输,不享受特别优先权 和可靠性。4)产生ICMP差错报告的同时,会丢弃出错的IP数 据报。l形成ICMP差错报告时有以下例外: 1)ICMP差错报文本身不会再产生ICMP 差错报告。 2)分片报文的非第一个分片不会产生 ICMP差错报告。 3)组播地址报文不会产生ICMP差错报 告。 4)特殊地址127.0.0.0和0.0.0.0的报文 不会产生ICMP差错报告。 6.3.1 信宿不可达报告 l当路由器无法根据路由表转发IP数据报时或 主机无法向上层协议和端口提交IP数据报时 ,将丢弃当前的数据报,并

4、产生信宿不可达 差错报告,向信源报告出错。信宿不可达报 文如图所示。l 信宿不可达报文可能由路由器产生,也可能由信宿机 产生。产生信宿不可达报文的原因的16种可能 :类类型报报 文代码码描 述3信宿不可达0网络络不可达1主机不可达2协议协议不可达3端口不可达4数据报报无法分片5源路由失败败6信宿网络络未知7信宿主机未知8源主机被隔离9与信宿网络络的通信被禁止10与信宿主机的通信被禁止11对对特定的服务类务类型(TOS)网络络不可达12对对特定的服务类务类型(TOS)主机不可达13因管理者设设置过滤过滤而使主机不可达14因非法的优优先权权而使主机不可达15因报报文的优优先级级低于网络设络设置的最

5、小优优先级级而使主机不可达6.3.2 数据报超时报告l在数据报的传输过程中,首部的TTL值用于防 止数据报因路由表的问题而无休止地在网络中 传输。当TTL值为0时,路由器会丢弃当前的 数据报,并产生一个ICMP数据报超时报告。 另外。l在信宿进行分片重组时会启动重组定时器,一 旦重组定时器超时,信宿就会丢弃当前正在重 组的数据报,然后产生一个ICMP数据报超时 报告,并向信源发送该超时报告。 l数据报超时报告的报文格式与信宿不可 达报告的报文格式相同,只是类型和代 码值不同。l数据报超时报告的类型和代码的含义如 表所示。类型值11表示是数据报超时报 文,代码“0”表示TTL超时,代码“1”表

6、示分片重组超时。 类类型报报 文代码码描 述11超时时0路由TTL超时时1分片重组组超时时6.3.3 数据报参数错报告l数据报参数错报告是由数据报首部字段值 不明确或空缺而引起的差错报告。一旦路 由器或信宿机发现错误的数据报首部和错 误的数据报选项参数时,便抛弃该数据报 ,并向信源发送差错报告报文。数据报参 数错报文的格式如图6-4所示。 类型12表明数据报参数错n代码“0”表示数据报首部中的某个字段的值有错或不明确 ,这时ICMP报文首部的指针指向数据报中有问题的字 节;n代码“1”表示数据报首部中缺少某一选项所必须具有的部 分参数,此时的ICMP报文没有指针字段。 表6-3给出了数据报参数

7、错报告的类型。 l 代码为“0”的参数错只能报告一个出错参数 l 代码为“1”的参数错只能报告缺少参数,不能说明 缺少哪个参数。类类型报报 文代码码描 述12参数错0IP首部参数错1缺少选项所要求的部分返回6.4 ICMP控制报文ICMP控制报文包括源抑制报文和重定向报文 l 源抑制报文用于拥塞控制 l 重定向报文用于路径控制 下表给出了这两类报文的类型和作用描述。类类 型作 用代 码码描 述4拥拥塞控 制0源抑制报报文5路径控 制0网络络重定向1主机重定向2基于服务类务类 型的网 络络重定向3基于服务类务类 型的主 机重定向6.4.1 源抑制报文IP协议采用的是无连接数据报方式进行传输n发送

8、方事先并不了解中间的路由器和信宿的处理 能力和缓冲区大小n在数据报传输过程中没有采用任何流量控制机制 当大量的数据报进入路由器或信宿时,会造 成缓冲区溢出,即出现拥塞(Congestion)。 lICMP利用源抑制的方法来进行拥塞控制。通 过源抑制来减缓信源发出数据报的速率。l源抑制报文的格式如图6-5所示。源抑制包括三个阶段:发现拥塞阶段、解决拥塞 阶段和恢复阶段。 l在发现拥塞阶段,路由器对缓冲区进行监测, 一旦发现拥塞,立即向相应的信源发送ICMP源 抑制报文。该信源收到源抑制报文后,便知道 拥塞已经发生,而且所发送的数据报已经丢掉 。 l在解决拥塞阶段,信源根据收到的源抑制报文 中所带

9、的原数据报的首部信息决定对去往某一 特定信宿的信息流进行抑制。通常信源在收到 源抑制报文后,按一定的规则降低发往某信宿 的数据报传输率。 l拥塞解除后,信源逐渐恢复数据报传输速率。l在拥塞控制中以下几点值得关注:1)虽然对于每个因拥塞而丢弃的数据 报都产生ICMP源抑制报文,但信源只 按照自己的时间段进行响应。2)拥塞的解除由信源依据是否有进一 步的源抑制报文到达来进行判断。3)拥塞可能是由多个源共同行为的结 果,由于各个信源的发送速率相差较大 ,源抑制的效果未必很好。6.4.2 重定向报文因特网上的路由器和主机中都存有一个路由表,路由 表决定了去往目的地的下一跳路由器的地址。 l 路由器上的

10、路由表能够及时地反映网络结构的变化 ,这一特点由路由器之间定期交换路由信息加以保 证。 l 主机因为不能保证全天开机,所以主机中的路由表 不能及时反映网络结构的变化情况。另外,由于因 特网上的主机数量远大于路由器的数量,主机如果 参与路由信息的交换,势必带来大量的通信开销。 因此主机中的路由表不通过路由协议进行更新。 但主机所在的网络可能和多个路由器相连,主机在发 送信息时也要根据其路由表来选择下一跳路由器, 为了解决主机路由表的刷新问题,ICMP提供了重定 向机制。l 主机路由表所给出的下一跳路由器可能并非去往信宿的 最佳下一跳路由器,当主机的下一跳路由器收到数据报 后,该路由器根据它的路由

11、表判断本路由器是否是去往 信宿的最佳选择,如果不是,该路由器仍然会向信宿网 络转发该数据报,但在转发的同时会产生一个ICMP重 定向报文,通知信源修改它的路由表,重定向报文中将 给出信源最佳下一跳路由器的IP地址。 l 主机A根据重定向报文修改路由表的例子。ICMP重定向报文的格式如图所示。 代码从0到3分别代表不同的重定向方式,具体含 义由前面的表6-4给出。 主机开机后在ICMP重定向机制的作用下,经过 不断积累逐渐充实和完善其路由表。动态且优 化l值得注意的是:1)ICMP产生重定向报文的时候并不丢 弃原数据报。2)ICMP重定向报文由位于同一网络的 路由器发送给主机,完成对主机的路由

12、表的刷新。3)被刷新的路由表项与重定向报文数 据部分指示的IP数据报首部中的信宿地 址相关。内容为重定向报文中目标路由 器的IP地址。 返回6.5 ICMP请求与应答报文对l ICMP请求与应答报文对的出现使得因特网上的任 何主机或路由器可以向其他主机或路由器发送请 求并获得应答。 l 通过ICMP请求与应答报文对,网络管理人员、用 户或应用程序可以对网络进行检测,了解:n设备的可达性n地址掩码的设置n时钟的同步等情况 l目的是利用这些有用的信息,对网络进行故 障诊断和控制。lICMP请求与应答报文对如表6-5所示。其中的 信息请求与应答报文已经不再使用。 类类型作 用代 码码报报 文8回应请

13、求与应答0回应请求00回应应答10路由器请求与通告0路由器请求90路由器通告13时间戳请求与应答0时间戳请求140时间戳应答15信息请求与应答(已不用)0信息请求160信息应答17地址掩码请求与应答0地址掩码请求180地址掩码应答6.5.1 回应请求与应答报文回应请求与应答报文的目的是对网络进行诊断 和测试。 回应请求与应答不仅可以被用来测试主机或路 由器的可达性,还可以测试IP协议的工作情 况。 TCP/IP网络系统所提供的ping命令大多是利用 ICMP回应请求与应答报文来实现的,该命 令通常用于测试信宿的可到达性。 ICMP回应请求与应答报文的格式如图所示。 l类型“8”表明是回应请求报

14、文 l类型“0”表明是回应应答报文协议未对标识符和序列号字段进行正式定义,通 常将标识符和序列号用于匹配请求与应答,标 识符一般为发起请求进程的进程ID。回应请求 与应答报文的标识符和序列号一致。 6.5.2 时间戳请求与应答报文l因特网中的各个主机和路由器都是独立运行 的,因此在时钟上存在着较大的差异,而一 些分布式应用系统要求各个设备的时钟是同 步的,ICMP时间戳请求与应答报文就是用于 设备间进行时钟同步的报文对。l用时间戳请求与应答报文进行时钟同步的基 本思路是请求方主机通过获取另一主机的时 间戳信息,将该信息和请求方主机的时间戳 信息进行比较后,估算两者的时钟差异。请求/应答格式如图

15、。类型13:请求报文,类型14:应答报文。l 初始时间戳字段用于指示请求方发出请求的时间 l 接收时间戳字段用于指示应答方主机收到请求的时间 l 发送时间戳字段用于指示应答方主机发送应答的时间 三个时间戳字段各为32比特长,以毫秒为单位从世界时间午夜0 点起计时。时间戳的计数值不能超过86400000(24小时)。 请求报文:填初始时间戳,接收时间戳和发送时间戳为0。 应答报文:初始时间戳直接从请求报文中复制,接收时间戳和发 送时间戳由应答方主机根据自己接收和发送时的时钟填写。为了估算请求方与应答方之间的时钟差异,首先要 计算出时间戳请求和应答的往返延迟,然后据此计 算出单程传输延迟,最后由两

16、设备的时间戳和单程 传输延迟计算出两台设备之间的时间差,从而实现 时钟的同步。 往返延迟时间可以用下式计算: 往返时间t当前t初始(t发送t接收) t接收t初始t当前t发发送 假设传输请设传输请 求的时时延和传输应传输应 答的时时延相同,那么 单单程时时延就等于往返时间时间 的一半。 一个时钟同步的例子:主机A发出时间戳请求时 的初始时间戳为1000毫秒,主机B收到请求时 的接收时间戳是1055毫秒,主机B给出应答时 的发送时间戳是1057毫秒,主机A收到应答时 的时间为1030毫秒。主机A可以根据这些时间 戳计算出两台主机间的时间差。 往返时间t当前t初始(t发送t接收) 10301000(10571055)28(毫秒) 单程时延28214 (毫秒) 时间差t接收(t初始单程时延)1055 (100014)41 (毫秒) l由上面的计算可知:主机B的时钟比主机A的 时钟快了41毫秒。 6.5.3 地址掩码请求与应答报文 l 地址掩码

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号