ICMP协议详解( 二 )


重新定向
重新定向(redirect)属于错误信息 。当一个路由器收到一个IP包 , 对照其routing table , 发现自己不应该收到该IP包 , 它会向出发主机发送重新定向类型的ICMP , 提醒出发主机修改自己的routing table 。比如下面的网络:

ICMP协议详解

文章插图
 
假如145.1发送到145.15的IP包 , 结果被中间的路由器通过145.17的NIC收到 。那么路由器会发现 , 根据自己的routing table , 这个IP包要原路返回 。那么router就可以判断出145.1的routing table可能有问题 。所以路由器会向145.1发送redirect类型的ICMP包 。
IPv6的Neighbor Discovery
ARP协议用于发现周边的IP地址和mac地址的对应 。然而 , ARP协议只用于IPv4 , IPv6并不使用ARP协议 。IPv6包通过邻居探索(ND, Neighbor Discovery)来实现ARP的功能 。ND的工作方式与ARP类似 , 但它基于ICMP协议 。ICMP包有Neighbor Solicitation和Neighbor Advertisement类型 。这两个类型分别对应ARP协议的询问和回复信息 。
总结
ICMP协议是IP协议的排错帮手 , 它可以帮助人们及时发现IP通信中出现的故障 。基于ICMP的ping和traceroute也构成了重要的网络诊断工具 。然而 , 需要注意的是 , 尽管ICMP的设计是出于好的意图 , 但ICMP却经常被黑客借用进行网络攻击 , 比如利用伪造的IP包引发大量的ICMP回复 , 并将这些ICMP包导向受害主机 , 从而形成DoS攻击 。而redirect类型的ICMP包可以引起某个主机更改自己的routing table , 所以也被用作攻击工具 。许多站点选择忽视某些类型的ICMP包来提高自身的安全性 。
【ICMP协议详解】作者:Vamei 出处:http://www.cnblogs.com/vamei
欢迎添加个人微信号:Like若所思 。




推荐阅读