• 网络协议分析-ICMP协议分析


    icmp包封装格式:
    在这里插入图片描述
    各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位)、code代码字段(8位)、checksum校验和字段(16位);
    8bits类型和8bits代码字段:一起决定了ICMP报文的类型。常见的有:
    类型8、代码0:回射请求。
    类型0、代码0:回射应答。
    类型11、代码0:超时。
    16bits校验和字段:包括数据在内的整个ICMP数据包的校验和,其计算方法和IP头部校验和的计算方法是一样的。
    下图是一张ICMP请求和应答报文头部格式
    在这里插入图片描述

    对于ICMP请求和应答报文来说,接下来是16bits标识符字段:用于标识本ICMP进程。最后是16bits序列号字段:用于判断应答数据报。
    ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,一个ICMP报文包括IP头部(20字节)、ICMP头部(8字节)和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有代码(Code)域用于详细说明某种ICMP报文的类型。
    所有数据都在ICMP头部后面。RFC定义了13种ICMP报文格式,具体如下:

    类型代码 类型描述

    0 响应应答(ECHO-REPLY)
    3 不可到达
    4 源抑制
    5 重定向
    8 响应请求(ECHO-REQUEST)
    11 超时
    12 参数失灵
    13 时间戳请求
    14 时间戳应答
    15 信息请求(*已作废)
    16 信息应答(*已作废)
    17 地址掩码请求
    18 地址掩码应答

    导入scapy库找到icmp协议
    在这里插入图片描述
    实例化icmp包格式
    在这里插入图片描述

    构建一个复合对象,包括以太网,IP协议,ICMP协议

    ICMP是在IP数据报的内部被传输的,紧跟着IP报文
    在这里插入图片描述

    在这里插入图片描述

    赋值发包

    在这里插入图片描述

    分析

    对应抓到一个ping
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    Unix环境高级编程(九)信号
    Unix环境高级编程(八)进程关系
    Unix环境高级编程(七)fork函数总结
    Unix环境高级编程(六)进程控制
    Unix环境高级编程(五)进程环境
    Unix环境高级编程(四)数据系统文件和信息
    Unix环境高级编程(三)标准I/O库
    Unix环境高级编程(二)文件和目录
    Unix环境高级编程(一)文件I/O
    Linux中解析json---jq
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568864.html
Copyright © 2020-2023  润新知