CN101247253A - Ip网络中基于虚拟分发网的多播传送方法 - Google Patents
Ip网络中基于虚拟分发网的多播传送方法 Download PDFInfo
- Publication number
- CN101247253A CN101247253A CNA2008101023700A CN200810102370A CN101247253A CN 101247253 A CN101247253 A CN 101247253A CN A2008101023700 A CNA2008101023700 A CN A2008101023700A CN 200810102370 A CN200810102370 A CN 200810102370A CN 101247253 A CN101247253 A CN 101247253A
- Authority
- CN
- China
- Prior art keywords
- distribution networks
- virtual distribution
- multicast packets
- virtual
- subscriber
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及IP网络中的多播传送方法,属于计算机通信技术领域。该方法包括,首先在IP网络中为每个多播会话建立一个虚拟分发网,该虚拟分发网由所有参加多播会话的用户主机及具有多播功能的路由器通过虚链路连接而成,并具有唯一的虚拟分发网标识;然后,在该虚拟分发网上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机。本发明一方面保持了原有基于虚拟分发网的多播传送方法的优点,如支持网络层多播的逐步部署,支持多播数据包的双向传送等,另一方面,简化了虚拟分发网的配置,有利于支持大规模多播应用并通过广播机制,保证多播数据包的正确传送。
Description
技术领域
本发明属于计算机通信技术领域,特别涉及IP网络中的多播(Multicast)传送方法。
背景技术
多播是一种有效的点到多点或多点到多点传送方法。目前,IP网络中提供的主要业务,如信息检索,电子邮件,即时通信等,都是建立数据包的单播传送(即点到点传送)技术之上。而许多新兴的业务,如Internet电视(即IPTV)、大型网络会议、大型分布式仿真等,涉及到大量计算机的同时交互,如果仍然采用单播,将浪费大量网络带宽资源,并且性能难以保证。而多播提供了一种有效的点到多点以及多点到多点传送机制,是这些业务顺利开展的关键。
为了支持IP网络上的多播,人们提出了许多方案,其中目前得到应用的方案主要有两种:IP多播和应用层多播。但是,IP多播存在一系列部署和应用上的难题:如不具备可渐进部署的能力,多播业务的不可管理和控制,域间多播不具备可扩展性等等,这些问题限制了IP多播的大规模部署及应用。另一方面,应用层多播又难以满足未来多播业务的需要,如对高速实时视频广播业务的支持。因此,仍然需要研究新的网络层多播方法。
针对现有IP多播方案存在的问题,本专利的发明人提出了一种“IP网络中基于虚拟分发网的多播传送方法”并申请专利(申请号为200710099365.4)。这种方法如下:首先,在网络中为每个多播会话建立一个虚拟分发网;所述的虚拟分发网由IP网络中的多个节点通过虚链路连接而成,其中,该节点包括参与多播会话的所有用户主机和选定的其他节点;由虚链路连接的两个节点互称为对方的虚邻居;该虚拟分发网具有一个唯一的IP地址标识,用来区分一个IP网络中的多个虚拟分发网;虚拟分发网上的每个节点建立并维护一个分发表,其中每个表项至少包括:虚拟分发网的标识、虚邻居列表、控制数据包在虚邻居之间的转发权限标志集合;然后,在虚拟分发网中,发送主机发送业务数据时,将接收主机的IP地址设置为虚拟分发网的IP地址标识;虚拟分发网上的每个节点对IP数据包进行分发,直到IP数据包被传送到虚拟分发网中的所有接收主机。上述专利发明具有许多优点,如支持网络层多播的逐步部署、更好地适应网络结构的动态变化、支持多播数据包的双向传送,并提供了一种简单有效的多播传送控制方法。这些优点有利于网络层多播的部署。
但是,上述多播方案存在一个问题:分发表的配置存在可扩展性方面的问题,这主要是由于采用转发权限标志集合来控制多播数据包的传送引起的。正如在该专利(申请号为200710099365.4)的实施方案中所描述的,每个转发权限标志集合可用一个N×N的矩阵来表示,其中N是当前节点在虚拟分发网上的虚邻居的个数,当该虚邻居的个数较少时,对转发权限标志集合的配置比较简单,当虚邻居的个数较多时,则需要配置大量的转发标志,并且该转发权限标志集合也将占用较多的存储空间,例如,当N=20,则需要配置20×20=400个标志,一个表项中光转发权限标志所占用的存储空间就大于50个字节,如果N的数目为30,则需要配置30×30=900个标志,一个表项中光转发权限标志所占用的存储空间就大于110个字节。当虚拟分发网的规模非常大时(比如上万个节点),无论是通过手工方式还是通过协议来配置这些节点上的分发表均较为复杂,因此,基于转发权限标志集合的虚拟分发网存在扩展性问题。
此外,还需要添加一定的机制来保证转发权限标志集合的正确性。转发权限标志集合是引导着多播数据包从发送用户主机到达所有接收用户主机,当转发权限标志配置是正确的,那么多播数据包能够正确传送,但是,如果转发权限标志集合在配置上出现问题,则会导致多播数据包的传送故障,例如出现回环(Loop),即数据包在网络中被反复传送。因此,在该传送方法上还需添加额外的机制,以保证转发权限标志集合配置的正确性。
为了解决上述两个问题,我们需要研究新的虚拟分发网结构以及基于这种虚拟分发网的多播传送方法。
发明内容
本发明的目的是为克服已有技术的不足之处,提出了一种简化的虚拟分发网结构以及新的基于这种虚拟分发网的多播传送方法,该方法在维持原有方法优点的基础上,进一步简化了虚拟分发网的配置过程,有利于支持大规模的多播应用并保证多播数据包的正确传送。
本发明提出的IP网络中的多播传送方法,其特征在于,该方法是基于虚拟分发网的多播传送方法,包括:首先,在IP网络中为每个多播会话建立一个虚拟分发网;所述的虚拟分发网由多个虚拟分发网节点通过虚链路连接而成,所述的多个虚拟分发网节点至少包括所有参加多播会话的用户主机和1个具有多播功能的路由器节点,所述的虚链路是指连接虚拟分发网节点的逻辑传送通道,由虚链路连接的两个节点互称为对方的虚邻居;虚拟分发网具有一个唯一的虚拟分发网标识,用来区分一个IP网络中的多个虚拟分发网;在该虚拟分发网的部分节点或全部节点上建立并维护一个分发表,所述的部分节点至少包括虚拟分发网上的所有路由器,所述的分发表由1个或1个以上分发表项组成,其中的每个分发表项对应着一个虚拟分发网且至少包括下述内容:虚拟分发网标识、1个或1个以上虚邻居的IP地址;然后,在该虚拟分发网上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机。
与原有的基于虚拟分发网的多播传送方法相比较,本发明保持了原有方法的优点,如支持多播的渐进部署,支持多播数据包的双向传送,支持对多播传送过程的控制等,此外,本发明的其他有益效果包括:
简化了虚拟分发网的配置过程,有利于支持大规模多播应用。在这种虚拟分发网上,每个分发表只要在各节点之间确定虚邻居关系即可建立起虚拟分发网,不必配置每个节点的转发权限标志集合。这将大大简化虚拟分发网的配置过程,不论是通过手工配置,还是通过协议动态进行配置,有利于支持大规模的多播应用。
保证多播数据包的正确传送。在本专利中,采用虚拟分发网上的广播来实现Internet上的多播,无论采用哪种广播机制(扩散法,或生成树等),都可充分保证多播数据包从发送用户主机正确传送到接收用户主机。
附图说明
图1为本发明方法的实施例网络以及虚拟分发网V0的示意图。
图2为本发明方法的虚拟分发网V0上各节点的分发表的示意图。
图3为本发明方法的多播数据包的传送过程的示意图(发送主机H1,扩散法)。
图4为本发明方法的虚拟分发网V0上的单个生成树的示意图。
图5为本发明方法的虚拟分发网V0上各节点的分发表的示意图(单个生成树)。
图6为本发明方法的多播数据包的传送过程的示意图(发送主机H1,生成树,单向)。
图7为本发明方法的多播数据包的传送过程的示意图(发送主机H4,生成树,双向)。
图8为本发明方法的虚拟分发网V0上的两个生成树的示意图。
图9为本发明方法的虚拟分发网V0上各节点的分发表的示意图(两个生成树)。
图10为本发明方法的多播数据包的传送过程的示意图(发送主机H4,生成树,双向)。
图11为本发明方法的对每个用户主机的收发进行控制的示意图。
图12为本发明方法的路由器上各虚邻居的收发权限的设置的示意图。
图13为本发明方法的实施例网络以及虚拟分发网V1的示意图。
具体实施方式
本发明的方法结合附图及实施例详细说明如下:
本发明方法的一种实施例的IP网络结构如图1所示。该实施例网络由七台主机(H1~H7)和七台路由器(R1~R7)组成。在该实施例网络中,假定四台主机(主机H1,主机H2,主机H4,主机H5)之间开展一次视频会议多播会话S。以下内容描述了在这个IP网络中实施本发明方法的过程。这些描述只是示意性的说明本发明,而不应被视作对本发明内容的限制。
本实施例的网络是采用IP协议的网络,目前,IP协议有两个版本,IPv4和IPv6,该多播传送方法可同时适用于IPv4网络或IPv6网络。本实施例中的网络采用IPv4协议加以说明。
本实施例的方法主要包括以下步骤:
首先,为多播会话S建立一个虚拟分发网V0,如图1所示。该虚拟分发网V0由参加多播会话S的四个用户主机节点(H1,H2,H4,H5)和三个具有多播功能的路由器节点(R1,R3,R7)通过虚链路连接而成。由虚链路连接的两个节点互称为对方的虚邻居,因此,在该虚拟分发网上,路由器R1有三个虚邻居(H1,R3,R7),路由器R3也有三个虚邻居(R1,H2和R7),路由器R7有四个虚邻居(R1,R3,H4,H5),用户主机H1只有一个虚邻居R1;用户主机H2只有一个虚邻居R3,用户主机H4和H5的虚邻居均为R7。
在该IP网络中,为虚拟分发网V0分配一个唯一的虚拟分发网标识,该标识可以用来区分V0与在此IP网络之中建立的其他虚拟分发网。在本实施例中,采用虚拟分发网上路由器R1的单播IP地址来标识V0,方法是:在路由器R1上添加一个虚拟网络接口,并为其分配一个单播IP地址(166.111.64.2),然后将此IP单播地址作为虚拟分发网V0的标识。在这种情况下,路由器R1被称为虚拟分发网V0的主节点。
在虚拟分发网上V0的每个节点都设置一个分发表,分发表中的每个表项都对应着该节点加入的一个虚拟分发网,并包括以下内容:虚拟分发网的标识,1个或多个虚邻居的IP地址。图2给出了虚拟分发网上各个节点的分发表,各子图a、b、c、d、e、f、g分别为主机H1、主机H2、主机H4、主机H5、路由器R1、路由器R3、路由器R7的分发表。这里假定此IP网络中只有一个虚拟分发网V0,因此,每个分发表中都只含有一个分发表项。上述分发表可以通过手工建立或协议自动建立,一旦这些节点上的分发表设置完成,即意味着虚拟分发网建立成功。需要指出的是,当用户主机只作为接收主机时,其上的分发表可以省略,因为该用户主机不需要再将多播数据包发给虚拟分发网上的其他虚邻居,因此,虚拟分发网上的部分用户主机可不必设置分发表。
然后,在该虚拟分发网V0上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机。为了实现多播数据包在虚拟分发网V0上的广播,常用的两种广播方法是扩散法或生成树法,分别介绍如下:
(I)扩散法假定发送用户主机为H1,H1直接将多播数据包发送给其在虚拟分发网V0上的虚邻居R1,该多播数据包的源地址为H1的IP地址,目的地址为R1的IP地址,同时,在该数据包的头部,以IP选项或新协议头的方式嵌入以下信息:虚拟分发网的标识,发送用户主机的地址以及发送多播数据包的序号。这里,假定是发送的多播数据包是第1个,即其发送序号为1。
虚拟分发网的每个路由器节点需要在分发表中的对应表项中添加以下信息:发送用户主机H1的IP地址以及已接收的来自H1的多播数据包的最大序号。这里为简单起见,假定这些最大序号的初始值均为0。
当虚拟分发网上的任意路由器节点从其某个虚邻居接收到一个多播数据包时,处理过程如下:该路由器节点首先从该数据包的包头提取出虚拟分发网标识并查询分发表,找到该虚拟分发网所对应的分发表项;然后,该路由器在该分发表项中找出与该多播数据包的发送用户主机所对应的已接收的多播数据包的最大序号,并将其与该多播数据包中的发送序号相比较:如果该多播数据包的发送序号大于已接收的最大序号,则意味着路由器没有转发过该多播数据包,路由器一方面将其转发给除发送该多播数据包的虚邻居之外的所有其他虚邻居,另一方面将已接收的最大序号调整为多播数据包的发送序号;否则,如果该多播数据包的发送序号小于或等于已接收的最大序号,意味着路由器已转发过该多播数据包,则路由器丢弃该多播数据包。
按照上述的处理过程,路由器R1收到来自虚邻居H1的多播数据包时,发现多播数据包的序号(为1)大于与发送用户主机H1对应的已接收的最大序号(0),因此,路由器R1将其传送给除发送该多播数据包的虚邻居之外的所有其他虚邻居(路由器R3和路由器R7),数据包的源地址切换为R1,目的地址切换为R3或R7,其他头部信息不变;此外,路由器R1更新与H1对应的已接收的最大序号为1。
这里,本发明假定实际网络中每段物理链路的延时是相同的,因此,R1发出的多播数据包将先到达路由器R3。R3发现多播数据包的序号(为1)大于与发送用户主机H1对应的已接收的最大序号(0),因此,路由器R3将其传送给除发送该多播数据包的虚邻居之外的所有其他虚邻居(主机H2和路由器R7),数据包的源地址切换为R3,目的地址切换为H2或R7;此外,路由器R3更新与H1对应的已接收的最大序号为1。
随后,路由器R7也收到来自虚邻居R1的多播数据包。R7发现多播数据包的序号(为1)大于与发送用户主机H1对应的已接收的最大序号(0),因此,路由器R7将其传送给除发送该多播数据包的虚邻居之外的所有其他虚邻居(主机H4和主机H5和路由器R3),数据包的源地址切换为R7,目的地址切换为H4或H5或R7;此外,路由器R7更新与H1对应的已接收的最大序号为1。
此后,路由器R7也收到了来自虚邻居R3的多播数据包。R7发现多播数据包的序号(为1)等于与发送用户主机H1对应的已接收的最大序号(1),因此,R7直接将该多播数据包丢弃。同理,当路由器R3收到来自虚邻居R7的重复多播数据包时,也会将其丢弃。
经过上述的过程,多播数据包上已经被传送到所有其他用户主机,用户主机H2、H4和H5。上述多播数据包的扩散过程如图3所示。
(II)生成树法—单棵树先建立一棵连接了虚拟分发网上所有节点的生成树,称之为虚拟分发网的分发树,然后发送主机可沿着这颗分发树传送到虚拟分发网上的所有接收用户主机。
一种建立分发树的方法是:首先,选择一个根节点;然后从根节点发送一个控制分组向整个虚拟分发网扩散;对于虚拟分发网的某个接收到该控制分组的节点来说,如果第一次从其虚邻居收到该控制分组,就将发送该控制分组的虚邻居标记为上游虚邻居,将其他虚邻居标记为树外虚邻居,然后该节点向上游虚邻居发送确认信息(上游节点在收到该确认消息之后将该节点标识为下游虚邻居),同时将该控制分组传送给除该上游虚邻居之外的所有其他虚邻居;如果该控制分组不是第一次收到,则将其丢弃。这样,一旦控制分组扩散到整个虚拟分发网,则每个节点的上下游节点均已确定,也即建立了一棵分发树。
这里设以R1为根节点的分发树如图4所示,其中,分发树上的链路用粗虚线标示,其他不属于分发树的链路用细虚线标示(两张子图(a)、(b)是一样的,不过调整了一下显示效果)。在该分发树的每个节点上,都需要标记其虚邻居是上游虚邻居还是下游虚邻居,并将既不是上游虚邻居也不是下游虚邻居的虚邻居标记为树外虚邻居(在具体实现时可用2个比特来标示,如00代表上游虚邻居,01代表下游虚邻居,1x代表树外虚邻居)。将标记的结果保存到分发表中的相应表项,如图5所示。各子图a、b、c、d、e、f、g分别为主机H1、主机H2、主机H4、主机H5、路由器R1、路由器R3、路由器R7的分发表。
在建立该分发树后,任意用户主机均可采用这棵分发树来传送多播数据包。这里,又存在两种传送方式:单向传送方式和双向传送方式,举例如下:
(2a)单向传送方式
假定发送用户主机为H1。H1可以采用单向传送方式将多播数据包沿分发树传送给所有接收主机,详细的传送过程如下:
H1首先将多播数据包发送给分发树的根节点R1,多播数据包的源地址为H1的地址,目的地址为虚拟分发网V0的标识。由于虚拟分发网的标识即为路由器R1的单播IP地址,因此,该数据包被送到R1。
R1接收到该多播数据包后,根据其目的地址可以判断该数据包要发往虚拟分发网V0,因此,R1查找自己的分发表,找到与虚拟分发网V0对应的分发表项,获得R1的下游虚邻居:用户主机H1,路由器R3和路由器R7。R1从分组的源地址可以知道该多播数据包来自用户主机H1,因此,R1将多播数据包直接转发给其他的下游虚邻居:路由器R3和路由器R7。
R1发送给路由器R3的数据包的源地址为R1,目的地址为R3,此外,R1还需要将虚拟分发网标识以一个IP选项(IP Option)或新协议头的方式***到多播数据包的头部。显然,该数据包将被路由到R3。R3接收到该数据包,可以从多播数据包的头部提取出虚拟分发网标识,然后查找分发表,找到该虚拟分发网标识所对应的分发表项,并从表项中提取其下游虚邻居H2,最后R3将多播数据包发送给用户主机H2,其中多播数据包的源地址切换为R3,目的地址切换为H2。
同样,R1将数据包发送给R7的处理过程类似。当R7在收到该多播数据包后,将其进一步发送给其下游虚邻居:用户主机H4和用户主机H5。
这样,H1发出的多播数据包沿分发树到达了虚拟分发网上的所有其他用户主机(H2、H4和H5),上述传送过程如图6所示。
(2b)双向传送方式
发送用户主机也可以采用双向传送方式将多播数据包发送给其他所有用户主机,这里,假定采用双向传送方式的发送用户主机为H4。
发送用户主机H4首先将多播数据包发送给自己的上游虚邻居R7,该多播数据包的源地址为H4的地址,目的地址为R7的地址,此外,H4还需将虚拟分发网标识以一个IP选项(IP Option)或新协议头的方式***到多播数据包的头部。当R7收到该多播数据包后,可以从多播数据包的头部提取出虚拟分发网标识,然后查找分发表,找到该虚拟分发网标识所对应的分发表项,并从表项中提取其上游虚邻居和下游虚邻居,其中上游虚邻居为R1,下游虚邻居为R4和R5。由于该多播数据包来自下游虚邻居R4,因此,路由器R7将该多播数据包发送给其他虚邻居R1和R5。R7发送给R1的多播数据包的源地址为R7,目的地址为R1,此外,R7还需要将虚拟分发网的标识以一个IP选项(IP Option)或新协议头的方式***到多播数据包的头部。当路由器R1收到该多播数据包时,判断该多播数据包来自于其下游虚邻居R7,因此,路由器R1将该多播数据包发送给其他的下游虚邻居:路由器R3和用户主机H1。同理,路由器R3在接收到多播数据包后,将其转发给其下游虚邻居H2。这样,多播数据包即由用户主机H4传送到所有其他用户主机H1、H2和H5。上述传送过程如图7所示。
(III)生成树法—多棵树
在上述单向传送或多向传送中,所有发送用户主机都是通过一棵分发树来将多播数据包传送到虚拟分发网上的所有其他节点。本实施例可以在一个虚拟分发网上建立多个分发树,让不同的发送用户主机选择不同的分发树,来改善分组的传送性能。图8给出了在虚拟分发网上建立的两个分发树,其中,子图8(a)是前述的以R1为根节点的分发树T0,子图8(b)是以R7为根节点的分发树T1,其中,分发树上的链路用粗虚线标示,其他不属于分发树的链路用细虚线标示。
图9给出了保存了各节点上的分发表,其中各子图a、b、c、d、e、f、g分别为主机H1、主机H2、主机H4、主机H5、路由器R1、路由器R3、路由器R7的分发表。为了区分属于同一个虚拟分发网上的不同分发树,需要给每个分发树分配一个标识,一个简单的方法是按照分发树建立的先后次序,如给T0的标识为0,给T1的标识为1,依此类推。对于虚拟分发网上的每个节点来说,需要分别标记出分发树T0和T1的上游虚邻居和下游虚邻居。
对于发送用户主机H4来说,首先选择一个分发树。由于分发树T1的根节点较T0的根节点离发送用户主机H4更近,因此,H4选择分发树T1可以改善分组的传送性能。在选择分发树后,发送用户主机仍然可以选择是采用单向传送方式还是双向方式来传送多播数据包,这里假定H4采用双向传送方式来传送多播数据包:
发送用户主机H4将多播数据包发送给自己在T1上的上游虚邻居,即路由器R7,其中,多播数据包的源地址为H4的地址,目的地址为R7的地址,同时将虚拟分发网的标识及所采用的分发树T1的标识保存到多播数据包的头部(采用IP选项或新的协议头)。R7接收到该多播数据包后,从多播数据包头部提取虚拟分发网标识,找到对应的分发表项,然后提取分发树的标识,找到T1对应的上下游虚邻居:共有4个下游虚邻居,分别是R1、R3、H4和H5。由于该多播数据包来自于H4,R7将其传送给所有其他的下游虚邻居:R1、R3和H5。R7发送给R1及R3的多播数据包的源地址为R7,目的地址分别为R1和R3,同时将虚拟分发网的标识及所采用的分发树T1的标识保存到多播数据包的头部(采用IP选项或新的协议头)。当R1接收到该多播数据包后,将其传送给分发树T1上的下游虚邻居H1。当R3接收到该多播数据包后,将其传送给分发树T1上的下游虚邻居H2。上述传送程如图10所示。可以对比图10和图7,显然,发送用户主机H4采用分发树T1来传送多播数据包时可以比采用分发树T0来传送节省延时。
在上述实施例中,虚拟分发网V0的拓扑为一个网状,本发明方法也可以直接建立一个树状的虚拟分发网,即建立的虚拟分发网即为一个虚拟分发树,在这种情况下,发送用户主机可以直接利用该虚拟分发树来传送多播数据包,就不需要在虚拟分发网上建立生成树的过程,其多播数据包的传送过程与生成树法(单棵)中的传送过程类似,不再赘述。
为了控制用户主机的发送和接收,虚拟分发网上的每个路由器节点可以为每个虚邻居设置两个权限标志(分别占用1个比特):节点从该虚邻居接收数据包的权限和节点向该虚邻居发送数据包的权限。假定多播传送控制要实现的目标是:用户主机H4可以采用双向传送方式发送多播数据包,其他用户主机均禁止发送;用户主机H2不允许接收,其他用户主机均可以接收,该控制目标如图11所示。为实现上述目标,可以设置路由器R1,R3和R7上分发表中的权限标志,如图12所示,各子图a、b、c分别为路由器R1、路由器R3、路由器R7的分发表,其中“可收”表示节点仅可从该虚邻居接收数据包,“可发”表示节点仅可以向该虚邻居发送数据包,“可收发”表示节点既可以从该虚邻居接收数据包又可向该虚邻居发送数据包,“禁收发”表示节点不可以从该虚邻居接收数据包且不可向该虚邻居发送数据包。
在上述实施方案中,虚拟分发网的标识是用一个IP单播地址来标识的,由IP单播地址分配的全网唯一性即可保证虚拟分发网的标识在IP网中的唯一性,当然,虚拟分发网还可以用其他方式来标识,比如用一个IP多播地址甚至新的标识符,只要这种标识方式能够保证在IP网络中区分各虚拟分发网。
对于一个多播会话S来说,除了为其建立上述的虚拟分发网V0之外,还可以再建立备份的1个或多个虚拟分发网。举例来说,可以建立一个备份用的虚拟分发网V1,如图13所示,该虚拟分发网由参加多播会话S的四个用户主机(H1,H2,H4和H5)和一个路由器R1组成,所有用户主机有且仅有一个虚邻居,即路由器R1。路由器R1同样为虚拟分发网V1的主节点,在路由器R1再建立一个新的虚拟网络接口并分配一个单播地址,用来标识虚拟分发网V1。当虚拟分发网V0无法工作时,比如路由器R7的多播转发功能出现故障,那么发送主机H1可以选择虚拟分发网V1来传送多播数据包。
Claims (9)
1、一种IP网络中的多播传送方法,其特征在于,该方法是基于虚拟分发网的多播传送方法,包括:首先,在IP网络中为每个多播会话建立一个虚拟分发网;所述的虚拟分发网由多个虚拟分发网节点通过虚链路连接而成,所述的多个虚拟分发网节点至少包括所有参加多播会话的用户主机和1个具有多播功能的路由器节点,所述的虚链路是指连接虚拟分发网节点的逻辑传送通道,由虚链路连接的两个节点互称为对方的虚邻居;虚拟分发网具有一个唯一的虚拟分发网标识,用来区分一个IP网络中的多个虚拟分发网;在该虚拟分发网的部分节点或全部节点上建立并维护一个分发表,所述的部分节点至少包括虚拟分发网上的所有路由器,所述的分发表由1个或1个以上分发表项组成,其中的每个分发表项对应着一个虚拟分发网且至少包括下述内容:虚拟分发网标识、1个或1个以上虚邻居的IP地址;然后,在该虚拟分发网上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机。
2、如权利要求1所述的多播传送方法,其特征在于,所述在虚拟分发网上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机的方法为扩散法,具体包括:发送用户主机向它的所有虚邻居发送多播数据包,所述的多播数据包中包含了该数据包的发送序号;虚拟分发网上的每个节点在接收多播数据包后,判断是否已经接收到来自同一个发送用户主机的相同序号的多播数据包,如果已收到,则丢弃该多播数据包,如果未收到,则该节点将该多播数据包转发给除发送该数据包的虚邻居之外的所有其他虚邻居,直到该多播数据包被传送到虚拟分发网中的所有接收用户主机。
3、如权利要求1所述的多播传送方法,其特征在于,所述在虚拟分发网上,发送用户主机采用广播方式将多播数据包传送到所有接收用户主机的方法为生成树法,具体包括:首先,在该虚拟分发网上,建立一棵连接虚拟分发网上所有节点的分发树;所述的分发树的根节点为任意一个虚拟分发网节点;在所述的分发树上的两个相邻的虚拟分发网节点之间形成上下游关系,虚拟分发网节点将分发树上靠近根节点的虚邻居标记为上游虚邻居,将远离根节点的虚邻居标记为下游虚邻居;然后,在所建立的分发树上,发送用户主机采用单向传送方式或双向传送方式将多播数据包传送给所有接收主机;
所述的单向传送方式为:发送用户主机首先将多播数据包发送给分发树的根节点,然后从根节点开始,每个接收多播数据包的虚拟分发网节点将其转发给其下游虚邻居,直到该多播数据包被传送到虚拟分发网的所有接收用户主机;
所述的双向传送方式为:发送用户主机将多播数据包直接发送给自己的上游虚邻居及所有下游虚邻居,每个接收多播数据包的虚拟分发网节点将其转发给分发树上除了发送该多播数据包的虚邻居之外的其他上下游虚邻居,直到该多播数据包被传送到虚拟分发网的所有接收用户主机。
4、如权利要求3所述的多播传送方法,其特征在于,还包括在该虚拟分发网中建立1个以上的分发树;每个分发树具有不同的根节点;每个分发树均拥有一个唯一的分发树标识,用来区分同一个虚拟分发网上的不同分发树;每个虚拟分发网节点上标记出每个分发树所对应的上游虚邻居和下游虚邻居;发送用户主机选择其中一个或多个分发树来传送多播数据包到所有接收用户主机。
5、如权利要求1所述的多播传送方法,其特征在于,所述的虚拟分发网构成一棵虚拟分发树,虚拟分发网节点均为该虚拟分发树的节点,该虚拟分发树的根节点是任意一个虚拟分发网节点,虚拟分发网上虚链路连接的两个节点在该虚拟分发树上形成上下游虚邻居关系;在所述虚拟分发网上发送用户主机采用广播方式将多播数据包传送到所有接收用户主机的方法如下:发送用户主机采用单向传送方式或双向传送方式将多播数据包传送给所有接收主机;
所述的单向传送方式为:发送用户主机首先将多播数据包发送给虚拟分发树的根节点,然后从根节点开始,每个接收多播数据包的虚拟分发网节点将其转发给其下游虚邻居,直到该多播数据包被传送到虚拟分发网的所有接收用户主机;
所述的双向传送方式为:发送用户主机将多播数据包直接发送给自己的上游虚邻居及所有下游虚邻居,每个接收多播数据包的虚拟分发网节点将其转发给虚拟分发树上除了发送该多播数据包的虚邻居之外的其他上下游虚邻居,直到该多播数据包被传送到虚拟分发网的所有接收用户主机。
6、如权利要求1、2、3、4或5所述的多播传送方法,其特征在于,所述的分发表项中还包括该节点从每个虚邻居接收数据包的权限;在多播数据包的传送过程中,虚拟分发网上的每个节点在收到来自某个虚邻居的多播数据包后,先要检查其从该虚邻居接收数据包的权限,如果权限许可,则对该数据包进行传送,否则,丢弃该数据包。
7、如权利要求1、2、3、4或5所述的多播传送方法,其特征在于,所述的分发表项中还包括该节点向每个虚邻居发送数据包的权限;在多播数据包的传送过程中,虚拟分发网上的每个节点在将多播数据包发送给某个虚邻居之前,先检查其向该虚邻居发送数据包的权限,如果权限许可,则可以向该虚邻居发送多播数据包,否则,不发送该数据包。
8、如权利要求1、2、3、4或5所述的多播传送方法,其特征在于,所述的虚拟分发网标识用一个IP多播地址来表示,或者用虚拟分发网上任意一个节点的IP单播地址来表示。
9、如权利要求1、2、3、4或5所述的多播传送方法,其特征在于,还包括在IP网络中为每个多播会话建立1个以上的虚拟分发网,这些虚拟分发网的节点均包括了参加该多播会话的所有用户主机,但包括不同的路由器节点集;发送用户主机选择其中的一个或多个虚拟分发网来传送多播数据包到所有接收用户主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101023700A CN101247253A (zh) | 2008-03-21 | 2008-03-21 | Ip网络中基于虚拟分发网的多播传送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101023700A CN101247253A (zh) | 2008-03-21 | 2008-03-21 | Ip网络中基于虚拟分发网的多播传送方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101247253A true CN101247253A (zh) | 2008-08-20 |
Family
ID=39947482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101023700A Pending CN101247253A (zh) | 2008-03-21 | 2008-03-21 | Ip网络中基于虚拟分发网的多播传送方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101247253A (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102714630A (zh) * | 2010-03-30 | 2012-10-03 | 雅马哈株式会社 | 通信装置、通信***及通信方法 |
CN103095588A (zh) * | 2013-01-17 | 2013-05-08 | 清华大学 | 基于多生成树的无死锁自适应路由方法 |
CN104718730A (zh) * | 2012-10-05 | 2015-06-17 | 思科技术公司 | 分段路由技术 |
CN106452695A (zh) * | 2016-10-12 | 2017-02-22 | 北京东土科技股份有限公司 | 冗余报文处理方法、装置及*** |
US9979601B2 (en) | 2013-03-15 | 2018-05-22 | Cisco Technology, Inc. | Encoding explicit paths as segment routing segment lists |
US10063475B2 (en) | 2014-03-06 | 2018-08-28 | Cisco Technology, Inc. | Segment routing extension headers |
US10122614B2 (en) | 2015-02-26 | 2018-11-06 | Cisco Technology, Inc. | Failure protection for traffic-engineered bit indexed explicit replication |
US10178022B2 (en) | 2014-07-17 | 2019-01-08 | Cisco Technology, Inc. | Segment routing using a remote forwarding adjacency identifier |
US10212076B1 (en) | 2012-12-27 | 2019-02-19 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping a node-scope specific identifier |
US10263881B2 (en) | 2016-05-26 | 2019-04-16 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
US10367737B1 (en) | 2012-12-27 | 2019-07-30 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10374938B1 (en) | 2012-12-27 | 2019-08-06 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10397101B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping identifiers |
US10397100B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products using a region scoped outside-scope identifier |
US10404583B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using multiple outside-scope identifiers |
US10404582B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using an outside-scope indentifier |
US10411998B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products |
US10411997B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Routing methods, systems, and computer program products for using a region scoped node identifier |
US10419334B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Internet protocol routing methods, systems, and computer program products |
US10419335B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products |
US10447575B1 (en) | 2012-12-27 | 2019-10-15 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10476787B1 (en) | 2012-12-27 | 2019-11-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10587505B1 (en) | 2012-12-27 | 2020-03-10 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US11722404B2 (en) | 2019-09-24 | 2023-08-08 | Cisco Technology, Inc. | Communicating packets across multi-domain networks using compact forwarding instructions |
-
2008
- 2008-03-21 CN CNA2008101023700A patent/CN101247253A/zh active Pending
Cited By (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102714630A (zh) * | 2010-03-30 | 2012-10-03 | 雅马哈株式会社 | 通信装置、通信***及通信方法 |
CN102714630B (zh) * | 2010-03-30 | 2016-01-20 | 雅马哈株式会社 | 通信装置、通信***及通信方法 |
US9929946B2 (en) | 2012-10-05 | 2018-03-27 | Cisco Technology, Inc. | Segment routing techniques |
CN104718730A (zh) * | 2012-10-05 | 2015-06-17 | 思科技术公司 | 分段路由技术 |
US10469370B2 (en) | 2012-10-05 | 2019-11-05 | Cisco Technology, Inc. | Segment routing techniques |
US10218610B2 (en) | 2012-10-05 | 2019-02-26 | Cisco Technology, Inc. | MPLS segment routing |
US10476788B1 (en) | 2012-12-27 | 2019-11-12 | Sitting Man, Llc | Outside-scope identifier-equipped routing methods, systems, and computer program products |
US10389624B1 (en) | 2012-12-27 | 2019-08-20 | Sitting Man, Llc | Scoped identifier space routing methods, systems, and computer program products |
US11784914B1 (en) | 2012-12-27 | 2023-10-10 | Morris Routing Technologies, Llc | Routing methods, systems, and computer program products |
US11196660B1 (en) | 2012-12-27 | 2021-12-07 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US11012344B1 (en) | 2012-12-27 | 2021-05-18 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10862791B1 (en) | 2012-12-27 | 2020-12-08 | Sitting Man, Llc | DNS methods, systems, and computer program products |
US10212076B1 (en) | 2012-12-27 | 2019-02-19 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping a node-scope specific identifier |
US10574562B1 (en) | 2012-12-27 | 2020-02-25 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10841198B1 (en) | 2012-12-27 | 2020-11-17 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10805204B1 (en) | 2012-12-27 | 2020-10-13 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10785143B1 (en) | 2012-12-27 | 2020-09-22 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10764171B1 (en) | 2012-12-27 | 2020-09-01 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10367737B1 (en) | 2012-12-27 | 2019-07-30 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10587505B1 (en) | 2012-12-27 | 2020-03-10 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10757020B2 (en) | 2012-12-27 | 2020-08-25 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10382327B1 (en) | 2012-12-27 | 2019-08-13 | Sitting Man, Llc | Methods, systems, and computer program products for routing using headers including a sequence of node scope-specific identifiers |
US10389625B1 (en) | 2012-12-27 | 2019-08-20 | Sitting Man, Llc | Routing methods, systems, and computer program products for using specific identifiers to transmit data |
US10594594B1 (en) | 2012-12-27 | 2020-03-17 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10397101B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products for mapping identifiers |
US10397100B1 (en) | 2012-12-27 | 2019-08-27 | Sitting Man, Llc | Routing methods, systems, and computer program products using a region scoped outside-scope identifier |
US10404583B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using multiple outside-scope identifiers |
US10404582B1 (en) | 2012-12-27 | 2019-09-03 | Sitting Man, Llc | Routing methods, systems, and computer program products using an outside-scope indentifier |
US10411998B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Node scope-specific outside-scope identifier-equipped routing methods, systems, and computer program products |
US10411997B1 (en) | 2012-12-27 | 2019-09-10 | Sitting Man, Llc | Routing methods, systems, and computer program products for using a region scoped node identifier |
US10419334B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Internet protocol routing methods, systems, and computer program products |
US10419335B1 (en) | 2012-12-27 | 2019-09-17 | Sitting Man, Llc | Region scope-specific outside-scope indentifier-equipped routing methods, systems, and computer program products |
US10447575B1 (en) | 2012-12-27 | 2019-10-15 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10757010B1 (en) | 2012-12-27 | 2020-08-25 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10735306B1 (en) | 2012-12-27 | 2020-08-04 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10476787B1 (en) | 2012-12-27 | 2019-11-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10721164B1 (en) | 2012-12-27 | 2020-07-21 | Sitting Man, Llc | Routing methods, systems, and computer program products with multiple sequences of identifiers |
US10498642B1 (en) | 2012-12-27 | 2019-12-03 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10708168B1 (en) | 2012-12-27 | 2020-07-07 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10374938B1 (en) | 2012-12-27 | 2019-08-06 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10652150B1 (en) | 2012-12-27 | 2020-05-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10652134B1 (en) | 2012-12-27 | 2020-05-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
US10652133B1 (en) | 2012-12-27 | 2020-05-12 | Sitting Man, Llc | Routing methods, systems, and computer program products |
CN103095588A (zh) * | 2013-01-17 | 2013-05-08 | 清华大学 | 基于多生成树的无死锁自适应路由方法 |
CN103095588B (zh) * | 2013-01-17 | 2015-09-30 | 清华大学 | 基于多生成树的无死锁自适应路由方法 |
US10270664B2 (en) | 2013-03-15 | 2019-04-23 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US11784889B2 (en) | 2013-03-15 | 2023-10-10 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US11689427B2 (en) | 2013-03-15 | 2023-06-27 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US11424987B2 (en) | 2013-03-15 | 2022-08-23 | Cisco Technology, Inc. | Segment routing: PCE driven dynamic setup of forwarding adjacencies and explicit path |
US10469325B2 (en) | 2013-03-15 | 2019-11-05 | Cisco Technology, Inc. | Segment routing: PCE driven dynamic setup of forwarding adjacencies and explicit path |
US11290340B2 (en) | 2013-03-15 | 2022-03-29 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US10164838B2 (en) | 2013-03-15 | 2018-12-25 | Cisco Technology, Inc. | Seamless segment routing |
US9979601B2 (en) | 2013-03-15 | 2018-05-22 | Cisco Technology, Inc. | Encoding explicit paths as segment routing segment lists |
US10764146B2 (en) | 2013-03-15 | 2020-09-01 | Cisco Technology, Inc. | Segment routing over label distribution protocol |
US11374863B2 (en) | 2014-03-06 | 2022-06-28 | Cisco Technology, Inc. | Segment routing extension headers |
US11336574B2 (en) | 2014-03-06 | 2022-05-17 | Cisco Technology, Inc. | Segment routing extension headers |
US10063475B2 (en) | 2014-03-06 | 2018-08-28 | Cisco Technology, Inc. | Segment routing extension headers |
US10382334B2 (en) | 2014-03-06 | 2019-08-13 | Cisco Technology, Inc. | Segment routing extension headers |
US10178022B2 (en) | 2014-07-17 | 2019-01-08 | Cisco Technology, Inc. | Segment routing using a remote forwarding adjacency identifier |
US10601707B2 (en) | 2014-07-17 | 2020-03-24 | Cisco Technology, Inc. | Segment routing using a remote forwarding adjacency identifier |
US10693765B2 (en) | 2015-02-26 | 2020-06-23 | Cisco Technology, Inc. | Failure protection for traffic-engineered bit indexed explicit replication |
US10122614B2 (en) | 2015-02-26 | 2018-11-06 | Cisco Technology, Inc. | Failure protection for traffic-engineered bit indexed explicit replication |
US10341222B2 (en) | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10341221B2 (en) | 2015-02-26 | 2019-07-02 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10958566B2 (en) | 2015-02-26 | 2021-03-23 | Cisco Technology, Inc. | Traffic engineering for bit indexed explicit replication |
US10742537B2 (en) | 2016-05-26 | 2020-08-11 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
US11489756B2 (en) | 2016-05-26 | 2022-11-01 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
US11671346B2 (en) | 2016-05-26 | 2023-06-06 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
US10263881B2 (en) | 2016-05-26 | 2019-04-16 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
US11323356B2 (en) | 2016-05-26 | 2022-05-03 | Cisco Technology, Inc. | Enforcing strict shortest path forwarding using strict segment identifiers |
CN106452695A (zh) * | 2016-10-12 | 2017-02-22 | 北京东土科技股份有限公司 | 冗余报文处理方法、装置及*** |
US11722404B2 (en) | 2019-09-24 | 2023-08-08 | Cisco Technology, Inc. | Communicating packets across multi-domain networks using compact forwarding instructions |
US11855884B2 (en) | 2019-09-24 | 2023-12-26 | Cisco Technology, Inc. | Communicating packets across multi-domain networks using compact forwarding instructions |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101247253A (zh) | Ip网络中基于虚拟分发网的多播传送方法 | |
US7389359B2 (en) | Method and system for intelligently forwarding multicast packets | |
US6944135B2 (en) | Methods and arrangements for establishing a group collaboration session utilizing multiple multicast distribution trees | |
CN101286990B (zh) | 二层组播的转发方法和装置 | |
CN101616014B (zh) | 一种实现跨虚拟专用局域网组播的方法 | |
CN100542127C (zh) | 一种基于多业务传输平台的组播实现方法 | |
CN101291240B (zh) | 一种组播流传输方法和*** | |
JP4436960B2 (ja) | パケット通信システムおよび移動通信システム | |
CN100527713C (zh) | Ip网络中基于虚拟分发网的多播传送方法 | |
CN100477635C (zh) | 一种域间组播的传输方法及边缘设备 | |
CN101789874A (zh) | 一种在pim-sm中实现组播树切换的方法、装置及路由设备 | |
CN109981308A (zh) | 报文传输方法及装置 | |
CN102598586A (zh) | 处理组播的方法和装置 | |
US10225091B2 (en) | Method for implementing point-to-multipoint multicast, network node, and system | |
CN1996956A (zh) | 实现组播流跨vlan转发的三层网络设备及方法 | |
CN102111279B (zh) | 一种组播数据的传输方法和设备 | |
CN106375211B (zh) | Vrrp负载均衡场景中的交换机数据处理方法和交换机 | |
EP1699169A1 (en) | Wireless base station, wireless mobile device, and wireless access network for reducing signalling traffic | |
CN101345641B (zh) | 一种组播接入设备及方法 | |
CN102025517A (zh) | 一种组播数据的传输方法及装置 | |
CN101388788B (zh) | 二层组播管理方法、***及二层交换机 | |
CN100542142C (zh) | 转变三层网络设备接口状态的方法和装置 | |
CN101227430B (zh) | 组播数据转发方法 | |
CN101394298A (zh) | 建立组播传输路径、实现组播传输的方法及装置 | |
CN100508467C (zh) | 一种转发层代理pim的方法及路由设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080820 |