⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc792_cn.txt

📁 Internet控制信息协议(ICMP) (RFC792 INTERNET CONTROL MESSAGE PROTOCOL)
💻 TXT
📖 第 1 页 / 共 2 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:顾国飞(ggfei  ggfei@263.net)
译文发布时间:2001-3-30
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。


Network Working Group                                          J. Postel
Request for Comments:  792                                           ISI
                                                          September 1981
Updates:  RFCs 777, 760
Updates:  IENs 109, 128


RFC792- Internet控制信息协议(ICMP)
(RFC792  INTERNET CONTROL MESSAGE PROTOCOL)


目录

1.介绍	2
2.消息格式	2
3.目的不可达信息	3
4.超时信息	3
5.参数问题消息	4
6.源拥塞消息	5
7.重定向消息	6
8.回送或回送响应消息	7
9.时间戳和时间戳响应消息	8
10.消息类型总结	9
11.参考资料	10

1.介绍
  在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,网关或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做为底层支持,好象它是一个高层协议,而实际上它是IP的一部分,每一种IP模块必须实现ICMP。
  ICMP消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。
  IP并非设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。上层协议必须使用自己的差错控制程序来判断通信是否正确。
  ICMP信息通常报告在处理数据报过程中的错误。若要避免信息无限制地返回,对于ICMP消息不会单独成包发送,而且ICMP信息只在处理数据报偏移量为0时发送。
2.消息格式
  ICMP消息以基本IP头发送。数据的第一个字节是ICMP类型域;此域的值决定了了其余数据的格式。任何标记为"未使用"的域都是为以后的扩展保留的,在传送过程中必须全部是0。除非在个别的格式之下,包头域如下格式:
  ·版本:4
  ·IHL:Internet头长度大小以32位字为单位。
  ·服务类型:0
  ·总长度:包头长度和数据长度。
  ·标识符(Identification)、标志(Flags)、段偏移量:在分段时使用。
  ·生存周期:以秒计,此域在每台机器处理数据报时减少,此值必须大于要传送它的网关所消耗的时间。
  ·协议:ICMP = 1
  ·包头校验码:16位数据反码和再取反而得。为计算校验码,此域应该为0。在将来可以会取代这一域。
  ·源地址:创建ICMP信息的网关或主机地址,除非说明,它可以是任何网关地址。
·目的地址:信息要发送到的网关或主机地址。 









3.目的不可达信息

                   图1
IP域:目的地址,发送原始数据报数据的网络地址
ICMP域:
  ·类型:3
  ·代码:
0 = 网络不可达;
1 = 主机不可达;
2 = 协议不可用;
3 = 端口不可达;
4 = 需要段和DF设置;
5 = 源路由失败;
  ·校验码:16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验码取代。
  ·Internet包头+源数据报:
  Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到相应的进程。如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。
  ·说明:
  相应于网关的路由表,如果在目的域中指定的网络不可达,如网络距离为无限远,网关会向发送源数据的主机发送目的不可达消息。而且,在一些网络中,网关有能力决定目的主机是否可达。如果目的地不可达,它将向发送源数据的主机发送不可达信息。
  在目的主机,如果IP模块因为指定的协议模块和进程端口不可用而不能提交数据报,目的主机将向发送源数据的主机发送不可达信息。
  另外一种情况是当数据报必须被分段传送,而"不可分段"位打开,在这种情况下,网关必须抛弃此数据报,并向发送源数据的主机发送不可达信息。
  代码0,1,4和5由网关发送,而代码2和3由主机发送。

4.超时信息
 
                 图2
IP域:
目的地址:从源数据报数据中得到。
ICMP域:
  ·类型:11
  ·代码:
  0 = 传送超时;
  1 = 分段级装超时。
  ·校验码:16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验码取代。
  ·Internet包头+64位源数据报数据:Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到相应的进程。如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。
  ·说明:
  如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃。网关同时必须通过超时信息通知源主机。
  如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,此数据报必须抛弃。网关发送超时信息。
  如果段零不可用则不用发送超时信息。
  代码0由网关发送,代码1由主机发送。

5.参数问题消息
  
                   图3
IP域:
目的地址:从源数据中得到。
ICMP域:
  ·类型:12
  ·代码:
      0 = 指针指向错误。
  ·校验码: 16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验码取代。
  ·指针:
      如果code = 0,指向有问题的字节。
  ·Internet包头+64位源数据报数据:Internet包头+64位源数据报数据:Internet包头加上源数据的头64位而得。此数据用于主机匹配信息到相应的进程。如果高层协议使用端口号,应该假设其在源数据的头64个字节之中。
  ·说明:
  如果网关或主机在处理数据报时发现包头参数有错误以至不能完成工作,它必须抛弃此数据报。一个潜在的原因可以是变量的错误。网关或主机将通过参数问题消息通知源主机,此消息只有在消息被抛弃时才被发送。
  指针指向发现错误的数据报包头字节(可能是选项的中间)。例如,1表示服务类型有错误,如果有选项的话,20表示第一个选项的类型有错误。
代码0可能从主机或网关接收到。






6.源拥塞消息

                 图4
IP域:
目的地址:源数据报数据的地址和源网络。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -