计算机网络程序员

(005)TCP/IP协议-ICMP协议

2016-02-04  本文已影响1025人  林湾村龙猫

一、引言

何为ICMP协议? ICMP即互联网控制消息协议(Internal Control Message Protocol),与IP协议一样同属TCP/IP模型中的网络层,并且ICMP数据包是包裹在IP数据包中的。他的作用是报告一些网络传输过程中的错误与做一些同步工作。ICMP数据包有许多类型。每一个数据包只有前4个字节是相同域的,剩余的字段有不同的数据包类型的不同而不同。ICMP数据包的格式如下:

图1. ICMP协议数据包

二、ICMP数据包类型

ICMP数据包通过类型字段与代码字段来共同决定该数据包类型,下面列出各种类型对应关系:


图2. ICMP数据包类型与字段对应关系

这些规则是为了防止过去允许 I C M P差错报文对广播分组响应所带来的广播风暴。

三、常见的ICMP数据包

当前章节,介绍三种常见的ICMP数据包:ICMP端口不可达差错、ICMP地址请求与应答。其中第1种为ICMP差错数据包;第2种是ICMP查询数据包。通常查询数据包是成对出现的(请求与应答)。

1. ICMP端口/主机不可达差错

图3. ICMP不可达数据包

  通常该数据包指明类型字段为3,代码字段为0~15。后面数据部分包含4字节的0数据已经,IP首部与运输层首部(TCP/UDP首部)。通过抓包,来一个实际的例子:


图4. ICMP不可达数据包

2. ICMP地址掩码请求与应答

图5. ICMP地址轻易与应答数据包
上一篇 下一篇

猜你喜欢

热点阅读