ICMP协议消息的流程和格式

网络 网络管理
文章中我们主要对ICMP协议消息进行了一个流程上面的讲解。现在我们就针对这个方面进行一个细致地阐述:包括流程解析和格式分析两方面。

我们对ICMP协议已经有了一个了解,在网络协议中,这个协议有着至关重要的作用。那么在系统中,是如何实现ICMP协议消息的传输呢?就此话题我们来细致地分析一下。在被称为Catenet的系统中,IP协议被用作主机到主机的数据报服务。网络连接设备称为网关。这些网关通过网关到网关协议(GGP)相互交换用于控制的信息。通常,网关或目的主机将和源主机通信,例如,为报告在数据报过程中的错误。为了这个目的才使用了ICMP,它使用IP做于底层支持,好象它是一个高层协议,而实际上它是IP的一部分,必须由其它IP模块实现。

ICMP协议消息在以下几种情况下发送:当数据报不能到达目的地时,当网关的已经失去缓存功能,当网关能够引导主机在更短路由上发送。

IP并非设计为设计为绝对可靠,这个协议的目的是为了当网络出现问题的时候返回控制信息,而不是使IP协议变得绝对可靠,并不保证数据报或控制信息能够返回。一些数据报仍将在没有任何报告的情况下丢失。上层协议必须使用自己的差错控制程序来判断通信是否正确。

ICMP信息通常报告在处理数据报过程中的错误。若要避免信息无限制地返回,对于ICMP协议消息不会单独成包发送,而且ICMP信息只在处理数据报偏移量为0时发送。

消息格式

ICMP协议消息以基本IP头发送。数据的***个字节是ICMP类型域;此域的值决定了了其余数据的格式。任何标记为“未使用”的域都是为以后的扩展保留的,在传送过程中必须全部是0。除非在个别的格式之下,包头域如下格式:

版本:4

IHL:Internet头长度大小以32位字为单位。

服务类型:0

总长度:包头长度和数据长度。

段中所用标识,段偏移量:在段是使用。

生存周期:以秒计,此域在每台机器处理数据报时减少,此值必须大于要传送它的网关所消耗的时间。

协议:ICMP = 1#p#

包头校验码:16位数据反码和再取反而得。为计算校验码,此域应该为0。在将来可以会取代这一域。

源地址:创建ICMP协议消息的网关或主机地址,除非说明,它可以是任何网关地址。

目的地址:信息要发送到的网关或主机地址。

IP域:目的地址,发送原始数据报数据的网络地址

ICMP域:

类型:3

代码:

0 = 网络不可达;

1 = 主机不可达;

2 = 协议不可用;

3 = 端口不可达;

4 = 需要段和DF设置;

5 = 源路由失败;

校验码:16位数据(从ICMP类型开始)的反码和再取反而得。为计算校验码,校验码域应该为零。这些零在以后会被校验码取代。

责任编辑:佟健 来源: IT专家网
相关推荐

2010-07-28 17:19:28

ICMP协议

2010-07-13 22:12:58

2010-07-28 17:40:07

2010-07-13 14:10:44

ICMP协议

2010-08-02 16:59:54

2010-07-13 10:10:07

2010-08-02 16:43:46

ICMP协议

2010-07-30 16:00:36

ICMP协议

2010-08-02 16:41:15

2010-08-02 16:14:54

2010-06-13 15:53:35

ICMP协议

2010-07-09 10:42:38

HART协议

2010-06-24 13:04:13

ICMP协议

2011-08-24 09:35:54

ICMPIGMPRIP

2014-11-27 09:38:12

2019-07-28 21:05:47

ICMPIP网络协议

2010-07-30 16:28:06

2010-07-05 16:13:34

2010-08-02 16:56:03

ICMP协议

2010-07-28 17:46:32

点赞
收藏

51CTO技术栈公众号