黄 睿 ,王 易
(1.重庆电子工程职业学院,重庆 401331;2.东北财经大学,辽宁 大连 116025;3.重庆信息职业技术学院,重庆 万州 404000)
互联网技术兴起的时候,对网络拓扑发现的研究就已开始起步。ICMP作为最早在TCP/IP网络协议,被广泛运用到网络拓扑发现技术中,这主要依赖于两个网络工具:Ping和Traceroute。Ping主要用于探测网络的状况,确定存活的主机;traceroute则用来追踪报文的传送路径。典型的如Mercator算法[1]CNRG算法[2]都是利用了Traceroute工具来发现Internet的骨干拓扑。其中前者是结合了启发式算法[3],进行多次有限跳的主动探测;后者则是从BGP(边界网关协议)的路由信息开始,逐步发现每个探测域的路由器与连接关系,最后对得到的结果进行合并[4]。由CAIDA项目组设计的基于通用协议的拓扑测量工具Skitter则是先用Traceroute主动探测转发路径[5],然后通过BGP表来推测Internet内部各自治域间的结构。为了提高发现路径的准确性,解决同一个路由器多个IP的问题[6],针对ICMP方法的特点,文献[7]又提出了别名探子和路径探子的概念,别名探子识别同一台路由器的所有IP,路径探子仍采用了Traceroute,用来探测路径上的路由器。算法中,很好地利用了这两种探子的功能[8],因此把算法的基本流程视作采用通用协议进行拓扑发现的典型。
基于通用协议的算法采用了Ping和Traceroute工具,属于主动探测算法[9],即由探测源主动向待测网络注入探测流量数据,因此会使用大量ICMP数据包,从而导致大量ICMP数据包占用网络带宽,网络负载重,在算法的实现上也有很大的难度。此外,主动探测在一定程度上也等同于网络入侵,存在潜在的隐患,在网络管理安全意识加强的今天,许多设备会通过防火墙等防护措施禁用ICMP包,造成了拓扑结构的不准确和不完整。……