定源多播组地址到源地址的映射的制作方法

文档序号:7864044阅读:215来源:国知局
专利名称:定源多播组地址到源地址的映射的制作方法
技术领域
本发明一般地涉及因特网协议,更具体地说,涉及主机预订管理协议。
背景技术
因特网协议(IP)通信一般提供网络上的三种不同类型的主机通信方法,即单播、广播和多播。单播是一种点到点的通信方法,最通常在两个主机需要相互交换数据,并且不涉及与多个主机共享数据时使用。广播就是要到达广播域内的所有主机,而多播则允许一组主机接收消息,而不将这些消息广播到广播域中的所有主机。
多播综述对于很多常见的网络传播应用而言,多播通常是一种优选的通信方法。这是因为多播是一种带宽节约技术,它通过同时向多个主机传递数据而减少了流量。利用多播的一个应用例子就是视频会议应用。希望接收视频的那些主机可以加入一个组,该组具有多播组IP地址。一旦接收机已加入了多播组,那么负责发送视频的服务器只需要将视频发送到所述多播组IP地址(与以下两种情况相对,一是专门向各个主机发送视频(单播),另一个是向网络上的全部主机发送视频(广播))。使用多播的其他应用包括公司通信、远程教育以及软件、股票报价和新闻的传播。
多播将数据传递到多个接收机,而不会加重源主机的负担。这是因为多播包在网络中由路径分叉点处的启用多播路由器(multicast-enabledrouter)(启用多播路由器是被配置为支持多播的路由器)复制。相反,多播的很多替代性技术要求源发送一份以上的数据副本。
多播组多播是基于组的概念。多播组是任意一组表示有意接收来自源的特定数据流的接收机。想要接收被发送给多播组的数据的主机必须使用因特网组管理协议(IGMP)(下面将讨论)加入该组。只有那些作为给定多播组的成员的主机才可以接收被发送给这个多播组的数据。
因特网组管理协议(IGMP)IGMP是主机和启用多播路由器用来形成及管理多播组的协议。为了加入一个组,主机向本地多播路由器发送IGMP成员资格报告。该成员资格报告向本地多播路由器表明主机有意加入某一特定的多播组。该多播组的地址被包括在所述成员资格报告中。路由器认识到主机希望加入组,于是建立一条从源到该主机的路径,然后藉此向该主机转发数据。
存在着多种版本的IGMP,也即有多种版本的成员资格报告。IGMP版本1(IGMPv1)和IGMP版本2(IGMPv2)成员资格报告允许主机包括一个组地址,该组地址用于标识所述主机希望加入的组。IGMP版本3(IGMPv3)允许主机不仅标识该主机希望加入的组,而且标识该主机期望数据所发自的源,从而扩展了IGMPv1和IGMPv2的能力。
定源多播(Source Specific Multicast,SSM)可能有多个源向单个多播组传送数据。例如,一个源可以向多播组传送股票报价,同时另一个源可以向同一多播组传送视频会议信息。已加入多播组以接收股票报价的主机可能会不情愿地也接收到视频会议数据。为了减轻这种潜在的负担,定源多播(SSM)通过在多播网内提供“源过滤”功能而扩展现有的多播协议。利用源过滤功能,当主机加入特定的多播组时,该主机不仅可以指定所述主机希望加入的多播组,而且可以指定期望从其处向所述多播组发送数据的源。源过滤功能允许主机滤除掉从未知的源发送到多播组的不需要的、甚至恶意的数据流。
SSM通过信道实现了源过滤功能,这些信道可被认为是组的扩展。信道由SSM组地址(G)和源地址(S)来标识。源向SSM组地址(G)传送数据。主机仅仅通过预订信道(S,G)(读成“S逗号G”)就可以接收数据。因此,在主机可以预订信道前,主机优选地需要知道SSM组地址(G)和源地址(S)。在IGMPv3成员资格报告中提供了指定SSM信道地址的能力(前面的说明书中曾经说过,IGMPv3报告允许主机提供组地址和源地址)。
然而,很多主机未用IGMPv3配置,和/或缺少发送IGMPv3成员资格报告的能力。虽然用IGMPv1和IGMPv2配置的主机具有在成员资格报告中指定组地址的能力,但是这些主机缺少指定源地址的能力。此外,网络上可能大量存在未用IGMPv3配置的主机,并且缺少有效的升级方法,这意味着这些主机在一段时间内还不能用IGMPv3来配置。这极大地限制了SSM的使用。结果,在主机变为IGMPv3兼容之前,原来被设计为运行在SSM网络中的很多应用都是无用的。因此,需要这样一种系统和方法,它能够在主机中的一个、一些或全部都缺少预订信道能力的网络中实现SSM功能。

