美文网首页计算机网络程序员
(005)TCP/IP协议-ICMP协议

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

作者: 林湾村龙猫 | 来源:发表于2016-02-04 16:00 被阅读1025次

一、引言

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

图1. ICMP协议数据包
  • 类型字段:指明该数据包属于什么类型(大分类),长度1个字节。
  • 代码字段:指明数据包属于大类里面的哪个小类,长度1个字节。类型字段与代码字段共同决定ICMP数据包类型,以及后续字段含义。
  • 校验和 : 指明该数据包的校验和,长度2个字节。该校验和覆盖整个ICMP数据包。

二、ICMP数据包类型

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


图2. ICMP数据包类型与字段对应关系
  • 最后两列表明该数据包是查询ICMP数据包还是差错数据包。一般的需要对差错数据包做一些特殊处理。
  • 在有些时候是不会产生ICMP差错数据包的:
    • ICMP差错数据包(ICMP查询数据包可能会产生ICMP差错数据包)
    • 目的地址为广播/多播的IP数据包
    • 链路层广播的数据包(如ARP)
    • 非IP分片的第一片
    • 源地址不是个单播地址。

这些规则是为了防止过去允许 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不可达数据包
  • 类型:3
  • 代码:1,主机不可达
  • 校验码:0x4e45
  • 未使用的字段:0填充的4字节。
  • IP头部
  • 传输层头部

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

图5. ICMP地址轻易与应答数据包
  • 该数据包通常用于无盘站系统中获取自己的子网掩码的。
  • 系统广播他的该ICMP请求数据包(类似于通过RARP获取IP地址)。
  • 该数据包中的标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样,发送端就可以把应答与请求进行匹配。

相关文章

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

    一、引言 何为ICMP协议? ICMP即互联网控制消息协议(Internal Control Message Pr...

  • TCP/IP

    TCP/IP协议族 TCP/IP协议族包含:TCP、UDP、IP、FTP、HTTP、SMTP、ICMP OSI七层...

  • TCP/IP 卷Ⅰ 协议-IP:网际协议

    IP:网际协议 IP 是TCP/IP协议族中的最为核心的协议,所有的TCP、UDP、ICMP以及IGMP协议都是以...

  • ☆技术问答集锦(四)

    2 TCP 与 UDP 网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议;传输层:TCP协...

  • TCP-IP详解卷1:协议读书笔记_3

    IP:网际协议 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP、IGMP都以IP数据报格...

  • IP数据报格式

    前言 先回顾一下TCP/IP协议栈 网络层的协议有IP协议、ARP协议、ICMP协议和IGMP协议。其中IP协议是...

  • 008-IP地址转换与域名解析

    TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP、TCP、UDP、ICMP、ARP...

  • IP 协议

    IP是TCP/IP核心协议,所有的TCP,UDP,ICMP,IGMP数据都以IP数据报传输。IP协议提供不可靠,无...

  • TCP/IP 网络层IP介绍

    IP介绍 1、IP是TCP/IP协议族中最核心的协议,所有的TCP/UDP/ICMP/IGMP数据都以IP数据报格...

  • 《TCP/IP详解 卷1:协议》 第3章 IP:网际协议

    3.1 引言   IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP、及IGMP数据都以IP...

网友评论

  • 酱油葱:该校验和覆盖整个ICMP数据包
    是指包括前面4个字节的域段么?
    林湾村龙猫:@be47022ef6ea 对

本文标题:(005)TCP/IP协议-ICMP协议

本文链接:https://www.haomeiwen.com/subject/zweekttx.html