组播流量分担的方法及相关装置的制作方法

文档序号:7750145阅读:150来源:国知局
专利名称:组播流量分担的方法及相关装置的制作方法
技术领域
本发明涉及通信技术领域,特别涉及一种组播流量分担的方法及相关装置。
背景技术
现有的组播业务广泛使用协议无关组播(Protocol Independent Multicast, PIM)协议,使用该PIM协议的同一网段上的路由器之间需要选举一个指定路由器 (Designated Routers, DR)。在交换机将来自用户设备的互联网组管理协议(Internet GroupManagement Protocol, IGMP)R印ort报文发送给与自己连接的同一网段上的各路由器,该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 R印ort报文。第二种情况、路由器确定有邻居退出网络或者有新的邻居加入网络时,获取自己 所记录的用户设备请求加入的组地址,此时,路由器需要针对用户设备请求加入的组地址 进行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 OxFFFFFFFF,表示路由器希望每轮均衡分配时分到的组地址个数,如果掩 码(Mask)为OxFFFFFFFC,由于最后两位是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,其掩码为 OxFFFFFFFD ;路由器 B 的 IP 地址为 10. 164. 19. 10,其组地址(Group Address)为 239. 0. 0. 240-239. 0. 0. 255,其 掩码为OxFFFFFFFC ;路由器C的IP地址为10. 164. 19. 5,其组地址(Group Address)为 239. 0. 0. 252-239. 0. 0. 255,其掩码为 OxFFFFFFCC。假定用户设备发送的IGMP R印ort报文中的组地址G = 239. 0. 0. 250,则上述路由 器A和B预设负责的组地址范围包括该239. 0. 0. 250,所以该步骤中所确定的组地址范围包 括用户设备请求加入的组地址的邻居集合为{A,B}。305、获取邻居集合中IP地址最大的路由器的掩码。续上述实例,获取路由器B的掩码OxFFFFFFFC。306、路由器利用邻居集合中的路由器的IP地址、用户设备请求加入的组地址G、 上述步骤305所获取的掩码,采用哈希算法(Hash),将邻居集合中的路由器的IP地址分别 作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发该组地址G 的组播报文的路由器。具体的,Hash算法公式可以为Result (G, Μ, N) = (a* (((G&M) XOR N)+b))mod2 ^ 31其中,G表示组地址,M为掩码,N为路由器的IP地址,a和b分别为一个数值,一 般取大一些的质数,目的是为了能够将Hash结果更好的散列开。比如a为13715247,b为 1357。续上述实例,由于路由器B的IP地址大,所以采用路由器B的掩码M = OxFFFFFFFC,将M = OxFFFFFFFC和G = 239. 0. 0. 250代入上述公式中,分别将路由器A和 路由器B的IP地址代入公式,得到的相应哈希值为463和26,则可以选择哈希值小的路由 器作为转发该组地址G的组播报文的DR,也可以选择哈希值大的路由器作为转发该组地址 G的组播报文的DR ;如果各路由器的哈希值都相同,则可以选择IP地址大的路由器为DR, 或者选择IP地址小的路由器为DR。具体如何进行选择可以采用多种方式,本发明对具体的 选择方式不做限制,只要同一网段上的路由器都采用相同的选择方式即可。需要说明的是,上述G&M表示组地址G与掩码M进行与运算,在掩码为M = OxFFFFFFFC时,由于掩码的最后两位为0,因而总有连续的四个组地址与掩码M进行与运算 后结果相同,所以进行Hash计算的结果是连续的4个组地址会分到同一个路由器上。其 中,G&M的运算结果与N之间的运算关系可以采用多种运算关系,并不限于异或Ν0Τ,只要 保证与运算结果相同的组地址分到同一个路由器上即可,至于分到哪个路由器上可以通过 G&M的运算结果与N之间的运算关系、a、b等参数决定。如果两个路由器A,B预设负责的组地址范围都是239. 0. 0. 0-239. 255. 255. 255, 掩码M = OxFFFFFFFC,那么采用这个掩码做哈希运算后将会导致连续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 = OxFFFFFFCC,则低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中,路由器接收到交换机广播的IGMPR印ort报文时, 会记录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 = OxFFFFFFFC,根据上述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的组播报文,即与自己发出的相同的组播报文,此时表示已触发了 PIM Assert机制,该第一路由器会发送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地址进行运算,使与 运算结果相同的组地址的组播报文由同一个路由器负责转发,所以能够尽量使各路由器的 负载均衡。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以 通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例 如只读存储器,磁盘或光盘等。以上对本发明实施例所提供的组播流量分担的方法及相关装置进行了详细介绍, 本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用 于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的 思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为 对本发明的限制。
权利要求
一种组播流量分担的方法,其特征在于,包括获取各路由器的IP地址和各路由器所负责的组地址范围信息;所述IP地址是用于路由器建立邻居关系的接口的IP地址;根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;其中,所述哈希算法包括将哈希算法的掩码与组地址进行与运算,将与运算结果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器负责转发;当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文。
2.根据权利要求1所述的方法,其特征在于,该方法还包括获取各路由器提供的用于哈希算法的掩码,并从所获取的多个掩码中 选择一个掩码作为所述哈希算法的掩码。
3.根据权利要求2所述的方法,其特征在于,获取各路由器的IP地址、各路由器所负责的组地址范围信息和各路由器提供的用于 哈希算法的掩码包括路由器接收各邻居路由器发送的hello报文,从hello报文中获取邻居路由器所负责 的组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码;所述路由器获取自己的IP地址、所负责的组地址范围信息和提供的用于哈希算法的 掩码。
4.根据权利要求1-3中任意一项所述的方法,其特征在于, 所述确定组地址范围包含所述组地址的路由器包括当接收到用户设备发送的业务请求报文时,根据所述业务请求报文中携带的所述用户 设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述用户设 备请求加入的组地址的路由器。
5.根据权利要求1-3中任意一项所所述的方法,其特征在于, 在确定组地址范围包含所述组地址的路由器之前,该方法还包括当接收到用户设备发送的业务请求报文时,记录所述业务请求报文中携带的所述用户 设备请求加入的组地址;所述确定组地址范围包含所述组地址的路由器包括当确定有邻居退出网络或者有新的邻居加入网络时,路由器获取所记录的所述用户设 备请求加入的组地址,根据所述用户设备请求加入的组地址和各路由器所负责的组地址范 围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
6.根据权利要求5所述的方法,其特征在于,在确定负责转发所述组地址的组播报文的路由器之后,该方法还包括 若所确定的路由器负责转发的组播报文的组地址减少时,所述路由器继续转发所减少 的组地址的组播报文;若所确定的路由器负责转发的组播报文的组地址增加时,所述路由器转发所增加的组地址的组播报文。
7.根据权利要求6所述的方法,其特征在于,在确定负责转发所述组地址的组播报文的路由器之后,该方法还包括记录各路由器与所确定的各路由器所负责转发的组播报文的组地址的对应关系;当路由器接收到的邻居路由器发送的组播报文与自己发出的组播报文相同时,根据最 近一次记录的各路由器与各路由器所负责转发的组播报文的组地址的对应关系,确定应负 责转发所述组播报文的路由器。
8.—种路由器,其特征在于,包括获取单元、第一确定单元和第二确定单元所述获取单元,用于获取各路由器的IP地址和各路由器所负责的组地址范围信息;所 述IP地址是用于路由器建立邻居关系的接口的IP地址;所述第一确定单元,用于根据用户设备请求加入的组地址和各路由器所负责的组地址 范围,确定组地址范围包含所述组地址的路由器;当第一确定单元所确定的路由器为多个路由器时,所述第二确定单元用于以所确定的 路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定 负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文 给用户设备;其中,所述哈希算法包括将哈希算法的掩码与组地址进行与运算,将与运算结 果与哈希算法的输入值进行运算,使与运算结果相同的组地址的组播报文由同一个路由器 负责转发;当第一确定单元所确定的路由器为一个路由器时,所述第二确定单元用于确定 所述一个路由器负责转发所述组地址的组播报文。
9.根据权利要求8所述的路由器,其特征在于,所述获取单元,还用于获取各路由器提供的用于哈希算法的掩码;所述路由器还包括选择单元,用于从各路由器提供的用于哈希算法的掩码中选择一个掩码作为所述哈希 算法的掩码。
10.根据权利要求9所述的路由器,其特征在于,所述获取单元,具体用于从邻居路由器发送的hello报文中获取邻居路由器所负责的 组地址范围信息、IP地址和邻居路由器提供的用于哈希算法的掩码;并获取自己的IP地 址、所负责的组地址范围信息和提供的用于哈希算法的掩码。
11.根据权利要求8-10中任意一项所述的路由器,其特征在于,所述第一确定单元,具体用于当接收到用户设备发送的业务请求报文时,根据所述业 务请求报文中携带的所述用户设备请求加入的组地址和各路由器所负责的组地址范围,确 定组地址范围包含所述用户设备请求加入的组地址的路由器。
12.根据权利要求8-10中任意一项所述的路由器,其特征在于,还包括第一记录单元,用于当接收到用户设备发送的业务请求报文时,记录所述业务请求报 文中携带的所述用户设备请求加入的组地址;所述第一确定单元,用于当有邻居退出网络或者有新的邻居加入网络时,获取所记录 的所述用户设备请求加入的组地址,根据所述用户设备请求加入的组地址和各路由器所负 责的组地址范围,确定组地址范围包含所述用户设备请求加入的组地址的路由器。
13.根据权利要求12所述的路由器,其特征在于,还包括转发单元,用于根据第二确定单元的确定结果,当所述路由器负责转发的组播报文的 组地址减少时,继续转发所减少的组地址的组播报文;当所述路由器负责转发的组播报文 的组地址增加时,转发所增加的组地址的组播报文。
14.根据权利要求13所述的路由器,其特征在于,还包括第二记录单元,用于记录各路由器与第二确定单元所确定的各路由器所负责转发的组 播报文的组地址的对应关系;第三确定单元,用于当路由器接收到的邻居路由器发送的组播报文与自己发出的组播 报文相同时,根据所述第二记录单元最近一次记录的对应关系,确定应负责转发所述组播 报文的路由器。
全文摘要
本发明实施例提供一种组播流量分担的方法及相关装置,其中组播流量分担的方法包括获取各路由器的IP地址和各路由器所负责的组地址范围信息;根据用户设备请求加入的组地址和各路由器所负责的组地址范围,确定组地址范围包含所述组地址的路由器;当所确定的路由器为多个路由器时,以所确定的路由器的IP地址分别作为哈希算法的输入值,根据得到的对应每个输入值的哈希值,确定负责转发所述组地址的组播报文的路由器,使所确定的路由器转发所述组地址的组播报文给用户设备;当所确定的路由器为一个路由器时,确定所述一个路由器负责转发所述组地址的组播报文。使用本发明实施例提供的技术方案,能够由多个路由器负责转发组播流量,降低对单一路由器的要求。
文档编号H04L12/18GK101841485SQ20101018743
公开日2010年9月22日 申请日期2010年5月28日 优先权日2010年5月28日
发明者丁汉成, 陈勇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1