zoukankan      html  css  js  c++  java
  • ICMP协议

    简介

      ICMP是封装在IP数据报当中的

      ICMP通常被IP层或更高的协议使用,ICM报文时在IP数据报内部被传输的。




      类型字段可以有15个不同的值,主要用来描述报文的作用,下图介绍了类型和代码分表代表了那些请求或响应



      有几种情况都不会产生ICMP差错报文:

    1.ICMP差错报文
        因为已经是报的差错报文了,如果它还产生差错报文会产生死循环
    
    2.目的地址是广播或多播地址的IP数据报
    
    3.作为链路层广播的数据报
    
    4.不是IP分片的第一片
        只有ip分片的第一片才带有端口信息,没有端口信息返回的ICMP没有作用
    
    5.源地址不是单个主机的数据报
    

    例子

      拿最常用的ping来说,他就是依靠ICMP协议来进行确认的,下面看下ICMP报文格式



      下图是抓包的例子



    1.类型是8,代码是0 对照上述的类型表可以发现该报文是一个请求报文。
    
    2.checksum是校验和
    
    3.identifier(be)和identifier(le)
        是标识符,只不过wireshark考虑到windows系统和liunx系统发出ping报文的
        字节顺序不一样,分别告诉信息,其本质内容是没有变的
        (windows为LE:little-endian byte order,Linux为BE:big-endian)
        
    4.sequence number(BE)和sequence number(LE)
        同identifier一样
    

      这里是回显报文,和刚才的查询报文明显的区别就是在类型和代码上的。



  • 相关阅读:
    1.2c#变量和运算符及注释
    1.1c#初识
    约数个数定理
    莫比乌斯反演
    欧几里得/拓展欧几里得
    中国剩余定理【数论】
    欧拉定理/欧拉函数【数论】
    费马小定理【数论】
    同余定理【数论】
    Java class 和public class 区别
  • 原文地址:https://www.cnblogs.com/zhengyazhao/p/13151665.html
Copyright © 2011-2022 走看看