CN101388850B - 一种组播报文转发方法及装置 - Google Patents
一种组播报文转发方法及装置 Download PDFInfo
- Publication number
- CN101388850B CN101388850B CN2008102255423A CN200810225542A CN101388850B CN 101388850 B CN101388850 B CN 101388850B CN 2008102255423 A CN2008102255423 A CN 2008102255423A CN 200810225542 A CN200810225542 A CN 200810225542A CN 101388850 B CN101388850 B CN 101388850B
- Authority
- CN
- China
- Prior art keywords
- multicast
- message
- hit
- tag
- address
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种组播报文转发方法及装置,通过禁止知名组播报文直接送软件协议层;获取组播路由表中命中标志为命中的表项;根据表项中的目的组播地址,构建虚拟组播报文送软件协议层。本发明实施例提供的方案,由于根据组播路由表项中的命中标志来确定构建虚拟报文的数量,重复命中的知名组播报文只构建一个虚拟组播报文,因而可以极大的减少送软件协议层的组播报文的数量,减轻软件协议层的负担。同时,由于构建的虚拟组播报文的内容为空,可以节约传输和处理组播报文的时间,同时不会对PIM-SM的功能造成什么影响。
Description
技术领域
本发明涉及计算机网络通信技术领域,尤其涉及一种组播报文转发方法及装置。
背景技术
IP(Internet Protocol)协议作为“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。在因特网(Internet)中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。Internet上的每台主机都有一个唯一的IP地址。IP协议就是使用这个地址在主机之间传递信息,这是Internet能够运行的基础。IP地址的长度为32位,分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开。
IP组播(IP multicasting)是对标准IP网络层协议的扩展。它通过使用特定的IP组播地址,按照最大投递的原则,将IP数据报传输到一个组播群组(multicast group)的主机集合。它的基本方法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数据只需发送一次就可以发送到所有接收者,大大减轻了网络的负载和发送者的负担。
组播IP地址用于标识一个IP组播组。D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。组播报文中,IP组播地址和他的目的MAC地址必须有一个对应关系,也就是后24位的二进制数值必须相等。而由于MAC地址的前24位必须为01 00 5E,所以就可以从报文的目的IP组播地址,去推 算他的目的MAC地址。假设一个组播报文的目的IP地址是224.1.1.1,那么这个报文的目的MAC地址必然是01 00 5E 01 01 01。
在支持IP组播的网络设备的硬件部分一般都有一个组播路由表。组播路由表是有许多个组播路由表项构成的,每一个组播路由表项里面都记录了目的IP地址(IP组播地址),报文的出口位图,以及是否命中此表项的等信息。
简单的来说,每一个组播路由表项的结构如图1所示。当一个合法的带有IP组播地址的报文进入网络设备的时候,就会从报文的出口位图中记录的端口上被转发出去,并且更新命中信息。组播路由表一般来说是由软件协议层来维护的,协议层根据不同的协议报文的信息来构建组播路由表,最终达到IP组播的目的。
对于网络的设备的底层驱动来说,在报文发送到网络设备的时候,会匹配到组播路由表的报文,被称作知名组播。不会匹配组播路由表的报文,被称作未知名组播。
PIM-SM是由RFC 2362规定的一种有效的路由协议,其中的组播组稀疏地分布在一个巨大的区域中(WAN和域间)。PIM-SM协议不依赖于任何特定的单播路由协议。它主要是被设计用来支持稀疏组。它使用了传统的基于接收端启动成员关系的IP组播模型,支持共享和最短路径树,此外它还使用了软状态机制,以适应不断变化的网络环境。
简单的说,PIM-SM协议假定所有的主机都不需要接收组播数据包,只有主机明确指定需要时,PIM-SM路由器才向它转发组播数据包。而通过一些协议报文,在组播源和需要组播报文的多台机器建立起一个树型的拓扑结构。而由于他实现了软状态机制,所谓软状态机制也就是,如果没有刷新,那么,路由器的状态配置是短期的,并在一段时间后失效。所以有哪些知名的组播报文不断经过这台设备,是设备必须要知道的,以上均为RFC2362标准规定的。
三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。
基于以上说明,我们可以了解到,三层交换机的交换和转发功能主要是由硬件来实现的,这一部分被称作“硬件层”。协议和安全应用等部分是由软件来实现的,这一部分被称作“软件协议层”。而在硬件层和软件协议层之间还存在一个驱动层,负责驱动硬件,维护硬件表项,以及将硬件收到的报文送至软件协议层处理。综上所述,整个三层交换机的简单层次结构如图2所示。基本上大部分的三层交换机都支持组播功能。在三层交换机上的组播协议是由软件来实现的。
对于PIM-SM协议,根据RFC 2362的标准,需要实现软状态机制,协议层必须要知道有哪些知名的组播报文不断的经过这台设备。所以,所有的知名组播都需要送到软件协议层处理。大量的已知名组播在交换机等设备上通常是经过硬件进行转发,而由于上述的原因,这些知名组播同时也要送到软件协议层进行处理,假设这个时候报文的数据量很大的话,会造成软件协议层就要占用大量的运算时间来处理报文,导致整体的运算速度下降,影响交换机性能。
发明内容
本发明实施例提供一种组播报文转发方法及装置,用以解决现有技术中将知名组播报文送至软件协议层,影响上层软件处理报文的数量,降低了整个三层交换机效率的问题。
一种组播报文转发方法,该方法包括:
禁止知名组播报文直接送软件协议层;所述知名组播报文为与组播路由表匹配成功、命中标志置为命中组播路由报文;
获取组播路由表中命中标志为命中的表项;
根据表项中的目的组播地址,构建虚拟组播报文送软件协议层;所述虚拟组播报文与原始组播报文的目的IP地址、MAC地址及源IP地址一致,内容为空。
一种组播报文转发装置,该装置包括禁止报送单元、获取单元、虚拟报文 构建单元和发送单元,其中,
所述禁止报送单元,用于禁止知名组播报文直接送软件协议层;所述知名组播报文为与组播路由表匹配成功、命中标志置为命中组播路由报文;
所述获取单元,用于获取组播路由表中命中标志为命中的表项;
所述虚拟报文构建单元,用于根据表项中的目的组播地址,构建虚拟组播报文;所述虚拟组播报文与原始组播报文的目的IP地址、MAC地址及源IP地址一致,内容为空;
所述发送单元,用于将所述虚拟组播报文送软件协议层。
本发明实施例通过禁止知名组播报文直接送软件协议层;获取组播路由表中命中标志为命中的表项;根据表项中的目的组播地址,构建虚拟组播报文送软件协议层。本发明实施例提供的方案,由于根据组播路由表项中的命中标志来确定构建虚拟报文的数量,重复命中的知名组播报文只构建一个虚拟组播报文,因而可以极大的减少送软件协议层的组播报文的数量,减轻软件协议层的负担。同时,由于构建的虚拟组播报文的内容为空,可以节约传输和处理组播报文的时间,同时不会对PIM-SM的功能造成什么影响。
附图说明
图1为现有技术中组播路由表项结构示意图;
图2为现有技术中三层交换机的简单层次结构示意图;
图3为本发明实施例1的主要实现原理流程图;
图4为本发明实施例2的主要实现原理流程图;
图5为本发明实施例3提供装置的结构示意图.
具体实施方式
根据PIM-SM的原理和RFC 2362的规定,而对于知名组播报文,软件协议层只需要知道三层交换机收到了此IP组播地址的报文,用于刷新状态即可,并不关心报文的具体内容。因而,为了提高软件协议层处理组播报文的效率,我们可以构建虚拟的内容为空的组播报文送软件协议层。也就是说,本发明方案主要包括以下两点:
1)不将已知名组播报文送至软件协议层。
2)构造虚拟组播报文送至软件协议层,保证PIM-SM的功能正常。
为了实现这样的功能,本发明实施例可以根据组播路由表中的命中标志来判定一段时间内通过设备的知名组播报文,并根据路由表项中的相关信息构建虚拟组播报文。
本发明实施例中所指的设备可以是三层交换机或路由器,以及其它任何需要将组播报文送软件协议层的设备。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。
如图3所示,本发明实施例1的主要实现原理流程如下:
步骤11,禁止知名组播报文直接送软件协议层。
现有的系统中,当开启PIM-SM协议功能时,知名组播报文会直接送软件协议层进行处理。本实施例1中,为了减少送软件协议层的知名组播报文数量,首先需要禁止所有的知名组播报文直接送软件协议层。
对于一般的三层交换机或路由器,已知名组播报文原先是不会送至软件协议层的。然后由于PIM-SM协议的开启,由软件协议层向底层的硬件芯片做了一些设置,使得已知名的组播报文会送到软件协议层。对于不同的硬件芯片,这一步骤设置的方法就不同。实际上只要在PIM-SM协议开启的过程中跳过这一步骤即可。
步骤12,获取组播路由表中命中标志为命中的表项。
组播路由表是用来控制组播路由转发功能的表项,其中,当组播路由报文通过设备时,需要将其与组播路由表匹配,匹配成功的路由表项的命中标志会置为命中,这样的组播报文被称为知名组播报文。由于在开启PIM-SM协议功能时,软件协议层需要知道在特定的时间内有哪些组播报文通过设备,因而,需要将通过设备的组播报文送软件协议层。
这里,获取组播路由表中命中标志为命中的表项,可以先获取组播路由表中所有表项;依次判断其中命中标志是否为命中,得到命中标志为命中的表项。
当然,有些组播报文可能重复多次通过设备,组播路由表中的命中标志仅记录一次。
步骤13,根据表项中的目的组播地址,构建虚拟组播报文送软件协议层。
在组播路由表项中我们可以获得组播报文的目的组播IP地址以及源IP地址,根据目的组播IP可以计算出目的MAC地址,有了这些数据,我们就可以构造一个目的IP为这个地址的组播报文。也就是说,根据组播路由表项中的目的组播地址,我们可以构建出一个虚拟组播报文,这个虚拟组播报文与原始的组播报文目的IP地址、MAC地址以及源IP地址一致,而内容为空。
软件协议层可以根据这个构建的虚拟组播报文获知哪些组播报文通过设备,从而实现相应的功能。
为了统计一段时间内通过设备的组播报文,可以预先设定一循环时间周期,在该循环时间周期到期时,根据命中标志为命中的表项中的目的组播地址,构建虚拟组播报文送软件协议层;并将组播路由表中所有的命中标志设置为未命中。这样,只要一开始将所有组播路由表的命中标志置为未命中,然后一段时间后读取所有组播路由表的命中标志。我们就可以知道在这段时间内,交换机收到了哪些已知名组播报文。这样判断的一个必要条件是需要一开始将所有组播路由表的命中标志置为未命中。
由于一开始组播路由表的表项的命中标志均是为未命中的。所以我们只需要每隔一段时间(也就是循环时间周期,这个循环时间周期可以自行设定,例如,可以设定为5秒)做一次操作,先读取出所有组播路由表表项,循环判断每个组播路由表项的命中标志,将命中标志为已命中的表项的信息读取出来,根据这些信息构造一个虚拟组播报文送到软件协议层处理。在判断完所有的表项之后,将所有组播路由表表项的命中标志置为未命中,这样下一次操作(约5秒后)我们还可以知道到下一个5秒内的收到了哪些已知名组播报文。
这里的循环时间周期,可以根据不同硬件设备使用的不同CPU的性能在一定范围内进行调整。因为RFC 2362中并未确切规定软件状态的具体老化时间,所以对于PIM-SM协议的不同实现,软件状态的老化时间的设置也是不同的。所以在进行优化的时候,循环时间周期必须要小于当前PIM-SM协议的实现的老化时间,否则软件状态先老化了,就无法再次刷新了,这样就可能出现拓扑震荡等情况的出现。
相应的,如图4所示,为本发明实施例2的实现原理流程图,其中,自设定的循环时间周期到期时,首先读取所有的组播路由表表项并存储。然后逐条判断组播路由表中各条表项的命中标志是否为命中,如果是,根据表项内容构建虚拟组播报文,将构建的虚拟组播报文送软件协议层,并返回进一步判断下一条组播路由表项命中标志是否为命中。如果该表项的命中标志为未命中,则直接返回进一步判断下一条组播路由表项的命中标志是否为命中,如此循环,直至遍历组播路由表中所有表项。当组播路由表中所有表项全部分析完成后,结束流程,将所有的表项全部设置为未命中。
本实施例2中所有的步骤全部在循环时间周期到期时完成,由于循环时间周期是时间的循环,在到期后即开始下一个循环,因而,在每个循环时间周期到期时,执行上述的操作。
本实施例2中,在特定的循环时间周期开始时,组播路由表中的各个表项全部被设置为未命中。当循环时间周期到期时,有通过设备的组播报文对应的组播路由表项的命中标志被置为命中,获取这些表项并构建虚拟组播报文送软件协议层,软件协议层就可以获知在这个循环时间周期内通过设备的组播报文。
相应地,本发明实施例3还提供了一种组播报文转发装置,如图5所示,该装置包括禁止报送单元21、获取单元22、虚拟报文构建单元23和发送单元24,具体如下:
禁止报送单元21,用于禁止知名组播报文直接送软件协议层。
获取单元22,用于获取组播路由表中命中标志为命中的表项;
虚拟报文构建单元23,用于根据表项中的目的组播地址,构建虚拟组播报文;
发送单元24,用于将所述虚拟组播报文送软件协议层。
较佳的,如上所述的装置进一步包括命中设定单元25,用于当知名组播路由报文通过设备时,将其与组播路由表匹配,并将匹配成功的路由表项的命中标志置为命中。
较佳的,上述装置进一步包括时间循环设定单元26,用于设定一循环时间周期,在该循环时间周期到期时,通知虚拟报文构建单元23根据命中标志为命中的表项中的目的组播地址,构建虚拟组播报文送软件协议层;并通知命中设定单元25将组播路由表中所有的命中标志设置为未命中。
综上所述,本发明实施例提供的方案,由于根据组播路由表项中的命中标志来确定构建虚拟报文的数量,重复命中的知名组播报文只构建一个虚拟组播报文,因而可以极大的减少送软件协议层的组播报文的数量,减轻软件协议层的负担。同时,由于构建的虚拟组播报文的内容为空,可以节约传输和处理组播报文的时间,同时不会对PIM-SM的功能造成什么影响。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种组播报文转发方法,其特征在于,该方法包括:
禁止知名组播报文直接送软件协议层;所述知名组播报文为与组播路由表匹配成功、命中标志置为命中组播路由报文;
获取组播路由表中命中标志为命中的表项;
根据表项中的目的组播地址,构建虚拟组播报文送软件协议层;所述虚拟组播报文与原始组播报文的目的IP地址、MAC地址及源IP地址一致,内容为空。
2.如权利要求1所述的方法,其特征在于,所述获取组播路由表中命中标志为命中的表项,包括:
获取组播路由表中所有表项;
依次判断其中命中标志是否为命中,得到命中标志为命中的表项。
3.如权利要求1所述的方法,其特征在于,在构建虚拟组播报文送软件协议层后,该方法进一步包括:
将组播路由表中所有的命中标志设置为未命中;
当组播路由报文通过设备时,将其与组播路由表匹配,并将匹配成功的路由表项的命中标志置为命中。
4.如权利要求3所述的方法,其特征在于,所述获取组播路由表中命中标志为命中的表项;根据表项中的目的组播地址,构建虚拟组播报文送软件协议层;包括:
预先设定一循环时间周期,在该循环时间周期到期时,获取组播路由表中命中标志为命中的表项;根据表项中的目的组播地址,构建虚拟组播报文送软件协议层;并将组播路由表中所有的命中标志设置为未命中。
5.如权利要求1所述的方法,其特征在于,所述目的组播地址包括:
目的IP地址、目的MAC地址和源IP地址。
6.一种组播报文转发装置,其特征在于,该装置包括禁止报送单元、获取单元、虚拟报文构建单元和发送单元,其中,
所述禁止报送单元,用于禁止知名组播报文直接送软件协议层;所述知名组播报文为与组播路由表匹配成功、命中标志置为命中组播路由报文;
所述获取单元,用于获取组播路由表中命中标志为命中的表项;
所述虚拟报文构建单元,用于根据表项中的目的组播地址,构建虚拟组播报文;所述虚拟组播报文与原始组播报文的目的IP地址、MAC地址及源IP地址一致,内容为空;
所述发送单元,用于将所述虚拟组播报文送软件协议层。
7.如权利要求6所述的装置,其特征在于,该装置进一步包括命中设定单元,用于当组播路由报文通过设备时,将其与组播路由表匹配,并将匹配成功的路由表项的命中标志置为命中。
8.如权利要求7所述的装置,其特征在于,该装置进一步包括时间循环设定单元,用于设定一循环时间周期,在该循环时间周期到期时,通知所述虚拟报文构建单元根据命中标志为命中的表项中的目的组播地址,构建虚拟组播报文送软件协议层;并通知命中设定单元将组播路由表中所有的命中标志设置为未命中。
9.如权利要求6~8任一所述的装置,其特征在于,所述组播报文转发装置设置于三层交换机或路由器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102255423A CN101388850B (zh) | 2008-11-05 | 2008-11-05 | 一种组播报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102255423A CN101388850B (zh) | 2008-11-05 | 2008-11-05 | 一种组播报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101388850A CN101388850A (zh) | 2009-03-18 |
CN101388850B true CN101388850B (zh) | 2010-12-22 |
Family
ID=40478039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102255423A Active CN101388850B (zh) | 2008-11-05 | 2008-11-05 | 一种组播报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101388850B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428092B (zh) * | 2012-05-21 | 2016-09-28 | 中兴通讯股份有限公司 | 分布式设备多播报文介质访问控制地址学习方法及装置 |
CN105429881B (zh) * | 2014-09-23 | 2019-07-09 | 杭州迪普科技股份有限公司 | 一种组播报文转发方法和装置 |
CN112737982A (zh) * | 2020-12-23 | 2021-04-30 | 锐捷网络股份有限公司 | 一种转发报文的方法和clos架构交换机 |
CN115514721B (zh) * | 2022-09-23 | 2023-11-07 | 北京东土军悦科技有限公司 | 未知组播数据的处理方法及装置、计算设备、存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424650B1 (en) * | 1999-02-09 | 2002-07-23 | 3Com Corporation | Network address filter device |
EP1422884A1 (en) * | 2002-11-20 | 2004-05-26 | 3Com Corporation | Network units for use in and organisation of cascade systems |
CN1798098A (zh) * | 2004-12-29 | 2006-07-05 | 中兴通讯股份有限公司 | 区分多业务的抗ip组播数据流冲击通信系统的方法 |
CN101237390A (zh) * | 2007-02-02 | 2008-08-06 | 华为技术有限公司 | 发送和接收组播消息的方法及装置 |
-
2008
- 2008-11-05 CN CN2008102255423A patent/CN101388850B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6424650B1 (en) * | 1999-02-09 | 2002-07-23 | 3Com Corporation | Network address filter device |
EP1422884A1 (en) * | 2002-11-20 | 2004-05-26 | 3Com Corporation | Network units for use in and organisation of cascade systems |
CN1798098A (zh) * | 2004-12-29 | 2006-07-05 | 中兴通讯股份有限公司 | 区分多业务的抗ip组播数据流冲击通信系统的方法 |
CN101237390A (zh) * | 2007-02-02 | 2008-08-06 | 华为技术有限公司 | 发送和接收组播消息的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101388850A (zh) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075417B (zh) | 组播剪枝方法及协议无关组播路由器 | |
CN101577679B (zh) | 实现指定路由器之间组播业务分担的状态管理方法和装置 | |
CN102197627B (zh) | 组播流量收敛的改善 | |
CN101212326B (zh) | 一种在任意播组内对节点配置的方法和辅助方法及装置 | |
CN101778113B (zh) | 组播网中rp状态检测方法、装置、rp装置和组播系统 | |
CN100499587C (zh) | 交换设备及其防止流量冲击的报文处理方法 | |
CN101370035A (zh) | 用于动态客户端/服务器网络管理的方法以及系统 | |
CN101388850B (zh) | 一种组播报文转发方法及装置 | |
US10116554B2 (en) | Data flow processing method and apparatus | |
CN102904975A (zh) | 报文处理的方法和相关装置 | |
US10382391B2 (en) | Systems and methods for managing network address information | |
CN104937896A (zh) | 地址解析协议消息的处理方法和转发器、控制器 | |
CN106375223B (zh) | 一种基于sdn的数据转发系统及方法 | |
CN101291240A (zh) | 一种组播流传输方法和系统 | |
CN102546666A (zh) | 防止igmp欺骗和攻击的方法及装置 | |
KR20110027683A (ko) | 단말기의 멀티캐스트 상태를 얻기 위한 방법 | |
CN102647487A (zh) | 一种节约ip地址的方法及接入代理设备 | |
CN102647359B (zh) | 基于DSA TAG及自定义协议栈的网桥IGMP Snooping实现方法 | |
CN104243338B (zh) | 报文处理方法、设备和系统 | |
CN103581027B (zh) | 一种优化pim‑sm组播路由建立的方法 | |
CN102868642B (zh) | 在asic中实现nvgre报文转发的方法和装置 | |
CN101488873B (zh) | 组播加入方法及系统 | |
CN102761477A (zh) | 组播协议报文发送方法及装置 | |
CN104185971B (zh) | 宣布进入相对较低的功率状态的至少一个消息 | |
CN103036863A (zh) | 一种解决IPv4地址短缺的方法及装置 |
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 |