发明内容
公开了一种生成信道地址的方法。该方法包括将从成员资格报告中获得的第一地址映射到第二地址,以生成信道地址。
在另一种实施方式中,公开了一种用于将多播网络上的一个或多个主机预订给一条或多条信道的多播网络设备(MND)。MND包括包含第一地址的存储器,以及SSM映射引擎,该引擎被配置为响应于包含在所述存储器中的第一地址,将所述第一地址映射到第二地址,以生成用于标识信道的信道地址。
以上是发明内容的概述,因此在必要的情况下包含了对细节的简化、概括和省略;因此,本领域的技术人员将会理解,这种概述仅仅是说明性的,而绝非是限制性的。对本领域的技术人员而言同样清楚的是,可以以多种方式实现这里所公开的操作,并且在不偏离这一发明及其更大范围的情况下,可以做出多种修改和改变。在下面阐述的、非限制性的详细描述中,仅由权利要求限定的本发明的其他方面将会变得清楚。


参考附图可以更好地理解本发明。
图1图示了根据本发明一种实施方式的示例性网络。
图2a和图2b图示了根据本发明,在允许主机接收在一条或多条信道上传送的数据时所涉及的动作。
图3是图示了根据本发明,为了允许主机接收信道上的数据而由SSM映射引擎通常执行的动作的流程图。
具体实施例方式
简介本发明的实施方式一般通过优选地提供单个地址,允许主机预订并接收在多播网络内的某一信道上传送的数据。以下内容阐述了用于实现本发明的模式的详细描述。这些描述只是想示意性地说明本发明,而不应被视作限制性的。
网络组件图1图示了根据本发明一种实施方式的示例性网络100。网络100包括被配置为在信道104上向接收机106传送数据的源102。网络100优选地是被配置为支持定源多播(SSM)通信的SSM增强网络。源102优选地是SSM源。这里所使用的SSM源是指被配置为向SSM组地址(G)传送数据的主机。接收机106优选地是SSM接收机。这里所使用的SSM接收机是指被配置为接收由SSM源传送的数据的主机。虽然优选地,源102和接收机106分别是SSM源和SSM接收机,但是源102和接收机106也可以是能够在网络100上通信的任何主机。这里所使用的信道标识出与SSM源(S)和目的地SSM组地址(G)相关联的SSM数据路径(也称为树)。信道由信道地址(S,G)(读为“S逗号G”)来标识,其中S代表被配置为在所述信道上将数据传送到G所代表的目的地SSM组地址的源的地址。
接收机106是按照组地址(G)110来寻址的组108的成员。组108优选地是SSM组,组地址110优选地是SSM组地址。然而,组108和组地址110也可以是可实现多播通信的任何组和组地址。
网络100也包括通信通路112和多播网络设备(MND)114。每条通信通路112都可以是直接通信链路、局域网(LAN)、广域网(WAN)、基于IP的网络(例如因特网)或者它们的某种组合。每个MND例如可以是多播路由器,或者有能力处理网络100上的数据的、相似配置的系统。MND 114(e)包括存储器116、SSM映射引擎118、SSM映射数据库120和消息传递引擎122。虽然不是必需的,但是MND 114(e)之外的一个或多个其他MND 114可以每一个都包括存储器116、SSM映射引擎118、SSM映射数据库120和消息传递引擎122。在所描述的实施方式中,消息传递引擎122是一个IGMP模块,但是消息传递引擎122也可以是在支持多播的多播网络中所使用的任何其他消息传递引擎。主机124以及包括数据库128在内的系统126也与网络100相连。
网络配置和操作为了帮助理解本发明,在以下的上下文中给出本发明所描述的实施方式,在该上下文中使用优选地包含单个地址的主机成员资格报告,以允许主机124预订一条或多条信道,例如信道104(e)。用在这里,主机成员资格报告是指由某个主机传送来表明该主机想要成为多播组成员的愿望的数据。所给出的对网络100的配置的描述只是为了提供可以更容易地理解本发明的上下文,而不想具有限制性。
源102(a)优选地被配置为在信道104(a)上传送数据。信道104(a)由信道地址(Sa,G)来表示,该信道地址(Sa,G)表明源102(a)被优选地配置为向(G所代表的)SSM组地址110传送数据。类似地,SSM源102(b)被配置来在信道104(b)上传送数据。信道104(b)由信道地址(Sb,G)来表示,该信道地址(Sb,G)表明源102(b)也被配置为向SSM组地址110传送数据。接收机106被优选地配置为只接收信道104(a)上的数据,因此能够滤除掉在信道104(b)上传送的任何数据。
传送成员资格报告图2a和图2b图示了根据本发明,在允许主机124接收在信道104(a)上传送的数据时所涉及的动作。一开始,在动作2,主机124向MND114(e)传送主机预订协议消息204,该消息包括第一地址206。优选地,在所描述的实施方式中,预订协议消息204是因特网组管理协议版本1(IGMPv1)或版本2(IGMPv2)成员资格报告,而第一地址206是SSM组地址,例如SSM组地址110,其代表了主机124希望预订的信道的组分量。为了描述得清楚,此后SSM组地址206将是指第一地址206。
IGMP是由主机(例如主机124)用来向紧邻的多播路由器(例如MND 114(e))报告主机组成员资格的主机预订协议。在预订协议消息204是IGMP成员资格报告的实施方式中,IGMP成员资格报告优选地是在应用打开主机124上的多播套接口时,由运行在主机124上的TCP/IP(传输控制协议/因特网协议)栈发送的。
映射地址在动作4,消息传递引擎122接收存储器116中的预订协议消息204,并将其中所包含的数据(包括SSM组地址206)提供给定源多播(SSM)映射引擎118。在本发明的一种实施方式中,MND 114(e)是被配置为执行计算机可读代码的多播路由器,并且SSM映射引擎118由多个模块的计算机可读代码组成,这些代码被设计为允许主机124这样的主机接收多播信道(例如信道104(a))上的数据。
在动作6,SSM映射引擎118接收SSM组地址206,并且查询静态SSM映射数据库120,以获得对应于SSM组地址206的第二地址208。在所描述的实施方式中,第二地址208优选地是被配置为向诸如SSM组地址206的组地址传送数据的源(例如SSM源102(a))的地址。针对SSM组地址206发现的所有对应的SSM源地址(如果有的话)全被返回到SSM映射引擎118,以如下所述地进行缓存及进一步的处理。为了描述简单,此后SSM源地址208将被用来指第二地址208。
优选地在IGMP层执行SSM组地址206到对应的SSM源地址208的映射(即,使用IGMP命令和协议)。静态SSM映射应当优选地是在查询静态SSM映射数据库120之前被配置。为了配置静态SSM映射数据库120,要启用静态SSM映射,并且构造SSM映射数据库120。优选地,为了启用静态SSM映射,在MND 114(e)上输入命令“ip igmp ssm-mapenable”。为了建立静态SSM映射数据库120,优选地在MND 114(e)上输入命令“ip igmp ssm-map static<acl-x><source-x IP address>”。<acl-x>参数被用于指定将被映射到<source-x IP address>参数的SSM组地址。例如,在所描述的实施方式中,优选地输入以下命令,以建立静态SSM映射数据库120ip igmp ssm-map static<group address><source 1 address>
ip igmp ssm-map static<group address><source 2 address>
可以认识到,<group address>是某个组(例如组108)的IP地址,<source 1 address>是将被映射到所述组的第一源(例如源102(a))的IP地址,<source 2 address>是也将被映射到所述组的第二源(例如源102(b))的IP地址。对于将被映射到所指派的源地址的任意数量的组地址,可以重复这个命令。
在动作8,在查询了静态SSM映射数据库120之后,SSM映射引擎118查询系统126的数据库128。在所描述的实施方式中,系统126是一个DNS(域名服务器)。如果需要的话,可以用命令“no ip igmp ssm-mapquery dns”来禁止数据库128的查询。域服务器应当优选地被配置在MND 114(e)上,以便查询数据库128。这可以用以下命令来实现“ipdomain-server<ip-address>”。
在构造数据库128时,为了发现对应于特定的多播组的源,优选地,使用A条记录来利用多播组IP地址执行反向DNS查找。如果系统126包括所述组地址的对应源地址,则系统126将返回对应的源地址。否则系统126优选地将查询转发给已知的根DNS服务器(未示出)。在本发明的一种实施方式中,系统126的网络管理员优选地确定源地址到组地址的映射,并且相应地构造数据库128。
在动作10,对应于SSM组地址206的源地址208位于数据库128内,并被返回到SSM映射引擎118。优选的是,从静态SSM映射数据库120获得的本地配置映射相对于包含在数据库128中的动态映射占有优先权。在动作12,当被接收到时,SSM映射引擎118优选地缓存源地址208,并由SSM组地址206和SSM源地址208生成信道地址210。
在动作14,MND 114(e)向源102(a)发起协议无关多播(PIM)加入(join)210,包括信道104(a)的信道地址。PIM是一种独立的路由协议,并且可被用来在SSM源(例如源102(a))和SSM接收机(例如接收机106(a))之间构建最短通信路径。PIM加入消息210优选地在主机124和源102(a)之间建立起通路,该通路允许主机124接收由信道104(a)上的源102(a)所传送的数据。
图3是图示了根据本发明,为了允许主机(例如主机124)例如仅仅利用IGMPv1或IGMPv2成员资格报告就可接收信道(例如信道104(a))上的数据而由SSM映射引擎118通常执行的动作的流程图。
一开始,消息传递引擎122接收存储器116中的、包括组地址(例如组地址206)在内的IGMP成员资格报告(步骤302)。该IGMP成员资格报告中的组地址标识出主机124希望预订的信道(例如,信道104(a))的组分量。在接收到IGMP报告后,SSM映射引擎118优选地执行某些验证,如步骤304中的伪代码所示。SSM映射引擎118优选地验证静态SSM映射被配置(如前面参考图2所描述的那样),IGMP报告是有效的IGMPv1或IGMPv2报告,以及包括在IGMP报告中的组地址是有效的SSM组地址。如果以上验证中有任何一个失败,则SSM映射引擎118继续正常的IGMP处理。然而,如果优选地所有的验证都被满足,则SSM映射引擎118查询SSM静态数据库(例如SSM静态数据库120)和域名服务器(DNS)数据库(例如数据库128),以找到与IGMP报告中所提供的SSM组地址相对应的源地址(步骤308)。
SSM映射引擎118首先查询SSM静态数据库。假如查找到一个对应的源地址(例如源地址208),那么优选地缓存该源地址,并且形成信道地址(例如信道地址210)(判决框310的“是”分支以及步骤318)。然而,如果在SSM静态数据库中没有查找到对应的源地址,则SSM映射引擎118前进以查询DNS数据库(判决框310的“否”分支)。
在查询DNS数据库之前,SSM映射引擎验证这样一种查询已被启用(判决框312)。如果对DNS数据库的查询未被启用,并且在SSM静态数据库中未曾找到对应的源地址,则优选地忽视IGMP报告(判决框312的“是”分支以及步骤314)。然而,如果对DNS数据库的查询被启用,则SSM映射引擎查询DNS数据库,以找到与IGMP报告中所提供的组地址相对应的源地址(判决框312的“否”分支以及判决框316)。
如果在DNS数据库中没有找到对应的源地址,则优选地忽视IGMP报告(判决框316的“否”分支以及步骤314)。然而,如果在DNS数据库中找到了对应的源地址,则这个对应的源地址被返回到SSM映射引擎118,在SSM映射引擎118处,源地址被缓存并被用来形成信道地址(例如,信道地址210)(判决框316的“是”分支以及步骤318)。
在步骤320,SSM映射引擎118向从SSM静态数据库中获得的源地址和/或从DNS数据库中获得的源发起协议无关多播PIM(Sa,G)加入。在本发明的另一种实施方式中,SSM映射引擎118向从SSM静态数据库和/或DNS数据库中获得的一个或多个或所有源地址发起PIM(Sx,G)加入(其中Sx是所述PIM加入将被传送到的源的地址)。将主机124加入信道104(a),这也被称为将主机124预订给信道104(a)。PIM(Sa,G)加入在主机124和由所获得的源地址标识出的源之间建立起一条通路。这条通路允许主机124接收由相应的信道上的源(例如,信道104(a)上的源102(a))所传送的数据。
虽然已经示出并描述了本发明的具体实施方式
,但是对本领域的技术人员来说显而易见的是,基于这里的教导,在不偏离这一发明及其更广范围的情况下可以做出多种改变和修改,因此,所附权利要求想要在它们的范围内包括那些落入本发明的真正精神和范围内的修改和改变。此外,可以理解本发明仅由所附的权利要求来限定。
实用性本发明的各实施方式可以用在连网领域。
权利要求
1.一种生成信道地址的方法,包括将第一地址映射到第二地址,以生成所述信道地址,其中,所述第一地址是从第一成员资格报告中获得的。
2.如权利要求1所述的方法,其中,所述第一地址是定源多播组地址。
3.如权利要求1所述的方法,其中,所述第二地址是定源多播源地址,该地址被配置为在由所述信道地址所标识的信道上向所述第一地址传送数据。
4.如权利要求1所述的方法,其中,所述信道地址是多播信道地址。
5.如权利要求1所述的方法,其中,所述成员资格报告是IGMP成员资格报告。
6.如权利要求5所述的方法,其中,所述成员资格报告至少是IGMP版本1成员资格报告和IGMP版本2成员资格报告中的一个。
7.如权利要求1所述的方法,其中,所述映射发生在IGMP层。
8.如权利要求1所述的方法,还包括用所述第一地址查询数据库;以及接收所述第二地址。
9.如权利要求8所述的方法,其中,所述数据库至少是域名服务器数据库和本地定源多播映射数据库中的一个。
10.如权利要求1所述的方法,还包括从主机接收所述成员资格报告。
11.如权利要求1所述的方法,还包括发起协议无关多播加入消息,以将主机加入由所述信道地址所标识的信道,所述协议无关多播加入消息包括所述信道地址。
12.如权利要求1所述的方法,还包括由所述信道地址生成第二成员资格报告。
13.如权利要求12所述的方法,其中,所述第二成员资格报告是IGMP版本3成员资格报告。
14.一种用于将多播网络上的一个或多个主机预订给一条或多条信道的多播网络设备(114),包括包含第一地址(206)的存储器(116);和定源多播映射引擎(118),其被配置为响应于包含在所述存储器中的所述第一地址,将所述第一地址(206)映射到第二地址(208),以生成标识信道的信道地址(210)。
15.如权利要求14所述的多播网络设备,还包括包含将所述第一地址关联到所述第二地址的信息的数据库。
16.如权利要求15所述的多播网络设备,其中,所述数据库是域名服务器数据库。
17.如权利要求15所述的多播网络设备,其中,所述数据库是所述多播网络设备上的本地数据库。
18.如权利要求14所述的多播网络设备,还包括消息传递引擎,其被配置为在所述多播网络上传送加入消息,以将所述主机预订给所述信道,所述加入消息包括所述信道地址。
19.如权利要求18所述的多播网络设备,其中,所述消息传递引擎是IGMP消息传递模块。
20.如权利要求14所述的多播网络设备,其中,所述第一地址是定源多播组地址。
21.如权利要求14所述的多播网络设备,其中,所述第二地址是被配置为在所述信道上传送数据的源的源地址。
22.一种编码在计算机可读介质中的计算机程序产品,所述计算机程序产品包括在计算机系统上可执行的第一指令集,其被配置为将第一地址映射到第二地址,其中所述第一地址是从成员资格报告中获得的;和在所述计算机系统上可执行的第二指令集,其被配置为由所述第一地址和所述第二地址生成信道地址。
23.如权利要求22所述的计算机程序产品,还包括在所述计算机系统上可执行的第三指令集,其被配置为通过向由所述第二地址标识出的源传送多播消息,将主机预订给由所述信道地址标识出的信道,所述多播消息包括所述信道地址。
24.如权利要求22所述的计算机程序产品,其中,所述第一指令集包括在计算机系统上可执行的第一指令子集,其被配置为用所述第一地址查询数据库,以获得对应的第二地址。
25.如权利要求22所述的计算机程序产品,其中,所述第一地址是定源多播组地址。
26.如权利要求22所述的计算机程序产品,其中,所述第二地址是被配置为在由所述信道地址标识出的信道上向所述第二地址传送数据的源的地址。
27.一种用于将多播网络上的一个或多个主机加入一条或多条信道的多播网络设备(114),包括包含第一地址(206)的存储器(116);和用于响应于包含在所述存储器中的所述信息,将所述第一地址(206)映射到第二地址(208)以生成标识信道的信道地址(210)的装置(118)。
28.如权利要求27所述的多播网络设备,还包括用于将所述第一地址关联到所述第二地址的装置。
29.如权利要求28所述的多播网络设备,其中,所述用于关联的装置是域名服务器数据库。
30.如权利要求28所述的多播网络设备,其中,所述用于关联的装置是所述多播网络设备上的本地数据库。
31.如权利要求27所述的多播网络设备,还包括用于在所述多播网络上传送协议无关多播加入消息,以将所述主机预订给所述一条或多条信道的装置,所述加入消息包括所述信道地址。
32.如权利要求31所述的多播网络设备,其中,所述用于传送所述加入消息的装置是IGMP消息传递模块。
33.如权利要求27所述的多播网络设备,其中,所述第一地址是定源多播组地址。
34.如权利要求27所述的多播网络设备,其中,所述第二地址是被配置为在所述信道上传送数据的源的源地址。
全文摘要
本发明公开了一种生成信道地址的系统和方法。所述方法包括将从成员资格报告中获得的第一地址映射到第二地址,以生成信道地址。还公开了用于将多播网络(100)上的一个或多个主机(124)预订给一条或多条信道(104)的多播网络设备(MND)(114)。该MND(114)包括包含第一地址(206)的存储器(116)以及SSM映射引擎(118),该引擎(118)被配置为响应于包含在所述存储器中的第一地址(206),将第一地址(206)映射到第二地址(208),以生成标识信道(104)的信道地址(210)。
文档编号H04L12/18GK1672359SQ03818291
公开日2005年9月21日 申请日期2003年7月31日 优先权日2002年7月31日
发明者阿里恩·伯尔斯, 艾斯布兰德·韦南德斯 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1