ICMP



ICMP是(Internet Control Message Protocol)Internet控制报文协议。基于IP。

应用一:

ping。ping这个单词源自声纳定位,而这个程序的作用也确实如此,它利用ICMP协议包来侦测另一个主机是否可达。原理是用类型码为0的ICMP发请 求,受到请求的主机则用类型码为8的ICMP回应ping程序来计算间隔时间。

应用二:traceroute

首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。

有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了。


ICMP实现DOS攻击:

DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击。

1.比较low的:直接洪水攻击,这样做需要本地主机的带宽和目的主机的带宽之间进行比拼,使用一台高带宽高性能的电脑,采用多线程的方法一次性发送多个ICMP请求报文,让目的主机忙于处理大量这些报文而造成速度缓慢甚至宕机。这个方法有个大缺点,就是对方可以根据ICMP包的IP地址而屏蔽掉攻击源,使得攻击不能继续。

2.伪IP攻击

我们将发送方的IP地址伪装成其他IP,就会造成“挑拨离间”的情形,受害主机1的icmp回复包也如洪水般发送给受害主机2

3.反射攻击

让其他一群主机误以为目标主机在向他们发送ICMP请求包,然后一群主机向目的主机发送ICMP应答包。


IMP报文格式:

ICMP报头格式 


  • 校验和:这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。其计算方法与在我们介绍IP报头中的校验和计算方法是一样的。
  • 标识:占两字节,用于标识本ICMP进程,但仅适用于回显请求和应答ICMP报文,对于目标不可达ICMP报文和超时ICMP报文等,该字段的值为0。

    各种ICMP报文的前32bits都是三个长度固定的字段:type类型字段(8位)、code代码字段(8位)、checksum校验和字段(16位)

    8bits类型和8bits代码字段:一起决定了ICMP报文的类型。常见的有:
      
      类型8、代码0:回射请求。
      
      类型0、代码0:回射应答。
      
      类型11、代码0:超时。


    类型代码 类型描述
    0 响应应答(ECHO-REPLY)
    3 不可到达
    4 源抑制
    5 重定向
    8 响应请求(ECHO-REQUEST)
    11 超时
    12 参数失灵
    13 时间戳请求
    14 时间戳应答
    15 信息请求(*已作废)
    16 信息应答(*已作废)
    17 地址掩码请求
    18 地址掩码应答
    其中代码为15、16的信息报文已经作废。

    参考:

    https://www.cnblogs.com/Akagi201/archive/2012/03/26/2418475.html

    https://www.cnblogs.com/skyfsm/p/6395953.html

    http://blog.csdn.net/u011784495/article/details/71743516

    http://blog.csdn.net/cuipengchong/article/details/20205479


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值