通信网络中的子组多播的制作方法

文档序号:7667543阅读:200来源:国知局
专利名称:通信网络中的子组多播的制作方法
技术领域
本发明涉及组网和通信技术,并且更具体地涉及数字通信网络中从信源节点中多播信息给一个或多个目的节点。
背景技术
诸如互联网的数字通信网络是允许将储存在一个位置上的信息分发给位于不同地理位置上的一个或多个用户的公知系统。此信息(在本文中也称为“消息”)能够采用多种形式之中的任何一种形式,包括但不限于,文本、静止图象、音频和视频信息的形式。
虽然把数字通信网络用于将信息(例如,文件)从一个信源移动到一个目的地不是与众不同的,但日益希望将同一信息从一个信源传送至多个目的地。例如,对于许多接收器来说,通常观看在单一互联网网站上始发的诸如流视频的同一信息。
允许信息在多个信源和目的地之间进行传送的一种技术称为“多播”。例如,已如下定义利用网际协议(IP)支持的多播“IP多播是将IP数据报有效传输至利用单个IP目的地址识别的一组零个或多个主机的有效传输方式”(Deering,1989)。现在将更具体讨论多播。
在下面,讨论IP多播。IP(和其他类型的)多播通过使信源能够发送消息的单个拷贝给利用单个IPD类别多播地址间接识别的确实想接收信息的多个接收器来有效地支持一对多和多对多传输。此种机制远比同时发送多个消息给每个接收器或将此消息广播给网络上的所有节点有效得多。通过在网络中合适的点上而不是在终端系统上复制数据,IP多播由于类似生成树的数据分布树的效率是多方会议的一种自然解决方案。
多播基于“驻留在已有协议顶部”的一系列特定协议,以便将数据有效分发给所有感兴趣方。利用IP多播,接收机并不需要为了从发送器中接收业务而知道发送器是谁或在哪里。发送器不会知道接收机是谁。因为网络优化传送,所以发送器或接收器都不需要关心网络技术。
多播是一种基于接收机的概念;接收机通过利用诸如互联网组管理协议(Internet Group Management Protocol)(IGMP)的协议将其意图通知其子网络上的多播路由器来加入特定的多播对话组。随后利用网络基础结构将业务传送至那个组的所有成员。为了验证当前的成员资格,本地多播路由器周期性地发送IGMP主机成员资格查询给“所有主机(all hosts)”组。为了避免在每个成员主机都对此查询应答时将会出现的拥塞,每个主机将其报告的传输延迟随机的时间间隔。在此时间间隔结束时,此主机仅在它未发现来自另一主机的同一组的报告时才发送其报告。结果,对于每个有效组地址来说,尽管许多主机可能具有成员资格,但在应答中只发送一个成员资格报告。IGMP也可以用于将组成员资格信息从本地路由器传送至其他的多播路由器。
为了将多播分组从信源传送至其他网络上的目的地节点,多播路由器需要交换其已从直接连接至这些多播路由器的主机的组成员资格中收集的信息。具有许多不同的算法和协议用于交换此路由选择信息,诸如距离矢量多播路由选择协议(Distance Vector MulticastRouting Protocol)(DVMRP)、首先朝向开放式最短路径的多播扩展(Multicast extension to Open Shortest Path First)(MOSPF)和与协议无关的多播(Protocol Independent Multicast)(PIM)。根据通过这些协议之一获得的路由选择信息,在将多播分组发送给多播组时,多播路由器决定是否将此分组传送至它们的网络。最后,叶子路由器根据IGMP信息确定在其物理连接的网络上是否具有那个特定组的任何成员并决定是否传送此分组。
如果发送器将其信息(例如,视频或音频)流分层,不同的接收机能够选择接收不同的业务量并因此接收不同的质量。为此,此发送器必须将此信息编码为基本层(可接受的最低质量)和许多增强层,每个增强层以更多带宽为代价附加更多质量。例如,如果此信息是视频信息,这些附加层可以增加帧速率或增加图象的空间分辨率或同时增加这二者。将每个层发送给不同的多播组并且接收机能够单独决定签约多少层。


