智能过滤计算机网络内冗余数据流的网络设备的制作方法

文档序号:7971151阅读:323来源:国知局
专利名称:智能过滤计算机网络内冗余数据流的网络设备的制作方法
技术领域
本发明涉及计算机网络,且更具体地,涉及过滤计算机网络中的冗余数据流。
背景技术
网络中的设备为遍布全网的用户(subscriber,也可称为签约用户)设备发布内容并提供服务。常常将这些设备称作主机或主机设备,其可以包括网络服务器、应用程序服务器、数字化内容提供商、文件服务器、打印服务器或者其他设备。用户设备的实例则可包括个人计算机、膝上电脑、工作站、个人数字助理(PDA)、蜂窝电话、可上网家电、无线设备、机顶盒等。为了在主机和用户设备之间传送内容和服务,网络通常包括常被称为路由器的路由设备,其通过网络将内容和服务从主机设备路由到用户设备。网络还可包括集线器、网关、交换机及其它有助于主机设备和所述用户设备间的通信的网络设备。
通常,主机对用户设备进行认证,以使用户设备可以接收主机所提供的内容和服务。在认证用户设备之后,主机就将用户设备所请求的全部内容和服务通过网络发送到用户设备。传统的在用户设备上执行的终端用户应用程序接收内容和服务并将其呈现给用户,而该用户可以与终端用户应用程序交互来请求更多的来自主机的内容和服务。主机可以如提供数据流(例如,由CNN或ESPN输入(feed,也可称为馈入)的电视广播或音频音乐流)形式的内容,并且用户可通过终端用户应用程序选择各种数据流中的一个或多个来收看或收听。
有时候诸如网络路由器失败的网络扰动会干扰某个主机和用户设备间的通信。在这些例子中,网络扰动会妨碍全部或部分各种数据流到达用户设备,因此,用户就不能够访问这些数据流,直到网络扰动得到解决。此问题的常规解决方案包括利用多个主机发送冗余数据流给终端用户应用程序。在某些情形中,一旦检测到网络中失败,终端用户应用程序就尝试连接到提供完全相同或冗余数据流的另一主机设备。一旦连接上,终端用户应用程序就可以再继续接收数据流并将其呈现给用户。
在其他情形中,一个或多个主机提供一个或多个与原始数据流并行的数据流到用户设备。在此情形中,在网络失败的情况下,终端用户应用程序不需要连接到不同的主机。相反,终端用户应用程序只需选择没有被该网络失败影响的冗余数据流中的一个。
虽然这些解决方案可以减少网络失败在内容和服务器传输方面的影响,但常规解决方案会很大地增加整个网络的带宽消耗。例如,即使没有发生网络扰动,但传输到每个用户设备的一个或多个数据流也会消耗相当大的带宽。此外,这些解决方案要求对每个终端用户应用程序都进行修改,使其能够觉察并能够处理冗余数据流。

发明内容
总而言之,本发明的原理允许如路由器的中间设备智能地过滤由一个或多个主机所提供的冗余数据流。在网络扰动的情况下,路由器以可以减少消耗诸如带宽等网络资源的方式,可以停止过滤当前所需要的冗余数据流中的一个,而不必修改驻留在用户设备上的终端用户应用程序。因此,尽管发生了网络扰动,但根据本发明原理工作的路由器仍可以透明地将数据流提供给用户设备。
例如,描述了通过中间设备接收由多个主机传输至用户设备的多个冗余数据流,并通过中间设备过滤多个数据流中的至少一个的技术。尤其是,中间设备可以从多个主机中选择一个主要主机(master host),并基于主要主机的选择来过滤多个数据流中的至少一个。在妨碍用户设备接收数据流的网络扰动的情况中,中间设备和其他中间设备从多个主机中选择新的主要主机,并开始将来自新的主要主机的冗余数据流转发至用户设备。以此方式,中间设备可以以对于驻留在用户设备上的终端用户应用程序透明的方式,智能地过滤冗余数据流。此外,由于中间设备可以在通过网络转发冗余数据流之前过滤冗余数据流,因此,中间设备可以限制整个网络对网络资源的消耗。
在一个实施例中,一种方法,包括通过中间设备接收由多个源所提供的被指定到目的设备的一个或多个冗余数据流;以及通过中间设备过滤多个冗余数据流中的至少一个。
在另一实施例中,一种中间设备,包括一个或多个接口卡,其接收由多个源所输出的被指定到目的设备的多个冗余数据流中的一个或多个;以及控制单元,其过滤多个冗余数据流中的至少一个。
在另一个实施例中,一种计算机可读介质,包括指令,用于使可编程处理器执行以下步骤接收由多个源提供的被指定到目的设备的多个数据流中的一个或多个;以及过滤多个冗余数据流中的至少一个。
在另一个实施例中,一种网络系统,包括目的设备;多个源,其提供被指定至目的设备的多个冗余数据流;以及中间设备,其连接在目的设备与多个源中的至少一个源之间,以接收来自多个源的多个冗余数据流,并过滤多个冗余数据流中的至少一个。
下面将结合附图和说明书阐述本发明的一个或多个实施例细节。本发明的其它特征、目的和优点从说明书和附图中将会变得显而易见。


