用于网络中节点间关系的非入侵发现的方法和装置 【技术领域】
本发明一般地涉及改进的数据处理系统,具体地说,涉及在网络数据处理系统内处理数据的方法和装置。更具体地说,本发明涉及用于在网络数据处理系统内识别节点的方法、装置和计算机指令。
背景技术
网络数据处理系统是在不同客户机之间传送语音、视频和/或数据的任意组合的系统。用于这种系统的网络包括用于在连接在网络数据处理系统内的各种设备和计算机之间提供通信链路的介质。这些设备包括诸如连线或光缆的永久性连接,或诸如那些通过电话连接进行的临时性连接。除了服务器和客户机之外,所述设备还包括网桥、路由器和交换机。另外,网络数据处理系统还可以包括与支持硬件(诸如天线和天线架)的无线连接。
已经出现了许多不同类型的网络,诸如广域网(WAN)和局域网(LAN)。局域网是一种为某些限定地理区域内的用户提供服务的通信网络。通常,局域网使用具有能够联网的操作系统的客户机和服务器。广域网是一种覆盖了广阔地理区域(诸如州或国家)地通信网络。局域网通常被局限在建筑物或综合建筑物内。网络的另一个实例是因特网。因特网,也被称为“互联网”,是借助网关连接的计算机网络(可能是不同的计算机网络)的集合,网关处理数据传输以及从发送网络的协议到接收网络的协议的消息转换。当大写时,术语“Internet”指使用TCP/IP协议组的网络和网关的集合。
公司和其他组织采用网络数据处理系统来处理商务和其他事务。这些网络可以像单个局域网那样小,或包含包括因特网在内的许多网络。
企业联网涉及在具有多种计算机系统和网络的大型企业或商业组织内使用网络基础架构。这些基础架构的类型通常极其复杂。大量的精力被投入到规划和管理不同的异类网络和系统的集成当中。同时,还会出现根据需要和需求改变来规划额外的接口。在管理这些网络数据处理系统时,识别网络数据处理系统内的节点以便识别网络数据处理系统内的资源是很重要的。节点是网络结合点或连接点。终端、计算机、集线器和交换机都被认为是节点。目前,通过在网络数据处理系统上发送或“pinging”地址,并且等待来自该地址上的设备的响应来识别节点。
随着使用个人防火墙的用户的不断增加,这种系统识别节点变得越来越困难。借助这些个人防火墙,节点可以忽略发送到该节点的ping或数据。具体地说,这些个人防火墙吸收因特网控制消息协议(ICMP)数据包,使得这种传统的节点发现方法无效。结果,网络管理者和管理员无法识别出哪些节点实际上出现在网络数据处理系统上。
因此,具有一种用于识别网络数据处理系统上的节点的改进的方法、装置和计算机指令是有利的。
【发明内容】
本发明提供了一种用于识别网络数据处理系统内的节点的方法、装置和计算机指令。从所述数据处理系统内的一组路由器接收高速缓存数据。所述高速缓存数据包括在所述网络数据处理系统上发送数据包的节点的标识。使用来自所述路由器组的所述高速缓存数据来识别所述网络数据处理系统上的节点。
【附图说明】
在所附的权利要求书中说明了被认为是本发明的特性的新颖特征。然而,当结合附图阅读时,通过参考下面对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用模式、其他目的和优点,这些附图是:
图1是可以在其中实现本发明的数据处理系统的网络的图形表示;
图2是根据本发明的优选实施例的可以作为服务器实现的数据处理系统的方块图;
图3是示出了可以在其中实现本发明的数据处理系统的方块图;
图4是示出了根据本发明的优选实施例的用于在网络数据处理系统中的发现节点和节点间关系的组件的示意图;
图5是示出了根据本发明的优选实施例的用于路由器的数据高速缓存内的一个表项的示意图;
图6是示出了根据本发明的优选实施例的网络数据处理系统内的节点的图形视图的示意图;
图7是根据本发明的优选实施例的用于获得来自高速缓存的数据的快照的过程的流程图;以及
图8是根据本发明的优选实施例的用于使用来自路由器的高速缓存数据识别节点的过程的流程图。
【具体实施方式】
现在参考附图,图1示出了可以在其中实现本发明的网络数据处理系统的图形表示。网络数据处理系统100是一个计算机网络,在其中可以实现本发明。网络数据处理系统100包括网络102,网络102是用于在各种设备和计算机(在网络数据处理系统100内被连接到一起)之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。
在所示出的实例中,服务器104被连接到带有存储单元106的网络102。此外,客户机108、110和112被连接到网络102。这些客户机108、110和112可以是例如个人计算机或网络计算机。在所示出的实例中,服务器104向客户机108-112提供诸如引导文件、操作系统映像和应用程序之类的数据。客户机108、110和112是服务器104的客户机。网络数据处理系统100可以包括附加的服务器、客户机以及其他未示出的设备。
在所示出的实例中,网络数据处理系统100是具有网络102的因特网,它表示世界范围内使用传输控制协议/网际协议(TCP/IP)协议组来彼此通信的网络和网关的集合。因特网的中心是主节点或主机之间的高速数据通信线路的主干,所述主节点或主机包括数以千计的路由数据和消息的商业、政府、教育和其他计算机系统。当然,网络数据处理系统100也可以被实现为多种不同类型的网络,诸如内联网、局域网(LAN)或广域网(WAN)。图1旨在作为一个实例,并非旨在对本发明进行体系结构限制。
参考图2,其中根据本发明的优选实施例,示出了可以被实现为服务器(诸如图1中的服务器104)的数据处理系统的示意图。数据处理系统200可以是对称多处理器(SMP)系统,其包括连接到系统总线206的多个处理器202和204。可替代地,可以采用单处理器系统。连接到系统总线206的还有存储器控制器/高速缓存208,它为本地存储器209提供接口。I/O总线桥210被连接到系统总线206并且提供到I/O总线212的接口。如图所示,存储器控制器/高速缓存208和I/O总线桥210可以被集成在一起。
连接到I/O总线212的外围组件互连(PCI)总线桥214提供了到PCI局部总线216的接口。多个调制解调器可以被连接到PCI局部总线216。典型的PCI总线实现支持4个PCI扩展插槽或内插连接器。通过经由内插连接器被连接到PCI局部总线216的调制解调器218和网络适配器220,可以提供到图1中的客户机108-112的通信链路。
附加的PCI总线桥222和224为附加的PCI局部总线226和228提供接口,从附加的PCI局部总线226和228,可以支持附加的调制解调器或网络适配器。以这种方式,数据处理系统200允许连接到多个网络计算机。如图所示,还可以将存储器映射图形适配器230和硬盘232或者直接或者间接地连接到I/O总线212。
本领域的技术人员将理解,图2中示出的硬件可以改变。例如,除了所示出的硬件或是替代所示出的硬件,还可以使用诸如光盘驱动器等的其他外围设备。示出的实例并非意在暗示对于本发明的体系结构的限制。
图2中示出的数据处理系统可以是,例如,IBM eServer pSeries系统,它是国际商业机器公司(纽约,阿蒙克)的产品,运行高级交互执行(AIX)操作系统或LINUX操作系统。
现在参考图3,图3示出了可以在其中实现本发明的数据处理系统的方块图。数据处理系统300是客户机计算机的实例。数据处理系统300采用外围组件互连(PCI)局部总线体系结构。虽然示出的实例使用PCI总线,但是可以使用诸如加速图形端口(AGP)和工业标准体系结构(ISA)的其他总线体系结构。处理器302和主存储器304通过PCI桥308连接到PCI局部总线306。PCI桥308还可以包括集成的存储器控制器和用于处理器302的高速缓存存储器。通过直接组件互连或通过内插板卡,可以提供到PCI局部总线306的附加连接。在所示出的实例中,局域网(LAN)适配器310、SCSI主机总线适配器312以及扩展总线接口314通过直接组件连接被连接到PCI局部总线306。相反,音频适配器316、图形适配器318以及音频/视频适配器319通过插在扩展插槽中的内插板卡被连接到PCI局部总线306。扩展总线接口314为键盘和鼠标适配器320、调制解调器322以及附加存储器324提供了连接。小型计算机系统接口(SCSI)主机总线适配器312为硬盘驱动器326、磁带驱动器328以及CD-ROM驱动器330提供了连接。典型的PCI局部总线实现支持3个或4个PCI扩展插槽或内插连接器。
操作系统在处理器302上运行,并且被用于协调图3中的数据处理系统300内的各种组件并提供对其的控制。所述操作系统可以是可从市面上购买的操作系统,例如可以从微软公司购买的Windows XP。诸如Java的面向对象的编程系统可以与所述操作系统一起运行,并且从在数据处理系统300上执行的Java程序或应用提供对所述操作系统的调用。“Java”是Sun Microsystems公司的商标。用于所述操作系统、面向对象的编程系统以及应用或程序的指令位于存储装置(诸如硬盘驱动器326)上,并且可以被加载到主存储器304中以便由处理器302执行。
本领域的技术人员将理解,图3中的硬件可以根据实现而改变。除了图3所示出的硬件或是替代图3所示出的硬件,还可以使用其他内部硬件或外围设备,诸如闪速只读存储器(ROM)、等同的非易失性存储器或光盘驱动器等。同时,本发明的诸过程可以被应用于多处理器数据处理系统。
图3中示出的实例和上面所述的实例并非旨在暗示体系结构限制。例如,数据处理系统300可以是个人数字助理(PDA)、笔记本计算机或除了采取PDA的形式之外的手持计算机。数据处理系统300还可以是信息站(kiosk)或Web家电。
本发明提供了一种用于非入侵式的发现网络上节点的方法、装置和计算机指令。具体地说,可以借助传输控制协议/网际协议(TCP/IP)网络来实现本发明的机制。进而,本发明的机制利用来自所述网络中的路由器或其他设备的高速缓存数据来识别网络中的节点以及所述节点之间的通信路径。
具体地说,从位于节点(诸如路由器)内的地址解析协议(ARP)数据高速缓存来获得所述数据。标题为“Ethernet Address ResolutionProtocol:Converting Network Protocol Addresses to 48 Bit EthernetAddress for Transmission on Ethernet Hardware”(以太网地址解析协议:将网络协议地址转换为48位以太网地址以便在以太网硬件上传输)的RFC826中更详细地说明了ARP,其全部内容在此引入作为参考。
该数据被用于生成节点和节点间关系以及网络业务量的显示。本发明的机制采用代理或守护程序来生成ARP数据的快照,并且将该数据存储在存储装置中以便进行分析。每次从路由器内的高速缓存获得所述数据后,从高速缓存中清除所述数据。以这种方式,高速缓存数据的不同快照可以被用于呈现随时间变化的业务量和节点关系。此来自所述快照的信息可以被用于相对于网络规划数据绘制图形以便进行验证和规划,或被用于验证服务级别协议符合性以及满足服务级别协议标准。通过清空ARP高速缓存并且查看表项多久后重新出现在高速缓存中,可以识别出对业务和路径的估计。
现在参考图4,其中示出了一个示意图,该示意图示出了用于发现网络数据处理系统内的节点和节点间关系的组件。在此示例性实例中,路由器400和路由器402出现在网络数据处理系统(诸如图1中的网络数据处理系统100)中。具体地说,这些装置可以被设置为网络102的一部分。在这些示例性实例中,数据处理系统404用于获得来自路由器400和路由器402中的数据高速缓存的数据。
具体地说,数据处理系统404内的监视进程406从分别位于路由器400和路由器402内的代理408和代理410获得数据。这些代理是用于分别获得ARP高速缓存412和ARP高速缓存414内的数据快照的进程或守护程序。
当代理408获得来自ARP高速缓存412的数据后,该数据被从ARP高速缓存412中清除。此数据被发送到监视进程406,监视进程406在节点数据416中存储ARP高速缓存412的快照。类似地,代理410获得ARP高速缓存414中的数据的快照,并且将该信息发送到监视进程406,以便在节点数据416中进行存储。此后,所述数据被从ARP高速缓存414中清除。
ARP高速缓存412和ARP高速缓存414包含标识了这样的节点的数据,所述节点已发送过通过路由器400或路由器402进行路由的数据包。通过从路由器400和路由器402内的这些数据高速缓存获得此信息,可以识别出已传输过数据包的节点,即使这些节点可能不对要求响应的直接请求做出响应。以这种方式,以非入侵的方式进行对网络数据处理系统上的节点的识别。
使用节点数据416,监视进程406生成图418。该图用于呈现网络数据处理系统内的节点的图形视图。进而,该图包括不同节点间的通信路径的标识以及网络业务的标识。
现在转到图5,根据本发明的优选实施例示出了一个示意图,该示意图示出了为路由器的数据高速缓存中的表项存储的信息。表项500是在这些实例中被存储在ARP表项中的数据的实例。响应于从节点通过路由器路由数据包,将生成这些表项中的每个表项。
表项500包括硬件类型502、协议类型504、HLEN506、PLEN508、操作510、发送方硬件地址(HA)512、发送方IP514、目标硬件地址(HA)516和目标IP518。
硬件类型502是所使用的适配器(诸如以太网适配器)的类型。协议类型504是被用于传输消息的协议的类型。在这些实例中,协议类型是IP。HLEN506是以字节表示的硬件地址的长度,而PLEN508是以字节表示的协议地址的长度。操作510指出执行的操作的类型,诸如请求或回答。
在这些实例中,发送方硬件地址512是介质访问控制(MAC)地址,该地址被包括在来自传送该数据包的节点的数据包中。MAC地址是一个与适配器关联的唯一序列号,以便从网络上所有其他适配器中识别该适配器。发送方IP514是节点的IP地址,它也被称为源地址。目标硬件地址是目标节点中的适配器的MAC地址。目标IP是目的地节点的IP地址,它也被称为数据包的目的地地址。
现在转到图6,根据本发明的优选实施例示出了一个示意图,该示意图示出了网络数据处理系统中的节点的图形视图。显示600是可以使用从不同路由器的数据高速缓存收集的信息来生成的显示的实例。
具体地说,显示600是一个图(诸如图4中的图418)的图形视图的实例。如可以看出的,在显示600中给出的两个节点是路由器602和路由器604,这两个节点之间具有连接606。客户机608、610和612通过连接614、616和618被连接到路由器602。进而,路由器604包括通过连接626、628和630被连接到路由器604的服务器620、客户机622和客户机624。这些连接指示出网络数据处理系统内不同节点之间的通信路径。
进而,通过具有不同厚度的线段图形地指示出了这些不同通信路径间的业务。如可以看出的,与其他示出的连接相比,连接626和连接606具有更繁重的业务量。当与连接606和626相比时,连接614具有较少的业务,但是当与其他示出的连接相比时,连接614具有较多的业务。
在示意图600中示出不同节点的方式仅是出于示例目的给出的。该示例并非意在将可以在其中呈现数据的方式限定为图形方式。例如,除了表示通信路径连接的线段的厚度之外,或是替代表示通信路径连接的线段的厚度,可以使用颜色或动画来指示通信路径上的业务量。
现在转到图7,根据本发明的优选实施例,示出了用于从高速缓存获得数据快照的过程的流程图。可以在代理(诸如图4中的代理408)中实现图7中示出的过程,以便获得来自数据高速缓存(诸如图4中的ARP高速缓存412)的数据。
所述过程开始于从高速缓存检索数据(步骤700)。此后,所述数据被发送到监视进程(步骤702)。在示例性实例中,监视进程是一个诸如图4中的监视进程406的进程。此后,清空数据高速缓存(步骤704),并且此后所述过程终止。
可以基于由代理进程执行的定时器,以某个周期为基础来启动所述过程。进而,可以通过由所述监视进程响应于一个事件而生成的请求来启动此过程。取决于特定的实现,此事件可以是周期性的或非周期性的。在示例性实例中,所述事件可以基于定时器的超时,或基于由网络管理员所生成的某个请求。
现在参考图8,根据本发明的优选实施例,示出了用于使用来自路由器的高速缓存数据来识别节点的过程的流程图。可以在监视进程(诸如图4中的监视进程406)中实现图8中示出的所述过程。
所述过程开始于从路由器上的代理接收高速缓存数据(步骤800)。此后,存储所述数据(步骤802)。在这些实例中,数据被存储在永久性存储或存储设备中,诸如图4中的节点数据416。此后,就是否在从路由器接收的数据内识别出了新节点做出判定(步骤804)。可以通过将从所述代理接收到的数据与已存储的数据进行比较来做出该判定。
如果在所述数据中没有识别出新节点,则为节点更新业务(步骤806)。此业务可被用于呈现连接的不同图形视图,以便为不同的连接指示业务的级别。此后,在所述图中更新路径(步骤808),然后所述过程返回步骤800。
再次参考步骤804,如果在所述数据中出现了新节点,则该节点被添加到所述图中(步骤810)。将就从所述代理接收的数据中是否出现了其他新节点做出判定(步骤812)。如果出现了其他新节点,则所述过程返回步骤810。否则,如上所述,所述过程继续到步骤806。
因此,本发明提供了一种用于发现网络数据处理系统内节点的改进的方法、装置和计算机指令。进而,因为此机制不需要来自被识别的任何节点的响应,所以它是非入侵的。通过使用来自网络数据处理系统内的路由器的高速缓存数据,可以进行对网络数据处理系统内的节点的识别。当不同的节点在网络数据处理系统上传输数据包时,关于这些传输的信息被存储在路由器的高速缓存数据中。从网络数据处理系统中的不同路由器获得此信息以便识别节点。
进而,通过为节点跟踪通过不同路由器和路径的数据包的标识,可以识别路径间的业务。以这种方式,网络管理员和其他规划者可以使用业务模式图以及节点及其互连的标识来管理网络数据处理系统。
重要的是注意到,虽然在完整功能的数据处理系统的情况下说明了本发明,本领域的技术人员将理解,可以以指令的计算机可读介质的形式和各种形式来发布本发明的诸过程,并且本发明均可等同地适用而与实际用于执行发布的信号承载介质的特定类型无关。计算机可读介质的实例包括可记录型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM和传输型介质,诸如数字和模拟通信链路、使用诸如例如射频和光波传输之类的传输形式的有线或无线通信链路。计算机可读介质可以采取编码格式的形式,可以对其解码以便在特定数据处理系统内实际地使用。
出于示例和说明目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。对于本领域的技术人员来说,许多修改和变化是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。