ICMP--网际控制报文协议

ICMP的全称是 Internet Control Message Protocol

ICMP报文控制协议:为了更加有效的转发IP数据包和提高交付成功的机会,用ICMP。数据虽然封装在IP包的数据部分中,但他是IP层协议。

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

ICMP报文有两种类型:
 差错报告报文:

  •   终点不可达 3:当主机或路由器不能交付数据时,向源主机发送终点不可达的信息。具体有:网络不可达,主机不可达,协议不可达,端口不可达,需要分片但DF比特已置为1,以及源路由失败等六种情况,其代码字段分别置为0至5。当出现以上六种情况时就向源站发送终点不可达报文。
  •   时间超过 11:当路由器收到的生存时间为0的数据时。向源主机发送该报文。
  •   参数问题 12:当路由器收到的数据包中的首部字段值不正确时,向源主机发送该报文。
  •   改变路由(重定向) 5:路由器把这个报文发送给源主机,使其知道下次应该将数据包发送给额外的路由器。

  对于差错报告报文是满足以上条件时发送相应的报文,也可以说正常情况下是被动发送,即出现这些问题时向源主机报告,但是当然也可以认为的发送。一下情况不会发送ICMP报文:

  •    对于ICMP差错报告报文,不会在发送这个差错报告报文
  •    对第一个分片的数据报片的所有后续数据片,都不发送ICMP差错报告报文。
  •    对于多播地址的数据包,不发送。
  •    对于特殊地址的数据包不发送。

  以上几种类型的报文格式都是相同的,当收到需要报告的IP数据包时,将IP数据包的首部和数据部分的前8的字节作为ICMP的数据部分,在添加相应的8字节的ICMP首部信息,在将其封装在IP包中发送到源主机。

 询问报文:
    回送请求和回答报文8/0:某主机或路由器向目的主机发送询问报文,收到此报文的主机必须向源主机回送回答报文,一般用来测试目的站是否可达。
    时间戳请求和回答报文13/14:时间戳请求报文请某主机回答当前日期和时间。回答则是携带自己的当前时间回送到源主机或路由器。一般是用来时钟同步和时间测量。

 

目的不可达报文

类型:3代码:0至15检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

 

源端抑制报文

类型:4代码:0检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

 

超时报文

类型:11代码:0或1检验和
未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

 

参数问题

类型:12代码:0或1检验和
指针未使用(全0)
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

 

改变路由

类型:5代码:0到3检验和
目标路由器IP地址
收到的IP数据报的一部分,包括IP首部以及数据报数据的前8个字节

 

回送请求和回答

类型:8或0代码:0检验和
标识符序号
由请求报文发送;由回答报文重复

 

时间戳请求和回答

类型:13或14代码:0检验和
标识符序号
原始时间戳
接收时间戳
发送时间戳

 

地址掩码请求和回答

类型:17或18代码:0检验和
标识符序号
地址掩码

 

路由询问和通告

类型:10代码:0检验和
标识符序号

 

 

类型:9代码:0检验和
地址数地址项目长度寿命
路由器地址1
地址参考1
路由器地址2
地址参考2
...

 

从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:
 · 侦测远端主机是否存在。
 · 建立及维护路由资料。
 · 重导资料传送路径(ICMP重定向)。

对于“Ping of Death”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。

转载于:https://www.cnblogs.com/mhzhou-whyj/p/7832584.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值