ICMP协议讲解.ppt_第1页
ICMP协议讲解.ppt_第2页
ICMP协议讲解.ppt_第3页
ICMP协议讲解.ppt_第4页
ICMP协议讲解.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 ICMP协议介绍 部门 产品中心测试部科室 软件测试科讲师 门荟时间 2015 3 24 Ip协议为了有效利用网络资源 提供了不可靠和无连接的数据报交付服务 它只提供把数据报从源点交付到终点 而不关心过程中是否有丢失或者损坏 Ip协议缺少 差错控制和查询辅助机制 实际网络都有哪些不可预知的错误发生 例如 1 路由器找不到最终终点2 数据报生存时间为0而被丢弃3 在有限时间内主机无法收到一个数据报的所有分片 而被迫丢弃已收到的分片等等 如果上述错误发生该怎么办 因此ICMP协议就顺理成章得诞生了 ICMP协议 InternetControlMessageProtocol它对IP包无法传输时提供报告 这些差错报告帮助了发送方了解为什么无法传递 网络发生了什么问题 确定应用程序后续操作 它还提供了一种查询机制 有利于网络环境分析和网络问题定位 ICMP是一种差错与控制集于一体的协议 不仅用于传输差错报文 而且用于传输控制报文 以及请求 应答报文 主要内容 ICMP协议的类型ICMP报文格式常用ICMP差错报文常用ICMP控制报文常用ICMP请求 应答报文 网际控制报文协议ICMP 为了提高IP数据报交付成功的机会 在网际层使用了网际控制报文协议ICMP InternetControlMessageProtocol ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告 ICMP不是高层协议 而是IP层的协议 ICMP报文作为IP层数据报的数据 加上数据报的首部 组成IP数据报发送出去 ICMP协议 ICMP报文的类型 ICMP报文 ICMP差错报文ICMP差错报文伴随着丢弃出错数据产生的 一旦IP发现出错 首先丢弃出错的IP数据报 之后发出ICMP差错报文 ICMP差错报文不享受特别的优先级 作为一般数据传输 为了更好地帮助源主机排错 ICMP差错报文中除了包含出错数据报的报头 而且还包括其数据区的前64bits的数据 ICMP差错报文包括目的地不可达报文 超时报文 参数错报文等 ICMP报文 ICMP控制报文IP协议包括了拥塞控制和路由控制两个部分 ICMP提供了相应的控制报文 源抑制报文和重定向报文 ICMP请求 应答报文ICMP还提供了一些用于获得有用信息的一些请求 应答报文 ECHO请求 应答报文和时间戳请求 应答报文 ICMP报文的格式 首部 ICMP报文 0 数据部分 检验和 类型 代码 这4个字节取决于ICMP报文的类型 8 16 31 IP数据报 前4个字节都是一样的 ICMP的数据部分 长度取决于类型 ICMP报文格式 类型域ICMP报文类型类型域ICMP报文类型0回应应答12数据报参数错3信宿不可到达13时戳请求4源抑制14时戳应答5重定向17地址模请求8回应请求18地址模响应11数据报超时 ICMP报文格式 代码 code 提供报文类型的进一步信息 校验和 checksum 提供整个ICMP报文的校验和 数据区 包括出错数据报的报头及该数据报的前64bit数据 这些信息可以帮助信源机确定出错数据报 1 差错报文 ICMP差错报文 目的地不可达 当网络节点认为某数据报的目的地不可达时 就向该数据报的源主机发送一个目的地不可达的ICMP分组 ICMP报文type 8bits 3code 8bits 0 netunreachable 1 hostunreachable 2 protocolunreachable 3 portunreachable 4 fragmentationneededandDFset 5 sourceroutefailed 6 7 8 15有15个code 不一一列举 Checksum 16bits unused 32bits Internetheader 64bitsoforiginaldatadategram 讨论 信宿不可达的4个层次 网络 主机 协议 端口 网络不可到达 寻址故障 主机不可到达 信宿机所在网络的最后一个网关发现其关闭或故障 协议和端口不可到达网络高层可采用多种协议 通过协议端口 port 实现访问 协议号 端口号和网络地址 主机地址一样 作为数据报信宿地址的一部分使用 同一协议可以通过不同的协议端口 同时处理多个访问 讨论 下面各种情况不会导致产生ICMP差错报文 1 ICMP差错报文 2 目的地址是广播地址或多播地址 D类地址 的IP数据报 3 作为链路层广播的数据报 4 不是IP分片的第一片 5 源地址不是单个主机的数据报 即源地址不能为零地址 环回地址 广播地址或多播地址 为了防止过去允许ICMP差错报文对广播分组响应所带来的广播风暴 ICMP差错报文 超时 当网络结点发现某数据报的TTL域为零 需要丢弃此数据报时 需要向该数据报的源主机告知超时出错 当目的主机在分段重组时 规定时间内由于分段丢失未完成重组 需要发送超时报文 ICMP报文type 8bits 11code 8bits 0 timetoliveexceededintransit 1 fragmentreassemblytimeexceeded Checksum 16bits unused 32bits Internetheader 64bitsoforiginaldatadategram ICMP差错报文 参数错 当网络结点或主机发现数据报中的报头参数出错 例如选项出错 无效报头等 时 发送参数错报文 ICMP报文type 8bits 12code 8bits 0 包头出错1 缺少所需的选项部分Checksum 16bits Pointer 8bits 当code 0时 标明发生错误的八位组 unused 24bits Internetheader 64bitsoforiginaldatadategram 2 控制报文 ICMP控制报文 源抑制 对于无连接的IP协议而言 拥塞控制是一个很重要的问题 TCP IP利用发送ICMP源抑制报文 抑制源主机发出数据的速率来解决拥塞问题 ICMP源抑制报文中type 4 code 1 ICMP控制报文 源抑制 发送源抑制报文的情况 当路由器或者主机因拥塞而丢弃数据报时 它就向数据报的发送端发送源点抑制报文 目的 1 通知源点 数据报已经被丢弃2 警告源点 路径中某处出现了拥塞 源点必须放慢发送过程 ICMP控制报文 源抑制 ICMP源抑制包括了三个阶段 网络结点发现产生拥塞 向源主机发出ICMP源抑制报文 源主机在收到源抑制报文后 按照一定的速率降低发往某目的主机的数据报速率 源主机在降低了速率后 一定的时间间隔内不会理会关于同一目的主机的源抑制报文 只有在下一个时间间隔开始的时候 关于同一目的主机的源抑制报文采会再次生效 拥塞的解除由源主机自行完成 在下一个时间间隔到达时 没有收到关于同一目的主机的源抑制报文 源主机就结束对该目的主机的拥塞控制 逐渐恢复正常流量 ICMP控制报文 重定向 在Internet中 主机在启动时只知道最少的寻径信息 保证主机将数据报发送出去 但未必是最优路由 启动后 通过ICMP重定向报文 在数据传输过程中 主机可以不断从同一个网络的网络结点中得到新的路由信息 ICMP控制报文 重定向 ICMP的重定向功能保证主机拥有一个动态的 即小且优的路由表 如果网络X的主机A发送一个数据报到另外一个网络Y的主机B 主机A的路由表中指示通过路由器G1可以到达网络Y 该数据报被发送到路由器G1 G1通过查阅自己的路由表发现 从网络X到网络Y经过路由器G2是一条最佳路由 路由器G1在将该数据报转发到网络Y后 发送一个ICMP重定向报文给主机A 告知到达网络Y的最佳路由为路由器G2 经过不断积累 主机的路由表就越来越充实 优化了 缺点 只能用于同一网络内的网关与主机之间的路径信息交换 不能用于网关之间的路径信息交换 ICMP控制报文 重定向 ICMP重定向报文type 8bits 5code 8bits 0 RedirectdatagramsfortheNetwork 1 RedirectdatagramsfortheHost 2 RedirectdatagramsfortheTypeofServiceandNetwork 3 RedirectdatagramsfortheTypeofServiceandHost Checksum 16bits GatewayInternetAddress 32bits 网关地址Internetheader 64bitsoforiginaldatadategram 3 请求应答报文 ICMP故障诊断与网络控制报文 用于故障诊断与网络控制的ICMP报文是以请求 应答对形式双向传输的报文 用于故障诊断与网络控制的ICMP报文有 回应请求 回应应答 时戳请求 时戳应答 地址模请求 地址模应答 ECHO请求和应答 用于测试目的地址的可达性 ping命令实现了ECHO请求 应答的功能 ECHO请求 应答报文type 8bits 8 echomessage0 echoreplymessagecode 8bits 0Checksum 16bits Identifier 16bits SequenceNumber 16bits 其中标识和序号用于帮助区分不同的ECHO请求 应答对 Data 主机A ICMPEcho ICMPRe Echo 主机B可以连通吗 主机B 是的 我已经开机 并与你连接畅通 Ping程序 Ping程序由MikeMuuss编写 目的是为了测试另一台主机是否可达 该程序发送一份ICMP回显请求报文给主机 并等待返回ICMP回显应答 Ping程序能测出到这台主机的往返时间 以表明该主机离我们有 多远 问题 如果不能Ping到某台主机 是否能认为该主机不可达 Ping命令举例 C ping172 16 1 20Pinging172 16 1 20with32bytesofdata 正常 Replyfrom172 16 1 20 bytes 32time 10msTTL 127Replyfrom172 16 1 20 bytes 32time 10msTTL 127Replyfrom172 16 1 20 bytes 32time 10msTTL 127Replyfrom172 16 1 20 bytes 32time 10msTTL 127Pingstatisticsfor172 16 1 20 Packets Sent 4 Received 4 Lost 0 0 loss Approximateroundtriptimesinmilli seconds Minimum 0ms Maximum 0ms Average 0ms Ping命令举例 Pinging172 16 1 21with32bytesofdata 有问题 Requesttimedout Requesttimedout Requesttimedout Requesttimedout Pingstatisticsfor172 16 1 21 Packets Sent 4 Received 0 Lost 4 100 loss Approximateroundtriptimesinmilli seconds Minimum 0ms Maximum 0ms Average 0ms 时间戳请求和应答报文 用于时钟同步一个最简单的方法就是ICMP协议中的时间戳请求 应答报文 ICMP先利用时间戳请求和应答报文从其他机器处得到其当前时间 经过计算后再同步时钟 时间戳请求 应答报文type 8bits 13 timestampmessage14 timestampreplymessagecode 8bits 0Checksum 16bits Identifier 16bits SequenceNumber 16bits 其中标识和序号用于帮助区分不同的ECHO请求 应答对 OriginateTimestamp 32bits ReceiveTimestamp 32bits TransmitTimestamp 32bits 计算同步时钟 需要知道发送方和接收方之间的时间差 时间差 当前时间 初始时间戳 发送时间戳 接收时间戳 2 Information请求和应答报文 由于在A B C类型的网络下有划分的子网 导致一些IP地址被作为子网的网络地址 为了得到正确的子网网络地址 自己发出Infor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论