具体实施方式
参考图1,测试系统包括控制设备150和至少一个——但更实用地——多个内置插入通信网络100中的未编址测试设备104。测试系统实现一种网络测试方法,其包括与未编址设备的通信。更准确地,“未编址”设备可具有或没有网络地址;然而,其中所公开的方法不利用测试设备的地址,将其有效地处理为“未编址”设备。作为例子,测试设备104可以是插入网络设备中的收发机,该网络设备是相对于收发机的另一设备。
与未编址测试设备的通信依赖于检查经过测试设备的包和比较包的内容。
参考图2,测试设备104内置连接在网络100中,使得经过网络上的至少两个设备之间的包(在这种情况下是经过数据源设备101和目的地设备102之间的包)经过测试设备104。测试设备104实现网络测试方法,其可包括被动监控、主动测试或两者的组合以及测试子网络、链路或设备。
测试设备104可以是在通信网络100中使用的协议通用的测试设备,其用于监控在整个网络100中传递的包,例如在这个例证性实例中从源101传递到目的地102的包103。
通信网络100可以是目前已知的或以后发展的任何类型的包网络,包括互联网、WAN、LAN、多标签包交换(MPLS)网络、电话网络、无线网络、光学网络和/或前述网络的任何组合。优选地,通信网络100是包交换网络或使用对包、信元(cell)或帧传送寻址的任何类型的网络。这样的网络包括但不限于异步传输模式(ATM)网络、帧中继网络、混合光纤同轴(HFC)网络和同步光学网络/同步数字分级(SONET/SDH)网络。目前的设计是针对基于包的网络,但本发明可以在其它类型的网络中是有用的。因此,术语“包(packet)”应被理解为包括常规包,例如IP和以太网包以及信元和帧。虽然在图2中只有两个设备101和102被示为通过通信网络100被通信地耦合,但应理解,任何数量的设备可以被这样连接。此外,虽然设备101被示为源而设备102作为目的地,但应认识到,通信可以是双向的,使得在一些情况下设备102是源,而设备101是目的地。
测试设备104没有网络地址,或至少在本文提出的方法中不使用它们。
测试设备104内置连接在网络100中,并能够检查和/或捕获从源101行进到目的地102的包,且检查所接收的包。测试设备104具有存储在其中的一种或多种认证模式,优选地包括测试设备的标识号(ID)和预定的“呼叫(Hello)”模式。认证模式允许测试设备104在所接收的包中间识别出预定到测试设备104并包括以测试设备104为目标的信息例如测试或配置信息的包。
在图2的例子中,包103从源101行进到目的地102,并被测试设备(或探测器)104拦截。协议通用的测试设备104可通过扫描或找到嵌在包的净荷中的ID来将包103识别为特殊的测试/配置包。ID可通过包的源被置入包的净荷中。例如,控制设备150可形成包103,并插入测试设备104的ID和预定用于104的其它信息。可替换地,包103的源也可以是测试设备,并可复制经过的包且通过插入ID和预定用于测试设备104的其它信息来改变其内容(净荷)。
测试设备104具有存储器,其中可存储一组所收集的网络地址。最初,该组是空的,当测试设备从经过的包收集网络地址时增长。可替换地,一个或多个网络地址可以被填充到104中的非易失性存储器中。
测试设备104检查由图2中的包103例示的所接收的包。在操作中,测试设备104执行三种功能:收集在与控制设备105进行通信时使用的网络地址,在发现程序(procedure)中将自己通告给控制设备150,以及在控制设备的远程控制下执行网络的实际测试/监控。
如果包103并不预定到测试设备104,即,包103不包括存储在设备104中的任何一个认证模式,则包103被转发到包的目的地网络,而没有对包103的任何改变。然而,测试设备从包103收集目的地地址和/或源地址,并将所收集的网络地址添加到该组所收集的网络地址中。
所收集的网络地址或其至少一些被提供到控制设备150或另一测试设备,以便建立与这个测试设备104的通信。
一般来说,测试设备104将所有包转发到它们的目的地,除了预定到测试设备104的包以外。换句话说,那些不包括任何一个预定的标识模式的包应在没有任何改变的情况下被转发。
可通过将发现包发送到例如网络元件102来在控制设备150处开始发现程序,其中发现包具有测试设备104已知的预定认证模式,例如存储在测试设备104中的“呼叫”模式。
如果具有“呼叫”模式的发现包经过测试设备104,同时检查所接收的包,测试设备104将通过发现模式(呼叫)的存在来识别发现包。在接收到发现包之后,测试设备104发起包括认证模式之一的测试设备标识包,例如该特定的测试设备104的ID号。测试设备标识包的源地址是来自例如设备102的该组所收集的网络地址的一个地址,且测试设备标识包的目的地地址是发现包的源地址,使得设备标识包将到达发现包的发送方。测试设备标识包的净荷可包括来自该组所收集的网络地址中的一个或多个地址。
控制设备150以计划和控制的方式执行发现,以便不引起将中断正常生产业务或服务的大量网络业务。发现包可作为广播或单播请求被发送,并以可配置的间隔重复。
控制设备150的发现管理器部件负责开始发现过程,用于收集来自测试设备例如测试设备104的数据,并用于填充数据库。最后,当被系统管理器提示时,发现程序在发现管理器开始;发现管理器例如以如系统管理器所规定的有规律的间隔将所发现的测试设备报告回到系统管理器。
发现管理器部件使用测试设备通信堆栈来将发现包发送到网络上。包可以是广播、面向子网的广播、单播或一系列单播。所发送的发现包的类型由系统管理器规定;待使用的地址和发现包应被公布到网络的间隔也是由系统管理器规定。
进入(Incoming)的结果包,例如在测试设备104发起的测试设备标识包,通过开式索节(open socket)从测试设备通信堆栈被路由到发现管理器部件。发现管理器部件将使用发现时间戳记录所发现的测试设备和数据库中的相应的出口网络地址。
作为例子,因为测试设备104没有其自己的用于接入网络的IP和MAC地址,它必须使用其出口设备之一的IP地址作为它自己的IP地址,并使用下一跳下游(指向远离控制设备150)MAC地址作为它自己的MAC地址。控制设备150使用这个“欺骗性的”IP地址作为目的地来将命令和控制包发送到测试设备104。
可替换地,可通过发起包括至少一个认证模式(这个特定的测试设备104的“呼叫”模式或ID号、或优选为两者)的测试设备标识包来由测试设备104开始发现程序。测试设备标识包的源地址是来自例如设备102的该组所收集的网络地址中的一个地址;测试设备标识包的目的地地址可以是任意地址。
根据一个实施例的包103的示例性配置在图3中被示为IP包。IP包包括包头部和可包含其它协议例如用户数据报协议(UDP)的包头部的净荷。参考图4,包还包括以唯一的标识信息和ID的形式的认证模式,接下来是预定用于测试设备104的内容。当包103具有任何一种认证模式时,包可被称为装载或包络包,且包的部分可被称为嵌入式或消息包。包的消息部分可包括测试设备104的ID、所关注的信息,并且还包括用于认证和加密的可选的命令和控制信息。在本例中,可选的认证信息可以是基于散列的消息认证码(HMAC)记号(token),其使用公知的认证技术来产生。此外,密钥可被包括并用于加密或在随后的包103中开始加密。当然,在其它实施例中可使用现在已知或以后发展的任何其它认证或加密技术。
应认识到,本发明的实施例并不否定现有的方法,而更确切地通过规定预定用于测试设备的特殊包可被嵌入包的头部和净荷中的某种形式的身份识别来扩展它们。例如,为了使测试/配置包103被协议通用的测试设备104识别为特殊包,测试设备从图4知道唯一的标识符,该标识符可被插入用于将包识别为特殊的;标识符代表存储在测试设备中的用于与包括在所接收的包中的可能标识符进行比较的认证模式。图4表示多组唯一的标识符。可能有将包表示为多个测试设备所关注的包的唯一标识符,以及将包表示为在特定的测试设备104处被定为目标的标识符。例如,唯一的识别信息可以是特殊探测器的唯一MAC地址、对探测器集合编址的多播MAC地址或特定的端口或协议标识符。在包103中的认证模式的位置可以被预先确定,并且对包103和探测器104的始发者是已知的。唯一的标识符可以是可被称为“指纹”的一串字节或任何模式,其被插入包的净荷中并与已知的字符串区分开,类似于在XML/HTML(可扩展标记语言/超文本链接标示语言)中使用的标记。作为另一例子,认证模式可以是布置在帧/包的起始部分或特定的包头部处的或在离帧/包的起始部分或特定的包头部的公知偏移之外的模式。应注意,标识符不必准确地插在偏移处,而更确切地在该偏移的之外的位置处,使得协议通用的测试设备104可被实现来在寻找唯一标识符的这样的偏移之后开始其遍及包的搜索。换句话说,协议通用的测试设备104可执行从包中的偏移点开始的模式匹配,以确定唯一的标识符是否被找到。当然,偏移位置和ID尺寸不必被预先确定。
图5是可在测试设备处执行的算法的部分流程图。在操作块400中,测试设备104捕获通过通信网络100通信的包103;所捕获的包的源地址识别源设备101,且包的目的地地址识别目的地设备102;这两个设备都不同于测试设备104。在操作块401中,测试设备使用在网络100上进行通信所需要的网络地址和封装的包头部解析器来扫描包103的头部和净荷。如果编址没有被找到(402),则包103经过测试设备104回到网络100上。在操作块403中,测试设备104将所发现的网络地址和封装存储在缓冲器中。在操作块404中,测试设备104扫描所捕获的包103的净荷,搜索预定的认证模式。在操作块404中,测试设备104确定是否在包的净荷中找到认证模式中的任意一个。如果没有一个认证模式被找到(405),操作前进且包103经过测试设备104回到网络100上到包103的目的地地址,而不对包103进行任何改变。在操作块406中,包103被认证并确定测试设备104的ID是否存在。如果被认证,命令解析器提取测试设备104所关注的任何命令和信息(407)。在操作块408中,测试设备使用所捕获的封装和在块403中捕获的编址信息,并构造对源101的响应/确认包,源101被假定为控制设备150。响应/确认包被保持在FIFO缓冲器中,同时它在操作块409中使用子信道在空闲帧期间等待被插入。在操作结束时,测试设备返回到操作块400以捕获下一个包。
图6示出根据本发明的一个实施例的功能流程图。功能块500示出从源101进入测试设备104的入口点。功能块501示出从测试设备到目的地102的出口点。入口500和出口501可以是用于通过通信网络100传递信息的任何电的、光学的、无线的或其他任何已知或未知的方法。功能块502是通常称为子信道的通过控制的包插入传递。子信道502能够在网络100上接收和插入包。子信道502在包103被接收时将它们接收到弹性缓冲器503中。从缓冲器503中由可配置的包头部解析器504和管理包解析器505提取缓冲器503中的包。包头部解析器504检查包103并识别包数据提取器506的密钥头部和净荷信息位置。这些可包括网络地址例如MAC或IP地址或其它层2、层3或/和使已知或未知网络的通信能够被传送的其它OSI层。管理包解析器505针对认证模式、ID、命令和测试设备104所关注的任何其它主张的信息检查包103。包括ID、命令等的认证模式存储在测试设备104的存储部件510中。存储部件510可以是任何非易失性存储器,例如电可擦可编程只读存储器EEPOROM、闪存、铁电随机存取存储器(RAM)、专用集成电路(ASIC)、任何已知或未知的可写入存储器、或它们的组合。任何重要的信息被标记用于提取或处理。包数据提取器506获取由管理包解析器505和/或包头部解析器504识别的所关注的信息,并将该信息提取到缓冲存储器507中。所关注的信息可以是协议头部、网络地址、头部字段、数据串、计数、完整的包或在包103中存在的数据的任何组合。存储部件507可以是随机存储器(RAM)、只读存储器(ROM)或现今已知和未知的其它存储器和存储技术的组合。特别是,存储部件507具有从由测试设备104转发到网络100上的包收集的该组网络地址和由包数据提取器506收集的所关注的信息。
包生成器508从缓冲存储器507获取数据,并产生用于发送到源101或目的地102的响应或确认包,或如在测试设备104处并基于所获悉的数据或指令确定的任何其它数据,同时处理/解析包103。一旦生成器508构造了有效的包,功能块509就充当对子信道502的输出缓冲器/调度器。当空闲期被确定时,子信道502从调度器509接收响应/确认包,并根据包含在包中的编址将它插入网络100中。
测试设备的部件可以在软件和硬件的组合例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、网络处理器、片上系统例如具有集成ARM或微处理器的FPGA、复杂可编程逻辑器件(CPLD)、可擦可编程逻辑器件(EPLD)、简单可编程逻辑器件(SPLD)或宏单元阵列中实现。
在一个实施例中,系统包括未编址网络设备104,其内置于(inline to)通信流并被上游系统发现。未编址设备104包括唯一的标识符并检查经过设备的所有包,且使用知道传统包头部并可被配置成获悉新的头部类型的可编程包头部解析器,来获悉来自从控制设备接收的呼叫发现包或来自流经设备的业务的网络包头部的通信所需要的网络的封装。未编址设备104收集可用于与其通信的候选网络地址,例如经过设备的每个包的目的地IP和MAC地址。如果经过设备104的包具有其为发现/通信包的标记,它使用设备的ID和一个或多个候选网络地址做出响应用于与未编址设备104进行通信。
系统还包括也称为包路由引擎(PRE)和系统管理器(SM)的命令和控制设备150。控制设备150管理并控制未编址网络设备104,并发送出发现包以定位在网络中的未编址设备。控制设备150维持属于下游设备的一组下游网络地址,使得如果包具有从未编址网络设备104接收的来自这组下游IP设备的目的地地址,在控制设备150处发起的包将越过未编址设备104行进。控制设备150产生并传输预定到未编址测试设备104并具有未编址网络设备104的目的地地址下游的控制和管理包(SOCP包)。SOCP包可包括未编址网络设备104的唯一标识符和其它认证模式、序列号;包可被加密。
在操作中,命令和控制设备150选择网络地址或子网,其中未编址网络设备可存在以被发现。发现包被产生并指向目标网络地址。“未发现的”未编址网络元件针对发现包标识符检查每个包。未编址网络设备收集候选网络地址用于与控制设备150通信。作为例子,设备可被指示来查看在链路上的所有帧并执行每个帧上的匹配的滤波逻辑。
未编址网络设备104通过检查在命令和控制信息之前的头部来获悉所检测的发现包的网络封装,如图3和4所示。这个网络封装接着被存储在存储部件中以稍后用于在网络100上发送包。
当发现包被检测到时,它被解析以察看响应是否应被产生。当发现包被检测用于响应时,产生SOCP包;包包含所获悉的封装,以及由控制设备150在与未编址设备104通信时使用的一个或多个候选网络地址。包还可包含命令和控制信息;包具有来自该组所收集的网络地址的一个源地址,以及与发现包的源地址相同的目的地地址。
当命令和控制设备150接收发现响应包(测试设备标识包)时,网络地址以及其它命令和控制数据被提取,产生回到未编址设备的通信的地址表。命令和控制设备建立与未编址网络设备的连接。
可交换确认和加密密钥。
在一个实施例中,网络100是基于IP的网络,且所收集的网络地址包括经过的包的IP地址。发现包、测试设备标识包、请求包、测试结果包等的源地址和目的地地址是IP地址。
与常规协议例如动态主机设置协议(DHCP)不同,前述方法并不要求未编址设备最初或积极地获得网络地址,侦听对特殊消息的特定端口,被绑定到所获得的单个地址,响应于广播或多播消息,依赖于已知的网络封装。这是有利的,因为它显著减少了管理关注,不需要必须被维持的一组已知的地址,允许元件快速适应于网络地址变化,并允许元件在任何网络基础设施中自动工作而没有外部配置或设置。
前述方法通过收集并使用设备的其它元件下游的地址来允许未编址网络例如测试设备104的发现和与未编址网络例如测试设备104的通信。为了建立这两个设备之间的通信,未编址设备104必须提供可用于与未编址设备进行通信的一个或多个网络地址。在此完成之后,可建立欺骗性的通信会话。
有利地,本文所述的方法允许在多个封装上发现未编址设备。传统方法要求元件配置成在用在网络中的特定封装中工作。这需要网络知识以及地址的封装和可用性,以在所述网络中使用。通过检查穿越网络的包的封装,设备104可自动获悉在所述网络上适当地通信所需要的头部。这是有利的,因为它极大地减少了管理、所需的地址和将基础设施配置在网络中所需的时间。
前述测试设备104是协议通用的(或与协议无关的)测试设备,其能够监控通过通信网络传递的业务,并识别在这样的业务内的测试设备所关注的包。该方法是协议通用的,因此不要求测试设备具有关于正被使用的通信协议的现有知识,以便使测试设备能够识别预定到测试设备104的包。因此,协议通用的测试设备可以被使用并动态地适合于可在通信网络上被利用的任何通信协议,而不需要对测试设备的任何更改。
在某些实施例中,可考虑将预定用于测试设备的信息作为在该包内的包。也就是说,预定用于测试设备的包的净荷的一部分可被考虑为包,其中总包可被称为“承载包”或“包络包”,且预定用于测试设备的总包的部分可被称为“嵌入式包”或“消息包”。仅仅因为包络可携带字母(其本身携带某些消息段),包络包可携带包括预定用于测试设备的信息的消息包。
承载包如包络包含获得从一段网络到另一段的包所需的寻址信息,非常像在从城市中的一个地址到另一地址的邮件中具有地址流的字母。因此,承载包的包络部分包含寻址信息,例如测试设备所关注的IP和MAC地址。虽然这个寻址信息并不预定用于测试设备,它是有意义的,因为它可由测试设备使用来在通信网络上秘密地通信并发现所使用的网络封装。
承载包的消息部分(即,预定用于测试设备的部分)可以由包括在这样的承载包的净荷中的标识符识别。承载包的消息部分可包括预定用于测试设备的信息,例如测试或配置信息。包103可以是与存储在测试设备104中的特定认证模式匹配的请求包,其中测试或配置信息包含一个或多个测试/配置参数。响应于请求包,在步骤408(图5)中,测试设备发送也称为应答包的测试结果包,其可包含命令已被执行的确认,和/或可提供由测试参数定义的测试结果;测试结果可以是例如通过监控经过测试设备104的网络业务获得的数据。测试结果被封装在测试结果包中。测试结果包包括认证模式之一,例如测试设备104的ID号。测试设备104接着将测试结果包发送到请求包的源地址,其中测试结果包的源地址是来自该组所收集的网络地址中的一个地址,并识别相对于在具有请求包的源地址的设备处发起的包在测试设备104的下游的下游设备;下游设备的网络地址不一定是与用于在发现程序中发送测试设备标识包相同的地址。此外,各种测试结果包可使用不同下游设备的地址,以及测试设备标识包,如果从测试设备发送多于一个的这种包。优选地,在测试结果包的净荷中和/或当改变测试结果包的源地址时,测试设备104有规律地将来自该组所收集的网络地址的新地址提供到控制设备150。该技术自动地减轻了网络100中的配置变化。
作为例子,测试参数可以定义用于网络监控的过滤器或对测试设备的命令。测试设备104可应用过滤器,以便只获得例如按照字节模式、目的地或协议选择的特定包,并将有关的测试结果提供到发送请求包的设备。
测试结果包的净荷可包括来自该组所收集的网络地址中的一个或多个地址。
测试参数可以是用于在测试中从测试设备104发送到设备或网络的测试包或这样的包的一部分。在测试结果包中,该测试已被执行的确认被发送到控制设备150。
传送包可以被加密。
当测试设备104在包103中找到认证模式之一,即,将包103识别为预定到测试设备104的请求包时,测试设备104优选地终止包103且不将包转发到其目的地地址,使得包将不中断包不被预定用于的下游网络元件。
换句话说,未编址网络设备104检查并缓冲经过其的每个包,以确定它是否以设备104为目标。如果包以设备104为目标,包被接收到设备中,但在步骤408从网络终止(图5)。如果没有找到特殊的标识符,则包被发送到未改变的网络上。
在上面的描述中,为了解释而不是限制的目的,阐述了特定的细节例如特定的结构、接口、技术等,以便提供对本发明的彻底理解。然而,对本领域的技术人员将明显,可在不偏离这些特定细节的其它实施例中实践本发明。也就是说,本领域的技术人员将能够设计各种布置,其虽然没有在这里被明确地描述或示出,但体现本发明的原理并被包括在其精神和范围内。在一些实例中,公知的设备、电路和方法的详细描述被省略,以便不会由于不必要的细节使本发明的描述难理解。在这里详述本发明的原理、方面和实施例的所有陈述以及其中的特定例子旨在包括其结构和功能等效形式。此外,意图是这样的等效形式,该等效形式包括目前已知的等效形式以及在未来被发展的等效形式,即,执行相同的功能的被发展的任何元件,而不考虑结构。
因此,例如,本领域技术人员将认识到,这里的方框图可表示体现技术的原理的例证性电路的概念图。类似地,将认识到,任何流程图、状态转变图、伪代码等表示可实质上在计算机可读介质中表示的并由计算机或处理器这样执行的各种过程,不管这样的计算机或处理器是否被明确地示出。
通过使用专用硬件以及能够与适当的软件结合来执行软件的硬件可提供包括被标注或描述为“处理器”或“控制器”的功能块的各种元件的功能。当被处理器提供时,可由单个专用处理器、单个共享处理器、或多个单独的处理器提供功能,其中一些可被共享或分布。而且,术语“处理器”或“控制器”的明确使用不应被解释为排他地指能够执行软件的硬件,并可没有限制地包括数字信号处理器(DSP)硬件、用于存储软件的只读存储器(ROM)、随机存取存储器(RAM)和非易失性存储器。