CN1306772C - 一种短包数据的接入方法 - Google Patents
一种短包数据的接入方法 Download PDFInfo
- Publication number
- CN1306772C CN1306772C CNB2004100338480A CN200410033848A CN1306772C CN 1306772 C CN1306772 C CN 1306772C CN B2004100338480 A CNB2004100338480 A CN B2004100338480A CN 200410033848 A CN200410033848 A CN 200410033848A CN 1306772 C CN1306772 C CN 1306772C
- Authority
- CN
- China
- Prior art keywords
- data
- short packet
- packet data
- port
- optical port
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种短包数据的接入方法,采用网络处理器和ATM接入,在接收方向,FPGA对到达主备光口的短包数据进行总线转换,完成CRC校验功能,将备用光口数据合入主光口并在短包数据上打上光口号标签,网络处理器只针对主用光口进行扫描接收,之后根据数据的光口号区分主备用光口数据,进行数据分离,然后进行相应的接收处理。在发送方向,将包长小于48字节的短包数据描述符加入发送队列,解析得到发送的逻辑光口号,映射得出相应的物理发送端口,在发送过程中指定真正的物理光口,完成实际的发送功能。本发明方法利用较少的网络处理器资源实现短包数据的高速接入,具备很好的性价比,同时降低了协议实现的复杂性和工程成本。
Description
技术领域
本发明涉及一种利用网络处理器实现数据的高速接入方法,尤其涉及移动通信领域对短包数据的ATM高速接入。
背景技术
对于数据接入技术而言,可以从两个方面考虑其性能和功能的实现情况,一是目前接入处理器的接入处理能力,二是数据链路的接入性能。
从接入处理器方面考虑,主处理器是否具有高速的处理能力也是真正实现数据高速处理的一个关键。目前主要有通用处理器和网络处理器两种,两者所实现的功能不同,性能也差异较大。计算机网络常采用高性能的服务器来解决大流量的数据处理,然而研究表明,对于PIV2.0G的双CPU高性能服务器,由于其读写内存性能的瓶颈,网络处理性能也只有400Mbps左右。在通讯领域,目前多采用网络处理器实现数据的高速接入,这种网络数据专用的处理器最大可以达到G比特的处理能力,可以满足目前的数据高速接入需求。
然而,在实际应用中网络处理器需要做大量的业务处理,而出于成本的考虑,网络处理器的性能可能会受到限制,以英特尔IXP1200网络处理器为例,一共有6个微引擎,其中4个需用于数据接入后的后期处理,只能为数据的接收和发送处理提供2个微引擎,同时要针对两组主备光口即4个光口进行接收发送。实验证明,现有的接入处理方法均无法达到设计的总流量为310Mbps的要求。
从数据链路的接入方式看,目前计算机及通讯领域常见的接入方式有以太网接入、E1接入、ATM(Asynchronous Transfer Mode)接入等等。这些接入方式的底层物理实现形式、性能以及实现的复杂性各有不同。
以太网接入实现简单,也最为常见,是目前数据接入的主要方式之一,然而,这种数据接入方式适应长包数据的接入,对于短包数据,其带宽的浪费以及传输的性能均无法达到要求,尤其是当数据长度小于64字节时表现尤为明显。测试表明,当数据包长度为64字节时,设计带宽为百兆性能的接口测试带宽只有60兆左右,而当数据报文中承载的为语音数据时,64字节报文中有大量的以太网开销字节被浪费掉了。E1接入方式是目前基站语音数据接入基站控制器的主要接入方式,但由于其固有带宽的限制,使其无法实现数据的高速接入。ATM接入方式底层采用光纤传输,提供了短包数据的高速接入方式,但是协议实现较为复杂,在适配层上需要完成分段/重组、消息识别、顺序错误检测等功能,极大地提高了工程的复杂性、开发周期以及开发费。
发明内容
本发明要解决的技术问题是提供一种短包数据的接入方法,可以充分利用网络处理器有限的资源,实现短包数据的高速接入。
为了解决上述技术问题,本发明提供了一种短包数据的接入方法,采用ATM接入,包括接收数据和发送数据的处理流程,其特征在于:所述接收数据的处理流程包括以下步骤:
(a)将到达备用光口的短包数据并入主用光口,并在所有的短包数据上打上光口号标签,再发送给网络处理器;
(b)网络处理器检测主用端口的查询信号,判断端口是否有短包数据,如果有,执行下一步,否则继续检测;
(c)发送数据接收请求字,接收短包数据;
(d)提取数据包的端口号并进行端口剥离和有效性校验,校验成功,执行下一步,否则丢弃该数据包;
(e)发送接收指令,将短包数据从接收FIFO中存储到内存中,并构造短包数据的描述符,写入接收队列。
采用本发明方法后,使得网络处理器微引擎的接收线程在检测端口时只看到主用端口,而不是实际支持的主备用端口,可以大大地减小线程查询总线失败的次数,从而提高了性能。
进一步地,可采用以下发送数据的处理流程:
(o)从发送队列获取待发送的包长小于48字节的短包数据的描述符;
(p)提取并判断包发送端口和数据包长度是否有效,如果是,执行下一步,否则丢弃;
(q)选择发送FIFO,进行端口仲裁并构造发送控制字,在发送端口准备就绪后,进行数据发送。
上述方法还可加入CRC校验,即所述步骤(a)之前,还包括步骤:进行CRC校验,得到检验结果;同时,在所述步骤(e)之前,还包括步骤:所述网络处理器对得到的检验结果进行解析,对于通过校验的短包数据再执行步骤(c),否则丢弃。
上述方法还可具有以下特点:所述步骤(a)之前,还包括步骤:对到达主备光口的短包数据进行总线转换。
上述方法还可具有以下特点:所述步骤(b)之前由可编程门阵列对短包数据进行处理。
上述方法还可具有以下特点:所述步骤(q)之后,还包括步骤:根据所述描述符中的报文长度,进行CRC校验添加并发送。
上述方法还可具有以下特点:所述短包数据的描述符中,包含了数据包在内存中存放的缓冲区基地址,数据包有效字节在内存缓冲区中的偏移量,数据包的逻辑接收端口或逻辑发送端口,数据包的长度等字段。
上述方法还可具有以下特点:所述短包数据的描述符中还包含了用于扩展使用的保留字段。
上述方法还可具有以下特点:所述步骤(q)中进行端口仲裁时,通过对数据描述符的分析得到短包数据发送的逻辑光口号,通过映射得出相应的物理发送端口,再在发送过程中指定真正的物理光口。和通常采用的通过调度轮循发送端口数据的形式相比,节约了调度线程。
由上可知,本发明采用了网络处理器,通过主备逻辑端口合并技术,可利用较少的网络处理器资源实现短包数据的高速接入,同时保证数据接入的后续处理能力,具备很好的性价比。而采用无适配层的ATM接入方式,极大地节省了带宽,降低了协议实现的复杂性和工程成本。因此,本发明为短包数据接入提供了一种可靠、简单的高性能接入方法。特别适用于语音数据的接入。
附图说明
图1是本发明实施例系统功能模块的结构示意图。
图2是本发明实施例方法短包数据的内存存储的描述符。
图3是本发明实施例接收短包数据的处理流程图。
图4是本发明实施例发送短包数据的处理流程图。
具体实施方式
本实施例的短包数据是指包长小于48个字节的数据包,由于规定数据(由用户自定义)长度小于48字节,因而可以承载在一个ATM信元上面,没有必要进行分片重组、顺序错误检测等适配功能。因此,本实施例针对特殊的应用环境,采用了无适配层(即AAL0方式)的ATM接入方式,可以节约额外的开销,节省了带宽,而且降低了协议实现的复杂性和工程成本。
如图1所示,网络处理器加FPGA(Field Programmable Gate Array,可编程门阵列)10和STM物理芯片20是完成本发明实施例短包数据高速接入方法的硬件基础。本实施例的STM物理芯片20采用CX29704芯片,用来实现数据物理层和数据链路层的功能,但也可以采用任何一款支持ATM标准的物理芯片。网络处理器采用前述的英特尔IXP1200网络处理器,利用其特有的IXBUS总线和发送接收机制完成短包数据的接入及包头后净荷的业务处理,同时协助完成CRC校验功能。而FPGA主要用于实现UTOPIA总线和IXBUS总线的转换,16位CRC的生成和部分CRC校验,以及将备用光口数据合入主光口并加上光口号标签以区分光口数据通道等功能。从发送和接收两个方向的功能看,网络处理器加FPGA 10可进一步地分为下述的功能模块:
短包数据发送队列11,用于接收网络处理器内部业务处理模块完成数据处理之后,写入的待发送短包数据的描述符;
ATM发送模块12,用于从短包数据发送队列中提取短包数据描述符,分析数据属性,选择发送FIFO(First In First Out,先进先出队列)元素空间,进行端口仲裁,构造发送状态字并发送;
发送CRC生成模块13,用于读取短包数据描述符中设置的报文长度,生成CRC校验字段,本实施例是利用FPGA逻辑来完成的;
数据合并模块(未绘出),用于对到达主备光口的短包数据进行总线转换,将备用光口数据合入主用光口,并在所有短包数据上打上光口号标签,本实施例是用FPGA逻辑实现的;
接收CRC校验模块14,用于完成接收短包数据(即ATM信元)的CRC校验功能,本实施例中,该校验功能是由FPGA和网络处理联合实现,FPGA生成校验结果,由网络处理器进行校验结果的判别和相应的功能操作;
ATM接收模块15,用于完成ATM信元的接收功能,包括端口检测,端口分离,数据缓冲申请,数据接收和存储以及数据描述等功能,最终将短包数据描述符放入短包数据接收队列;
短包数据接收队列16,ATM接收模块在完成数据的接收之后,构造相应的数据描述符,写入此接收队列,由业务处理模块读出并处理,在应用层面,用户可以根据自身的需求解析承载的数据,甚至采用其它的协议。
上述短包数据发送和接收队列中的短包数据描述符是用于描述短包数据在内存中的位置和数据包的属性,其具体的构造如图2所示,每个描述符占用内存连续16个字节空间,由4个字节的描述符基地址、1个字节的端口号、1个字节的偏移量、两个字节的长度及8个字节的保留字段。其中,描述符基地址是数据包在内存中存放的缓冲区基地址;偏移量是数据包有效字节在内存缓冲区中的偏移量,端口号对于接收方向是数据包的接收端口,对于发送方向是数据包的发送端口,均为逻辑端口;长度字段存放数据包的长度,可用于生成CRC校验字段;保留字段将来可以用来作为完善功能的扩展使用,如作为服务质量(Quality of Service,Qos)字段等。
基于以上系统,本发明实施例短包数据的接收流程(不包括链路层和物理层的处理过程)如图3所示,包括以下步骤:
步骤301,FPGA对到达主备光口的短包数据进行总线转换;
步骤302,进行CRC校验,得到校验结果,同时将备用光口数据合入主光口,并在所有的短包数据上打上光口号标签,发送给网络处理器;
步骤303,网络处理器检测两个主用端口(对应于两个主用光口)的查询信号,即进行IXP1200的IXBUS总线端口READY信号检测,当总线上有数据包文时,READY信号将会置相应的READY位通知IXP1200的微引擎线程;
步骤304,判断端口是否有数据报文,如果有,执行下一步,否则返回步骤303,微引擎继续检测总线;
步骤305,发送数据接收请求字,请求字信息包含接收FIFO、接收线程等信息供IXP 1200接收状态机接收数据使用;
步骤306,接收数据报文,即在发送接收请求后,等待数据到达接收FIFO中;
步骤307,提取端口号并判断是否有效,由于本实施例接收请求的处理过程只轮循检测两个端口,因此这里要进行端口的剥离和端口有效性验证,如果端口号是否有效,执行下一步,对于端口号错误的数据报文直接丢弃并返回步骤303,重新开始报文接收;
步骤308,对数据报文CRC校验结果进行解析,如果校验通过,执行下一步,否则丢弃报文,返回步骤303;本实施例针对接收FIFO采用在有效数据后附加两个接收状态字节的方式来获取CRC校验结果;
步骤309,对于通过校验的短包数据,发送接收指令,将数据包从接收FIFO中存储到内存中;
步骤310,构造短包数据的数据描述符,并将其写入接收队列,描述符采用图2的形式。
上述流程特别值得注意的是,由于本实施例利用FPGA作了将备用光口数据合入主光口的特殊处理,使得网络处理器微引擎的接收线程在检测端口时只看到两个端口,而不是实际支持的四个端口,这种实现方式可以大大地减小线程查询总线失败的次数,从而提高了性能。试验表明,对于四个光口,这种实现方式可以很好的达到任意一对主备光口设计总流量155Mbps的要求,而目前已有的其他方式均无法实现。
本发明实施例短包数据的发送流程如图4所示,包括以下步骤:
步骤401,从短包数据发送队列获取待发送的数据包的描述符,此队列可以是接收模块的接口队列,也可以是任意模块的接口队列;
步骤402,提取包发送端口和数据包长度,由于任意一对主备光口共用相同的发送队列,因此必须在发送前确认数据包的实际端口号,同时对数据包的长度作必要的检查;
步骤403,判断包长度及端口号是否有效,如果是,执行下一步,否则检测失败,丢弃相应的数据报文,返回步骤401;
步骤404,选择发送FIFO,进行端口仲裁并构造发送控制字。在发送方向,对于发送FIFO的分配按照两个光口来分配;在ATM发送方向,网络处理器在对数据描述符分析过程中得到短包数据发送的逻辑光口号,通过映射得出相应的物理发送端口,在发送过程中指定真正的物理光口,而不是目前通常设计采用的通过调度轮循发送端口数据的形式,节约了调度线程,提高了发送性能;对于发送控制字,由于每个短包数据小于64字节,采用IXP1200处理器发送状态机制时就是一个完整的数据包,因此同时是SOP(Start ofPacket)和EOP(End of Packet)报文;
步骤405,判断发送端口是否准备就绪,如果端口没有准备就绪,则循环等待,否则执行下一步;
步骤406,置发送有效位,微引擎线程进行数据发送;
步骤407,FPGA根据描述符中的报文长度,进行CRC校验添加并发送。
可以看出,上述实施例在ATM接收方向,到达主备光口的短包数据(总流量最多为155MBps)在经过FPGA逻辑进行总线转换之后,FPGA逻辑将同时完成CRC校验功能和备用光口数据合入主光口的功能,并在所有的短包数据上打上光口号标签发送给IXP1200网络处理器。网络处理器在接收到数据时,基于性能的要求,只是针对主用光口进行扫描接收,之后根据数据的光口号区分主备用光口数据进行数据分离,然后进行相应的接收处理。
这种处理方式可以使用较少的微引擎来支持接入处理,实现短包数据高速接入,从而为业务处理提供了更多空闲的微引擎。就IXP1200网络处理器而言,用两个微引擎用于接入处理,采用上述方法可以提供两个光口共310Mbps流量的性能,支持四个主备光口同时工作时,在四个端口均有数据到达且任意两个主备端口流量为155Mbps的设计要求下,可以达到任意两个主备端口流量为210Mbps的流量,达到了非常好的性能指标,资源利用率很高,是一种高性价比的处理方法。
在上述实施例的基础上,本发明还可以有各种变换,例如,可以选择支持或不支持CRC校验处理,只需在接收和发送流程中通过宏编译开关来选择。适配层的形式也不一定局限在AAL0。另外,FPGA的功能也可以用其它的逻辑处理单元来代理。
Claims (9)
1、一种短包数据的接入方法,采用ATM接入,包括接收数据和发送数据的处理流程,其特征在于:所述接收数据的处理流程包括以下步骤:
(a)将到达备用光口的短包数据并入主用光口,并在所有的短包数据上打上光口号标签,再发送给网络处理器;
(b)网络处理器检测主用端口的查询信号,判断端口是否有短包数据,如果有,执行下一步,否则继续检测;
(c)发送数据接收请求字,接收短包数据;
(d)提取数据包的端口号并进行端口剥离和有效性校验,校验成功,执行下一步,否则丢弃该数据包;
(e)发送接收指令,将短包数据从接收FIFO中存储到内存中,并构造短包数据的描述符,写入接收队列;
其中,光口与端口相对应,光口号与端口号相对应。
2、如权利要求1所述的短包数据的接入方法,其特征在于,所述发送数据的处理流程包括以下步骤:
(o)从发送队列获取待发送的包长小于48字节的短包数据的描述符;
(p)提取并判断包发送端口和数据包长度是否有效,如果是,执行下一步,否则丢弃;
(q)选择发送FIFO,进行端口仲裁并构造发送控制字,在发送端口准备就绪后,进行数据发送。
3、如权利要求1所述的短包数据的接入方法,其特征在于,所述步骤(a)之前,还包括步骤:进行CRC校验,得到检验结果;同时,在所述步骤(e)之前,还包括步骤:所述网络处理器对得到的检验结果进行解析,对于通过校验的短包数据再执行步骤(e),否则丢弃。
4、如权利要求1所述的短包数据的接入方法,其特征在于,所述步骤(a)之前,还包括步骤:对到达主备光口的短包数据进行总线转换。
5、如权利要求1、2、3或4所述的短包数据的接入方法,其特征在于,所述步骤(b)之前由可编程门阵列对短包数据进行处理。
6、如权利要求2所述的短包数据的接入方法,其特征在于,所述步骤(q)之后,还包括步骤:根据所述描述符中的报文长度,进行CRC校验添加并发送。
7、如权利要求1或2所述的短包数据的接入方法,其特征在于,所述短包数据的描述符中,包含了数据包在内存中存放的缓冲区基地址,数据包有效字节在内存缓冲区中的偏移量,数据包的逻辑接收端口号或逻辑发送端口号,数据包的长度等字段。
8、如权利要求7所述的短包数据的接入方法,其特征在于,所述短包数据的描述符中还包含了用于扩展使用的保留字段。
9、如权利要求7所述的短包数据的接入方法,其特征在于,所述步骤(q)中进行端口仲裁时,通过对数据描述符的分析得到短包数据发送的逻辑端口号,通过映射得出相应的物理发送端口,再在发送过程中指定真正的物理光口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100338480A CN1306772C (zh) | 2004-04-19 | 2004-04-19 | 一种短包数据的接入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100338480A CN1306772C (zh) | 2004-04-19 | 2004-04-19 | 一种短包数据的接入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1564550A CN1564550A (zh) | 2005-01-12 |
CN1306772C true CN1306772C (zh) | 2007-03-21 |
Family
ID=34481406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100338480A Expired - Fee Related CN1306772C (zh) | 2004-04-19 | 2004-04-19 | 一种短包数据的接入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1306772C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100420235C (zh) * | 2005-03-21 | 2008-09-17 | 北京北方烽火科技有限公司 | 一种sgsn中ip分片包高速重组的装置和方法 |
US7925957B2 (en) * | 2006-03-20 | 2011-04-12 | Intel Corporation | Validating data using processor instructions |
CN101136852B (zh) * | 2007-06-01 | 2010-05-19 | 武汉虹旭信息技术有限责任公司 | 微引擎的深度包处理方法 |
CN101568048B (zh) * | 2009-05-15 | 2015-01-28 | 中兴通讯股份有限公司 | 数据传输方法及系统 |
WO2015066849A1 (zh) * | 2013-11-06 | 2015-05-14 | 华为终端有限公司 | 一种降低功耗的方法及系统、调制解调器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414760A (zh) * | 2002-02-10 | 2003-04-30 | 华为技术有限公司 | 用网络处理器实现以太网承载点对点协议的高速接入方法 |
WO2003098459A1 (en) * | 2002-05-15 | 2003-11-27 | Thomson Licensing S.A. | Interface architecture |
US20030231645A1 (en) * | 2002-06-14 | 2003-12-18 | Chandra Prashant R. | Efficient multi-threaded multi-processor scheduling implementation |
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
-
2004
- 2004-04-19 CN CNB2004100338480A patent/CN1306772C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1414760A (zh) * | 2002-02-10 | 2003-04-30 | 华为技术有限公司 | 用网络处理器实现以太网承载点对点协议的高速接入方法 |
WO2003098459A1 (en) * | 2002-05-15 | 2003-11-27 | Thomson Licensing S.A. | Interface architecture |
US20030231645A1 (en) * | 2002-06-14 | 2003-12-18 | Chandra Prashant R. | Efficient multi-threaded multi-processor scheduling implementation |
US20040006633A1 (en) * | 2002-07-03 | 2004-01-08 | Intel Corporation | High-speed multi-processor, multi-thread queue implementation |
Also Published As
Publication number | Publication date |
---|---|
CN1564550A (zh) | 2005-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11916781B2 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC) | |
CN1151639C (zh) | 连网系统 | |
CN103069757A (zh) | 一种报文重组重排序方法、装置和系统 | |
CN1593041A (zh) | 具有多个首部的包的解封装和封装的方法、装置和计算机程序 | |
CN1268097C (zh) | 一种实现报文分片组包的方法 | |
CN1264531A (zh) | 具有时间标记功能的交换阵列布置 | |
CN1802836A (zh) | 网络协议卸载引擎存储器管理 | |
CN1166130C (zh) | 在异步转移模式链路上发送异步转移模式信元的方法 | |
CN1975680A (zh) | 基于Java的进程间异步通信的实现方法 | |
WO1999053646A2 (en) | System and process for application-level flow connection of data processing networks | |
CN1798094A (zh) | 一种使用缓存区的方法 | |
AU2004310639B2 (en) | Using ordered locking mechanisms to maintain sequences of items such as packets | |
CN102082698A (zh) | 基于改进型零拷贝技术的高性能内核的网络数据处理系统 | |
CN1816042A (zh) | 一种处理器间数据传输方法 | |
CN1826768A (zh) | 利用动态资源分配进行的大规模排队的可扩展方法 | |
CN1306772C (zh) | 一种短包数据的接入方法 | |
CN1949695A (zh) | 一种帧数据传输中错帧丢弃的方法和系统 | |
CN1791069A (zh) | 输入排队分组交换结构及队列服务规则 | |
WO2006098763A2 (en) | Intelligent memory interface | |
CN1298593A (zh) | 电信转接器中的ampic dram系统 | |
CN1292568C (zh) | 一种多队列数据分组连续转发的装置和方法 | |
CN101064697B (zh) | 一种实现异步传输模式网络服务质量控制的装置和方法 | |
CN1450767A (zh) | 一种数据包转发控制装置和方法 | |
CN114363269A (zh) | 一种消息传输方法、系统、设备以及介质 | |
CN101043437A (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070321 Termination date: 20140419 |