老郑的博客

木叶飞舞之处,火亦生生不息!

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一样

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



posted @ 2020-06-17 11:52  zyz1  阅读(788)  评论(0编辑  收藏  举报