图1是示出智能过滤冗余数据流的典型网络系统的方框图;图2是示出基本类似于图1的应用服务提供商网络的典型应用服务提供商网络方框图;图3是第一跳路由器的典型实施例的方框图;图4是示出进行智能过滤冗余数据流中的第一跳路由器的示例性操作的流程图;以及图5是示出提供冗余数据流的智能过滤的典型计算机网络的方框图。
具体实施例方式
图1是示出智能过滤冗余数据流的典型网络系统10的方框图。为了示例性目的,虽然参照组播(multicast)数据流进行了说明,但本发明的原理可应用于其他类型的数据流。
在此实例中,第一跳路由器12A、12B(“第一跳路由器12”)智能地过滤从主机18A-18C(“主机18”)接收的冗余数据流。第一跳路由器12还将应用服务提供商网络14链接到中间网络16,并利用路由器22通过中间网络16将来自主机18的数据流转发到用户设备20A-20N(“用户设备20”)。主机18表示能够提供冗余数据流的多个源,且本文提到的“主机”、“主机”信息等术语应当理解为示例性的源、源信息等。此外,第一跳路由器12表示能够过滤多个冗余数据流中的至少一个的典型中间设备,且本文所提到的术语“第一跳路由器”应当理解为典型中间设备。中间设备的其他实例包括会话边界控制器、网络加速设备、防火墙、虚拟专用网络(VPN)设备、网关、集线器、交换机或者其他设备。
如图1所示,应用服务提供商网络14包括连接至第一跳路由器12的主机18。主机18A和18B连接至第一跳路由器12A,主机18C连接至第一跳路由器12B。主机18A接收来自卫星24A的卫星输入26A,主机18B接收分别来自卫星24A、24B的26B、28A,以及主机18C接收来自卫星24B的卫星输入28B。主机18可以包括卫星接收机,其接收来自卫星24A、24B的卫星输入26A、26B、28A、28B,主机18将其作为数据流27A、27B以及29A、29B输出。数据流27A、27B(“数据流27”)包括基本相同或冗余的数据流,数据流29A、29B(“数据流29”)也包括基本相同或冗余的数据流。数据流27、29可以包括诸如由CNN或ESPN的电视广播输入的视频流,或者诸如流式音乐输入的音频流。
中间网络16代表任意的网络,数据流可以通过其流动,其可以包括交换机、集线器、网关、服务器、工作站、网络打印机、传真机、路由器等中的任意一种。如图1所示,中间网络16包括将用户设备20连接到中间网络16的路由器22。虽未在图1中示出,但中间网络16可以包括将用户设备20连接到应用服务提供商网络14的其他路由器、集线器或网关。用户设备20可以包括任何能够接收和呈现数据流的设备,诸如个人电脑、膝上电脑、个人数字助理、蜂窝电话、无线设备、机顶盒或其他设备。
在图示的实施例中,第一跳路由器12智能地过滤从主机18所接收的数据流。第一跳路由器12接收来自主机18的传输至用户设备20的冗余数据流27、29,并过滤冗余数据流27、29每个中的至少一个。第一跳路由器12还可交换用于描述主机18的主机信息,以确定数据流27、29中的哪些转发到用户设备20。根据本发明的原理,第一跳路由器12可通过如本文所述的等源冗余协议(equivalent source redundancy protocol,缩写为ESRP)的网络协议交换该主机信息。网络协议可以交换的主机信息包括例如,多个主机18中提供冗余数据流子集的主机的网络地址、分配给该子集的每个主机的第一跳路由器的网络地址、该子集的每个主机的优先级、以及流序列信息。该网络协议还可交换其他信息,如主机负荷信息、活动流的数量,以及这些流所用的带宽,且该网络协议不应限制于此。
一旦接收到主机信息,第一跳路由器12就更新存储在第一跳路由器12中相应的本地主机信息,以反映与第一跳路由器12有关的网络结构的任何变化,如添加主机、内容组、第一跳路由器等。接下来,第一跳路由器12基于主机18中各主机各自的本地主机信息,从主机18中一起选择一个或多个主要主机,并转发接收自主要主机的数据流27、29每个中的一个。第一跳路由器12基于主要主机的选择一起过滤数据流27、29。
在网络扰动的情况下,一个或多个第一跳路由器12可以通过监控每个第一跳路由器之间的通信来检测网络扰动。一般的网络扰动可以包括第一跳路由器12其中之一失败,或者第一跳路由器12之间的通信链路或接口设备失败。在任何一种情况下,网络扰动可能影响数据流27、29中的一个或多个至用户设备20的传输。例如,主机18A的失败造成数据流27A的传输失败。再举一例,主机18B的失败造成数据流27B和29A的传输失败。一旦检测出失败,活动的第一跳路由器12就可以基于主机18各自的本地主机信息为每个与主机18相关的内容组选择新的主要主机。一旦选择一个或多个新的主要主机,所述活动第一跳路由器就通过网络16将从这些新选择的主要主机接收的数据流27和29每一个中的一个转发到用户设备20。
第一跳路由器12以此方式相互合作来智能地过滤冗余数据流,并可以基于第一跳路由器12及其网络连接的当前状态透明地管理冗余数据流27、29。在发生网络扰动的情况中,第一跳路由器12能够将数据流27、29中的一个或多个转发到用户设备20而没有任何明显的中断。此外,由于第一跳路由器12透明地过滤冗余数据流27、29,因此驻留在用户设备20上的终端用户应用程序不需要进行修改才能察觉到冗余数据流27、29。此外,该技术没有不必要地浪费中间网络16的带宽,这是因为第一跳路由器12过滤所述冗余数据流,一直到其被需要为止,从而阻止这些被过滤的数据流穿越中间网络16。
图2是示出基本类似于图1的应用服务提供商网络14的典型应用服务提供商网络30的方框图。如图2所示,应用服务提供商网络30包括第一跳路由器32A、32B(“第一跳路由器32”)以及主机34A-34C(“主机34”)。第一跳路由器32可以通过网络链路连接至主机34,其中,在该链路上,第一跳路由器32接收来自主机34数据流38A、38B(“数据流38”)以及数据流40A、40B(“数据流40”)。当参照第一跳路由器32说明图2时,不是第一跳路由器的其他中间设备可以遵从本文中所说明地本发明的原理来智能地过滤冗余数据流。
如图2所示,应用服务提供商网络30可以包括内容组36A、36B(“内容组36”),其中,内容组36A包括主机34A、34B,且内容组36B包括主机34B、34C。用于此处,内容组包括提供相同内容的冗余数据流的一组主机(如主机34A、34B)。例如,主机34A、34B是数据流38的等同源。类似地,主机34B、34C是数据流40的等同源,因此,主机34B、34C被第一跳路由器32视为内容组36B。
应用服务提供商网络30的管理员可以配置第一跳路由器32来识别每个内容组36。该管理员还可以利用选择标准来配置第一跳路由器32,第一跳路由器32可参考选择标准来确定将每个内容组36中的主机34的哪个选作主要主机。在一个实施例中,管理员在全网型(full mesh)结构中配置第一跳路由器32,以使第一跳路由器32中的每一个都察觉到第一跳路由器32中的其他每一个。换句话说,例如,第一跳路由器32A察觉到第一跳路由器32B且第一跳路由器32B察觉到第一跳路由器32A。以此方式,第一跳路由器32中的每一个都可与第一跳路由器32中的其他每一个交换主机信息。
在管理员配置第一跳路由器32中的每一个的时候,第一跳路由器32可以通过本文所述的新的等源冗余协议(ESRP)交换信息。在图示的实施例中,例如,第一跳路由器32A传输主机信息42A到第一跳路由器32B,第一跳路由器32B传输主机信息42B到第一跳路由器32A。一旦接收到主机信息42A、42B(“主机信息42”)中的每一个,相应的第一跳路由器32就更新本地存储在每一个第一跳路由器32中的本地主机信息(图2中未示出)。
在某些实施例中,主机信息42可以包括多个主机34中提供冗余数据流子集的主机的网络地址、该子集的每个主机的第一跳路由器的网络地址、该子集的每个主机的优先级、以及流序列信息。例如,主机信息42A可以包括组成内容组36A的主机34A、34B的网络地址、作为连接到主机34A、34B第一跳的第一跳路由器32A的网络地址、每个主机34A、34B的优先号(priority number)、以及流序列信息。对应于每个主机34A、34B的优先号指明了例如第一跳路由器32A是否已经选择主机34A、34B作为主要主机。零优先号可指明,一旦接收主机信息42A,第一跳路由器32B应当从其本地主机信息中删除与所述零优先号相关的主机。流序列信息保证每个第一跳路由器32都不遗漏消息,从而保证全网型结构,并使每一个第一跳路由器32都能评估其他的每个第一跳路由器32的状态。
一旦交换了主机信息42并更新了其各自的本地主机信息,第一跳路由器32就可以基于其各自的本地主机信息以及选择标准,来选择主机34中的一个作为每个内容组36的主要主机。例如,这些第一跳路由器32都可选择主机34C来作为用于内容组36B的主要主机。通常,第一跳路由器32参照预先配置的选择标准来确定将哪个主机34选作每个内容组36的主要主机;但是,在某些实施例中,第一跳路由器32可以动态确定将哪个主机34选作每个内容组36的主要主机。该动态确定可以依赖于第一跳路由器32可实时评估的当前网络条件(如,主机连接速度、下游连接速度、可用的下游带宽、及其他相关网络)。
在选择用于每个内容组36的主要主机之后,第一跳路由器32接收来自主机34的数据流38、40。数据流38包括基本完全相同或者冗余的数据流,数据流40也包括基本完全相同或者冗余的数据流。数据流38通常提供与数据流40不同的内容。例如,数据流38可提供来自CNN的广播电视输入,数据流40可提供来自ESPN的广播电视输入。第一跳路由器32接收数据流38、40,并基于被选择为主要主机的那个主机34,智能地过滤冗余数据流38中的一个以及冗余数据流40中的一个。
在上例中,第一跳路由器32选择主机34A、34C作为主要主机。第一跳路由器32可以通过访问存储在每个第一跳路由器32的本地主机信息中的相关优先号,来确定主机34A、34C保持主要主机状态。因此,如图2所示,第一跳路由器32A转发数据流38A并过滤数据流38B、40B,第一跳路由器32B转发数据流40B。第一跳路由器32可以将数据流38A、40B传输到另一网络(例如,中间网络16(图1))、直接传输到用户设备(例如,用户设备20)、或者传输到其它任何公共网络(例如,用户网、局域网等)。
在转发数据流38A、40B时,每个第一跳路由器32可以通过将“keep alive(继续有效)”或“hello(喂)”消息传输给每一个其他第一跳路由器32,来监控其他第一跳路由器32的状态。在其他实施例中,每个第一跳路由器32通过路由协议的一个或多个更新、链路状态或网络错误消息(如网络不可抵达消息等),监视其他第一跳路由器32的状态。在为了便于说明而在“keep alive”或“hello”消息环境中讨论时,本发明的原理不应局限于检测路由器状态的方法,且本发明的原理可包括上述其他的方法。
这些“keep alive”或“hello”消息的交换使第一跳路由器32能够检测出发生的网络扰动。举例来说,如果第一跳路由器32A在给定的时间段,没有从第一跳路由器32B中接收到这些消息中的一个的话,则第一跳路由器32A可以确定已经发生了妨碍第一跳路由器32B转发数据流40B的网络扰动。
在确定已经发生了网络扰动后,第一跳路由器32就从本地主机信息中删除一些主机34,这些主机具有被指定为其第一跳路由器的第一跳路由器32A中失败的路由器,然后根据选择标准选择存储在他们各自的本地主机信息中的一个或多个剩下的主机34作为主要主机,以及转发源自这些新的主要主机的数据流。在上述实例中,其中,第一跳路由器32B传送“keep alive”或“hello”消息失败,第一跳路由器32A可在过滤数据流38B的同时,从其本地主机信息中删除主机34C,在选择新主要主机之后选择主机34B作为内容组36B的主要主机,并开始转发数据流38A和40A,对于驻留在用户设备20之上的终端用户应用来说,这些都是以透明的方式进行的(见图1)。
因此,第一跳路由器32B可能由于各种原因而发送“keep alive”或“hello”消息失败。在一个实例中,第一跳路由器32B可能完全失败并且可能终止所有路由功能。在此例中,第一跳路由器32B可以不转发数据流40B,直到管理员解决了造成第一跳路由器32B失败的问题。在其他的实例中,第一跳路由器32之间的连接可能失败,然而,此例中的第一跳路由器32B还可能不能从第一跳路由器32A接收“keep alive”或“hello”消息。因此,第一跳路由器32B可继续转发数据流40B,但是,一旦检测到网络失败,则第一跳路由器32B可执行上述步骤,以从存储于第一跳路由器32B上的本地主机信息中删除具有被指定为其第一跳路由器的第一跳路由器32A的那些主机34。以此方式,即使可能发生网络扰动而中断转发一个或多个的冗余数据流38、40,第一跳路由器32也能透明地将数据流38和数据流40每个中的一个提供给用户设备,而也不会有显著的中断。
图3示出第一跳路由器44的典型实施例的方框图。第一跳路由器44基本类似于图2第一跳路由器32中的任意一个,并且与本发明原理一致,可执行上述操作以透明地过滤冗余数据流。
在图示的实施例中,路由器44包括控制单元46,其维护路由信息48以反映当前的网络拓扑,例如,应用服务提供商网络30和路由器44可连接到的其他网络实体(如图1的中间网络16)。控制单元44还包括路由模块50、新的等源冗余协议52(“ESRP 52”)、本地主机信息54、以及选择标准56。路由模块50可以维护必要的协议以允许第一跳路由器44与驻留在网络中的其他实体进行通信,以及允许必要的逻辑电路执行相应的路由功能。
ESPR 52提供用于与通过全网型结构连接到第一跳路由器44的其他第一跳路由器交换本地主机信息54的协议。本地主机信息54维护与被配置为内容组的主机(例如,被配置为图2内容组36A的主机34A、34B)有关的本地信息,并且可以包括多个主机34中提供冗余数据流子集的主机的网络地址,被分配给该子集的每个主机的第一跳路由器的网络地址、对应于该子集的每个主机的优先号、以及流序列信息。选择标准56可表示为对于每个内容组选择主要主机的排序表,其中,这些内容组均连接至任意一个被配置为与第一跳路由器44进行通信的第一跳路由器,并且全部内容组直接连接至第一跳路由器44。
第一跳路由器44还包括接口卡(IFC)58A-58N(“IFC 58”),其在入站链路60A-60N(“入站链路60”)上接收数据流,并在出站链路62A-62N(“出站链路62”)上传输数据流。IFC 58通过高速交换模块64连接至控制单元46。在其他实施例中,IFC 58可以通过高速路由器连接至控制单元46。
起初,管理员通过在控制单元46中创建本地主机信息54和选择标准56,来配置第一跳路由器44以识别内容组(如内容组36)。通常,管理员还配置第一跳路由器44以用其他第一跳路由器来维护全网型结构,并可编辑路由信息48来启用该全网型结构。在配置第一跳路由器44之后,管理员可以启用第一跳路由器44,且控制单元46根据ESRP 52与其他第一跳路由器交换本地主机信息54。控制单元46可以通过交换模块64和IFC 58与所述其他第一跳路由器交换本地主机信息54。
在主机信息交换期间,控制单元46可接收来自其他第一跳路由器的主机信息,并且用所接收到的主机信息更新本地主机信息54。如果所接收到的主机信息表明主机保持零优先号,则控制单元46可以从本地主机信息54中删除该主机。接下来,控制单元46参考选择标准56确定控制单元46需要选择哪些主机作为主要主机。控制单元46通过将与这些主机相关的优先号设定到主机信息56中的主要主机优先号来选择这些主机。
在选择主要主机之后,第一跳路由器44就可以通过入站链路60接收来自如主机34的主机的数据流。控制单元46基于本地主机信息54识别出每个数据流的主机,并确定转发这些数据流中的哪个。例如,主机34A可以将数据流38A传输到第一跳路由器44,并且,一接收到数据流38A,控制单元46就可以访问本地主机信息54,来确定是否将主机34A选择为用于内容组36A的主要主机。特别地,控制单元56可确定与主机34A相关并存储在本地主机信息54中的优先号是否指明了主机34A为内容组36A的主要主机。如果存储在本地主机信息54中的优先号指明主机34A为主要主机,则控制单元56经由交换模块64、IFC 58中的一个、以及出站链路62中相关的一个来转发数据流38A。然而,如果优先号指明主机34A没被选择为内容组36A的主要主机,则控制单元46不转发数据流38A,而是过滤数据流38A。
如上所述,网络扰动可以造成连接在全网型结构中的如第一跳路由器44的一个或多个第一跳路由器中断。第一跳路由器44可以周期性地接收来自通过全网型结构连接到第一跳路由器44的每个其他第一跳路由器的“keep alive”或“hello”消息。在控制单元46不能从通过全网型结构连接到第一跳路由器44的任一个其他第一跳路由器来接收这些消息的情况下,第一跳路由器44的控制单元46可以检测到网络扰动。一旦不能从这些其他第一跳路由器其中之一接收这些消息之中的一个,则控制单元46首先识别这些第一跳路由器中的哪一个传输“keep alive”或“hello”消息失败。一旦识别出,控制单元46就从本地主机信息54中删除具有被识别为主机的第一跳路由器的失败了的第一跳路由器的任何主机信息。接下来,控制单元46参考选择标准56确定包含于本地主机信息54之中剩下的主机中哪些应被选作主要主机。选择了新的主要主机之后,控制单元46就转发源自这些新主要主机的数据流,并如上所述过滤源自未被指定为主要主机的主机的全部数据流。
尽管以上参照控制单元46进行了说明,但第一跳路由器44也可以包括具有可编程的处理器的任何设备或者能够执行指令完成上述功能的其他硬件。可编程处理器可以替代控制单元46,或者控制单元46可以包括可编程处理器。第一跳路由器44可以将指令存储到存储器或其他计算机可读介质中(图3中未示出),或在控制单元46包括可编程处理器的情况下,将它们内部存储到控制单元46中。以此方式,不管第一跳路由器44是否包括可编程处理器,第一跳路由器44都基于通过全网型结构连接至第一跳路由器44的第一跳路由器的当前网络状况,智能地过滤冗余数据流。同样地,无需修改终端用户应用来察觉冗余数据流,这进而可以如上所述地减少网络中的带宽消耗。
图4是示出进行智能过滤冗余数据流中的第一跳路由器的典型操作的流程图。参照图3的第一跳路由器44来说明该操作;然而,本发明的原理可以应用于驻留在网络中任何位置处的中间设备并且不应只限制于第一跳路由器。
最初地,管理员可配置第一跳路由器44来识别如图2中内容组36的内容组,并从包含于每个内容组的那些主机(如包含于内容组36A中的主机34A、34B)中选择主要主机。响应于该配置,第一跳路由器44的控制单元46创建本地主机信息54和选择标准56(64,66)。一旦被配置,第一跳路由器44就与通过全网型结构来与连接到第一跳路由器44的其他第一跳路由器交换本地主机信息54(68)。如上所述,控制单元46用在交换期间所接收的主机信息来更新本地主机信息54,并基于选择标准56选择包含于本地主机信息54中的主机作为主要主机(70)。
一旦控制单元56完成了选择主要主机,第一跳路由器44就可以通过入站链路60接收来自主机的数据流(72)。控制单元46确定每个所接收地数据流的源主机,并访问本地主机信息54确定数据流的源主机是否已被选择为主要主机(74,76)。在第一跳路由器44接收来自主要主机的数据流的情况下,控制单元46通过出站链路62转发来自主要主机的数据流(78)。然而,在第一跳路由器44接收来自未被选择为主要主机的数据流的情况下,控制单元46指令IFC 58过滤数据流(80)。因此,第一跳路由器44过滤从非主要主机中所接收的数据流,并且转发从主要主机所接收的那些数据流。
在转发和过滤数据流的整个过程中,第一跳路由器44可以确定通过全网型结构连接到第一跳路由器44的其他第一跳路由器的状态(82)。通常,如上所述,第一跳路由器44接收并传输“keep alive”或“hello”消息,来检测会影响来自主要主机的数据流的传输的网络扰动的发生(84)。在没有发生网络扰动的情况下,控制单元46继续从主机接收数据流、转发源自主要主机的那些数据流,并由控制单元46过滤源自未被指定为主要主机的主机的那些数据流(84的“否”分枝)。
然而,在第一跳路由器44检测到发生了妨碍与通过全网型结构连接到第一跳路由器44的另一个第一跳路由器进行通信的网络扰动的情况下,控制单元46从本地主机信息54中删除与失败第一跳路由器相关的主机信息(86)。在删除主机信息之后,控制单元46基于选择标准56选择遗留在本地主机信息54中的那些主机中的一个或多个作为主要主机(70),并如上所述,根据这些新近提拔的主要主机过滤和转发数据流。因此,基于通过全网型结构连接到第一跳路由器44的其他第一跳路由器的当前网络状况,第一跳路由器44可以智能地过滤冗余数据流,并且,尽管发生网络扰动,也透明地将数据流提供给用户设备。
图5是示出提供冗余数据流的智能过滤的典型计算机网络88的方框图。在此例中,计算机网络88在主机90A-90C(“主机90”)和用户设备92A-92Z(“用户设备92”)之间提供点对多点(P2MP)的连接,并且可以基本类似于图1的应用服务提供商网络14。计算机网络88包括第一跳路由器94A-94B(“路由器96”)和路由器96A-96D(“路由器96”),所有这些路由器通过多协议标签交换(multi-protocol 1abel switching,缩写为MPLS)建立和管理典型标签交换路径98A-98C(“LSP 98”)来建立P2MP连接。通过采用MPLS,第一跳路由器94可以请求通过计算机网络88的路径,即LSP 98。MPLS协议实例包括基于流量工程扩展的资源预留协议(RSVP-TE)和标签分发协议(LDP)。
如上所述,管理员可配置第一跳路由器94来创建主机信息和选择标准,还可以通过ESRP交换其各自的主机信息。一旦被配置,第一跳路由器94就可以将主机90中的一个或多个提拔为主要主机,并且从相应的主机90中接收数据流100A-100D。数据流100A、100B可以包括冗余数据流,数据流100C、100D也可以包括冗余数据流。
一旦接收数据流100,第一跳路由器94就可确定数据流100的源主机90是否已经被选作主要主机、转发源自主要主机的那些数据流100、并过滤源自未被选作主要主机的主机90的那些数据流100。为了转发源自主要主机的那些数据流100,第一跳路由器94可通过MPLS请求如LSP 98的路径,并通过LSP 98中的一个或多个来传输这些数据流100。
在发生上述网络扰动的情况下,第一跳路由器94可以通过上述检测装置来检测扰动。一旦检测出来,第一跳路由器94就可以从其本地主机信息中删除对应于第一跳路由器94的失败路由器的主机信息、从其本地主机信息里剩下的那些主机90中选择新的主要主机、并开始转发源自这些新提拔的主要主机的那些数据流100。通过这样做,第一跳路由器94可以通过MPLS请求的新LSP(图5中未示出)来建立所需的路径。例如,第一跳路由器94A可能失败,第一跳路由器94B可以选择主机90B作为主要主机。第一跳路由器94B可确定数据流100C应该转发到用户设备92A,然而,不存在从第一跳路由器94B到用户设备92A的LSP。因此,第一跳路由器94B可以通过MPLS请求新的LSP,其通过路由器96A、96B和96C路由数据流100C。在建立新的LSP之后,第一跳路由器94B可以将数据流100C转发给用户设备92A。因此,本文所述的本发明的原理可应用于计算机网络,如在主机90和用户设备92之间提供P2MP连接的计算机网络88。此外,本发明不应局限于任何一种计算机网络,而是可应用到提供冗余数据流传输的任何网络。
以此方法,根据本发明原理进行操作的中间设备(如图4路由器44),可提供对冗余数据流的智能过滤。此外,由于中间设备管理对冗余数据流的智能过滤,因此就无需修改驻留在用户设备中的终端用户应用程序以察觉冗余数据流。此外,通过将本发明的原理应用到第一跳路由器,这些第一跳路由器可以在其进入到网络之前过滤冗余数据流,因此,第一跳路由器可以阻止网络带宽的大量消耗。虽然本文参考第一跳路由器进行了说明,但本发明的原理可应用到在网络中的任意位置处的任何中间网络设备,且不应限制于第一跳路由器。已经说明了本发明的各种实施例。这些及其他的实施例都包括在所附权利要求书的范围内。
权利要求
1.一种方法,包括以下步骤通过中间设备接收由多个源提供的并且被指定到目的设备的多个冗余数据流中的一个或多个;以及通过所述中间设备过滤所述多个冗余数据流中的至少一个。
2.根据权利要求1所述的方法,其中,所述中间设备包括第一中间设备,所述方法还包括以下步骤通过所述第一中间设备接收来自第二中间设备的源信息,其中,所述源信息指定所述多个源中的至少一个。
3.根据权利要求1所述的方法,还包括以下步骤与第二中间设备进行通信,来从所述多个源中选择主要源。
4.根据权利要求3所述的方法,还包括以下步骤与所述第二中间设备进行通信,来过滤所述多个冗余数据流中除了由所选主要源所提供的一个以外的其他冗余数据流。
5.根据权利要求3所述的方法,还包括以下步骤基于选择标准从所述多个源中选择所述主要源。
6.根据权利要求3所述的方法,其中,接收所述源信息包括以下步骤通过等源冗余协议,使用所述第一中间设备接收来自所述第二中间设备的所述源信息。
7.根据权利要求3所述的方法,其中,接收所述源信息包括以下步骤接收包括以下信息的源信息连接至所述第二中间设备的多个源的网络地址、所述第二中间设备的网络地址、连接至所述第二中间设备的所述多个源中每一个的优先号、以及流序列信息。
8.根据权利要求3所述的方法,其中,过滤所述多个冗余数据流中的至少一个包括以下步骤基于所述主要源的选择,通过所述第一中间设备进行过滤。
9.根据权利要求8所述的方法,其中,基于所述主要源的选择进行过滤包括以下步骤过滤从没有被选择为所述主要源的所述多个源接收的所述多个冗余数据流中的至少一个;以及转发从所述主要源接收的所述多个冗余数据流中的一个。
10.根据权利要求3所述的方法,其中,所述主要源为第一主要源,所述方法还包括以下步骤检测妨碍所述第二中间设备与所述第一中间设备进行通信的网络扰动;更新所述本地源信息,以反映所述第二中间设备的失败;以及基于所述本地源信息和选择标准,从所述多个源中选择第二主要源。
11.根据权利要求10所述的方法,其中,过滤所述多个冗余数据流中的至少一个包括以下步骤基于所述第二主要源的选择,通过所述第一中间设备过滤所述多个冗余数据流中的至少一个。
12.根据权利要求11所述的方法,其中,基于所述第二主要源的选择进行过滤包括以下步骤过滤从没有被选择为所述第二主要源的所述多个源接收的所述多个冗余数据流中的至少一个;以及转发从所述第二主要源接收的所述多个冗余数据流中的一个。
13.根据权利要求12所述的方法,其中,转发从所述第二主要源接收的所述多个冗余数据流中的一个包括以下步骤通过多协议标签交换协议建立标签交换路径;以及通过所述标签交换路径,转发从所述第二主要源接收的所述多个冗余数据流中的一个。
14.根据权利要求10所述的方法,其中,更新所述本地源信息以反映所述第二中间设备的失败包括以下步骤更新所述本地源信息,以删除与所述第二中间设备相关的源信息。
15.一种被设置为位于多个网络源和目的设备之间的中间网络设备,所述中间网络设备包括一个或多个接口卡,其接收由所述多个源输出的并且被指定到所述目的设备的多个冗余数据流中的一个或多个;以及控制单元,其过滤所述多个冗余数据流中的至少一个。
16.根据权利要求15所述的中间设备,其中,所述中间设备包括第一中间设备,其中,所述控制单元接收来自第二中间设备的源信息,其中,所述源信息用于说明所述多个源中的至少一个,以及其中,所述控制单元与所述第二中间设备进行通信,以从所述多个源中选择主要源。
17.根据权利要求16所述的中间设备,其中,所述第一中间设备与所述第二中间设备进行通信,来过滤所述多个冗余数据流中除了由所选主要源所提供的一个以外的其他冗余数据流。
18.根据权利要求16所述的中间设备,其中,所述第一中间设备与所述第二中间设备进行通信,以基于选择标准选择所述主要源。
19.根据权利要求16所述的中间设备,其中,所述控制单元通过等源冗余协议从所述第二中间设备接收所述源信息。
20.根据权利要求16所述的中间设备,其中,所述源信息包括连接至所述第二中间设备的多个源的网络地址、所述第二中间设备的网络地址、连接至所述第二中间设备的所述多个源中每一个的优先号、以及流序列信息。
21.根据权利要求16所述的中间设备,其中,所述控制单元通过基于所述主要源的选择来指令所述接口卡过滤所述多个冗余数据流中的至少一个,以指令所述接口卡过滤所述多个冗余数据流中的至少一个。
22.根据权利要求21所述的中间设备,其中,所述控制单元通过指令所述接口卡执行以下步骤,来基于所述主要源的选择指令所述接口卡进行过滤过滤从没有被选择为所述主要源的所述多个源接收的所述多个冗余数据流中的至少一个;以及转发从所述主要源接收的所述多个冗余数据流中的一个。
23.根据权利要求16所述的中间设备,其中,所述主要源为第一主要源,所述控制单元还检测妨碍所述第二中间设备与所述第一中间设备进行通信的网络扰动、更新所述本地源信息以反映所述第二中间设备的失败、以及基于所述本地源信息和选择标准从所述多个源中选择第二主要源。
24.根据权利要求23所述的中间设备,其中,所述控制单元通过基于所述第二主要源的选择来指令所述接口卡过滤所述多个冗余数据流中的至少一个,以指令所述接口卡过滤所述多个冗余数据流中的至少一个。
25.根据权利要求24所述的中间设备,其中,所述控制单元通过指令所述接口卡执行以下步骤,来基于所述第二主要源的选择指令所述接口卡进行过滤过滤从没有被选择为所述第二主要源的所述多个源接收的所述多个冗余数据流中的至少一个;以及转发从所述第二主要源接收的所述多个冗余数据流中的一个。
26.根据权利要求25所述的中间设备,其中,所述控制单元通过指令所述接口卡执行以下步骤,来转发从所述第二主要源接收的所述多个冗余数据流中的一个通过多协议标签交换协议建立标签交换路径;以及通过所述标签交换路径,转发从所述第二主要源接收的所述多个冗余数据流中的一个。
27.根据权利要求23所述的中间设备,其中,所述控制单元通过更新所述本地源信息以删除与所述第二中间设备相关的源信息,从而来更新所述本地源信息以反映所述第二中间设备的失败。
28.根据权利要求15所述的中间设备,其中,所述第一中间设备包括路由器,其与第二路由器进行通信,以确定过滤所述冗余数据流中的哪一个或哪一些。
29.根据权利要求15所述的中间设备,其中,所述中间设备包括路由器、会话边界控制器、交换机、网关、网络加速设备、防火墙、或者虚拟专用网络设备。
30.一种计算机可读介质,包括用于使可编程处理器执行以下步骤的指令接收由多个源提供的并且被指定到目的设备的多个冗余数据流中的一个或多个;以及过滤所述多个冗余数据流中的至少一个。
31.根据权利要求30所述的计算机可读介质,其中,所述指令还使所述处理器执行以下步骤从第二中间设备接收源信息;用所接收的源信息更新存储在所述第一中间设备上的本地源信息;以及基于所述本地源信息和选择标准从所述多个源中选择主要源。
32.根据权利要求31所述的计算机可读介质,其中,所述指令还使所述处理器与所述第二中间设备进行通信,以过滤所述多个冗余数据流中除了由所选主要源所提供的一个以外的其他冗余数据流。
33.根据权利要求31所述的计算机可读介质,其中,所述指令使所述处理器通过等源冗余协议从所述第二中间设备接收所述源信息来接收源信息。
34.根据权利要求31所述的计算机可读介质,其中,所述指令使所述处理器通过基于所述主要源的选择,通过所述第一中间设备过滤所述多个冗余数据流中的至少一个,来过滤所述多个冗余数据流中的至少一个。
35.根据权利要求31所述的计算机可读介质,其中,所述主要源为第一主要源,所述指令还使所述处理器执行以下步骤检测妨碍与所述第二中间设备进行通信的网络扰动;更新所述本地源信息,以反映所述第二中间设备的失败;以及基于所述本地源信息和所述选择标准,从所述多个源中选择第二主要源。
36.根据权利要求35所述的计算机可读介质,其中,所述指令使所述处理器通过基于所述第二主要源的选择过滤所述多个冗余数据流中的至少一个,来过滤所述多个冗余数据流中的至少一个。
37.一种网络系统,包括目的设备;多个源,其提供被指定到所述目的设备的多个冗余数据流;以及中间设备,其连接在所述目的设备与所述多个源中的至少一个源之间,用于接收来自所述多个源中的所述多个冗余数据流,并过滤所述多个冗余数据流中的至少一个。
38.根据权利要求37所述的网络系统,其中,所述路由器为第一路由器,所述系统还包括第二中间设备,将源信息提供给所述第一中间设备,其中,所述第一中间设备接收来自所述第二中间设备的所述源信息、用所接收的源信息更新存储在所述第一中间设备上的本地源信息、并基于所述本地源信息和选择标准从所述多个源中选择主要源。
39.根据权利要求38所述的网络系统,其中,所述第二中间设备通过等源冗余协议将所述源信息提供给所述第一中间设备;以及其中,所述第一中间设备通过所述等源冗余协议接收来自所述第二中间设备的所述源信息。
40.根据权利要求38所述的网络系统,其中所述第一中间设备通过基于所述主要源的选择过滤所述多个冗余数据流中的至少一个,来过滤所述多个冗余数据流中的至少一个。
41.根据权利要求38所述的网络系统,其中,所述第一中间设备通过过滤从没有被选择为所述主要源的所述多个源接收的所述多个冗余数据流中的至少一个,来基于所述主要源的选择进行过滤,并转发从所述主要源接收的所述多个冗余数据流中的一个。
42.根据权利要求38所述的网络系统,其中,所述主要源为第一主要源,所述第一中间设备还执行以下步骤检测妨碍所述第二中间设备与所述第一中间设备进行通信的网络扰动;更新所述本地源信息,以反映所述第二中间设备的失败;以及基于所述本地源信息和所述选择标准,从所述多个源中选择第二主要源。
43.根据权利要求42所述的网络系统,其中所述第一中间设备通过基于所述第二主要源的选择过滤所述多个冗余数据流中的至少一个,来过滤所述多个冗余数据流中的至少一个。
44.根据权利要求43所述的网络系统,其中,所述第一中间设备通过以下步骤,来基于所述第二主要源的选择进行过滤过滤从没有被选择为所述第二主要源的所述多个源接收的所述多个冗余数据流中的至少一个;以及转发从所述第二主要源接收的所述多个冗余数据流中的一个。
45.根据权利要求44所述的网络系统,其中,所述第一中间设备通过以下步骤转发从所述第二主要源接收的所述多个冗余数据流中的一个通过多协议标签交换协议建立标签交换路径;以及通过所述标签交换路径,转发从所述第二主要源接收的所述多个冗余数据流中的一个。
46.根据权利要求37所述的网络系统,其中所述第一中间设备包括路由器,其通过网络协议与第二路由器进行通信,以接收源信息,其中,所述源信息用于说明至少一个所述源。
47.根据权利要求37所述的网络系统,其中所述中间设备包括路由器、会话边界控制器、交换机、网关、网络加速设备、防火墙、或者虚拟专用网络设备。
全文摘要
本发明的原理使诸如路由器的中间设备智能地过滤由一个或多个主机所提供的冗余数据流。在网络扰动的情况下,路由器以可以减少网络资源(如带宽)的消耗而不必修改驻留在用户设备上的终端用户应用程序的方式,停止过滤现正需要的冗余数据流中的一个。因此,尽管会发生可能妨碍用户设备接收数据流的网络扰动,但根据本发明原理工作的路由器仍可以透明地为用户设备提供数据流。
文档编号H04L12/12GK1968172SQ200610145718
公开日2007年5月23日 申请日期2006年11月14日 优先权日2005年11月14日
发明者托马斯·J·普萨泰里 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1