CN100596109C - 一种报文混播变换及转发的方法和交换设备 - Google Patents
一种报文混播变换及转发的方法和交换设备 Download PDFInfo
- Publication number
- CN100596109C CN100596109C CN200710100168A CN200710100168A CN100596109C CN 100596109 C CN100596109 C CN 100596109C CN 200710100168 A CN200710100168 A CN 200710100168A CN 200710100168 A CN200710100168 A CN 200710100168A CN 100596109 C CN100596109 C CN 100596109C
- Authority
- CN
- China
- Prior art keywords
- message
- clean culture
- multicast
- address
- conversion
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 title claims abstract description 84
- 230000009466 transformation Effects 0.000 title claims description 152
- 238000006243 chemical reaction Methods 0.000 claims abstract description 165
- 230000008569 process Effects 0.000 claims description 40
- 108010001267 Protein Subunits Proteins 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 16
- 102000002067 Protein Subunits Human genes 0.000 claims description 8
- 230000015572 biosynthetic process Effects 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 8
- 230000009191 jumping Effects 0.000 claims description 3
- 241001167556 Catena Species 0.000 description 15
- 238000012546 transfer Methods 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000011426 transformation method Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 101100043229 Oryza sativa subsp. japonica SPL14 gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010899 nucleation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- ABEXEQSGABRUHS-UHFFFAOYSA-N 16-methylheptadecyl 16-methylheptadecanoate Chemical compound CC(C)CCCCCCCCCCCCCCCOC(=O)CCCCCCCCCCCCCCC(C)C ABEXEQSGABRUHS-UHFFFAOYSA-N 0.000 description 1
- 102100022183 E3 ubiquitin-protein ligase MIB1 Human genes 0.000 description 1
- 102100039955 Gem-associated protein 6 Human genes 0.000 description 1
- 101000897488 Homo sapiens Cyclin-D1-binding protein 1 Proteins 0.000 description 1
- 101000805876 Homo sapiens Disco-interacting protein 2 homolog A Proteins 0.000 description 1
- 101000926140 Homo sapiens Gem-associated protein 2 Proteins 0.000 description 1
- 101000886614 Homo sapiens Gem-associated protein 6 Proteins 0.000 description 1
- 101000651236 Homo sapiens NCK-interacting protein with SH3 domain Proteins 0.000 description 1
- 101000716750 Homo sapiens Protein SCAF11 Proteins 0.000 description 1
- 101000955093 Homo sapiens WD repeat-containing protein 3 Proteins 0.000 description 1
- 101000723833 Homo sapiens Zinc finger E-box-binding homeobox 2 Proteins 0.000 description 1
- 241000764238 Isis Species 0.000 description 1
- 102100020876 Protein SCAF11 Human genes 0.000 description 1
- 102100038964 WD repeat-containing protein 3 Human genes 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005417 image-selected in vivo spectroscopy Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012739 integrated shape imaging system Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- AXOXZJJMUVSZQY-BVDKBYOBSA-N sip 20 Chemical compound C([C@@H](C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)N[C@@H](CO)C(=O)NCC(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@H](C(=O)NCC(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CCCNC(N)=N)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@@H]([C@@H](C)CC)C(=O)N[C@@H](CC=1NC=NC=1)C(=O)N[C@@H](CC(O)=O)C(O)=O)C(C)O)[C@@H](C)CC)NC(=O)[C@H](CC(O)=O)NC(=O)[C@H](C)NC(=O)[C@H](CC=1C=CC(O)=CC=1)NC(=O)[C@@H](NC(=O)[C@@H](N)C(C)O)C(C)O)C1=CC=CC=C1 AXOXZJJMUVSZQY-BVDKBYOBSA-N 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种报文混播变换及转发的方法,包括:预先在网络交换设备中设置硬件混播变换单元,并在该硬件变换单元中设置点到多点P2MP的报文变换信息;所述硬件混播变换单元接收单播/组播报文,根据设置的报文变换信息,对单播/组播报文进行变换;转发变换后的单播/组播报文。本发明还公开了一种交换设备,包括CPU、硬件混播变换单元和至少一个报文收发端口。应用本发明的方法和交换设备,能够一方面克服软件实现所带来的处理时延,提高了转发效率,另一方面相对于通过组播网络实现P2MP的转发方式,避免了要求报文经过的网络必须支持组播协议的限制。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种报文混播变换及转发的方法和交换设备。
背景技术
现有的数字视频监控,IPTV,多媒体培训,多媒体会议等视频应用部署时,会遇到对业务流量进行一对多复制的需求,单播协议本身不支持点到多点(P2MP)的转发模式,因此无法直接利用单播协议实现报文的复制和转发。
目前通用的进行P2MP转发的方式为:在网络中部署流媒体服务器,在该流媒体服务器中利用软件实现P2MP的转发。具体地,实现P2MP的报文变换和转发流程包括:
步骤1:网络中的转发节点将报文发送给流媒体服务器;
步骤2:在流媒体服务器中,设置一个单播到多个单播的映射关系,并将接收到的报文从一个单播源地址复制到多个单播接收端,然后将复制后的多个单播报文根据其目的地址发送到网络中的交换设备中。
步骤3:交换设备的报文收发端口接收流媒体服务器发送的报文,该交换设备中的ASIC根据端口接收的报文查相应的路由表,根据查表结果从相应的报文收发端口进行转发。
在上述流程的步骤2中,利用软件实现的一个单播到多个单播的转换过程,也就是利用流媒体服务器的中央处理单元(CPU)执行特定的转换程序的过程。而CPU执行转换程序时存在以下缺点:
1、CPU是通用的CPU,利用其进行的转换经常被中断,而且经常有任务切换;
2、CPU对输入输出的访问速度比较慢;
3、CPU在操作的过程中需要通过操作系统层,驱动层最后才能达到应用层,环节很多。上述缺点均使得利用CPU进行P2MP转换时必然造成处理的时延。同时,由于控制和转发均由CPU完成,导致对于网络实时应用环境的感知能力差,改变转换方式的灵活性差。
因此,在现有的利用流媒体服务器实现P2MP转发时,由于软件处理的时延大,且灵活性差,不能满足高质量和大规模视频监控的要求。
另外一种实现P2MP的方式可以为通过组播网络来支持。但是,该方式的实现要求整网都支持组播协议,而现有的网络并不满足这个要求。源端和接收端所在的网络支持的协议功能可能并不一致,并且当源端和接收端间跨越其它网络时,则要求报文所有经过的网络均支持组播协议,这一要求显然较难实现,因此部署起来的灵活性和适应性较差。
综上所述,目前的P2MP转发技术的转发能力较差,无法满足高质量和大规模视频监控的要求。
发明内容
有鉴于此,本发明提供一种报文混播变换及转发的方法和交换设备,能够有效地进行P2MP的报文变换和转发。
为实现上述目的,本发明采用如下的技术方案:
一种报文混播变换及转发的方法,包括:
预先在网络交换设备中设置硬件混播变换单元,并在该硬件混播变换单元中根据网络拓扑设置变换表,保存点到多点P2MP的报文变换信息的索引和与该索引对应的报文变换信息;其中保存的任意报文变换信息为:利用该报文变换信息进行报文变换后形成的目标报文个数,以及形成每个目标报文所需的信息;所述形成每个目标报文所需的信息包括:该目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项,分别用于替换接收的单播/组播报文的相应信息;
所述硬件混播变换单元接收单播/组播报文,根据设置的报文变换信息,对单播/组播报文进行变换;
转发变换后的单播/组播报文。
较佳地,所述变换信息的索引为以下一种或任意组合:单播/组播报文的源IP地址、目的IP地址、四层源端口号和四层目的端口号。
较佳地,所述形成每个目标报文所需的信息中进一步包括:该目标报文的目的MAC地址、源MAC地址、VLAN信息和物理出端口号,分别用于替换所述单播/组播报文的相应信息;
所述目的MAC地址为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的下一跳的MAC地址;
所述源MAC地址为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的报文三层出接口对应的MAC地址;
所述VLAN信息为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的报文物理出端口所在VLAN的信息;
所述物理出端口号为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的物理出端口。
较佳地,在变换表中利用节点链表表示索引对应的报文变换信息,所述链表中包括的节点数表示所述报文变换后形成的目标报文个数,每个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项。
较佳地,在变换表中利用节点链表表示索引对应的报文变换信息,所述链表中包括的节点数表示所述报文变换后形成的目标报文个数,每个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息和物理出端口号。
较佳地,该方法进一步包括:根据网络变化状况实时更新设置的报文变换信息。
较佳地,所述根据设置的报文变换信息对单播/组播报文进行变换的步骤包括:所述硬件混播变换单元解析接收到的单播/组播报文,确定所述变换表的索引项中与所述单播/组播报文对应的索引,并根据所述索引,确定与所述单播/组播报文对应的节点链表,利用该节点链表中的各个节点对单播/组播报文进行变换。
较佳地,所述利用节点链表中的各个节点对单播/组播报文进行变换为:
所述硬件混播变换单元对应每个与单播/组播报文对应的节点生成一个报文,将对应节点中的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项设置为该报文的对应项,更新报文的IP头校验和以及传输层的校验和,并根据目的IP地址确定该变换后的报文为单播或组播;
所述转发变换后的单播/组播报文为:根据变换后的单播/组播报文,查询相应的单播/组播表,进行报文转发。
较佳地,所述根据设置的报文变换信息对单播/组播报文进行变换的步骤包括:所述硬件混播变换单元解析接收到的单播/组播报文,确定所述变换表的索引项中与所述单播/组播报文对应的索引,并根据所述索引,确定与所述单播/组播报文对应的节点链表,利用该节点链表中的各个节点对单播/组播报文进行变换。
较佳地,所述利用节点链表中的各个节点对单播/组播报文进行变换为:
所述硬件混播变换单元对应每个与待转换报文对应的节点生成一个报文,将对应节点中的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息、物理出端口号设置为该报文的对应项,更新报文的IP头校验和以及传输层的校验和,并根据目的IP地址确定该报文为单播或组播,得到变换后的单播或组播报文;
所述转发变换后的单播/组播报文为:将变换后的单播/组播报文从所述目标报文的物理出端口号所指定的端口转发出去。
较佳地,在查询变换表时,当未查找到所述索引时,直接转发接收的单播组播报文,并结束本流程。
较佳地,在执行所述接收单播/组播报文的操作后,执行所述对单播/组播报文进行变换的操作前,该方法进一步包括:根据单播/组播报文的接收端口判断是否使能混播变换,若是,则继续执行所述对单播/组播报文进行变换的操作,否则,直接转发接收的单播/组播报文,并结束本流程。
较佳地,利用专用集成芯片ASIC实现所述硬件混播变换单元。
一种交换设备,包括CPU、至少一个报文收发端口和硬件混播变换单元和报文路由单元;所述硬件混播变换单元包括存储子单元和变换引擎子单元,其中,
所述CPU,用于根据网络拓扑生成P2MP的报文变换信息,并存储到所述硬件混播变换单元中;
所述报文收发端口,用于接收网络中的单播/组播报文并发送给所述硬件混播变换单元进行处理;
所述硬件混播变换单元中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息及其二者对应关系的变换表,在该变换表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项;
所述硬件混播变换单元中的变换引擎子单元,用于接收所述报文收发端口发送的单播/组播报文,并根据该报文标识,参照所述存储子单元中的变换表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,将变换后的目标报文发送给所述报文路由单元;
所述报文路由单元,用于根据变换后的目标报文,查询相对应的单播/组播表,并对目标报文进行媒体接入层MAC地址和虚拟局域网VLAN信息的替换;将替换后的报文发送给对应的报文收发端口;
接收到变换后的单播/组播报文的报文收发端口,用于将接收到的单播/组播报文转发出去。
较佳地,所述硬件混播变换单元进一步包括控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该待变换的单播/组播报文发送给所述变换引擎子单元。
一种交换设备,包括CPU和至少一个报文收发端口,该交换设备还包括硬件混播变换单元;所述硬件混播变换单元包括:存储子单元和变换引擎子单元,其中,
所述CPU,用于根据网络拓扑生成P2MP的报文变换信息,并存储到所述硬件混播变换单元中;
所述报文收发端口,用于接收网络中的单播/组播报文并发送给所述硬件混播变换单元进行处理;
所述硬件混播变换单元中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息及其二者对应关系的变换表,在该变换表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息和物理出端口号;
所述硬件混播变换单元中的变换引擎子单元,用于接收所述报文收发端口发送的单播/组播报文,并根据该报文标识,参照所述存储子单元中的变换表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,根据该变换后的目标报文确定报文转发端口,发送给对应的报文收发端口;
接收到变换后的单播/组播报文的报文收发端口,用于将接收到的单播/组播报文转发出去。
较佳地,所述硬件混播变换单元进一步包括控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该待变换的单播/组播报文发送给所述变换引擎子单元。
由上述技术方案可见,在本发明中,预先在网络交换设备中设置硬件混播变换单元,并在该硬件混播变换单元中设置P2MP的报文变换信息,该硬件混播变换单元根据接收到的单播/组播报文,参照设置的报文变换信息,对单播/组播报文进行变换;然后,将完成变换后相应单播/组播报文进行转发。这样,整个报文变换过程在交换设备的硬件混播变换单元中利用硬件完成,一方面相对于利用软件的实现方式,避免了在网络中引入流媒体服务器的要求,并且大大降低了实现P2MP操作所需的时间,从而克服了软件实现所带来的处理时延,提高了转发效率,另一方面相对于通过组播网络实现P2MP的转发方式,避免了要求报文经过的网络必须支持组播协议的限制。
附图说明
图1为本发明提供的报文混播变换及转发的方法总体流程图。
图2为本发明提供的实现混播变换及转发的交换设备总体结构图。
图3为本发明实施例一中报文混播变换及转发的方法具体流程图。
图4为本发明实施例一中实现混播变换及转发的交换机具体结构图。
图5为本发明实施例二中报文混播变换及转发的方法具体流程图。
图6为本发明实施例二中实现混播变换及转发的交换机具体结构图。
具体实施方式
为使本发明的目的、技术手段和优点更加清楚明白,以下结合附图对本发明作进一步详细描述。
本发明的基本思想是:在交换设备的硬件中设置P2MP转换过程中的报文变换信息,并在该硬件中将接收到的报文按照设置的变换信息进行相应的变换,并根据变换后的报文实现转发。从而利用硬件实现了整个P2MP的转发流程,提高了转发效率,且避免了在整网支持组播协议的限制。
在本发明中,不仅能够实现将一个单播报文变换为多个单播报文,也可以将组播报文变换为单播报文、或将单播报文变换为组播报文等多种单播和组播报文间的变换,因此将本发明对报文进行的变换过程称为混播变换过程。
图1为本发明提供的报文混播变换及转发的方法总体流程图。如图1所示,该方法包括:
步骤101,预先在网络交换设备中设置硬件混播变换单元,并在该硬件混播变换单元中设置P2MP的报文变换信息。
步骤102,硬件混播变换单元接收单播/组播报文,根据设置的报文变换信息,对单播/组播报文进行变换。
步骤103,转发变换后的单播/组播报文。
图2为本发明提供的能够实现混播变换及转发的交换设备总体结构图。该交换设备能够实施上述图1所示的报文混播变换及转发方法。该交换设备具体包括:CPU、硬件混播变换单元和至少一个报文转发端口。
在该交换设备中,CPU,用于根据网络拓扑生成P2MP的报文变换信息存储到硬件混播变换单元中。
报文收发端口1,用于接收网络中的单播/组播报文并发送给硬件混播变换单元进行处理。
硬件混播变换单元,用于存储设置的P2MP报文变换信息,并根据存储的报文变换信息,对单播/组播报文进行变换,将变换后的单播/组播报文发送给该报文对应的报文收发端口2。
报文收发端口2,用于将变换后的单播/组播报文转发出去。其中,报文收发端口1和报文收发端口2可能是相同的报文收发端口,也可能是不同的报文收发端口。
在硬件混播变换单元中,可以根据应用的不同需求,设置多种报文变换信息,实现单播报文和组播报文间的任意转换。具体地,该报文变换信息可以包括:将一个单播报文变换为一个组播报文的信息、将一个单播报文变换为多个单播报文的信息、将一个单播报文转换为一个组播报文的信息和多个单播报文的信息、将一个组播报文变换为一个或多个单播报文的信息等。
更进一步地,在对单播/组播报文进行变换时,除与现有技术中相同的可以对报文类型、数量和网络地址进行变化外,还可以进一步根据预先设置对报文的UDP层和/或应用层信息进行变换。
下面通过具体实施例说明本发明提供的方法和交换设备的具体实施方式。在下面的实施例中,以在交换机中的ASIC中实现硬件混播变换单元为例进行说明。
实施例一:
在本实施例中,利用在ASIC中存储的混播变换表保存P2MP的报文变换信息。具体地,该混播变换表中保存了P2MP转换过程中IP层及其上层信息的转换信息。对于完成转换后的报文,依然采用传统的查单播/组播表的方式进行转发。
图3为本发明实施例一中报文混播变换及转发的方法具体流程图。如图3所示,该方法包括:
步骤301,预先在交换机的ASIC中设置P2MP的报文变换信息,包括报文IP层及其上层的变换信息。
在本方法流程中,交换机对接收的报文进行处理前,首先进行P2MP报文变换信息的设置步骤。本实施例在ASIC中设置混播变换表,该表中保存单播/组播报文标识与报文变换信息及二者间的对应关系。具体该混播变换表由交换机的CPU利用私有协议生成和更新维护,并且将当前的混播变换表存储在ASIC中。其中的更新维护具体包括增加、删除和修改等,由于网络状况随时会发生变化,如混播变换表中的某个IP地址失效等,在这些情况下,需要对混播变换表进行及时更新和维护,以保证P2MP转换的正常进行。
混播变换表的具体结构包括索引项和节点链表项,其中,索引项记录报文标识,节点链表项记录索引项对应的报文变换信息,本实施例中具体为IP层及其上层的变换信息。
其中,报文变换信息中记录了利用该种报文变换信息进行报文变换后形成的目标报文的个数,以及形成每个目标报文所需的信息。举例来说,当报文变换信息为将一个单播报文变换成三个单播报文的信息时,在该报文变换信息中记录以下内容:形成的单播报文的个数,要形成每个单播报文时需要的信息。具体地,本实施例的混播变换表中,利用多个节点构成的链表形式表示报文变换信息。该链表中的每个节点为一个五元组,具体为变换形成的每个目标报文的五元组,也就是形成该目标报文的信息。其中,每个五元组包括该目标报文的源IP地址(SIP,Source IP Address)、目的IP地址(DIP,Destination IP Address)、四层源端口号(L4Sport,L4 Source Port)、四层目的端口号(L4Dport,L4Destination Port)和UDP/应用层信息变换项(AREA)。
依照上述表示形式形成的混播变换表举例如表1。
索引 | 节点链表 |
DIP+L4Dport | {SIP1,DIP1,L4Sport1,L4Dport1,AREA1}->{SIP2,DIP2,L4Sport2,L4Dport2,AREA2}->......->{SIP20,DIP20,L4Sport20,L4Dport20,AREA20} |
2.2.2.2+10000 | {3.3.3.3,4.4.4.4,20000,30000,aaaa}->{5.5.5.5,237.10.10.10,40000,40001,bbbb}->{6.6.6.6,7.7.7.7,50000,50001,cccc} |
...... | ...... |
表1
在表1中,第一列是索引项,考虑到实际应用,将目的IP地址+四层目的端口号作为混播变换表的索引项。表1中的第二列是一个链表形式表示的报文变换信息,链表中的每个节点代表一种报文要进行的变换,将变换形成一个目标报文,最多可以进行20种变换,形成20个目标报文。其中的前四个参数的取值用于替换变换前的单播/组播报文的相应地址和端口信息,AREA参数表示UDP/应用层信息变换项,其取值用于替换预先指定的UDP/应用层内容。其中,预先指定的UDP/应用层内容的位置和长度是全局定义的,具体为从报文开始的偏移量和要变换的报文的长度。
表1中的第三行举了一个例子说明混播变换表中具体表项的含义:变换前报文的目的IP地址为2.2.2.2,四层目的端口信息为10000;根据目的IP地址可以区分出组播和单播报文,在该表1中变换后获得三种目标报文,具体为两个单播报文和一个组播报文。变换后的第一个单播报文(即链表中的第一个节点)的源IP地址为3.3.3.3,目的IP地址为4.4.4.4,四层源端口号为20000四层目的端口号为30000,AREA字段的值为aaaa,此处的AREA被全局定义为从报文开始偏移100个字节,长度为两个字节。变换后的第二个单播报文(即链表中的第三个节点)的源IP地址为6.6.6.6,目的IP地址为7.7.7.7,四层源端口号为50000,四层目的端口号为50001;AREA的值为cccc。变换后的组播报文(即链表中的第二个节点)的源IP地址为5.5.5.5,目的IP地址为237.10.10.10,四层源端口号为40000,四层目的端口号为40001,area的值为cccc。
步骤302,ASIC接收单播/组播报文,并根据接收该报文的端口确定是否使能混播变换,若是,则执行步骤303及其后续步骤,否则执行步骤307。
本实施例中,在对单播/组播报文进行混播变换前,增加一个是否需要进行混播变换的判断,以增强方案的灵活性。
本实施例中实现该判断的具体方式可以为:在ASIC中记录交换机的各个端口对应的使能/去使能标识;对于对应使能标识的端口接收到的单播/组播报文,ASIC判定其需要进行混播变换,则对该报文执行步骤303及其后续步骤;对于对应去使能标识的端口接收到的单播/组播报文,ASIC判定其不需要进行混播变换,则对该报文执行步骤307。
事实上,也可以利用其它的标识规定混播变换的使能/去使能,例如接收报文的IP地址信息等。
步骤303,ASIC接收单播/组播报文,以该接收报文标识为索引,查询混播变换表。
在混播变换表中,记录报文变换信息的索引与报文变换信息的对应关系。
其中,以报文标识作为报文变换信息的索引,该索引可以为以下一种或任意组合:报文的目的IP地址、报文的四层目的端口号、报文的源IP地址、报文的四层源端口号。在本实施例中,根据报文的目的IP地址+四层目的端口号作为报文标识。
根据接收到的单播/组播报文,查询上述混播变换表的具体方式可以为:ASIC以待变换的单播/组播报文的目标IP地址+目标四层端口号为索引,查询混播变换表,若混播变换表中存在该索引,则执行步骤304及其后续步骤;否则执行步骤307,将该单播/组播报文直接进行转发后结束本流程。
步骤304,ASIC确定待变换报文对应的报文变换信息,并进行相应的变换。
本步骤中,根据步骤303中查询混播变换表的结果确定待变换报文对应的节点链表项,也就是对应的报文变换信息。
对报文进行变换的具体方式包括:根据确定的报文变换信息中链表包括的五元组个数,即链表中的节点数对报文进行复制;例如,如表1中的第三行所示的报文变换信息中,五元组个数为3个,因此将待变换的单播报文复制得到3个新报文。具体利用ASIC复制报文的方式可以依照现有的方式实现,这里就不再赘述。同时,将新报文的源IP地址,目的IP地址,源/四层目的端口号按照对应节点链表项中各个节点的五元组值对应替换,并根据五元组值中的AREA参数对相应目标报文的UDP/应用层信息进行变换。至此,便完成了混播变换表中记录的变换方式。
由上述变换过程结合前述的混播变换表可以看出,对于同一个索引项(即对应接收的一个单播/组播报文),可以得到多个目标报文,也就是实现了报文数量的转换。在具体形成的每个目标报文中,通过将报文的目的IP地址转换为相应的单播/组播地址,可以改变报文的类型和网络地址。利用上述多种变换的组合,也就能够完成前述的一个单播报文转换为多个单播报文、一个组播报文等多种变换了。
步骤305,ASIC将报文的IP头校验和与传输层的校验和按照新的IP地址和端口号重新进行计算,并利用计算结果刷新原先的校验和。
至此,上述报文复制和地址转换的过程均利用交换机中的ASIC实现,由于混播变换表存储在ASIC中,且查询混播变换表及完成变换的操作也由ASIC完成,因此相对于利用软件实现该过程的方式,避免了将存储的变换方式载入内存,从硬件存储单元中提取接收的报文等操作,并且由于硬件实现固有的快于软件实现的特性,大大缩短了操作所需的时间。
步骤306,根据目标报文的目的IP地址类型,对报文进行路由查找和转发,结束本流程。
本步骤中,如果变换后目标报文的目的IP地址是单播IP地址,则该报文被送往单播路由表进行查找,如果是组播IP地址,则被送往组播路由表进行查找。其中的单播表表项是按照上层单播路由,例如RIP,OSPF,BGP,ISIS等生成并更新维护,组播表表项按照组播路由协议,例如PIM-SM/DM生成和更新维护。
单播路由查找过程与传统的单播路由查找过程相同。具体地,根据单播路由表,报文获得下一跳的MAC地址替换旧的目的MAC地址信息,获得出三层接口的MAC地址替换旧的源MAC地址,同时获得出接口的VLAN信息替换旧的VLAN信息。替换后的报文根据路由表查到的出物理端口发送给下一条网络设备进行继续转发。
组播路由的查找过程也与传统的组播路由查找过程相同。报文按照(S,G,V)进行组播查找,获得多个出接口,然后将目标组播报文一一复制到出接口上。同时替换报文的源MAC地址,目的MAC地址,以及VLAN信息,然后从物理出端口发送。
步骤307,对接收到的报文直接进行报文路由和转发,并结束本流程。
本步骤中,对不需要进行混播变换或混播变换表中没有对应索引项的报文,直接进行报文路由和转发,具体报文路由和转发的方式与现有的方式相同,这里就不再赘述。
至此,本实施例中报文混播变换及转发的方法流程结束。
本实施例还提供了一种能够实现混播变换及转发的交换机,该交换机是图2所示交换设备的一种具体实施方式,可以用于实施上述混播变换方法。图4即为本实施例中交换机的具体结构图。如图4所示,该交换机包括:CPU、ASIC、报文收发端口。其中,ASIC包括存储子单元、控制子单元、变换引擎子单元和报文路由单元。存储子单元、控制子单元和变换引擎子单元构成了图2中的硬件混播变换单元,报文路由单元为现有的ASIC均包括的功能单元。
在该交换机中,CPU用于根据网络拓扑和特定的协议生成P2MP的报文变换信息存储到ASIC中,并进一步根据网络变化状况实时更新该报文变换信息。
报文收发端口1,用于接收网络中的单播/组播报文并发送给ASIC进行处理。
ASIC中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息对应关系的混播变换表,在该混播变换表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项。
控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该单播/组播报文发送给变换引擎子单元,当不使能混播变换时,将该报文发送给报文路由单元。
变换引擎子单元,用于根据单播/组播报文标识,参照存储子单元中的混播变换表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,将变换后的目标报文发送给报文路由单元。
报文路由单元,用于根据变换后的目标报文,查询相对应的单播/组播表,并对目标报文进行MAC地址和VLAN信息的替换;将替换后的报文发送给对应的报文收发端口2进行转发;还用于接收控制子单元发送的报文,查询相应的单播/组播表,进行相应的路由处理后通过对应的报文收发端口3进行转发。
报文收发端口2和报文收发端口3,用于将接收到的单播/组播报文转发出去。其中,报文收发端口1、2和3可能是相同的报文收发端口,也可能是不同的报文收发端口。
上述即为本实施例中提供的混播变换方法和交换机的具体实施方式。在上述图3所示的流程中,步骤302的操作是为提高混播变换方法的灵活性而增加的,当然,也可以不执行该步骤,也就是默认对所有接收到的单播/组播报文均使能混播变换,在该情况下,则可以在执行完步骤301后,对所有接收到的单播/组播报文直接执行步骤303及其后续步骤。相对应地,在图4所示的交换机具体结构中,ASIC中也可以不包括控制子单元,将报文接收端口接收的所有报文均发送到ASIC中的变换引擎子单元进行处理。
下面,对利用本实施例的方法在ASIC中实现的各种P2MP转换进行举例说明。
1、一个单播报文到一个组播报文的转换。
假定ASIC接收到一个单播报文,能够获取到如表1所示的报文相关信息。
物理端口 | 源MAC地址 | 目的MAC地址 | VLAN信息 | 源IP地址 | 目的IP地址 | 四层源端口号 | 四层目的端口号 |
P1 | 单播MACA1 | 单播MACB1 | VLAN A1 | 单播IPA1 | 单播IPB1 | A1 | B1 |
表1
提取表1中的目的IP地址单播IPB1和四层目的端口号B1,以该内容为索引,查询混播变换表,确定该项对应的报文变换信息。经查表确定,该索引对应的节点链表项中只有一个节点,也就是说形成一个目标报文。该节点中记录了目标报文的五元组信息,利用该五元组信息对ASIC接收的该单播报文进行相应信息的变换,该变换后的报文具有如表2所示的信息。
源IP地址 | 目的IP地址 | 四层源端口号 | 四层目的端口号 |
单播IPA2 | 组播IPB2 | A2 | B2 |
表2
根据变换后的目的IP地址组播IPB2可以看出,变换后的报文是组播报文,于是根据其目的IP地址组播IPB2查找组播表,从而获取源/目的MAC地址、VLAN和出端口信息,替换原有报文的相应信息后,得到报文最终的相关信息如表3所示。最后将该形成的组播报文通过出端口P2发送出去。
物理端口 | 源MAC地址 | 目的MAC地址 | VLAN信息 | 源IP地址 | 目的IP地址 | 四层源端口号 | 四层目的端口号 |
P2 | 单播MACA2 | 组播MACB2 | VLAN A2 | 单播IPA2 | 组播IPB2 | A2 | B2 |
表3
2、一个组播报文到一个或多个单播报文的转换。
假定ASIC接收到一个组播报文,能够获取到如表4所示的报文相关信息。
物理端口 | 源MAC地址 | 目的MAC地址 | VLAN信息 | 源IP地址 | 目的IP地址 | 四层源端口号 | 四层目的端口号 |
P1 | 单播MACA1 | 组播MACB1 | VLAN A1 | 单播IPA1 | 组播IPB1 | A1 | B1 |
表4
提取表4中的目的IP地址组播IPB1和四层目的端口号B1,查询混播变换表。经查表确定,该索引对应的表示报文变换信息的节点链表项中包括一个或多个节点。其中,每个节点的目的IP地址均为单播IP地址。按照包括的节点数对接收到的报文进行复制,然后依次根据每个节点中的五元组信息对相应复制报文的相关信息进行替换。信息替换后形成的报文具有如表5所示的信息。
表5
根据变换后的目的IP地址单播IPB2、IPB3等可以看出,变换后的报文是单播报文,于是根据其目的IP地址组播IPB2、IPB3等查找单播表,从而获取源/目的MAC地址、VLAN和出端口信息,替换原有报文的相应信息后,得到报文最终的相关信息如表6所示。最后将该形成的组播报文通过相应的出端口P2、P3等发送出去。
表6
3、一个单播报文到多个单播报文的转换。
假定ASIC接收到一个单播报文,获取到如表1所示的报文相关信息。经过提取目的IP地址和四层目的端口号查找到的节点链表项与上述2中的节点链表项类似,也包括了多个节点,其中每个节点中五元组信息的目的IP地址均表示单播报文的地址。因此,根据查找到的节点中的内容对接收到的单播报文进行变换后,报文的相关信息也如表5所示。然后,与2中的步骤类似,根据目的IP地址查相应的单播表进行信息替换后,形成报文的相关信息如表6所示。
4、一个单播报文到一个组播报文+多个单播报文的转换。
假定ASIC接收到一个单播报文,获取到如表1所示的报文相关信息。经过提取目的IP地址和四层目的端口号查找到的节点链表项中包括多个节点,其中有多个节点的目的IP地址为单播IP地址IPB1、IPB2等,还有一个节点的目的IP地址为组播IP地址IPBn。根据上述多个节点的五元组信息对接收到的单播组播报文的相应信息进行替换后,形成多个新的目标报文,其相关信息如表7所示。
表7
然后,对于形成的多个单播目标报文,根据它们的目的IP地址IPB1、IPB2等查找单播路由表,并利用查找结果替换这些报文的源/目的MAC地址、VLAN ID和出端口信息;对于形成的一个组播目标报文,根据其目的IP地址IPBn,通过查找组播路由表,替换该报文的源/目的MAC地址、VLANID和出端口信息。经过上述IP层以下层的信息替换后,形成所有目标报文的相关信息如表8所示。最后,将这些报文从相应的出端口发送出去。
表8
由上述可见,本实施例利用ASIC完成P2MP转换过程中的信息转换,相对于利用流媒体服务器的软件实现方式,大大提高了转换效率。具体地,对于IP层及其上层信息的转换,利用ASIC中存储的混播变换表记录,通过直接查表实现了报文IP层及上层信息的转换;对于路由转发中涉及的信息转换,依然按照ASIC中原有方式进行,即查单播/组播表实现,最大限度地兼容了ASIC原有的功能,可实现性强。
实施例二:
在本实施例中,利用在ASIC中存储的变换节点信息链表记录P2MP的报文变换信息。具体地,该变换节点信息链表中记录了P2MP转换和报文转发过程中各个协议层信息的转换方式。对于完成转换后的报文,直接通过转换后指定的物理出端口进行转发。
图5为本发明实施例一中报文混播变换及转发的方法具体流程图。如图5所示,该方法包括:
步骤501,预先在交换机的ASIC中设置P2MP的报文变换信息,包括报文中所有涉及到的各个协议层的变换信息。
在本实施例中,利用变换节点信息链表进行记录报文标识与P2MP的报文变换信息及二者间的对应关系。该变换节点信息链表具体由交换机的CPU利用私有协议生成和更新维护,并且将当前的变换节点信息链表存储在ASIC中,具体为所有协议层信息的变换信息。
本实施例中的变换节点信息链表的结构与实施例一中的混播变换表类似,也包括索引项和对应的节点链表项。其中索引项与混播变换表中的索引项取值范围相同,与混播变换表不同的是,本实施例的变换节点信息链表中报文变换信息的表示形式为:变换形成的所有目标报文的九元组形成的链表。具体地,在报文标识对应的变换方式中记录报文变换后形成的所有目标报文的九元组,,也就是形成该目标报文的变换信息。其中,每个九元组包括该目标报文的源IP地址(SIP,Source IP Address)、目的IP地址(DIP,Destination IP Address)、四层源端口号(L4Sport,L4 Source Port)、四层目的端口号(L4Dport,L4Destination Port)、UDP/应用层信息变换项(AREA)、目的媒体接入层(MAC)地址、源MAC地址、VLAN信息和物理出端口。上述内容分别用于替换变换前单播/组播报文的相应内容。
本实施例中CPU产生变换节点信息链表的具体方式可以为:在CPU中首先产生实施例一中所述的混播变换表,其中记录索引项和变换报文后的五元组信息。然后,将混播表中的各项导入变换节点信息链表,并参照其中各节点的目的IP地址,查找相应的单播/混播表,确定各个目标报文的三层物理出端口信息,包括目的媒体接入层(MAC)地址、源MAC地址、VLAN信息和物理出端口,与原有的五元组信息一同构成九元组。在查表形成九元组的过程中,对于目的IP地址表示单播的报文,查找单播表,获得一个三层物理出端口信息,将该信息加入五元组中构成九元组;对于目的IP地址表示组播的报文,查找组播表,并获得多个三层物理出端口信息,将原有的五元组相应复制成多个,分别将获得的三层物理出端口信息加入复制后的五元组中构成多个九元组。至此,便完成了变换节点信息链表的产生。
在网络运行过程中,混播变换表的内容和单播/组播表的内容均可能发生变化。CPU可以根据混播变换表和单播/组播表的实时变化,刷新变换节点信息链表。
当然,也可以采用其它方式产生变换节点信息链表,只要能够将变换和路由转发信息记录到表中即可。
步骤502,ASIC接收单播/组播报文,并根据接收该报文的端口确定是否使能混播变换,若是,则执行步骤503及其后续步骤,否则执行步骤506。
步骤503,ASIC接收单播/组播报文,以该接收报文标识为索引,查询变换节点信息链表。
本步骤中的操作与实施例一中的步骤303相同,这里就不再赘述。
步骤504,ASIC确定待变换报文对应的报文变换信息,并进行相应的变换。
本步骤中,根据步骤503中查询的变换节点信息链表的结果确定待变换报文对应的报文变换信息。
对报文进行变换的具体方式包括:根据确定的报文变换信息中节点链表项包括的九元组的个数,即链表中的节点数对报文进行复制。同时,将新报文的源IP地址,目的IP地址,四层源端口号、四层目的端口号、目的MAC地址、源MAC地址、VLAN信息和出物理端口按照对应节点链表项中各个节点的九元组值对应替换,并根据九元组值中的AREA参数对相应目标报文的UDP/应用层信息进行变换。在上述变换过程中,将报文的IP头校验和与传输层的校验和按照新的IP地址和端口号重新进行计算,并利用计算结果刷新原先的校验和。至此,便完成了变换节点信息链表中记录的变换。
步骤505,根据目标报文的物理出端口,将形成的各个目标报文直接从对应的端口转发出去,并结束本流程。
步骤506,对接收到的报文直接进行报文路由和转发,并结束本流程。
至此,本实施例中报文混播变换及转发的方法流程结束。
本实施例还提供了一种能够实现混播变换及转发的交换机,该交换机是图2所示交换设备的一种具体实施方式,可以用于实施上述混播变换方法。图6即为本实施例中交换机的具体结构图。如图6所示,该交换机包括:CPU、ASIC报文收发端口1和报文收发端口2。其中,ASIC包括存储子单元、控制子单元、变换引擎子单元和报文路由单元。存储子单元、控制子单元和变换引擎子单元构成了图2中的硬件混播变换单元,报文路由单元为现有的ASIC均包括的功能单元。
在该交换机中,CPU用于根据网络拓扑和特定的协议生成P2MP的报文变换信息存储到ASIC中,并进一步根据网络变化状况实时更新该报文变换信息。
报文收发端口1,用于接收网络中的单播/组播报文并发送给ASIC进行处理。
ASIC中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息对应关系的变换节点信息链表,在该变换节点信息链表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息和物理出端口号。
控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该单播/组播报文发送给变换引擎子单元,当不使能混播变换时,将该报文发送给报文路由单元。
变换引擎子单元,用于根据单播/组播报文标识,参照存储子单元中的变换节点信息链表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,根据变换后的报文确定对应的报文收发端口2,并将该报文发送给报文收发端口2。
报文路由单元,用于接收控制子单元发送的报文,查询相应的单播/组播表,进行相应的路由处理后通过对应的报文收发端口3进行转发。
报文收发端口2和报文收发端口3,用于将接收到的单播/组播报文转发出去。其中,报文收发端口1、2和3可能是相同的报文收发端口,也可能是不同的报文收发端口。
下面,对利用本实施例的方法在ASIC中实现的各种P2MP转换进行举例说明。
1、一个单播报文到一个组播报文的转换。
假定ASIC接收到一个单播报文,该报文相关信息如表1所示。提取表1中的目的IP地址单播IPB1和四层目的端口号B1,以该内容为索引,查询变换节点信息链表,确定该项对应的表示报文变换信息。经查表确定,该索引对应的节点链表项中只有一个节点,也就是说形成一个目标报文。该节点中记录了目标报文的九元组信息,利用该九元组信息对ASIC接收的该单播报文进行相应信息的变换,该变换后的报文直接具有了如表3所示的信息。然后将该形成的组播报文通过出端口P2发送出去。
2、一个组播报文到一个或多个单播报文的转换。
提取接收报文的目的IP地址组播IPB1和四层目的端口号B1,以其为索引查询变换节点信息链表。查找结果在对应的节点链表项中包括一个或多个节点。其中,每个节点的目的IP地址均为单播IP地址。按照包括的节点数对接收到的报文进行复制,然后依次根据每个节点中的九元组信息对相应复制报文的相关信息进行替换。于是便形成具备表6所示相关信息的目标报文。
3、一个单播报文到多个单播报文。
提取接收报文的目的IP地址单播IPB1和四层目的端口号B1,以其为索引查询变换节点信息链表。查找结果和后续的处理与上述2中相同。最后也能形成具备表6所示相关信息的目标报文。
4、一个单播报文到一个组播报文+多个单播报文的转换。
提取接收报文的目的IP地址单播IPB1和四层目的端口号B1,以其为索引查询变换节点信息链表。经查询得到对应的节点链表项中包括一个或多个节点。其中,前面多个节点的目的IP地址均为单播IP地址,最后一个节点的目的IP地址为组播IP地址。按照包括的节点数对接收到的报文进行复制,然后依次根据每个节点中的九元组信息对相应复制报文的相关信息进行替换。于是便形成具备表8所示相关信息的目标报文。
由上述可见,本实施例利用ASIC完成P2MP转换过程中的信息转换,相对于原有的软件实现方式,大大提高了转换效率。与实施例一的区别在于,利用ASIC中存储的变换节点信息链表记录了P2MP转换过程中报文IP层及上层的报文变换信息(即对应混播变换表中的内容)和报文路由转发过程中涉及的报文变换信息转换(即对应于原有单播/组播表中的内容),从而通过一次查表,即可以完成P2MP转换和转发过程中涉及的各个协议层的信息转换,进一步提高了转换效率。
上述本发明的实施例一和实施例二均以在ASIC中实现硬件混播变换单元为例说明的具体实现方式。事实上,也可以采用其它的硬件形式实现硬件混播变换单元。
综上可见,本发明可以利用交换设备中的硬件混播变换单元实现P2MP的报文转换过程。相对于CPU实现的报文转换过程,硬件实现的报文转换具有输入输出速度快、处理环节精简、执行单一任务更加专注的优点,因此本方案相对于传统的在流媒体服务器中利用软件实现的P2MP转换方式,大大提高了转换效率,并避免了在报文经过的网络支持组播协议的限制。同时,本发明中,利用CPU设置和更新P2MP的变换方式,由ASIC实现具体的报文变换,从而使得控制和变换分离,灵活性和可扩展性大大增加。另外,通过混播变换表中的灵活设置,能够在ASIC上实现更加灵活多样和复制的变换,不仅能够对报文的IP地址进行变换,还可以对四层端口号及应用层信息进行变换。
事实上,除上述介绍的在硬件混播变换单元中利用变换表的形式保存报文变换信息外,还可以利用其它方式保存混播变换中的报文变换信息。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1、一种报文混播变换及转发的方法,其特征在于,该方法包括:
预先在网络交换设备中设置硬件混播变换单元,并在该硬件混播变换单元中根据网络拓扑设置变换表,保存点到多点P2MP的报文变换信息的索引和与该索引对应的报文变换信息;其中保存的任意报文变换信息为:利用该报文变换信息进行报文变换后形成的目标报文个数,以及形成每个目标报文所需的信息;所述形成每个目标报文所需的信息包括:该目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项,分别用于替换接收的单播/组播报文的相应信息;
所述硬件混播变换单元接收单播/组播报文,根据设置的报文变换信息,对单播/组播报文进行变换;
转发变换后的单播/组播报文。
2、根据权利要求1所述的方法,其特征在于,所述变换信息的索引为以下一种或任意组合:单播/组播报文的源IP地址、目的IP地址、四层源端口号和四层目的端口号。
3、根据权利要求1所述的方法,其特征在于,所述形成每个目标报文所需的信息中进一步包括:该目标报文的目的MAC地址、源MAC地址、VLAN信息和物理出端口号,分别用于替换所述单播/组播报文的相应信息;
所述目的MAC地址为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的下一跳的MAC地址;
所述源MAC地址为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的报文三层出接口对应的MAC地址;
所述VLAN信息为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的报文物理出端口所在VLAN的信息;
所述物理出端口号为:根据所述目标报文的目的IP地址,参照对应的单播/组播表,查到的物理出端口。
4、根据权利要求1所述的方法,其特征在于,在变换表中利用节点链表表示索引对应的报文变换信息,所述链表中包括的节点数表示所述报文变换后形成的目标报文个数,每个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项。
5、根据权利要求3所述的方法,其特征在于,在变换表中利用节点链表表示索引对应的报文变换信息,所述链表中包括的节点数表示所述报文变换后形成的目标报文个数,每个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息和物理出端口号。
6、根据权利要求1所述的方法,其特征在于,该方法进一步包括:根据网络变化状况实时更新设置的报文变换信息。
7、根据权利要求4所述的方法,其特征在于,所述根据设置的报文变换信息对单播/组播报文进行变换的步骤包括:所述硬件混播变换单元解析接收到的单播/组播报文,确定所述变换表的索引项中与所述单播/组播报文对应的索引,并根据所述索引,确定与所述单播/组播报文对应的节点链表,利用该节点链表中的各个节点对单播/组播报文进行变换。
8、根据权利要求7所述的方法,其特征在于,所述利用节点链表中的各个节点对单播/组播报文进行变换为:
所述硬件混播变换单元对应每个与单播/组播报文对应的节点生成一个报文,将对应节点中的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项设置为该报文的对应项,更新报文的IP头校验和以及传输层的校验和,并根据目的IP地址确定该变换后的报文为单播或组播;
所述转发变换后的单播/组播报文为:根据变换后的单播/组播报文,查询相应的单播/组播表,进行报文转发。
9、根据权利要求5所述的方法,其特征在于,所述根据设置的报文变换信息对单播/组播报文进行变换的步骤包括:所述硬件混播变换单元解析接收到的单播/组播报文,确定所述变换表的索引项中与所述单播/组播报文对应的索引,并根据所述索引,确定与所述单播/组播报文对应的节点链表,利用该节点链表中的各个节点对单播/组播报文进行变换。
10、根据权利要求9所述的方法,其特征在于,所述利用节点链表中的各个节点对单播/组播报文进行变换为:
所述硬件混播变换单元对应每个与待转换报文对应的节点生成一个报文,将对应节点中的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息、物理出端口号设置为该报文的对应项,更新报文的IP头校验和以及传输层的校验和,并根据目的IP地址确定该报文为单播或组播,得到变换后的单播或组播报文;
所述转发变换后的单播/组播报文为:将变换后的单播/组播报文从所述目标报文的物理出端口号所指定的端口转发出去。
11、根据权利要求7或9所述的方法,其特征在于,在查询变换表时,当未查找到所述索引时,直接转发接收的单播/组播报文,并结束本流程。
12、根据权利要求1到10中任一所述的方法,其特征在于,在执行所述接收单播/组播报文的操作后,执行所述对单播/组播报文进行变换的操作前,该方法进一步包括:根据单播/组播报文的接收端口判断是否使能混播变换,若是,则继续执行所述对单播/组播报文进行变换的操作,否则,直接转发接收的单播/组播报文,并结束本流程。
13、根据权利要求1到10中任一所述的方法,其特征在于,利用专用集成芯片ASIC实现所述硬件混播变换单元。
14、一种交换设备,包括CPU和至少一个报文收发端口,其特征在于,该交换设备还包括硬件混播变换单元和报文路由单元;所述硬件混播变换单元包括存储子单元和变换引擎子单元,其中,
所述CPU,用于根据网络拓扑生成P2MP的报文变换信息,并存储到所述硬件混播变换单元中;
所述报文收发端口,用于接收网络中的单播/组播报文并发送给所述硬件混播变换单元进行处理;
所述硬件混播变换单元中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息及其二者对应关系的变换表,在该变换表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号和UDP/应用层信息变换项;
所述硬件混播变换单元中的变换引擎子单元,用于接收所述报文收发端口发送的单播/组播报文,并根据该报文标识,参照所述存储子单元中的变换表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,将变换后的目标报文发送给所述报文路由单元;
所述报文路由单元,用于根据变换后的目标报文,查询相对应的单播/组播表,并对目标报文进行媒体接入层MAC地址和虚拟局域网VLAN信息的替换;将替换后的报文发送给对应的报文收发端口;
接收到变换后的单播/组播报文的报文收发端口,用于将接收到的单播/组播报文转发出去。
15、根据权利要求14所述的交换设备,其特征在于,所述硬件混播变换单元进一步包括控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该待变换的单播/组播报文发送给所述变换引擎子单元。
16、一种交换设备,包括CPU和至少一个报文收发端口,其特征在于,该交换设备还包括硬件混播变换单元;所述硬件混播变换单元包括:存储子单元和变换引擎子单元,其中,
所述CPU,用于根据网络拓扑生成P2MP的报文变换信息,并存储到所述硬件混播变换单元中;
所述报文收发端口,用于接收网络中的单播/组播报文并发送给所述硬件混播变换单元进行处理;
所述硬件混播变换单元中的存储子单元,用于保存记录单播/组播报文标识与报文变换信息及其二者对应关系的变换表,在该变换表中利用节点链表表示报文变换信息,在各个节点中包括目标报文的源IP地址、目的IP地址、四层源端口号、四层目的端口号、UDP/应用层信息变换项、目的MAC地址、源MAC地址、VLAN信息和物理出端口号;
所述硬件混播变换单元中的变换引擎子单元,用于接收所述报文收发端口发送的单播/组播报文,并根据该报文标识,参照所述存储子单元中的变换表,确定待变换的单播/组播报文对应的报文变换信息,并利用该报文变换信息对单播/组播报文进行变换,根据该变换后的目标报文确定报文转发端口,发送给对应的报文收发端口;
接收到变换后的单播/组播报文的报文收发端口,用于将接收到的单播/组播报文转发出去。
17、根据权利要求16所述的交换设备,其特征在于,所述硬件混播变换单元进一步包括控制子单元,用于接收报文接收端口发送的单播/组播报文,并根据该报文的发送端口判断是否使能混播变换,当使能混播变换时,将该待变换的单播/组播报文发送给所述变换引擎子单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710100168A CN100596109C (zh) | 2007-06-05 | 2007-06-05 | 一种报文混播变换及转发的方法和交换设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200710100168A CN100596109C (zh) | 2007-06-05 | 2007-06-05 | 一种报文混播变换及转发的方法和交换设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101060486A CN101060486A (zh) | 2007-10-24 |
CN100596109C true CN100596109C (zh) | 2010-03-24 |
Family
ID=38866385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710100168A Expired - Fee Related CN100596109C (zh) | 2007-06-05 | 2007-06-05 | 一种报文混播变换及转发的方法和交换设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100596109C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105495582A (zh) * | 2015-12-11 | 2016-04-20 | 北京康比特体育科技股份有限公司 | 一款抗疲劳、促恢复的保健食品氨基酸组合物 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873301A (zh) * | 2014-03-20 | 2014-06-18 | 浙江宇视科技有限公司 | 一种自动发现和添加设备的系统和方法 |
CN104506461A (zh) * | 2014-12-24 | 2015-04-08 | 重庆大学 | 一种工业通信网络关口设备 |
CN114915589B (zh) * | 2021-02-10 | 2024-06-04 | 华为技术有限公司 | 报文传输方法及装置 |
-
2007
- 2007-06-05 CN CN200710100168A patent/CN100596109C/zh not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
一种新型的联合单播/组播的两级交换结构. 贾娟,曲晶,伊鹏,汪斌强.计算机应用研究,第1期. 2007 |
一种新型的联合单播/组播的两级交换结构. 贾娟,曲晶,伊鹏,汪斌强.计算机应用研究,第1期. 2007 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105495582A (zh) * | 2015-12-11 | 2016-04-20 | 北京康比特体育科技股份有限公司 | 一款抗疲劳、促恢复的保健食品氨基酸组合物 |
Also Published As
Publication number | Publication date |
---|---|
CN101060486A (zh) | 2007-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8149736B2 (en) | Distributed storage of routing information in a link state protocol controlled network | |
US20210266190A1 (en) | Bit Indexed Explicit Forwarding Optimization | |
US5361256A (en) | Inter-domain multicast routing | |
CN101222414B (zh) | 实现组播通信的装置、系统和方法 | |
US7420972B1 (en) | Multicast packet replication | |
US8018873B1 (en) | Enhanced link state protocol for identifying broadcast networks | |
US6347090B1 (en) | Method to forward a multicast packet, an ingress node and a router realizing such a method and an internet network including such an ingress node and such a router | |
CN105099913A (zh) | 一种报文转发方法及设备 | |
JP2008079175A (ja) | フレーム転送システム | |
AU772747B2 (en) | Characteristic routing | |
CN101267331A (zh) | 一种组播转发表查找方法和装置 | |
CN104272679A (zh) | 通信系统、控制装置、通信方法以及程序 | |
CN103747083B (zh) | 一种基于ccn的内容推送方法 | |
CN105683929A (zh) | 用于数据库和存储器感知路由器的方法和设备 | |
CN100596109C (zh) | 一种报文混播变换及转发的方法和交换设备 | |
US20230015193A1 (en) | System and method for adding routing paths in a network | |
US8774181B1 (en) | Reducing unnecessary upstream traffic in PIM-bidirectional mode | |
CN109039902B (zh) | 一种组播报文的转发方法及装置 | |
WO2015186366A1 (ja) | データ転送システム、データ転送サーバ、データ転送方法、および、プログラム記録媒体 | |
CN103209128A (zh) | 同时支持数据报和虚电路服务的数据转发方法及路由器 | |
CN109995658A (zh) | 发送、接收以及转发报文的方法和装置 | |
US20100135298A1 (en) | Method and system for providing source specific multicast service on ethernet network | |
Li et al. | Stability and consistency of the lisp pull routing architecture | |
Jaber et al. | Scholars Journal of Engineering and Technology | |
JP5575714B2 (ja) | 多地点配信方法及び多地点配信システム |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100324 |