2024年3月30日发(作者:)

龙源期刊网

Traceroute的网络拓扑发现及其效率优化措

作者:蒋盛浩

来源:《中国新技术新产品》2009年第23期

摘要:网络拓扑发现是网络工程的一个重要的研究子分支,是实现网络管理的基础性环节。

同时,网络拓扑发现是对宏观网络进行科学布局的基础,也是进行网络建模、网络仿真、网络协

议设计与评价以及相关网络算法改进的重要依据。本文介绍了网络拓扑发现的概念,重点分析

了基于Traceroute的网络拓扑发现原来,探讨了其发现效率优化措施。

关键词:拓扑发现;Traceroute;优化措施

1 网络拓扑发现概述

网络拓扑是指网络元素及其之间的连接关系。这里所讲的网络元素,既可以是路由器,也可

以是交换机、网桥等,还可以是客户端、服务器,甚至是子网、AS等。这里所讲的网络,既可以

指局域网,也可以是互联网,也可以是互联网的一部分。而网络拓扑发现,就是指发现并确定网络

元素及其之间的连接关系。

按照发现方法对网络拓扑发现进行分类,可分为主动式网络拓扑发现和被动式网络拓扑发

现。所谓主动式的网络拓扑发现,是指将一组精心设计的数据报注入被探测的网络,通过对网络

反馈信息进行分析,得到网络的拓扑连接情况。例如,各种基于Traceroute的网络拓扑发现方法,

就是典型的主动式网络拓扑发现。基于SNMP的网络拓扑发现,从原理上也应该归类为主动式

的网络拓扑发现方法。由于主动式网络拓扑发现可以根据探测需要,由探测发起者对探测数据

报进行专门设计,因此适用情形较广,可以探测网络范围可以很大,并且可通过提高注入数据包的

科学性和合理性,不断提高网络拓扑探测的准确度。主动式网络拓扑探测的缺点主要是探测数

据报将增大网络的负荷。在大规模多点探测中,甚至有可能导致网络性能的严重降低。在极端

的情况下,由于注入数据报严重改变了网络负荷,甚至使探测到的网络拓扑与实际情况不相符。

而被动式的网络拓扑发现,则是指对网络元素间的数据进行侦听,通过对侦听得到的数据进

行分析,进而得出网络的拓扑连接情况。例如,通过侦听路由器间的OSPF交换数据包来探测网

络拓扑的方法,就是一种被动式的拓扑发现方法。被动式的网络拓扑发现方法不向网络注入数

据包,因此对网络负荷的影响较小。但由于被侦听的只是局部网络,因此往往通过分析也只能得

龙源期刊网

到局部网络的拓扑情况。另外,侦听得到的数据可能存在很多不真实的数据,如不能对数据进行

有效的分析处理,有可能得到不真实的网络拓扑图。

2 Traceroute的网络拓扑发现

基本的Traceroute程序和经过改进的Traceroute方法有多种,但其基本的原理都是一样的。

如图1是一个简单的网络,节点A为探测原点,目标节点D,F是已知的(或仅仅是地址己知的),而

中间各节点及其连接关系都是未知的。为了得到网络拓扑,从探测原点A分别向目标节点D, E

发送经过设计的探测数据报,并同时记录数据报在传送过程中各种间节点B, C, E的回馈信息。

通过分析这些回馈信息,就可以得到网络的拓扑结构。虽然基本原理都相同,但不同的基于

Traceroute的网络拓扑发现方法,其具体实现办法也有所不同。

基于Traceroute的网络拓扑发现的主要优点:一是可以不受网络管辖范围的限制。很多的

Traceroute方法不依赖于路由器的某一特定功能,而是靠采集网络中可以正常传输的信息来分析

拓扑结构,因此可以对跨域的网络拓扑结构进行探测分析。二是主动性强。Traceroute只是网络

探测的一种基本思想,因此,探测发起人完全可以根据自身的需要和被探测网络的实际情况,合理

选择适当的基于Traceroute的拓扑发现方法,甚至重新设计一种新的方法, 使探测者具有很大的

主动性。

基于Traceroute的网络拓扑发现也有其固有的缺点,这主要有:第一,因为基于Traceroute的

