CN101841485B - 组播流量分担的方法及相关装置 - Google Patents
组播流量分担的方法及相关装置 Download PDFInfo
- Publication number
- CN101841485B CN101841485B CN201010187432.XA CN201010187432A CN101841485B CN 101841485 B CN101841485 B CN 101841485B CN 201010187432 A CN201010187432 A CN 201010187432A CN 101841485 B CN101841485 B CN 101841485B
- Authority
- CN
- China
- Prior art keywords
- router
- group address
- responsible
- address
- multicast message
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000005540 biological transmission Effects 0.000 claims description 9
- 230000004907 flux Effects 0.000 description 6
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1886—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with traffic restrictions for efficiency improvement, e.g. involving subnets or subdomains
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种组播流量分担的方法及相关装置,其中组播流量分担的方法包括:获取各路由器的IP地址和各路由器所负责的组地址范围信息;根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文。使用本发明实施例提供的技术方案,能够由多个路由器负责转发组播流量,降低对单一路由器的要求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种组播流量分担的方法及相关装置。
背景技术
现有的组播业务广泛使用协议无关组播(Protocol Independent Multicast,PIM)协议,使用该PIM协议的同一网段上的路由器之间需要选举一个指定路由器(Designated Routers,DR)。
在交换机将来自用户设备的互联网组管理协议(Internet GroupManagement Protocol,IGMP)Report报文发送给与自己连接的同一网段上的各路由器,该IGMP Report报文中包括该用户设备请求加入的组地址。虽然有多个路由器接收到该用户设备的IGMP Report报文,但是只有DR才能向上游路由器发送协议无关组播(Protocol Independent Multicast,PIM)加入请求报文,以表示用户设备请求组播源的节目,这样,后续当组播源向用户设备下发组播节目时,也只有该DR将来自组播源的组播节目流下发给该用设备。
现有技术具有如下缺点:
由于网络的同一网段中的各路由器中仅由一个路由器向用户设备转发组播源的组播节目流,这样仅由该一个路由器负责转发组播流量,因而对该路由器的组播流量转发能力和上行链路带宽都有很高的要求。
发明内容
本发明实施例提供一种组播流量分担的方法及相关装置,能够由多个路由器负责转发组播流量,降低对单一路由器的要求。
有鉴于此,本发明实施例提供:
一种组播流量分担的方法,包括:
同一个网段上的路由器获取所述同一个网段上各路由器的IP地址和各路由器所负责的组地址范围信息;所述IP地址是用于路由器建立邻居关系的接口的IP地址;
根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;
获取所述各路由器提供的用于哈希算法的掩码,并从所获取的多个掩码中选择一个掩码作为哈希算法的掩码;
当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;其中,所述哈希算法包括将所述哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;
当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文。
一种路由器,包括获取单元、第一确定单元和第二确定单元:
所述获取单元,用于同一个网段上的路由器获取所述同一个网段上各路由器的IP地址和各路由器所负责的组地址范围信息;所述IP地址是用于路由器建立邻居关系的接口的IP地址;所述获取单元,还用于获取各路由器提供的用于哈希算法的掩码;
选择单元,用于从各路由器提供的用于哈希算法的掩码中选择一个掩码作为所述哈希算法的掩码;
所述第一确定单元,用于根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;
当第一确定单元所确定的路由器为多个路由器时,所述第二确定单元用于以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;其中,所述哈希算法包括将所述哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;当第一确定单元所确定的路由器为一个路由器时,所述第二确定单元用于确定所述一个路由器负责转发所述组地址的组播报文。
本发明实施例中每个路由器都负责一段组地址,当一个组地址属于多个路由器的负责范围时,采用哈希算法,确定负责转发该组地址的组播报文的路由器,由于所采用的哈希算法包括将掩码与组地址进行与运算,将与运算结果与路由器的IP地址进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发,所以能够尽量使各路由器的负载均衡。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的组播流量分担的方法流程图;
图2A为现有技术提供的PIM Hello报文结构图;
图2B为本发明实施例提供的PIM Hello报文结构图;
图3为本发明实施例提供的组播流量分担方法流程图;
图4为本发明实施例提供的组播流量分担方法及DR切换流程图;
图5是本发明实施例提供的路由器结构图。
具体实施方式
参阅图1,本发明实施例提供一种组播流量分担方法,该方法中,每个路由器都能分担一部分组播流量,该方法具体包括:
101、获取各路由器的IP地址和各路由器所负责的组地址范围信息,所述IP地址是用于路由器建立邻居关系的接口的IP地址。
该实施例的各步骤的执行主体可以是同一个网段上的各路由器。
其中,每个路由器都可以预置一个用于哈希算法的掩码,如果该掩码在后续步骤103中被选择作为哈希算法的掩码,则会使同该掩码进行与运算结果相同的组地址分配给同一个路由器,因此,该掩码表示路由器希望能够使与运算结果相同的组地址的个数,即表示该路由器希望达到均衡分配时每轮分配到各路由器上的组地址个数,因此,该步骤还可以包括:获取各路由器提供的用于哈希算法的掩码;
具体的,路由器接收邻居路由器发送的hello报文,从hello报文中获取邻居路由器所负责的组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码,并且该路由器获取自己提供的用于哈希算法的掩码、IP地址和自己所负责的组地址范围信息。
102、根据所述组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器。
103、当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文;其中,所述哈希算法包括将哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发。
其中,步骤102和步骤103为选举负责转发组地址的组播报文的DR的过程。本发明实施例中针对每个用户设备请求加入的组地址,都进行一次DR选举。需要说明的是,本发明实施例中的各路由器为支持使用上述哈希算法选举DR的路由器,即支持扩展DR选举的路由器。
路由器可以在如下两种情况下,进行DR选举:
第一种情况、路由器接收到用户设备发送的携带用户设备请求加入的组地址的业务请求报文时,路由器需要针对该组地址进行DR选举,即选举负责转发该组地址的组播报文的DR。其中,业务请求报文可以为IGMP Report报文。
第二种情况、路由器确定有邻居退出网络或者有新的邻居加入网络时,获取自己所记录的用户设备请求加入的组地址,此时,路由器需要针对用户设备请求加入的组地址进行DR选举,在此之前,当路由器接收到用户设备发送的业务请求报文时,记录所述业务请求报文中携带的所述用户设备请求加入的组地址。
其中,该步骤可以从步骤102所获取的多个掩码中选择一个掩码,其中,可以选择IP地址最大的路由器提供的掩码,也可以选择IP地址最小的路由器提供的掩码,不影响本发明的实现,只要保证同一网段上的所有路由器在采用哈希算法进行计算时都采用相同的掩码就可以了。需要说明的是,本发明各实施例中所提及的掩码为与哈希运算有关的掩码,不是路由器IP地址的掩码,而且在步骤101中可以不用获取各路由器提供的用于哈希算法的掩码,而是在各路由器上预置一个统一的掩码值,各路由器直接采用预置的掩码值进行哈希运算,不影响本发明的实现。
104、当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文。
本发明实施例中每个路由器都负责一段组地址,当一个组地址属于多个路由器的负责范围时,采用哈希算法,确定负责转发该组地址的组播报文的路由器,由于所采用的哈希算法包括将掩码与组地址进行与运算,将与运算结果与路由器的IP地址进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发,所以能够尽量使各路由器的负载均衡。
参阅图3,如下实施例对组播流量分担方法进行详细介绍,该实施例中由用户设备发送的携带请求加入的组地址的IGMP Report报文触发DR选举,其具体过程包括:
301、路由器接收同一网段上的其他路由器发送的PIM Hello报文,PIMHello报文包括:该路由器所负责的组地址范围信息、该路由器的IP地址和掩码。
在同一网段上,各路由器会定时向其他路由器发送PIM Hello报文,以维持邻居关系。
现有技术中的PIM Hello报文格式如图2A所示,该报文中包括:可选类型(option type)、可选项值(option value)和可选项长度(option length),其中,可选类型(option type)定义了对应的可选项值(option value)的类型,现有技术中只有一个可选类型,该可选类型为保持时间,其他的可选类型保留未使用。可选项值(option value)是可变长度的项,为可选类型对应的具体的数值,该报文中为具体的时间值;可选项长度(option length)为可选项值的长度,以字节为单位,当可选项值为一时间值时,该可选项长度可以为2字节。
该步骤中的PIM Hello报文除了包括上述可选类型为保持时间的可选类型外,还扩展一个可选类型,该扩展的可选类型可以为预留的第9个可选类型,其表示扩展DR选举方法,可选项长度(option length)为可选项值(optionvalue)的长度,可选项值(option value)的具体格式如图2B所示,其包括:版本(Version)、掩码(Mask)、Group-list计数(GL Count)、类型(Type)、单个组地址的标记(Single Flag)和组地址(Group Address)。其中,版本(Version)表示PIM协议中DR扩展选举算法的版本,当前可以为1;掩码(Mask)取值范围为0~0xFFFFFFFF,表示路由器希望每轮均衡分配时分到的组地址个数,如果掩码(Mask)为0xFFFFFFFC,由于最后两位是0,则该路由器希望每轮均衡分配时分到的组地址个数为4个。Group-list计数(GL Count)为该路由器负责承担的第几个组地址段;类型(Type)表示该路由器是否有能力承担Group-list中组地址段的组播报文转发,比如,其取值为1或者2,其取值为1表示该路由器有能力承担Group-list中组地址段的组播报文转发,取值为2表示该路由器没有能力承担Group-list中组地址段的组播报文转发;单个组地址的标记(Single Flag)表示组地址(Group Address)中的组地址是否为一单一地址,例如,如果Single Flag取值为1,则表示紧接着的Group Address字段为一个地址,长度为4个字节;如果Single Flag取值为0,则表示紧接着的GroupAddress字段为两个地址,长度为8个字节,前4个字节为该路由器负责的组地址段的起始地址,后4个字节为该路由器负责的组地址段的终止地址。如图2B所示,GL Count 1表示第一个组地址段,GL Count n表示第n个组地址段。相应的,GL Count 1下面的Group Address为第一个组地址段的起始地址和终止地址;GL Count n下面的Group Address为第n个组地址段的起始地址和终止地址。
302、路由器根据各邻居路由器的PIM Hello报文中的可选类型(optiontype),确定该网段上所有路由器都支持扩展DR选举,根据各邻居路由器的PIM Hello报文,获取各邻居路由器所负责的组地址范围信息、掩码和IP地址。
本发明实施例假定同一网段上的所有路由器都支持扩展DR选举。如果同一网段上有一个路由器不支持DR选举,则可以采用现有技术的DR选举方案,如果选出的DR是支持扩展DR选举的路由器,则在该网段上所有支持扩展DR选举的路由器中,按照本发明提供的扩展DR选举方法进行DR选举;如果选出的DR不是支持扩展DR选举的路由器,则由该选出的DR负责流量转发。
303、路由器接收到用户设备发送的IGMP Report报文,该报文中携带用户设备请求加入的组地址。
该步骤的具体过程为:交换机接收到用户设备发出的IGMP Report报文,广播该IGMP Report报文,使各路由器接收到该IGMP Report报文。
304、路由器根据自己和各路由器的组地址范围,确定组地址范围包括用户设备请求加入的组地址的邻居集合。
例如,该网段上有3个路由器A、B和C,其中,路由器A的IP地址为10.164.19.1,其组地址(Group Address )为239.0.0.0-239.0.0.255,其掩码为0xFFFFFFFD;路由器B的IP地址为10.164.19.10,其组地址(Group Address)为239.0.0.240-239.0.0.255,其掩码为0xFFFFFFFC;路由器C的IP地址为10.164.19.5,其组地址(Group Address)为239.0.0.252-239.0.0.255,其掩码为0xFFFFFFCC。
假定用户设备发送的IGMP Report报文中的组地址G=239.0.0.250,则上述路由器A和B预设负责的组地址范围包括该239.0.0.250,所以该步骤中所确定的组地址范围包括用户设备请求加入的组地址的邻居集合为{A,B}。
305、获取邻居集合中IP地址最大的路由器的掩码。
续上述实例,获取路由器B的掩码0xFFFFFFFC。
306、路由器利用邻居集合中的路由器的IP地址、用户设备请求加入的组地址G、上述步骤305所获取的掩码,采用哈希算法(Hash),将邻居集合中的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发该组地址G的组播报文的路由器。
具体的,Hash算法公式可以为:
Result(G,M,N)=(a*(((G&M)XOR N)+b))mod 2^31
其中,G表示组地址,M为掩码,N为路由器的IP地址,a和b分别为一个数值,一般取大一些的质数,目的是为了能够将Hash结果更好的散列开。比如a为13715247,b为1357。
续上述实例,由于路由器B的IP地址大,所以采用路由器B的掩码M=0xFFFFFFFC,将M=0xFFFFFFFC和G=239.0.0.250代入上述公式中,分别将路由器A和路由器B的IP地址代入公式,得到的相应哈希值为463和26,则可以选择哈希值小的路由器作为转发该组地址G的组播报文的DR,也可以选择哈希值大的路由器作为转发该组地址G的组播报文的DR;如果各路由器的哈希值都相同,则可以选择IP地址大的路由器为DR,或者选择IP地址小的路由器为DR。具体如何进行选择可以采用多种方式,本发明对具体的选择方式不做限制,只要同一网段上的路由器都采用相同的选择方式即可。
需要说明的是,上述G&M表示组地址G与掩码M进行与运算,在掩码为M=0xFFFFFFFC时,由于掩码的最后两位为0,因而总有连续的四个组地址与掩码M进行与运算后结果相同,所以进行Hash计算的结果是:连续的4个组地址会分到同一个路由器上。其中,G&M的运算结果与N之间的运算关系可以采用多种运算关系,并不限于异或NOT,只要保证与运算结果相同的组地址分到同一个路由器上即可,至于分到哪个路由器上可以通过G&M的运算结果与N之间的运算关系、a、b等参数决定。
如果两个路由器A,B预设负责的组地址范围都是239.0.0.0-239.255.255.255,掩码M=0xFFFFFFFC,那么采用这个掩码做哈希运算后将会导致连续4个组地址分配到同一个路由器上,比如路由器A将可能成为239.0.0.0~239.0.0.3,239.0.0.8~239.0.0.11,......,连续4个组地址的DR,B成为239.0.0.4~239.0.0.7,239.0.0.12~239.0.0.15,......,连续4个组地址的DR。
如果两个路由器A,B预设负责的组地址范围都是239.0.0.0-239.255.255.255,如果掩码是M=0xFFFFFFCC,则低8位是11001100,有4位为0,那么则有2的4次方即16个地址与掩码进行与运算的结果相同,比如239.0.0.0~239.0.0.3,239.0.0.28~239.0.0.31,239.0.0.44~239.0.0.47和239.0.0.60~239.0.0.63这16个地址与掩码进行与运算的结果相同,应该分到同一个路由器上。
本发明实施例中每个路由器都负责一段组地址,当一个组地址属于多个路由器的负责范围时,采用哈希算法,确定负责转发该组地址的组播报文的路由器,由于所采用的哈希算法包括将掩码与组地址进行与运算,将与运算结果与路由器的IP地址进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发,所以能够尽量使各路由器的负载均衡;进一步,降低了对单一路由器的处理能力要求,对上行链路宽要求降低,此处的上行链路带宽是指上游路由器到与交换机相连的各路由器(即上述实施例中描述的同一网段上的路由器)之间的带宽,现有技术中只有一个DR转发组播流量,所有的流量都从单一的这条链路过来,现在多个路由器负载分担转发,所以对上行链路的带宽要求降低。
参阅图4,如下实施例描述基于上述组播流量分担方法,当多个路由器都负责转发组播流量,出现某个路由器故障时的处理过程,该过程会触发PIMAssert机制,该过程具体包括:
401、各路由器通过接收的各邻居路由器的PIM hello报文,获知某个邻居路由器退出网络或者有新的路由器加入网络时,获取本地记录的用户设备请求加入的组地址,并针对用户设备请求加入的组地址进行DR选举,并记录选举结果。
该步骤中的记录选举结果为:记录各路由器与各路由器所负责转发的组播报文的组地址的对应关系,具体的,各路由器所负责转发的组播报文的组地址是按照上述步骤306所述的方法确定的。
需要说明的,在上述步骤303中,路由器接收到交换机广播的IGMPReport报文时,会记录IGMP Report报文中携带的用户设备请求加入的组地址。
该步骤中具体的DR选举方式同上述步骤304、305、306基本相同,在此不再赘述。
402、根据选举结果,若某个路由器新增加了负责转发的组地址时,则收到上游路由器发送的该组地址的组播报文后,该路由器将该增加的组地址的组播报文发送给用户设备和各邻居路由器;若某个路由器减少了负责转发的组地址时,在接收到上游路由器发送的该组地址的组播报文后,该路由器依然会将该减少的组地址的组播报文发送给用户设备和各邻居路由器。
403、当某个路由器向用户设备转发组播报文的同时又接收到邻居路由器发送的相同的组播报文时,表示触发了PIM Assert机制,则该路由器向各邻居路由器发送通告Assert消息,以通告触发了PIM Assert机制。
404、在PIM Assert机制中,各路由器查询最近一次的选举结果,按照最近一次的选举结果,确定应负责转发该组播报文的路由器。
为使上述实施例更加清楚明白,如下举实例进行说明:
假定有3个用户设备分别点播了三个节目,组地址分别为239.0.0.1,239.0.0.5,239.0.0.9。同一网段上的三个路由器预设负责的组地址范围都为239.0.0.0-239.0.0.255,掩码M=0xFFFFFFFC,根据上述DR选举方法,三个路由器各自承担一个组播流量的转发,第一个路由器承担239.0.0.1的组播流量的转发,第二个路由器承担239.0.0.5的组播流量的转发,第三个路由器承担239.0.0.9的组播流量的转发。假定第二个路由器故障,此时同一网段上仅有两个路由器,这两个路由器没有接收到第二个路由器发送的Hello报文,获知该第二个路由器退出了邻居关系,则第一路由器和第三路由器针对现有的组地址,开始重新进行DR选举,该实例中假定只有239.0.0.1,239.0.0.5,239.0.0.9三个组地址,则第一路由器和第三路由器针对这三个组地址中的每一个组地址,重新进行DR选举,并记录选举结果。假定这次选举结果为239.0.0.1的组播报文由第三个路由器负责转发,则此时第一路由器和第三路由器接收到上游路由器发送的239.0.0.1的组播报文后都会向用户设备和邻居路由器发送,这样第一路由器会接收到第三路由器发送的239.0.0.1的组播报文,即与自己发出的相同的组播报文,此时表示已触发了PIMAssert机制,该第一路由器会发送Assert消息,通告触发了PIM Assert机制,然后第一路由器和第三路由器获取最近一次的选举结果,根据最近一次的选举结果可知,由第三路由器负责转发239.0.0.1的组播报文,则第一路由器停止转发该239.0.0.1的组播报文。
由此可见,采用本发明实施例提供的DR选举方法,在负责某些组地址的DR出现故障时,不会中断传输这些组地址的组播报文,避免了现有中单一路由器为DR时,DR中断导致所有节目都受影响的问题。
参阅图5,本发明实施例提供一种路由器,其包括:
获取单元501,用于获取各路由器的IP地址和各路由器所负责的组地址范围信息;所述IP地址是用于路由器建立邻居关系的接口的IP地址;
第一确定单元502,用于根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;
当第一确定单元502所确定的路由器为多个路由器时,第二确定单元503用于以所确定的路由器的IP地址分别作为所述哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文;其中,所述哈希算法包括将哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;当第一确定单元502所确定的路由器为一个路由器时,第二确定单元503用于确定所述一个路由器负责转发所述组地址的组播报文。
其中,为了获知每个路由器希望的每轮均衡分配时分给自己的组地址个数,获取单元501还用于获取各路由器提供的用于哈希算法的掩码;
为了确定进行哈希运算时使用的掩码,该路由器还包括:选择单元505,用于从各路由器提供的用于哈希算法的掩码中选择一个掩码作为所述哈希算法的掩码;其中,所述哈希算法中的将哈希算法的掩码与组地址进行与运算为将所选择的掩码与组地址进行与运算。
具体的,获取单元501从邻居路由器发送的hello报文中获取邻居路由器所负责的组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码;并获取自己的IP地址、所负责的组地址范围信息和提供的用于哈希算法的掩码。
具体有如下两种情况需要确定负责转发组地址的组播报文的路由器:
第一种情况为:第一确定单元502在接收到用户设备发送的业务请求报文时,根据所述业务请求报文中携带的所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
第二种情况为:在网络的邻居关系发生变化时,此时该路由器还包括:第一记录单元507,用于当接收到用户设备发送的业务请求报文时,记录所述业务请求报文中携带的所述用户设备请求加入的组地址;此时第一确定单元502具体用于当有邻居退出网络或者有新的邻居加入网络时,获取所记录的所述用户设备请求加入的组地址,根据所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
该路由器还包括:转发单元508,用于根据第二确定单元503的确定结果,负责转发组播报文。具体的,该转发单元508具体用于根据第二确定单元503的确定结果,当确定所述路由器负责转发的组播报文的组地址减少时,继续转发所减少的组地址的组播报文;当确定路由器负责转发的组播报文的组地址增加时,转发所增加的组地址的组播报文。
为了记录对每个组地址的选举结果,该路由器还包括:
第二记录单元509,用于根据第二确定单元503的确定结果,记录各路由器与第二确定单元503所确定的各路由器所负责转发的组播报文的组地址的对应关系;
为了在出现PIM Assert机制时,不影响组播报文的转发,该路由器还包括第三确定单元510,用于当路由器接收到的邻居路由器发送的组播报文与自己发出的组播报文相同时,根据所述第二记录单元509最近一次记录的对应关系,确定应负责转发所述组播报文的路由器。
本发明实施例中每个路由器都负责一段组地址,当一个组地址属于多个路由器的负责范围时,采用哈希算法,确定负责转发该组地址的组播报文的路由器,由于所采用的哈希算法包括将掩码与组地址进行与运算,将与运算结果与路由器的IP地址进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发,所以能够尽量使各路由器的负载均衡。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的组播流量分担的方法及相关装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种组播流量分担的方法,其特征在于,包括:
同一个网段上的路由器获取所述同一个网段上各路由器的IP地址和各路由器所负责的组地址范围信息,获取所述各路由器提供的用于哈希算法的掩码,并从所获取的多个掩码中选择一个掩码作为哈希算法的掩码;所述IP地址是用于路由器建立邻居关系的接口的IP地址,所述路由器为支持扩展指定路由器DR选举的路由器;
根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;
当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;其中,所述哈希算法包括将所述哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;
当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文;
所述获取同一个网段上各路由器的IP地址、各路由器所负责的组地址范围信息和各路由器提供的用于哈希算法的掩码包括:
路由器接收各邻居路由器发送的hello报文,从hello报文中获取邻居路由器所负责的组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码;
所述路由器获取自己的IP地址、所负责的组地址范围信息和提供的用于哈希算法的掩码;
所述hello报文扩展一个可选类型,该扩展的可选类型用于表示扩展DR选举方法,其可选项长度为可选项值的长度,可选项值包括:版本Version、掩码Mask、Group-list计数GL Count、类型Type、单个组地址的标记Single Flag和组地址Group Address。
2.根据权利要求1所述的方法,其特征在于,
所述确定组地址范围包含所述组地址的路由器包括:
当接收到用户设备发送的业务请求报文时,根据所述业务请求报文中携带的所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
3.根据权利要求1所述的方法,其特征在于,
在确定组地址范围包含所述组地址的路由器之前,该方法还包括:
当接收到用户设备发送的业务请求报文时,记录所述业务请求报文中携带的所述用户设备请求加入的组地址;
所述确定组地址范围包含所述组地址的路由器包括:
当确定有邻居退出网络或者有新的邻居加入网络时,路由器获取所记录的所述用户设备请求加入的组地址,根据所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
4.根据权利要求3所述的方法,其特征在于,
在确定负责转发所述组地址的组播报文的路由器之后,该方法还包括:
若所确定的路由器负责转发的组播报文的组地址减少时,所述路由器继续转发所减少的组地址的组播报文;若所确定的路由器负责转发的组播报文的组地址增加时,所述路由器转发所增加的组地址的组播报文。
5.根据权利要求4所述的方法,其特征在于,
在确定负责转发所述组地址的组播报文的路由器之后,该方法还包括:
记录各路由器与所确定的各路由器所负责转发的组播报文的组地址的对应关系;
当路由器接收到的邻居路由器发送的组播报文与自己发出的组播报文相同时,根据最近一次记录的各路由器与各路由器所负责转发的组播报文的组地址的对应关系,确定应负责转发所述组播报文的路由器。
6.一种路由器,所述路由器为支持扩展指定路由器DR选举的路由器,其特征在于,包括获取单元、第一确定单元和第二确定单元:
所述获取单元,用于同一个网段上的路由器获取所述同一个网段上各路由器的IP地址和各路由器所负责的组地址范围信息;所述IP地址是用于路由器建立邻居关系的接口的IP地址;所述获取单元,还用于获取各路由器提供的用于哈希算法的掩码;
选择单元,用于从各路由器提供的用于哈希算法的掩码中选择一个掩码作为所述哈希算法的掩码;
所述第一确定单元,用于根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;
当第一确定单元所确定的路由器为多个路由器时,所述第二确定单元用于以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;其中,所述哈希算法包括将所述哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;当第一确定单元所确定的路由器为一个路由器时,所述第二确定单元用于确定所述一个路由器负责转发所述组地址的组播报文;
所述获取单元,具体用于从邻居路由器发送的hello报文中获取邻居路由器所负责的组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码;并获取自己的IP地址、所负责的组地址范围信息和提供的用于哈希算法的掩码;
所述hello报文扩展一个可选类型,该扩展的可选类型用于表示扩展DR选举方法,其可选项长度为可选项值的长度,可选项值包括:版本Version、掩码Mask、Group-list计数GL Count、类型Type、单个组地址的标记Single Flag和组地址Group Address。
7.根据权利要求6所述的路由器,其特征在于,
所述第一确定单元,具体用于当接收到用户设备发送的业务请求报文时,根据所述业务请求报文中携带的所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
8.根据权利要求6中任意一项所述的路由器,其特征在于,还包括:
第一记录单元,用于当接收到用户设备发送的业务请求报文时,记录所述业务请求报文中携带的所述用户设备请求加入的组地址;
所述第一确定单元,用于当有邻居退出网络或者有新的邻居加入网络时,获取所记录的所述用户设备请求加入的组地址,根据所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
9.根据权利要求8所述的路由器,其特征在于,还包括:
转发单元,用于根据第二确定单元的确定结果,当所述路由器负责转发的组播报文的组地址减少时,继续转发所减少的组地址的组播报文;当所述路由器负责转发的组播报文的组地址增加时,转发所增加的组地址的组播报文。
10.根据权利要求9所述的路由器,其特征在于,还包括:
第二记录单元,用于记录各路由器与第二确定单元所确定的各路由器所负责转发的组播报文的组地址的对应关系;
第三确定单元,用于当路由器接收到的邻居路由器发送的组播报文与自己发出的组播报文相同时,根据所述第二记录单元最近一次记录的对应关系,确定应负责转发所述组播报文的路由器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010187432.XA CN101841485B (zh) | 2010-05-28 | 2010-05-28 | 组播流量分担的方法及相关装置 |
PCT/CN2011/070735 WO2011147206A1 (zh) | 2010-05-28 | 2011-01-28 | 组播流量分担的方法及相关装置 |
RU2012156262/08A RU2556464C2 (ru) | 2010-05-28 | 2011-01-28 | Способ и соответствующее устройство совместного использования трафика при групповой передаче |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010187432.XA CN101841485B (zh) | 2010-05-28 | 2010-05-28 | 组播流量分担的方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101841485A CN101841485A (zh) | 2010-09-22 |
CN101841485B true CN101841485B (zh) | 2013-04-24 |
Family
ID=42744618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010187432.XA Expired - Fee Related CN101841485B (zh) | 2010-05-28 | 2010-05-28 | 组播流量分担的方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN101841485B (zh) |
RU (1) | RU2556464C2 (zh) |
WO (1) | WO2011147206A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170364B (zh) * | 2011-05-26 | 2014-12-31 | 华为技术有限公司 | 一种宽带远程接入服务器组播通信方法及装置 |
CN104348737B (zh) * | 2013-08-02 | 2018-01-23 | 华为技术有限公司 | 一种组播报文的传输方法及交换机 |
WO2017201750A1 (zh) * | 2016-05-27 | 2017-11-30 | 华为技术有限公司 | 组播数据处理方法、装置及系统 |
WO2018103073A1 (en) * | 2016-12-09 | 2018-06-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for electing dr from pim-sm routers and pim-sm router |
CN112671655A (zh) * | 2019-10-16 | 2021-04-16 | 中兴通讯股份有限公司 | 组播用户接入方法、电子设备以及存储介质 |
CN112511443A (zh) * | 2020-03-26 | 2021-03-16 | 中兴通讯股份有限公司 | 消息处理方法、装置、设备、存储介质及系统 |
CN112565102B (zh) * | 2020-11-30 | 2022-11-11 | 锐捷网络股份有限公司 | 一种负载均衡方法、装置、设备及介质 |
CN112887229B (zh) * | 2021-01-11 | 2023-04-07 | 杭州迪普科技股份有限公司 | 一种会话信息同步方法及装置 |
CN113726907B (zh) * | 2021-09-15 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 一种路由处理方法、网元设备、装置以及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060494A (zh) * | 2007-05-17 | 2007-10-24 | 华为技术有限公司 | 一种路由选择的方法、系统及路由器 |
CN101141488A (zh) * | 2006-09-08 | 2008-03-12 | 华为技术有限公司 | 组播服务代理的实现方法及系统和节点发现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1192574C (zh) * | 2002-01-30 | 2005-03-09 | 华为技术有限公司 | 受控组播的系统及其实现方法 |
EP1729460A4 (en) * | 2004-03-25 | 2009-12-09 | Panasonic Corp | DYNAMIC NETWORK MANAGEMENT SYSTEM, DYNAMIC NETWORK MANAGEMENT DEVICE, AND DYNAMIC NETWORK MANAGEMENT METHOD |
CN101651609A (zh) * | 2008-08-14 | 2010-02-17 | 华为技术有限公司 | 实现组播负载分担的方法及装置 |
US8422395B2 (en) * | 2008-09-30 | 2013-04-16 | Microsoft Corporation | Resilient 1:N first-hop gateway selection mechanism |
-
2010
- 2010-05-28 CN CN201010187432.XA patent/CN101841485B/zh not_active Expired - Fee Related
-
2011
- 2011-01-28 WO PCT/CN2011/070735 patent/WO2011147206A1/zh active Application Filing
- 2011-01-28 RU RU2012156262/08A patent/RU2556464C2/ru active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141488A (zh) * | 2006-09-08 | 2008-03-12 | 华为技术有限公司 | 组播服务代理的实现方法及系统和节点发现方法 |
CN101060494A (zh) * | 2007-05-17 | 2007-10-24 | 华为技术有限公司 | 一种路由选择的方法、系统及路由器 |
Also Published As
Publication number | Publication date |
---|---|
CN101841485A (zh) | 2010-09-22 |
RU2556464C2 (ru) | 2015-07-10 |
WO2011147206A1 (zh) | 2011-12-01 |
RU2012156262A (ru) | 2014-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101841485B (zh) | 组播流量分担的方法及相关装置 | |
CN110557724B (zh) | 一种多播业务的数据传输方法以及相关设备 | |
JP5340062B2 (ja) | ネットワーク中継装置およびネットワークシステム | |
US11050657B2 (en) | Method, device and node for message transmission, and computer storage medium | |
WO2017059708A1 (zh) | Bier信息的发送方法、接收方法及装置 | |
CN101989952B (zh) | 一种组播方法及装置 | |
CN107615721B (zh) | 传输软件定义网络-逻辑链路聚合成员信令的系统和方法 | |
CN108028801B (zh) | 一种基于sdn的arp实现方法及装置 | |
WO2012155406A1 (zh) | 业务分流方法、装置及系统 | |
CN106411750B (zh) | 数据分发方法及系统 | |
CN101013948B (zh) | 构建等耗多径多播分发结构 | |
CN105721328B (zh) | 一种vrrp负载均衡的方法、装置和路由器 | |
CN102916888B (zh) | 一种组播数据传输方法和设备 | |
JP2019532587A (ja) | マルチキャスト・サービス提供方法及びソフトウェア定義ネットワーキング・コントローラ | |
WO2007054006A1 (fr) | Station de base de système d’accès sans fil large bande et système pour réaliser un service de diffusion de groupe | |
US10567180B2 (en) | Method for multicast packet transmission in software defined networks | |
WO2018099290A1 (zh) | 报文传输方法及装置 | |
WO2017201750A1 (zh) | 组播数据处理方法、装置及系统 | |
CN1996956A (zh) | 实现组播流跨vlan转发的三层网络设备及方法 | |
JP2012533959A (ja) | マルチキャスト対応ルータにおいて効果的なホスト・マネジメント・プロトコル | |
WO2015014197A1 (zh) | 组播负载场景下选路的方法和路由器 | |
CN108900422B (zh) | 组播转发方法、装置及电子设备 | |
WO2012103748A1 (zh) | 一种组播控制方法、路由设备及组播系统 | |
KR20130033253A (ko) | 지역 분산된 콘텐츠 노드에서 다중 콘텐츠 분배를 위한 오버레이 멀티캐스트 시스템 및 그 방법 | |
WO2021219049A1 (zh) | 一种信息上报方法、信息处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 |