图1表示IP多播情况的一个示例,其中将信息流(例如,视频流)发送给四个接收器之中的每个接收器第一客户机101、第二客户机103、第三客户机105和第四客户机107。第一多播路由器(MR1)109能够在信源111和第二多播路由器(MR2)113与第三多播路由器(MR3)115之中每一个路由器之间为信息选择路由。第一客户机101与第二客户机103通过通知第二多播路由器113加入此组;并且第三客户机105与第四客户机107利用第三多播路由器115进行同样操作。第一客户机101接收诸如适于优化用于无线环境的编解码器的基本层(表示为“A1”的分组),而第二客户机103为了更好的服务质量(例如,更好的视频质量)而接收此基本层和附加层(表示为“A2”的分组)。第三客户机105与第四客户机107均接收表示为B1的分组的不同基本层,例如,适于有线线路编解码器的层。
为了实现有效传输,构造连接此多播组的所有成员的生成树。只有多播消息的一个拷贝通过(源服务器111与第一多播路由器MR1 109之间)网络中的任何链路,并且仅当路径在路由器上(例如,在这三个多播路由器MR1 109、MR2 113与MR3 115上)发散时才进行此消息的拷贝。注意业务复制点(诸如MR1 109、MR2 113和MR3 115)上多播流的“合并”涉及复合算法。
有关IP多播的更多信息可在Andrew S.Tanenbaum,ComputerNetworks,Third Edition,Prentice-Hall,New Jersey,1996上以及在互联网的“IP Multicast Initiative(IPMI)”的网站www.ipmulticast.com上找到。
在下面,讨论可靠多播情况。IP多播是不可靠的(基于用户数据报协议或“UDP”)并提供尽力传送,这导致偶尔的分组丢失。对于实时操作的诸如音频与视频的许多多播应用来说,这可能是可接受的(只要分组丢失在合理的限制内)。然而,对于例如复制品之间的同步消息的一些应用来说,必须保证不丢失关键信息。
可靠多播协议必须解决处理的一些典型问题如下●确认分组接收(ACK)或表示分组丢失(NACK)(也称为ACK/NACK内爆效应)时的网络负载,这通常利用聚合机理来解决。
●组管理;封闭、开放限制和开放无限制组。
●拥塞控制●可放缩性各种可靠协议与框架(例如,可靠多播框架)已被建议用于多播数据传送。不同于其中可靠的顺序数据传送的要求相当笼统的单播情况,不同的多播应用对于可靠性要求非常不同。例如,一些应用要求传送遵守总的顺序,而许多其他的应用并不如此要求。一些应用使许多或所有成员发送数据,而其他的应用仅仅具有一个数据源。一些应用具有复制数据,因此几个成员能够发送数据项,而对于其他应用来说,在单个信源上始发所有数据。这些不同都会影响可靠多播协议的设计。一些示例的可靠多播协议为可靠多播协议(ReliableMulticast Protocol)(RMP)、可放缩可靠多播(Scalable ReliableMulticast)(SRM)、可靠多播传送协议(Reliable MulticastTransport Protocol)(RMTP)、(Multicast File Transfer Protocol)多播文件传送协议(MFTP)。
IETF中的RMT(可靠多播传送Reliable Multicast Transport)工作组期望开始标准化不同的协议示例用于一对多多播应用。参见IETF的可靠多播传送(RMT)工作组的网站www.iftf.org/html.charters/rmt-charter.htm/。
例如,有关可靠多播的更多信息能够在IP MulticastInitiative(IP多播初始)(IPMI)网站www.ipmulticast.com上找到。
I在下面,讨论实时传送(控制)协议,即RT(C)P。实时传送协议(RTP)提供端对端网络传送功能,适于通过多播或单播网络服务来发送诸如音频、视频或仿真数据的实时数据的应用。RTP提供的功能包括有效负载类型识别、顺序编号、时间标记和传送监视。
利用控制协议(RTCP)扩充数据传送功能,此协议用于监视服务质量(QoS)并传送有关正在进行的对话中的参与者的信息。会议中的每个媒体流利用单独的RTCP流作为单独的RTP对话进行发送。RTCP报告提供有关从特定信源接收的数据的统计信息,诸如自前一报告以来丢失的数据分组的数量、丢失数据分组的累积数量、到达间抖动等。
在下面,讨论复制和例如类似于Quorum Consensus(定数一致)同步的同步情况。在服务或资源在系统的不同接点上出现多个逻辑上相同的示例时,“复制”此服务或资源。接入此资源的请求能够传送给其任何一个示例。几种机理可用于同步不同的拷贝也称为复制并使之一致。在复制中,不同的服务接入点(例如,IP地址)用于每种服务示例。
复制服务的主要原因如下●负载分布(拷贝到多个主机上的服务)●性能增加(服务被拷贝到多个主机并且有可能更靠近实际客户机)●可利用性(服务被拷贝到多个主机的服务)一般在所有客户机需要写访问整个服务时(或在此服务不能分离成独立实体时)进行复制。
在下面,讨论复制同步情况。在通过网络共享数据的情况中,参与者也许试图(几乎)同时操纵共享目标。对共享目标实施同时动作可以导致用户之间不一致的观点。如果不仔细协调,连续的同时动作很快就会引起对于什么应该是同一共享数据的不同观点。
复制资源需要保持同步/一致/相干;即,任何写访问必须传送给所有的复制品。大致有两种方案用于这样的同步在下面,讨论主/从策略。对于此方案,具有保持主拷贝的一个主服务器和(用于每个复制品)几个从属服务器。主拷贝服务于所有的更新请求,但从属复制品是通过从主服务器中接收改变或从主服务器中进行拷贝来更新的(同步的)客户机可以从主机和从机两者的样本读取数据。
主服务器可以是可变的或固定的。在可变的主服务器的情况中,能写到任何服务器上。相应服务器随后负责更新所有的复制品。此程序称为Read-One-Write-All(读取一个写入所有)(ROWA)。在固定的服务器(也称为“简单ROWA”)的情况中,必须对那个服务器完成所有的写入操作。虽然此机制具有故障中心点(主服务器),但集中控制使之相对容易解决请求之间的冲突和保持一致性。已定义了几种增强情况用于可变的和固定的主服务器模型。
在下面,讨论分布式更新控制(表决)情况。此方案比主/从策略更坚固,这是因为不需要故障(主)中心点。基本思想是要求客户机在读或写复制的文件之前请求并获得多个服务器的准许。相应策略称为Quorum-Consensus(定数一致)QC机制。
已经定义几种变化情况,诸如一致多数QC对于每次写或读访问来说,需要大多数服务器的准许。
加权多数QC类似于一致多数QC,但现在一个服务器可以具有一票以上的表决权(例如,可靠或高速服务器)。
鬼影表决(voting with ghosts)伪(鬼影)服务器被用于出现故障的每个服务器。此鬼影服务器只参与写定数。此机制保证写定数一致在几个服务器出现故障的情况中仍然是有可能的(因为写定数通常由大多数服务器构成)。
已定义许多其他的机制。一般策略总是减小(用于写与读访问)定数的大小,以加速同步处理(并减少网络通信);和限制服务器故障的影响(例如,鬼影表决)。
相干协议是相干/同步模型的特定实施方式。可以有几种协议用于单个模型。至于哪个协议是最佳的,这取决于诸如读/写速率、同时接入服务的客户机的数量等问题。用于测量所有模型的标准是顺序一致的,这表示所有处理以同一顺序查看所有存储基准。因果一致性、流水线式随机存取存储器(PRAM)一致性和处理器一致性都削弱了处理以同一顺序查看所有存储基准的概念。另一方案是弱一致性、释放一致性和入口一致性,其中存储不总是一致的,但编程者能够利用诸如进入或离开关键区域的某些动作来迫使它变得一致。
在局域网(LAN)中,使用中央协调程序负责不同复制品之间的同步是可行的。然而,在广域网(WAN)中,此中央协调方案通常由于所牵涉的高等待时间(花费太多的时间来更新所有的复制品)和故障中心点而不是可行的。在WAN中,因此需要分布式解决方案。有关同步策略的更多细节能够在Andrew S.Tanenbaum,DistributedOperating Systems,Prentice-Hall,New Jersey,1995;以及Coulouris等人的Distributed SystemsConepts and Design,Addison-Wesley,Wokingham,1991中找到。
利用多播,总是将信息发送至已登记相应多播组(并且正在监听此多播端口)的所有客户机。在封闭多播组的情况中,可以知道客户机的数量。
可以在互联网的http//search.ietf.org/internet-drafts/draft-ietfidmr-igmp-v3-04.tex上找到的Internet GroupManagement Protocol,版本3(IGMPv3)的草案将增加信源选择可能性,诸如只监听一些信源或监听除了不需要的信源组之外的所有信源。然而,问题在于还没有预知能够只多播给一个子集的成员资格主机的机制。
有时(例如,对于QC同步来说),可能需要一种类型的多播,其中能够在总的多播组中定义子组的大小,这表示定义某一多播消息的接收器的数量。在QC同步的情况中,能够定义应接收某一同步消息的接收器的数量。
如上所述,RTCP用于传送有关正在进行的对话中的参与者的信息。此信息通过端对端来提供,即,从目的地将此信息提供给信源并且此信息只在RTP协议用于传送通常为实时的多媒体数据的情况中起作用。
最近的IETF草案(即,可通过互联网在网址http//search.ietf.org/internet-drafts/draft-dhelder-somcast-00.txt上获得的“Ipv4 Option for Somecast”)描述“某些播(Somecast)”,这是在IP标题中包括多达9个的目的地址并当这些目的地必须使用同样的链路时就执行组合单播路由选择的机制。在路由器确定目的地使用了不同的链路时,将分组作为通常单播进行发送。同样,如IETF草案中所述,此解决方案不是可扩展的。而且,此解决方案具有诸如要求信源必须已经知道所有目的地的缺点。
因此,需要一种机制,使消息能够只多播给给定的成员资格主机集之中的一个子组。
发明概述应强调在此说明书中使用的术语“包括”与“包含”用于指定所述特性、整数、步骤或组成部分的存在,并且这些术语的使用不排除一个或多个其他特性、整数、步骤、组成部分或组组的存在或增加。
根据本发明的一个方面,利用在包括一个或多个具有多播能力路由器的通信网络中用于将消息从一个信源分发给一个或多个主机的方法和设备来实现上述与其他目的。这利用以下步骤来实现在第一具有多播能力路由器中,生成第一表,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个被识别分支来说,此第一表包含它能够从中确定多少主机是此分支的一部分的成员资格相关信息。第一具有多播能力路由器能够接收将被分发的消息和第一值N1,此第一值N1指定此消息将分发给多少主机。第一具有多播能力路由器随后利用第一表来识别N1个主机及其相应分支,并将此消息与第二值N2一起分发给每个被识别分支,此第二值N2指定此消息将分发给此分支内的多少主机。
在本发明的另一方面中,至少一个被识别分支包括第二具有多播能力路由器;并且此技术还包括在每个第二具有多播能力路由器中,生成第二表,此第二表识别连接至第二具有多播能力路由器的分支,并且对于每个识别分支来说,此第二表包含它从中能够确定多少主机是此分支的一部分的成员资格相关信息;在第二具有多播能力路由器中,利用第二表来识别N2个主机及其相应分支;而且在第二具有多播能力路由器中,将此消息与第三值N3一起分发给每个被识别分支,此第三值N3指定此消息将分发给此分支内的多少主机。以这种方式,实现将消息分发给子组的递归技术。
在可选择实施例中,分支可以只将此消息分发给此分支内的所有主机。在其他的选择方案中,可以将此消息单播给此分支内的特定主机。
在本发明的其他实施例中,所生成的表还包括与每个分支主机相关的一个或多个度量。各种度量可以选择地指示下面任何一个度量此分支主机与第二具有多播能力路由器之间的距离;此分支主机与第二具有多播能力路由器之间的延迟;和此分支主机与第二具有多播能力路由器之间的通信相关的费用;和此分支主机与第二具有多播能力路由器之间的通信相关的带宽;此分支主机与第二具有多播能力路由器之间的传输延迟;和/或可靠性度量。
本发明还包括用于确定多少主机位于通信网络的分支内的技术。
附图的简要描述通过结合附图阅读下面的具体描述将明白本发明的目的和优点,其中图1表示数字通信网络中将视频流发送给四个接收器的IP多播情况的一个示例;图2是根据本发明的通信网络的一部分的方框图,其中此通信网络包括利用具有多播能力路由器(R1,R3,R6,R7,R8)和标准(不具有多播能力)路由器(R2,R4,R5)以各种方式互连的许多主机(H1,H2,H3,H4,H5,H6,H7,H8);图3是表示根据本发明的一个实施例用于将信息多播给许多主机的技术的流程图;和图4是表示根据本发明的另一方面用于确定分支成员资格信息的技术的流程图。
具体描述现在将结合附图描述本发明的各种特性,其中相同部分利用相同标号来标识。
现在将结合许多示例性实施例来更具体地描述本发明的各个方面。为了便于理解本发明,根据利用计算机系统和/或通信网络的单元执行的动作的顺序来描述本发明的许多方面。将认识到在每个实施例中,各种动作能够利用专用电路(例如,互连以执行特殊功能的分立逻辑门电路)、利用由一个或多个处理器执行的程序指令或利用这二者的组合来执行。而且,另外能够认为可以在包含适当的使处理器完成本文所述技术的计算机指令集的任何形式的诸如固态存储器、磁盘、光盘或载波(诸如射频、音频或光频载波)的计算机可读载体内完全实施本发明。因而,本发明的各个方面可以以多种不同形式来实施,并且所有这样的形式都认为在本发明的范畴内。对于本发明的各个方面之中的每个方面,任何如此形式的实施例在本文中可以称做为执行所述动作“而被构造的逻辑”或可选择地称做用于执行所述动作的“逻辑”。
本发明提出使之有可能将消息只多播给整个多播接收器分组之中的一个子组的多播接收器的方法和设备。此子组的多播接收器能够分布在此网络的不同分支中或者能够位于单个分支内。为了说明本发明的各个方面,参见图2,图2是包括利用具有多播能力路由器(R1,R3,R6,R7,R8)和标准(不具有多播能力)路由器(R2,R4,R5)以各种方式互连的许多主机(H1,H2,H3,H4,H5,H6,H7,H8)的通信网络的一部分的方框图。能看出相对任何一个路由器R1,...,R8,可以定义许多分支。例如,分支201是路由器R1的许多分支之一。分支201包括路由器R7与R8和主机H7与H8。任何一个分支内的路由器自身也可以具有分支。例如,相对(包括在分支201内)路由器R7来说,定义两个分支包括路由器R8与主机H8的第一分支203;和只包括主机H7的第二分支。
为了能够执行其中信源(或任何其他示例情况)定义消息接收器数量的子组多播,可以完成以下步骤1.如果未能通过例如管理的某一其他方式获得此信息,计算将执行子组多播的实体可利用的接收器的总数。
2.计算每个分支的接收器的数量。
3.将此信息只多播给整个组的多播接收器之中的一个子组的多播接收器。
为了使子组多播是有效的,可以根据用于(多播)路由选择协议的任何一个度量(诸如距离、延迟、费用、带宽、可靠性等)来进行子组多播。在本发明的可选择实施例中,子组多播能够基于度量的组合而不是仅仅基于单一度量。仅仅为了便于本发明的理解,只在此所述的示例性实施例中说明单一度量。
应明白对于实施本发明来说,单独执行上述三个步骤不是关键的。例如,能够构造其中通过每个分支的接收器数量的计算也知道将执行子组多播的实体可利用的接收器的总数的实施例,因此步骤1与2实际组合成单个步骤。
还应明白子组多播可以是递归处理,从而每个具有多播能力路由器将消息传送至具有无多播能力路由器的分支,因而那个分支中的每个主机将例如通过单播来接收此消息,或反而生成并将它自己的子组多播命令发送给它的一个或多个分支,结果让这些分支之中的每个分支内的一个或多个具有多播能力路由器确切地确定哪些主机将接收此消息。当然,不要求具有多播能力路由器在将消息传送至其分支时使用多播,它也能够选择根据接收的多播消息只将专用的单播消息发送至必须通知的一定数量的成员。
通过采用诸如在此公开文本的背景技术部分所述的任何一种可靠多播机制与协议可以获得可靠性能。
用于从具有多播能力路由器中将消息多播给一个或多个主机的技术的示例性实施例表示在图3的流程图中。此具有多播能力路由器可以从另一路由器中接收消息以及表示此消息所希望的接收器的数量是数字的一个值,N1(步骤301)。可选择地,如果具有多播能力路由器是此消息的信源,则在本地确定N1的值。
如果还未这样做,则此具有多播能力路由器生成识别连接至第一具有多播能力路由器的分支的一个表。对于每个识别分支来说,此表包括它从中能够确定多少主机是此分支一部分的成员资格相关的信息。选择地,根据一些实施例,所生成的表还包括与每个分支主机相关的一个或多个度量(步骤303)。
此具有多播能力路由器使用此表来识别N1个主机及其相应分支(步骤305)。在优选实施例中,识别主机包括查找其相关的一个或多个度量满足诸如最接近此具有多播能力路由器的某一准则的那些主机。
随后将此消息与第二值N2一起分发给每个识别分支,N2值指定此消息将分发给此分支内的多少主机(步骤307)。这允许接收的具有多播能力路由器对其下行主机执行同一多播处理,这次将值N2用作所希望的消息接收器的数量。
现在将描述一个示例来说明本发明的许多方面。
客户机可以利用IGMP向最靠近的路由器进行登记。在现有技术的协议(例如,MOSPF)中,在这些多播路由器之间建立生成树(或任何其他类型的图形优化树)。在图2所示的示例性结构中,R1是根,具有三个分支(R3,R6,R7-R8)。
如上所述,对于子组多播来说,优选执行下面的基本步骤1.计算将要执行子组多播的实体可利用的接收器的总数(如果还未通过例如管理的某一其他方式获得此信息的话)。
如上所述,本地路由器只从特定多播组的一个成员中接收信息。只要另一成员已报告其成员资格信息,就制止其他成员发送其成员资格信息。解决此问题的两种方案是a)使每个成员将其成员资格多播给本地路由器以及连接至本地网络的所有其他主机;或更有效地b)使每个成员将其成员资格单播给本地路由器。本地路由器能够在IGMP成员资格查询消息中指示所期望的成员资格报告方法(例如,参见IGMPv3)。
在一个单一或几个客户机已向多播路由器登记之后,那个路由器将连接的主机数量通知位于至根多播路由器的路径上的下一个多播路由器。为了在此机制中考虑相应的度量,不仅发送主机的数量,而且发送这些度量。利用此信息可以扩充这些多播路由器之间的任何已有多播路由选择消息或IGMP消息。
用于确定分支成员资格信息的程序表示在图4所示的流程图中。路由器通过发送成员资格查询消息给此分支来启动此程序(步骤401)。为了响应此查询,路由器从此分支中接收成员资格信息应答(步骤403)。对于此分支来说,此成员资格信息应答识别此分支中的每个具有多播能力路由器的身份。对于每个识别的具有多播能力路由器来说,此成员资格信息应答还包括代表连接至此识别的具有多播能力路由器的主机数量的一个值。选择地,在本发明的某些实施例中,对于连接至此分支中的每个具有多播能力路由器的每个主机来说,此成员资格信息应答还包括一个或多个相应度量。
在图2的示例中,利用相应的多播路由器发送下面的附加信息,例如,假定相关的度量是从主机至此路由器的距离(注意非多播路由器透明地转发此信息)自/至路由器 主机距离R3/R12 1R6/R12 1R8/R71 1R7/R11 2“/” 1 1从接收的所有信息中并考虑这些多播路由器自身之间的距离,R1将生成诸如下面的一个表经由 主机距离直接(通过IGMP) 1 1R2 2 3R4 2 4R7 1 2” 1 3主机的总数7每个多播路由器现在知道其相应分支中接收器的总数以及相关距离。这暗示根(即,此示例性拓扑中的R1)知道接收器的总数。
所收集的有关多播组成员数量的信息能够用于标注尺寸、统计、记帐等。如下所述,一种应用是将多播消息用作定数一致(QC)同步消息。
主机/服务器或多播传送树的根的请求能够触发对每个分支的成员的数量的计算。而且,现有的多播传送树建立协议可以利用此信息来扩充。在由主机/服务器或根触发时,可以使用递归传送至多播传送树的分支的简单的请求/应答机制。也可以周期性(例如,每隔10分钟)进行此计算,这是因为多播组成员的数量可能动态改变。
2.计算每个分支的接收器的数量。
参见上面的要点1所生成的表包括从中能够确定每个分支的接收器的数量及其相关度量的信息。例如,从所生成的树中能够看到,两个主机可通过路由器R7接入一个主机位于“2”的距离上,并且另一个主机位于“3”的距离上(这种情况中的相关度量为“距离”)。
3.只将此信息多播给整个多播接收器组之中的一个子组。
信源将具有有关必须接收此消息的那个分支中的接收器的数量的信息的多播消息(例如,QC同步消息)发送给此多播组。随后执行递归处理,从而每个分支内的多播路由器执行上述相同的步骤,以便在需要时还将此消息只多播给选择分支中一定数量的主机,以保证正确数量的主机接收此消息。
例如,假定将此消息发送给四个接收器,将出现以下情况R1将接收此消息并在其表中查找距离此多播组“最靠近”的四个接收器。(此处假定度量代表距离,并且主机的选择是基于哪些主机最靠近发送器;这些条件对于实施本发明都不是至关重要的)。(从此表中的距离确定的)四个最接近主机是直接连接的主机(距离1上的主机H1)、连接至R7的主机(距离2上的主机H7)、以及连接至R3的2个主机(距离3上的主机H 3与H4)或这些主机之一(主机H3或H4的任何一个)和连接至R8的主机(距离3上的主机H8)。为了说明而假定选择连接至R3的两个主机,R1将发送出下面的信息给多播路由器至 被通知的主机的数量R2 2R7 1注意此时不确定主机的身份。相反地,此确定是在每个“下行”具有多播能力路由器中递归执行此技术的结果。因而,继续以此为示例,R2(依次)将发送消息给R3,表示将通知两个主机。
注意不发送消息给R4(因为其主机都不足够靠近此信息消息的信源)。
接收表示被通知的其本地网络中的成员的数量的消息的多播路由器为了提供此信息而具有一些选择-它可以一直在本地网络上多播此消息,这是因为许多应用并不关心是否有太多成员接收消息,这使此机制简单。在一些实施例中,通过给多播消息附加指示符来(例如,在诸如标准IP可选标题扩展的可选标题扩展中)通知接收器是否允许它将此消息多播给太多成员(即,多于此子组多播消息中实际指定的数量),将此指示符仅仅作为一个选择也许是有益的。
-可选择地,由于此多播路由器从步骤1所述的解决方案中知道了成员,所以它能够根据接收的子组多播消息将专用的单播消息只发送给必须通知的一定数量的成员。如果此成员数量小于或等于此消息中所示的数量,则将利用本地网络中的多播通知所有成员。
-在其他的选择方案中,此多播路由器自己使用上述子组多播技术,从而允许“下行”具有多播能力路由器确定哪些主机应是接收者。
注意利用定义用于可靠多播协议的确认(来自接收器)获得可靠性.这适用于上表中的步骤3。
多播是“尽力”多播,这表示消息的发送器不知道成员是否已接收到此消息以及多少成员已接收到此消息。如上所述,可靠多播协议可以提供肯定(ACK)或否定(NACK)的确认。
除了现有的可靠多播机制之外,子组多播还可以如下总计确认本地多播路由器从直接连接的成员中接收确认并将此编译为确认消息,在朝向根的路径上将此确认消息发送给下一个多播路由器。此消息表示此分支中(肯定)确认此消息接收的成员的数量。每个多播路由器都这样做,并且根接收整个网络(多播传送树)的确认的总数。
注意上述机制也适用于共享多播传送树,其中许多发送器使用一个多播传送树。在这样的共享树中,具有几个根。
从本发明中获得许多益处。首先,本发明使之有可能将消息只多播给定义集合的成员资格主机之中一个子组的成员资格主机。
与使用RTCP传送有关对话参与者的信息相比,此机制也能够在对话开始之前提供此信息。本发明也将有关连接至不同分支的主机的数量的信息提供给不同的多播路由器。此信息随后还可以用于其他目的。
上述解决方案也提供计算网络中每个分支的多播组成员的数量的机制。将此信息报告给位于到多播路由选择树的根(或基准点)的路径上的其他多播路由器,在这些多播路由器中此信息能够用于几个目的(例如,标注尺寸、统计、记帐、服务分发决定等)。一旦知道多播组成员的总数,就将此信息用于提供更有效的子组多播。信源能够指定应接收特定多播消息的成员的数量并且此路由选择机制确保最靠近的主机(或满足某一其他基于度量准则的主机)接收此消息。最靠近的度量可以是当今特定用于IP的任何度量。
此有效机制的一种示例应用是用于复制服务器的QuorumConsensus(定数一致)同步。在此,为了满足对其施加的总容量和延迟要求,在网络中复制服务器。客户机连接任何一个不同的复制品。对于特定的客户机来说,复制品的选择可以基于诸如距离、可利用性等的考虑。利用服务器提供给客户机的服务是实时交互式服务,诸如多用户游戏或虚拟世界。客户机与此服务(环境)交互作用并从此服务环境中实时接收更新信息。由于此服务的多用户与实时交互特性,需要服务器相互保持同步。
此同步能够有益地采用上述基于度量的子组多播技术。例如,一旦服务器执行本地更新,它通过将更新通知其他服务器/复制品来同步这些其他服务器/复制品。传统上,将这样的更新发送给所有的复制品。然而,利用定数一致同步,只需要同步一个子集的复制品(即,此系统只需形成更新一致就可以)。如果知道复制品的总数,就从将被采用的相应机制中知道用于定数一致同步的子集的大小。使用数字作为示例,假定复制品的总数是10并且要同步的子集是6。基于度量的子组多播能够用于将5个最靠近的复制品与其中已完成初始更新的复制品同步(例如,利用延迟度量来定义“最靠近”)。同一方案能够用于读访问。在那种情况中,使用同一数字作为示例,必须对5个复制品的子集进行读,以保证至少一个复制品具有最新(即,正确)状态。
因而,假定总共10个复制品,只需要对至少6个复制品进行写访问并且只需要从至少5个复制品中执行读访问。基于延迟距离度量的子组多播保证对于写访问来说,联络最靠近的6个复制品,并且对于读访问来说,联络最靠近的5个复制品。从此方案中获得的益处在于利用多播的有效传输,并且只联络最少数量的复制品,从而有效使用网络通信资源。
已经结合特定实施例描述了本发明。然而,对于本领域技术人员来说,显然有可能利用除上述优选实施例之外的特定形式来实施本发明,这可以不脱离本发明的精神来完成。
例如,已经描述了多播路由器可以如何请求有关分支中的成员数量的信息。然而,在可选择实施例中,也可以由主机或服务器来进行此请求,这能够容易地利用查询/应答机制来完成。
并且,根据其中消息表示将接收此消息的主机的数量的实施例已经描述了本发明。然而,在可选择的实施例中,此消息反而可以表示将接收此消息的成员的百分比。(例如,此消息可以表示30%的成员将接收此消息)。在这样的实施例中,根多播路由器随后能够将其生成表中的信息(即,表示成员总数的信息)用于将以百分比表示的值映射为实际的成员数量。
因而,这些优选实施例只是示意性的并且不应认为是任何方式的限制。本发明的范畴利用所附的权利要求书给出,而不是利用前面的描述来给定,并且落入权利要求书范围内的所有变化与等效变换都预定包含在其中。
权利要求
1.在包括一个或多个具有多播能力路由器的通信网络中从信源中分发消息给一个或多个主机的一种方法,此方法包括在第一具有多播能力路由器中,生成第一表,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个识别分支来说,此第一表包含它能够从中确定多少主机是此分支的一部分的成员资格相关信息;在第一具有多播能力路由器中,接收将进行分发的消息和第一值N1,此第一值N1指定此消息将分发给多少主机;在第一具有多播能力路由器中,利用第一表来识别N1个主机及其相应分支;和在第一具有多播能力路由器中,将此消息与第二值N2一起分发给每个识别分支,此第二值N2指定此消息将分发给此分支内的多少主机。
2.根据权利要求1的方法,其中至少一个识别分支包括第二具有多播能力路由器;和此方法还包括在每个第二具有多播能力路由器中,生成第二表,此第二表识别连接至第二具有多播能力路由器的分支,并且对于每个识别分支来说,此第二表包含它从中能够确定多少主机是此分支的一部分的成员资格相关信息;在第二具有多播能力路由器中,利用第二表来识别N2个主机及其相应分支;和在第二具有多播能力路由器中,将此消息与第三值N3一起分发给每个识别分支,此第三值N3指定此消息将分发给此分支内的多少主机。
3.根据权利要求1的方法,其中对于每个识别分支来说,第一表还包括与每个分支主机相关的第一度量;和对于每个表项目来说,利用第一表识别N1个主机及其相应分支的步骤包括检查第一度量以确定主机是否满足被选择为N1个主机之一的准则。
4.根据权利要求3的方法,其中此表还包括至少一个附加度量;和对于每个表项目来说,利用第一表识别N1个主机及其相应分支的步骤还包括检查至少一个附加度量以确定主机是否满足被选择为N1个主机之一的准则。
5.根据权利要求3的方法,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的距离。
6.根据权利要求5的方法,其中利用第一表识别N1个主机及其相应分支的步骤包括利用第一表识别N1个最近主机及其相应分支。
7.根据权利要求3的方法,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的延迟。
8.根据权利要求3的方法,其中每个第一度量指示和此分支主机与第二具有多播能力路由器之间的通信相关的费用。
9.根据权利要求3的方法,其中每个第一度量指示和此分支主机与第二具有多播能力路由器之间的通信相关的带宽。
10.根据权利要求3的方法,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的传输延迟。
11.根据权利要求10的方法,还包括在第一多播路由器中,确定此第一多播路由器与此分支主机之间的传输延迟。
12.根据权利要求3的方法,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间通信的可靠性。
13,根据权利要求1的方法,其中至少一个识别分支包含不具有多播能力的路由器。
14.根据权利要求1的方法,其中生成第一表的步骤包括从第一具有多播能力路由器中发送成员资格查询消息给连接至第一具有多播能力路由器的每个分支;作为对此成员资格查询消息的响应,从每个分支中接收一个成员资格信息应答,其中对于此分支来说,每个成员资格信息应答识别此分支中的每个具有多播能力路由器的身份; 和从这些分支中接收的成员资格信息应答中生成第一表。
15.根据权利要求14的方法,其中对于此分支来说,每个成员资格信息应答还识别此分支中的所述每个主机的相应第一度量。
16.根据权利要求14的方法,其中每个分支中的每个具有多播能力路由器通过以下步骤来响应此成员资格查询消息的接收确定延迟时间;和仅在所述每个分支中的所述每个具有多播能力路由器未检测到由所述每个分支中不同的具有多播能力路由器发送的成员资格信息应答时,才在此延迟时间过去之后发送成员资格信息应答。
17.根据权利要求1的方法,其中周期性地生成第一表。
18.根据权利要求1的方法,其中至少一个识别分支包括第二具有多播能力路由器;和此方法还包括在每个第二具有多播能力路由器中,将此消息单播给此分支内的一个或多个主机。
19.根据权利要求18的方法,其中从每个第二具有多播能力路由器中,将此消息单播给此分支内的N2个主机。
20.根据权利要求1的方法,其中至少一个识别分支包括第二具有多播能力路由器;和此方法还包括在每个第二具有多播能力路由器中,将此消息多播给此分支内的所有主机。
21.根据权利要求20的方法,还包括在每个第二具有多播能力路由器中,在将此消息多播给此分支内的所有主机之前,首先从此消息中确定是否允许将此消息分发给N2个以上的主机。
22.根据权利要求21的方法,其中是否允许将此消息分发给N2个以上主机的指示包含在此消息的可选标题扩充部分中。
23.在包括一个或多个具有多播能力路由器的通信网络中从信源中分发消息给一个或多个主机的一种方法,此方法包括在第一具有多播能力路由器中,生成第一表,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个识别分支来说,此第一表包含它从中能够确定多少主机是此分支的一部分的成员资格相关的信息;在第一具有多播能力路由器中,接收将进行分发的消息和第一值N1,此第一值N1指定此消息将分发至的所有多播组成员的百分比;在第一具有多播能力路由器中,利用第一表来识别构成所有多播组成员主机的N1百分比的一组主机及其相应分支;和在第一具有多播能力路由器中,将此消息与第二值N2一起分发给每个识别分支,此第二值N2指定此消息将分发给此分支内的多少主机。
24.在数字通信网络中确定多少主机是连接至路由器的分支的成员的一种方法,此方法包括从此路由器中发送成员资格查询消息给此分支;和作为对此成员资格查询消息的响应,从此分支中接收成员资格信息应答,其中对于此分支来说,此成员资格信息应答识别此分支中的每个具有多播能力路由器的身份和表示连接至所述每个具有多播能力路由器的主机的数量的一个值。
25.根据权利要求24的方法,其中此分支中的每个具有多播能力路由器通过以下步骤来响应此成员资格查询消息的接收;确定延迟时间;和仅在所述每个分支中的所述每个具有多播能力路由器未检测到由所述每个分支中不同的具有多播能力路由器发送的成员资格信息应答时,才在此延迟时间过去之后发送成员资格信息应答。
26.根据权利要求24的方法,其中对于此分支来说,此成员资格信息还识别连接至此分支中的所述每个具有多播能力路由器的每个所述主机的相应第一度量。
27.根据权利要求26的方法,其中第一度量指示此主机与此具有多播能力路由器之间的距离。
28.根据权利要求24的方法,其中每个分支通过以下步骤来递归生成成员资格信息应答将成员资格查询消息下行传播给此分支内的每个具有多播能力路由器;并且在从一个具有多播能力路由器上行返回成员资格信息应答给下一个具有多播能力路由器时,更新成员资格信息应答。
29.根据权利要求24的方法,还包括通过以下步骤来生成表示连接至所述每个具有多播能力路由器的主机的数量的值从此分支中的每个成员中将成员资格信息多播给此分支的本地路由器以及连接至本地网络的所有其他主机。
30.根据权利要求24的方法,还包括通过以下步骤来生成表示连接至所述每个具有多播能力路由器的主机的数量的值从此分支的每个成员中将成员资格信息单播给此分支的本地路由器;和根据从此分支的所述每个成员中接收的成员资格信息,在本地路由器中生成成员资格信息应答。
31.用于在包括一个或多个具有多播能力路由器的通信网络中从信源中分发消息给一个或多个主机的一种设备,此设备包括在第一具有多播能力路由器中,生成第一表的逻辑,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个识别分支来说,此第一表包含它从中能够确定多少主机是此分支的一部分的成员资格相关的信息;在第一具有多播能力路由器中,接收将进行分发的消息和第一值N1的逻辑,此第一值N1指定此消息将分发给多少主机;在第一具有多播能力路由器中,利用第一表识别N1个主机及其相应分支的逻辑;和在第一具有多播能力路由器中,将此消息与第二值N2一起分发给每个识别分支的逻辑,此第二值N2指定此消息将分发给此分支内的多少主机。
32.根据权利要求31的设备,其中至少一个识别分支包含第二具有多播能力路由器;和此设备还包括在每个第二具有多播能力路由器中,生成第二表的逻辑,此第二表识别连接至第二具有多播能力路由器的分支,并且对于每个识别分支来说,此第二表包含它从中能够确定多少主机是此分支的一部分的成员资格相关的信息;在第二具有多播能力路由器中,利用第二表识别N2个主机及其相应分支的逻辑;和在第二具有多播能力路由器中,将此消息与第三值N3一起分发给每个识别分支的逻辑,此第三值N3指定此消息将分发给此分支内的多少主机。
33.根据权利要求31的设备,其中对于每个识别分支来说,第一表还包含与每个分支主机相关的第一度量;和对于每个表项目来说,利用第一表识别N1个主机及其相应分支的逻辑包含检查第一度量以确定主机是否满足被选择为N1个主机之一的准则的逻辑。
34.根据权利要求33的设备,其中此表还包含至少一个附加度量;和对于每个表项目来说,利用第一表识别N1个主机及其相应分支的逻辑包含检查第一度量和至少一个附加度量以确定主机是否满足被选择为N1个主机之一的准则的逻辑。
35.根据权利要求33的设备,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的距离。
36.根据权利要求35的设备,其中利用第一表识别N1个主机及其相应分支的逻辑包括利用第一表识别N1个最近主机及其相应分支的逻辑。
37.根据权利要求33的设备,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的延迟。
38.根据权利要求33的设备,其中每个第一度量指示和此分支主机与第二具有多播能力路由器之间的通信相关的费用。
39.根据权利要求33的设备,其中每个第一度量指示和此分支主机与第二具有多播能力路由器之间的通信相关的带宽。
40.根据权利要求33的设备,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间的传输延迟。
41.根据权利要求40的设备,还包括在第一具有多播能力路由器中用于确定第一多播路由器与此分支主机之间的传输延迟的逻辑。
42.根据权利要求33的设备,其中每个第一度量指示此分支主机与第二具有多播能力路由器之间通信的可靠性。
43.根据权利要求31的设备,其中至少一个识别分支包含不具有多播能力的路由器。
44.根据权利要求31的设备,其中生成第一表的逻辑包括用于从第一具有多播能力路由器中发送成员资格查询消息给连接至第一具有多播能力路由器的每个分支的逻辑;用于从每个分支中接收响应成员资格查询消息的成员资格信息应答的逻辑,其中对于此分支来说,每个成员资格信息应答识别此分支中的每个具有多播能力路由器的身份;和用于从这些分支中接收的成员资格信息应答中生成第一表的逻辑。
45.根据权利要求44的设备,其中对于此分支来说,每个成员资格信息应答还识别此分支中的所述每个主机的相应第一度量。
46.根据权利要求44的设备,其中每个分支中的每个具有多播能力路由器包含响应成员资格查询消息的接收的逻辑,所述逻辑包括确定延迟时间的逻辑;和仅在所述每个分支中的所述每个具有多播能力路由器未检测到由所述每个分支中不同的具有多播能力路由器发送的成员资格信息应答时才在此延迟时间过去之后发送成员资格信息应答的逻辑。
47.根据权利要求31的设备,其中周期性地生成第一表。
48.根据权利要求31的设备,其中至少一个识别分支包含第二具有多播能力路由器;和此设备还包括在每个第二具有多播能力路由器中,将此消息单播给此分支内的一个或多个主机的逻辑。
49.根据权利要求48的设备,其中从每个第二具有多播能力路由器中,将此消息单播给此分支内的N2个主机。
50.根据权利要求31的设备,其中至少一个识别分支包含第二具有多播能力路由器;和此设备还包括在每个第二具有多播能力路由器中,将此消息多播给此分支内的所有主机的逻辑。
51.根据权利要求50的设备,还包括在每个第二具有多播能力路由器中,在将此消息多播给此分支内的所有主机之前首先从此消息中确定是否允许将此消息分发给N2个以上的主机的逻辑。
52.根据权利要求51的设备,其中是否允许将此消息分发给N2个以上的主机的指示被包含在此消息的可选择标题扩充部分中。
53.用于在包括一个或多个具有多播能力路由器的通信网络中从信源中分发消息给一个或多个主机的一种设备,此设备包括在第一具有多播能力路由器中,生成第一表的逻辑,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个识别分支来说,此第一表包含它从中能够确定多少主机是此分支的一部分的成员资格相关的信息;在第一具有多播能力路由器中,接收将进行分发的消息和第一值N1的逻辑,此第一值N1指定此消息将分发至的所有多播组成员的百分比;在第一具有多播能力路由器中,利用第一表识别一组主机的逻辑,此组主机构成所有多播组成员主机及其相应分支的的N1百分比;和在第一具有多播能力路由器中,将此消息与第二值N2一起分发给每个识别分支的逻辑,此第二值N2指定此消息将分发给此分支内的多少主机。
54.用于在数字通信网络中确定多少主机是连接至路由器的分支的成员的一种设备,此设备包括用于从此路由器中发送成员资格查询消息给此分支的逻辑;和用于从此分支中接收响应成员资格查询消息成员资格信息应答的的逻辑,其中对于此分支来说,此成员资格信息应答识别此分支中的每个具有多播能力路由器的身份和代表连接至所述每个具有多播能力路由器的主机的数量的一个值。
55.根据权利要求54的设备,其中此分支中的每个具有多播能力路由器包含响应成员资格查询消息的接收的逻辑,所述逻辑包括确定延迟时间的逻辑;和仅在所述每个分支中的所述每个具有多播能力路由器未检测到由所述每个分支中不同的具有多播能力路由器发送的成员资格信息应答时才在此延迟时间过去之后发送成员资格信息应答的逻辑。
56.根据权利要求54的设备,其中对于此分支来说,此成员资格信息还识别连接至此分支中的所述每个具有多播能力路由器的所述每个主机的相应第一度量。
57.根据权利要求56的设备,其中第一度量指示此主机与此具有多播能力路由器之间的距离。
58.根据权利要求54的设备,其中每个分支包含通过将成员资格查询消息下行传播给此分支内的每个具有多播能力路由器来递归生成成员资格信息应答的逻辑,并且此逻辑在成员资格信息应答从一个具有多播能力路由器上行返回给下一个具有多播能力路由器时更新成员资格信息应答。
59.根据权利要求54的设备,还包括通过以下步骤生成表示连接至所述每个具有多播能力路由器的主机的数量的值的逻辑从此分支中的每个成员中将成员资格信息多播给此分支的本地路由器以及连接至本地网络的所有其他主机。
60.根据权利要求54的设备,还包括通过以下步骤生成表示连接至所述每个具有多播能力路由器的主机的数量的值从此分支的每个成员中将成员资格信息单播给此分支的本地路由器;和根据从此分支中的所述每个成员中接收的成员资格信息,在本地路由器中生成成员资格信息应答。
全文摘要
在包括一个或多个具有多播能力路由器的通信网络中从信源中分发消息给一个或多个主机。为此,第一具有多播能力路由器生成第一表,此第一表识别连接至第一具有多播能力路由器的分支,并且对于每个识别分支来说,此第一表包含它能够从中确定多少主机是此分支的一部分的成员资格相关信息以及(选择地)包含与每个分支主机相关的度量。第一具有多播能力路由器随后接收将进行分发的消息和第一值N1,此第一值指定此消息将分发给多少主机,并且第一具有多播能力路由器利用第一表来识别N1个主机及其相应分支。第一具有多播能力路由器将此消息与第二值一起分发给每个识别分支,此第二值指定此消息将分发给此分支内的多少主机。
文档编号H04L12/18GK1475063SQ01819006
公开日2004年2月11日 申请日期2001年10月24日 优先权日2000年11月16日
发明者H·哈梅莱尔斯, F·亨德谢德特, H 哈梅莱尔斯, 滦坏绿 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1