建设网站有什么网站,小程序开发多少钱,设计师推荐网站,大学生app开发经费预算表前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
互联网控制消息协议#xff08;英语#xff1a;Internet Control Message Protocol#xff0c;缩写#xff1a;ICMP#xff09;是互…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
互联网控制消息协议英语Internet Control Message Protocol缩写ICMP是互联网协议族的核心协议之一。
它用于TCP/IP网络中发送控制消息提供可能发生在通信环境中的各种问题反馈通过这些信息使管理者可以对所发生的问题作出诊断然后采取适当的措施解决。
ICMP 依靠IP来完成它的任务它是IP的主要部分。它与传输协议如TCP和UDP显著不同它一般不用于在两点间传输数据。它通常不由网络程序直接使用除了ping和traceroute这两个特别的例子。 IPv4中的ICMP被称作ICMPv4IPv6中的ICMP则被称作ICMPv6。
技术细节
ICMP是在RFC 792中定义的互联网协议族之一。通常用于返回的错误信息或分析路由。ICMP错误消息总是包括了源数据并返回给发送者。 ICMP错误消息的例子之一是TTL值过期。每个路由器在转发数据报的时候都会把IP包头中的TTL值减1。如果TTL值为0“TTL在传输中过期”的消息将会回报给源地址。 每个ICMP消息都是直接封装在一个IP数据包中的因此和UDP一样ICMP是不可靠的。
虽然ICMP是包含在IP数据包中的但是对ICMP消息通常会特殊处理会和一般IP数据包的处理不同而不是作为IP的一个子协议来处理。在很多时候需要去查看ICMP消息的内容然后发送适当的错误消息到那个原来产生IP数据包的程序即那个导致ICMP消息被发送的IP数据包。
很多常用的工具是基于ICMP消息的。traceroute是通过发送包含有特殊的TTL的包然后接收ICMP超时消息和目标不可达消息来实现的。ping则是用ICMP的Echo request类别代码8和Echo reply类别代码0消息来实现的。
ICMP报文结构
报头
ICMP报头从IP报头的第160位开始IP首部20字节除非使用了IP报头的可选部分。
Bits160-167168-175176-183184-191160TypeCode校验码checksum192ID序号sequence
Type - ICMP的类型,标识生成的错误报文Code - 进一步划分ICMP的类型,该字段用来查找产生错误的原因.例如ICMP的目标不可达类型可以把这个位设为1至15等来表示不同的意思。Checksum - 校验码部分,这个字段包含有从ICMP报头和数据部分计算得来的用于检查错误的数据其中此校验码字段的值视为0。ID - 这个字段包含了ID值在Echo Reply类型的消息中要返回这个字段。Sequence - 这个字段包含一个序号同样要在Echo Reply类型的消息中要返回这个字段。填充数据
填充的数据紧接在ICMP报头的后面以8位为一组
Linux的ping工具填充的ICMP除了8个8位组的报头以外默认情况下还另外填充数据使得总大小为64字节。Windows的ping.exe填充的ICMP除了8个8位组的报头以外默认情况下还另外填充数据使得总大小为40字节。报文类型
类型代码状态描述查询差错0 - Echo Reply0 echo响应 (被程序ping使用● 1 and 2 未分配保留 ●3 - 目的不可达0 目标网络不可达 ●1 目标主机不可达 ●2 目标协议不可达 ●3 目标端口不可达 ●4 要求分段并设置DF flag标志 ●5 源路由失败 ●6 未知的目标网络 ●7 未知的目标主机 ●8 源主机隔离作废不用 ●9 禁止访问的网络 ●10 禁止访问的主机 ●11 对特定的TOS 网络不可达 ●12 对特定的TOS 主机不可达 ●13 由于过滤 网络流量被禁止 ●14 主机越权 ●15 优先权终止生效 ●4 - 源端关闭0弃用源端关闭拥塞控制 ●5 - 重定向0 重定向网络 ●1 重定向主机 ●2 基于TOS 的网络重定向 ●3 基于TOS 的主机重定向 ●6 弃用备用主机地址 7 未分配保留 8 - 请求回显0 Echo请求● 9 - 路由器通告0 路由通告● 10 - 路由器请求0 路由器的发现/选择/请求● 11 - ICMP 超时0 TTL 超时 ●1 分片重组超时 ●12 - 参数问题错误IP头部0 IP 报首部参数错误 ●1 丢失必要选项 ●2 不支持的长度 13 - 时间戳请求0 时间戳请求● 14 - 时间戳应答0 时间戳应答● 15 - 信息请求0弃用信息请求● 16 - 信息应答0弃用信息应答● 17 - 地址掩码请求0弃用地址掩码请求● 18 - 地址掩码应答0弃用地址掩码应答● 19 保留因安全原因保留 20 至 29 保留Reserved for robustness experiment 30 - Traceroute0弃用信息请求 31 弃用数据报转换出错 32 弃用手机网络重定向 33 弃用Where-Are-Youoriginally meant for IPv6 34 弃用Here-I-Amoriginally meant for IPv6 35 弃用Mobile Registration Request 36 弃用Mobile Registration Reply 37 弃用Domain Name Request 38 弃用Domain Name Reply 39 弃用SKIP Algorithm Discovery Protocol, Simple Key-Management for Internet Protocol 40 Photuris, Security failures 41 实验性的ICMP for experimental mobility protocols such as Seamoby [RFC4065] 42 到 255 保留保留 235 实验性的RFC3692 RFC 4727 254 实验性的RFC3692 RFC 4727 255 保留保留特别说明以上内容大部分收集、整理自**百科。