随着电脑在社会上的普及使用,出现了许多的电脑从业人员。但是很多从事电脑的人未必就真的对电脑的结构了解,大部分都是流于表面的对它的普通功能比较的熟悉。而一些专业人士,比如电脑编程人员,就对于电脑的代码非常熟悉了。看到icmp我们会很懵,他们却可以信手拈来,一起来了解下吧。
icmp的概念:
icmp 经常被认为是 IP 层的一个组成部分,它传递差错报文以及其他需要注意的信息。icmp 报文通常被 IP 层或更高层协议(TCP 或 UDP)使用。icmp 报文是在 IP 数据报内部传输的。IP 协议是不可靠协议,不能保证 IP 数据报能够成功的到达目的主机,无法进行差错控制,而 icmp 协议能够协助 IP 协议完成这些功能。下面是 icmp 报文的数据结构:
类型:一个 8 位类型字段,表示 icmp 数据包类型;
代码:一个 8 位代码域,表示指定类型中的一个功能,如果一个类型中只有一种功能,代码域置为 0;
检验和:数据包中 icmp 部分上的一个 16 位检验和;
icmp 报文类型
icmp 报文大致可分为两类:差错报文、查询报文。具体消息类型如下表所示:
icmp 差错报文
当发送一份差错报文时,报文始终包含 IP 的首部和产生 icmp 差错报文的 IP 数据报的前 8 位字节。这样,接收 icmp 差错报文的模块就会把它与某个特定的协议(根据 IP 数据报首部中的协议字段来判断)和用户进程(根据包含在 IP 数据报前 8 个字节中的 TCP 或 UDP 报文首部中的 TCP 或 UDP 端口号来判断)联系起来。
下面各种情况不会导致产生 icmp 差错报文:
icmp 报文差错(icmp查询报文可能会产生icmp差错报文);
目的地址是广播地址或多播地址的 IP 数据报;
作为链路层广播的数据报;
不是 IP 分片的第一片;
源地址不是单个主机的数据报,也就是说,源地址不可能是零地址、环回地址、广播地址或多播地址;
以上我们简单讲解了一点关于icmp的内容,帮助大家了解一下这个生僻的词汇。其实如果不是专业从事电脑方面的工作,我们不需要太深入的了解这些词汇,因为平常的工作生活中根本就用不上。但是稍微知道一些,对我们也是有利无害的。