网络拓扑发现从其本质上属于一种主动式的网络测量方法,并且方法的基本原理限制了此方法

要向网络注入大量的数据报。这一方面会造成网络负载的增大,可能对网络的正常通信产生影

响。另一方面,甚至由十网络负荷的改变产生一种“由于进行测量而产生的测量误差”,造成拓扑

发现结果的失真。第二,从目前的研究现状来,基于Traceroute的网络拓扑发现方法对网络层拓

扑发现有比较好的效果,但对链路层发现没有很好的办法。这主要是因为链路层设备对于路由

器来讲是透明的,因此靠路由追踪发现链路层设备及其连接关系的难度很高。第三,基于

Traceroute的网络拓扑发现的效率一般比较低。进行一次拓扑发现操作,一般情况下只能发现很

少数量的网络设备,有时甚至只能发现一个网络设备或连接。因此,此方法一般需要很高的设备

资源占用和时间开销。虽然存在明显的缺点,但由于基于Traceroute的网络拓扑发现方法不依赖

于路由器的特定功能这一显著的优点,使得该方法在跨域的网络拓扑探测中还是得到了广泛的

应用。特别是随着网络安全环境变得越来越恶劣,迫使大部分的路由器都关闭了SNMP,基于

Traceroute的网络拓扑发现方法受到越来越广泛的重视,已经成为面向大规模互联网络探测的主

要方法。

3 拓扑发现优化策略分析

龙源期刊网

3.1 改进探测报文发送策略

在基于Traceroute的网络拓扑发现中,可以采取各种不同的策略发送探测报文,不同发送策

略的发现效率也有很大不同。

(1) “packet by packet”:探测源发送一个探测报文,直到收到一个反馈报文或者等待时问超时,

再发送下一个探测报文。这是一种传统的探测报文发送策略。由于每发出一个探测报文都必须

等待,因此探测效率很低。特别是当某一跳没有反馈时,由于必须等待超时,更加降低了探测效

率。对packet by packet发送策略的改进,重点在于合理设置超时等待时间。

(2) “hop by hop”:设对每一跳的探测次数设定为k。探测源按照事先预设的一个延时值(通

常为5Oms ),依次向某一跳发送完毕全部的k个探测报文后,等待收到反馈或超时后,再转向对下

一跳的探测。“hop场hop”策略在效率上要优于“packet by packet”策略。

(3)“Concurrent”:探测源向依次向所有的探测跳数发送完毕全部的探测报文,相邻探测报文之

间的时间间隔是一个预设值(通常也为50ms)。由于不必等待反馈,因此“Concurrent”策略的效率

比上述两种策略都要高。然而,为了实现“Concurrent”策略,探测源必须预知到目标节点的TTL

值。一种可能的方法是,向目标节点发送Fing探测报文,然后通过解析反馈报文获取到目标节点

的TTLo另一种可能的方法是,以一个很大的TTL值向目标发送Traceroute探测报文,根据目标

节点的ICMP反馈报文,估算到目标节点的TTL。

3.2 主机可达性筛选和探测停止规则的合理设置

当探测报文发送策略选定以后,影响探测效率的主要因素便是路由器反馈ICMP报文的时

间或者是等待超时的时间。在上所公布的探测源中,通过选定20个探测源向50

个随机的目的节点进行探测试验,发现在开始几跳时RTT值很小,随着跳数的增加,RTT值逐渐

增大。探测的RTT值一般都在数毫秒到400毫秒之间,实验发现的最大RTT值为504ms。而传

统Traceroute的超时等待时间默认为3秒。可见超时等待时间要大大高于正常的报文反馈往返

时间。由于传统Traceroute在目标主机不可达时,会以是否达到设定的最大TTL值(默认为30)

作为探测停止的条件,因此会浪费大量时间在等待超时上。显而易见,在探测进行之前,先对目标

节点进行可达性探测是有意义的。

参考文献

[1]杨国正.计算机网络拓扑发现技术研究.计算机工程与设计.2006.

[2]张巍,沈富可.网络拓扑判定的研究.电脑知识与技术.2007.

龙源期刊网

[3]乐洁,Traceroute及其在网络拓扑发现中的应用.微机算计信息(测控自动化).2005.