CN1300992C - 实现多播转发的方法 - Google Patents

实现多播转发的方法 Download PDF

Info

Publication number
CN1300992C
CN1300992C CNB2003101160512A CN200310116051A CN1300992C CN 1300992 C CN1300992 C CN 1300992C CN B2003101160512 A CNB2003101160512 A CN B2003101160512A CN 200310116051 A CN200310116051 A CN 200310116051A CN 1300992 C CN1300992 C CN 1300992C
Authority
CN
China
Prior art keywords
multicast
message
buffer
module
meta
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
Application number
CNB2003101160512A
Other languages
English (en)
Other versions
CN1556626A (zh
Inventor
刘静涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2003101160512A priority Critical patent/CN1300992C/zh
Publication of CN1556626A publication Critical patent/CN1556626A/zh
Application granted granted Critical
Publication of CN1300992C publication Critical patent/CN1300992C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种在Intel IXP2400网络处理器上实现多播转发的方法,属于计算机网络通信领域,该方法包括:接收模块(RX)接收从外端口来的报文,通过处理模块处理完毕后送到封装模块(EM),封装模块(EM)根据多播索引(MID)查找多播邻接封装表(DMAT),多播邻接封装表是一个链表,每一项保存一个出口报文封装格式信息,然后出队一个多播报文头buffer,把报文头内容保存到该buffer中,构造多播报文头META,把META链到报文SOP META前,形成一个报文链表,把报文送到队列管理模块(QM),发送调度模块(TXS)调度包给发送模块(TX),最终发送模块把报文发送出去。本发明只修改报文头,报文体不复制,转发效率高。

Description

实现多播转发的方法
技术领域
本发明属于计算机网络通信领域,具体涉及一种在Intel IXP2400网络处理器上实现多播转发的方法。
背景技术
参考图1,目前,在Intel IXP2400网络处理器报文处理流程如下:接收模块(RX)接收从外端口来的报文,然后送到处理模块(PM),处理模块处理完毕后送到二层封装模块(EM),封装完毕后送队列管理模块(QM),然后发送调度模块(TXS)调度包给发送模块(TX),最终发送模块把报文发送出去。队列管理模块和发送调度模块是基于包的管理和调度,每次处理只调度一个报文给发送模块(TX),发送模块按照信元方式把报文分片发送出去。
Buffer主要用来存放整个报文,参考图2、图3,每个buffer大小为2k字节,报文超过2k可使用多个buffer链来存放。META是buffer的描述单元,报文每个buffer中报文的大小,头部偏移等信息。一个META对应一个buffer。对于长报文,利用META的第一个长字把多个buffer链起来表示一个报文。
多播技术提供一种一个发送者向一组接收者传送数据的有效传输方式。多播在实际中有许多应用,如不同地域的指挥官可以利用多点多播系统参与计划编制会议,然后利用多播协议把计划传给下级指挥官;对地理上分布的逻辑数据库的数据修改以及视频点播、远程教学、网络电视等。多播传输中,数据被发送到接收者的多播地址,而不是每个接收者的单播地址,发送者只发送一个数据拷贝,源端到目标端路径上的中间节点复制该数据。
为实现多播通信,就必须建立支持多播的路由协议,目前常用的多播路由协议有距离向量多播路由协议DVMRP、协议无关密集模式多播协议和协议无关分散模式多播协议。
在Intel IXP2400网络处理器上实现多播转发时,需要把一份报文复制多份,目前,最简单的就是把整个报文体进行复制成多份报文,然后根据出接口信息分别封装不同报文头,发送出去。这种方法因为整个报文进行复制,效率低。
发明内容
本发明目的:提供一种在Intel IXP2400网络处理器上实现多播转发的方法。
本发明的技术内容:一种实现多播转发的方法,接收模块(RX)接收从外端口来的报文,然后送到处理模块(PM),处理模块处理完毕后送到封装模块(EM),封装完毕后送队列管理模块(QM),然后发送调度模块(TXS)调度包给发送模块(TX),最终发送模块把报文发送出去,其中,封装模块(EM)根据多播索引(MID)查找多播邻接封装表(DMAT),多播邻接封装表是一个链表,每一项保存一个出口报文封装格式信息,然后从多播队列出队一个多播报文头buffer,把报文头内容保存到该buffer中,构造多播报文头META,多播报文头META结构中增加一个多播标志位(M),同时修改原来META结构,增加一个多播发送次数域(tx_count),把META链到报文SOP META前,形成一个报文链表,然后把报文送到队列管理模块(QM)。
发送调度模块调度包给发送模块,发送模块(TX)得到一个报文,读取SOPMETA,同时把META中发送次数减1,如果发送次数不为0,则保存多播标志,否则不保存多播标志,然后把多播报文头拷贝到TBuf的prepend域,报文体拷贝到TBuf的后32字节处,然后发送出去,同时释放多播头buffer。
对报文头buffer,是可发送完立即释放,但对报文体,则检查发送次数,发送次数不为0,则不释放buffer,当减少到0时,释放buffer,且buffer足够多,可保证buffer堆积。
本发明的技术效果:因为多播报文只是报文头不一样,采用本发明方案,报文体不复制,只根据出接口不同,修改报文头,发送出去,在多播发送完毕后才释放整个报文缓冲区(buffer)。由于修改的只是报文头,故转发效率高。以下通过对比整个报文复制进行性能测试:
使用测试仪送POS 49字节报文到运行两种方案代码的设备中,检查出口性能,结果如下:
在整个报文都进行复制方案:在POS接口,49字节性能为1.2G BPS。
本发明方案:在POS接口,49字节性能为2.1G BPS。
故采用本发明方案性能提高很多。
附图说明
图1Intel IXP2400网络处理器报文处理流程的示意图;
图2Intel IXP2400网络处理器的buffer管理结构示意图;
图3Intel IXP2400网络处理器的META结构示意图;
图4增加多播后本发明的buffer管理结构示意图;
图5增加多播后本发明的META结构示意图;
图6本发明的封装处理流程图;
图7本发明的发送处理流程图;
图8本发明的报文的buffer回收处理流程图;
图9本发明的DMAT表的示意图。
具体实施方式
本发明提供了一种在Intel IXP2400网络处理器上实现多播转发的方法。假设:二层头部封装长度不大于32字节。二层头部在SNAP封装时最大二层头部长度为26字节。参考图4,构造一个多播头部buffer链,采用和原来设计链一致,但buffer大小为32字节。参考图5,META大小为了保持和原来设计一致,大小也采用8长字,其中,多播报文头META结构中增加一个多播标志位(M),同时修改原来META结构,增加一个多播发送次数域(tx_count),二层封装模块在多播时每次分配一个META,把二层头部写到对应的buffer中去,在第一个多播报文时写META发送次数域,把该报文送队列管理模块,在SOP或SOP_EOP mpkt多播时,读取第二个META信息,并减少发送次数(tx_count),把多播标志保存到发送上下文(TXC)。把多播二层头拷贝到一个TBuf Element prepend域,把其它报文内容拷贝到该TBuf Element后32字节处,发送该信元,报文的buffer回收。正常流程是发送完一个buffer(EOB)后立即释放该buffer。在多播时,对二层头buffer,是发送完立即释放,但对报文其它部分,则检查发送次数,发送次数不为0,则不释放buffer,当减少到0时,释放buffer。
在多buffer报文,SOP时判断是否要释放buffer时,为解决发送快的引擎把buffer已经释放,发送慢的引擎还在发送报文的问题,采用在多播队列中增加buffer个数。由于IXP1200buffer管理采用先进先出FIFO方式,在buffer足够多,可保证buffer堆积,即不会导致buffer环空。
参考图6、图7、图8,本发明的多播报文具体处理流程为:
(1)报文到达设备后,由接收模块(Rx)接收报文,把报文通过队列scratch环送到处理模块(PM)。
(2)处理模块(PM)检查报文头,发现为多播报文,使用报文目的IP和源IP查找多播表,得到多播索引(MID)。把报文通过scratch环送到报文封装模块(EM)
(3)封装模块(EM)根据多播索引(MID)查找多播邻接封装表(DMAT),参考图9,根据多播索引(根据ip查表得到),直接索引到多播邻接封装表头部,多播邻接封装表是一个链表,该表为一个二级表结构。一级表每个表项四个长字,第二级表每个表项为两个长字,第一级表根据多播索引直接索引到,以及表有一个next指针,指向下一个多播邻接封装。每一项保存一个出口报文封装格式信息,然后出队一个多播报文头buffer,把报文头内容保存到该buffer中,构造多播报文头META,把该META链到报文SOP META前,形成一个报文链表,然后把报文送到队列管理模块(QM),最后回到读下一个多播邻接封装表,进行多播下一个报文头的封装。直到整个多播发送完毕,再重新接收下一个多播报文。比如:多播要发送十次,根据多播索引查到第一级表,根据tx_count知道要发送十次,则先根据第一个多播邻接封装表,封装好报文,放到一个buffer中,把发送次数tx_count写到SOP META中。封装模块根据next_ptr读下一个多播邻接封装表,重复十次。
(4)队列管理和调度模块对报文进行管理和调度,送到发送模块。
(5)发送模块得到一个报文,读取META后,发现为多播报文,则读SOPMETA,同时把META中发送次数减1,如果发送次数不为0,则保存多播标志,否则不保存多播标志。然后把多播报文头拷贝到TBuf的prepend域,报文体拷贝到TBuf的后32字节处。然后发送出去。同时释放多播头buffer。在报文一个buffer发送完毕后,检查多播标志,多播则不进行报文buffer的释放,非多播则释放buffer。

Claims (6)

1.一种实现多播转发的方法,接收模块接收从外端口来的多播报文,然后送到处理模块,处理模块处理完毕后送到封装模块,封装完毕后送至队列管理模块,然后发送调度模块调度包给发送模块,最终发送模块把所述多播报文发送出去,其特征在于:封装模块根据多播索引MID查找多播邻接封装表DMAT,多播邻接封装表是一个链表,每一项保存一个出口报文封装格式信息,然后从多播队列中出队一个buffer,把相关多播报文头保存到该buffer中,构造所述多播报文头META,把META链到报文SOP META前,形成一个报文链表,然后把所述多播报文送到队列管理模块。
2.如权利要求1所述的实现多播转发的方法,其特征在于:所述多播报文头META包括一个多播标志位和一个多播发送次数域。
3.如权利要求2所述的实现多播转发的方法,其特征在于:所述发送调度模块调度包给发送模块之后,还包括:
A1、所述发送模块收到所述多播报文,读取多播报文头META,读SOPMETA,同时把META中发送次数减1,如果发送次数不为0,则保存所述多播标志,否则不保存所述多播标志。
4.如权利要求3所述的实现多播转发的方法,其特征在于:A1之后进一步包括:把所述多播报文的报文头拷贝到TBuf的prepend域,把所述多播报文的报文体拷贝到TBuf的后32字节处。
5.如权利要求4所述的实现多播转发的方法,其特征在于:所述发送模块把报文发送出去之后,所述多播报文头的buffer,是发送完立即释放;多播报文体的buffer,则检查发送次数,发送次数不为0,则不释放buffer,当减少到0时,释放buffer。
6.如权利要求5所述的实现多播转发的方法,其特征在于:所述释放buffer之后,在所述多播队列中增加buffer的个数,保证buffer堆积。
CNB2003101160512A 2003-12-30 2003-12-30 实现多播转发的方法 Expired - Fee Related CN1300992C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101160512A CN1300992C (zh) 2003-12-30 2003-12-30 实现多播转发的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101160512A CN1300992C (zh) 2003-12-30 2003-12-30 实现多播转发的方法

Publications (2)

Publication Number Publication Date
CN1556626A CN1556626A (zh) 2004-12-22
CN1300992C true CN1300992C (zh) 2007-02-14

Family

ID=34337503

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101160512A Expired - Fee Related CN1300992C (zh) 2003-12-30 2003-12-30 实现多播转发的方法

Country Status (1)

Country Link
CN (1) CN1300992C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100413285C (zh) * 2005-06-03 2008-08-20 清华大学 基于网络处理器的高速多维报文分类算法的设计和实现
CN101047620B (zh) * 2006-04-07 2011-10-26 华为技术有限公司 快速处理报文的装置及方法
CN102932262B (zh) * 2011-08-11 2018-02-16 中兴通讯股份有限公司 网络处理器镜像实现方法及网络处理器
CN104639444B (zh) * 2013-11-11 2019-10-15 南京中兴软件有限责任公司 多播缓存的释放方法及装置
CN104219158A (zh) * 2014-09-03 2014-12-17 杭州华三通信技术有限公司 一种报文复制方法和装置
CN112242964B (zh) * 2020-12-18 2021-06-04 苏州裕太微电子有限公司 一种交换机中的缓存单元释放系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
CN1371202A (zh) * 2002-02-28 2002-09-25 威盛电子股份有限公司 数据包传送方法及应用此方法的网络交换机

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014380A (en) * 1997-06-30 2000-01-11 Sun Microsystems, Inc. Mechanism for packet field replacement in a multi-layer distributed network element
CN1371202A (zh) * 2002-02-28 2002-09-25 威盛电子股份有限公司 数据包传送方法及应用此方法的网络交换机

Also Published As

Publication number Publication date
CN1556626A (zh) 2004-12-22

Similar Documents

Publication Publication Date Title
CN1146192C (zh) 以太网交换芯片输出队列管理调度方法和装置
CN101627582B (zh) 点到点仅单播的分组交换系统的组播/广播扩展
Paul et al. Multicast transport protocols for high speed networks
CA2576038A1 (en) System and method for higher throughput through a transportation network
CN1825804A (zh) 实现分布式系统板间通信的系统和方法
CN1809022A (zh) 以太网设备堆叠方法及其系统
CN1852246A (zh) 一种组播流分发节点接收组播流的方法
CN1300992C (zh) 实现多播转发的方法
CN1543733A (zh) 用于分布式共享存储器分组交换机的带内消息同步
CN100393069C (zh) 区分多业务的抗ip组播数据流冲击通信系统的方法
CN1449160A (zh) 用于包括无阻塞交换结构和线路卡接口的系统的包调度
CN1270243C (zh) 一种实现快速数据传递的方法
CN1167284C (zh) 分组报头结构和控制分组传输的方法
CN101227306A (zh) 用于多播处理的报文复制方法和装置
CN1129281C (zh) 利用缓存技术提高ip报文转发速度的方法
WO2022121049A1 (zh) 光纤坐席系统的音频环形传输方法、系统及存储介质
CN1210956C (zh) 视讯会议流媒体实时接收存储方法
CN1210914C (zh) 以太网交换机堆叠加速处理方法
CN1545216A (zh) 网络处理器中核心处理器与微引擎之间的通信方法
CN101170508B (zh) 一种处理二层广播的方法
CN1281037C (zh) 具有有效分组管理单元的分组转发系统及其操作方法
CN1366400A (zh) 网络数据包的输出队列方法与装置
CN100508467C (zh) 一种转发层代理pim的方法及路由设备
CN1427590A (zh) 在atm交换系统中生成并传输串列分组的方法
CN1728674A (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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: GANGWAN NETWORK CO., LTD.

Effective date: 20061013

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20061013

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100089, No. 21 West Third Ring Road, Beijing, Haidian District, Long Ling Building, 13 floor

Applicant before: Harbour Networks Holdings Limited

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070214

Termination date: 20111230