一种报文保序的方法和装置的制作方法

文档序号:7923446阅读:101来源:国知局
专利名称:一种报文保序的方法和装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种报文保序的方法和装置。
背景技术
目前,随着多核处理器的大规模创新应用,实现了不同业务流与报文的并行高速
处理,突破传统单核处理器性能瓶颈限制,开创了业务与性能并重的全新天地。 多核处理器最大的优点为处理上能够并行处理报文的转发,即一次流程可以处理
多个报文。由于采用多核处理器对报文进行处理,所以同一条报文流中的不同报文可能由
不同的CPU (Central Process Unit,中央处理器)进行处理,因为不同CPU上对报文的处理
时间可能不一致,这就需要建立有效的保序机制,即从多核处理器的接收侧按序进入的同
一条报文流中的报文在多核处理器的发送侧也按相同的顺序被发送。 现有技术中,多核处理器从端口上接收到报文后不区分该报文所属的报文流,由
处理该报文的CPU按照统一的序号分发规则给接收的报文分发一个唯一的序号,对该报文
进行处理后,处理该报文的CPU需要等到该报文序号之前的所有序号对应的报文都被发送
后才能转发该报文。在处理的报文成功转发后,该CPU接收并处理下一个报文。 在实现本发明的过程中,发明人发现现有技术中存在以下缺点 现有技术中,各报文特性的不一致会导致处理时间上的不一致,这样会导致有些
序号靠后的报文先于序号靠前的报文被处理完,但是处理该报文的CPU需要等待序号靠前
的所有报文都被转发后才能转发该报文并开始处理下一个报文,产生了空等待,造成了CPU
资源的浪费。

发明内容
本发明实施例提供了 一种报文保序的方法和装置。 本发明实施例提供了一种报文保序的方法,包括以下步骤 获取报文的流标识; 若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头 部,并锁定所述保序队列。
本发明实施例提供了一种实现报文保序的装置,包括
获取单元,用于获取报文的流标识; 处理单元,当所述获取单元获取的流标识对应的保序队列没有被锁定时,将所述 报文存入所述保序队列的头部,并锁定所述保序队列。 本发明的实施例中,通过获取报文的流标识并根据所述流标识处理报文,在对报 文实现保序的同时减少了空等待时间,实现了多处理器基于报文流的并发处理,提高了多 核处理器对报文的处理效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图 获得其他的附图。
图1是本发明一个实施例中一种报文保序的方法流程图;
图2是本发明另一个实施例中一种报文保序的方法流程图;
图3是本发明一个实施例中一种实现报文保序的装置结构图。
具体实施例方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
本发明一个实施例提供了一种报文保序的方法,如图1所示,包括以下步骤
步骤101 ,获取报文的流标识。 本实施例中对报文的IP头进行CRC运算得到流标识,即根据报文中相关的字 段(如IP (Internet Protocol,互联网协议)头)通过一定的运算(如CRC(Cyclical Redundancy Check,循环冗余码校验)运算)得到流标识。 步骤102,若流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的
头部,并锁定所述保序队列。 其中,在步骤102中,还可以包括 若流标识对应的保序队列已被锁定,则将报文存入保序队列的队尾。
其中,在步骤101之前,还可以包括
根据优先级顺序将得到的报文进行缓存。
其中,步骤102之后,还可以包括 对所述报文进行处理,将处理后的报文从端口发送出去;或 对所述报文进行处理,获取处理后的报文的新的流标识,将处理后的报文存入新 的流标识对应的保序队列中。 本发明上述实施例中,通过获取报文的流标识并根据所述流标识处理报文,在对 报文实现保序的同时减少了空等待时间,实现了多核处理器基于报文流的并发处理,提高 了多核处理器对报文的处理效率。
本发明另一个实施例提供了一种报文保序的方法,如图2所示,包括以下步骤
步骤201,多核处理器接收需要处理的报文。 步骤202 ,多核处理器根据优先级顺序将得到的报文缓存到QOS (Qual ityof Service,服务质量)队列;其中,QOS队列是由多个具有先进先出属性的队列组成的队列 组,每个队列都对应于报文的某个优先级。
步骤203,多核处理器从QOS队列获取报文。 步骤204,多核处理器判断所述报文是否需要保序,若判断结果为否,则转步骤
4205,若判断结果为是,则转步骤206。 步骤205,多核处理器处理并转发该报文。 步骤206,多核处理器计算该报文的流标识。 例如可以根据报文中相关的字段(如IP头)通过一定的运算(如CRC运算)得 出的流标识。 步骤207,多核处理器根据流标识查找对应的保序队列。 步骤208,多核处理器判断查找到的保序队列是否已被锁定,若判断结果为是,转 步骤209,若判断结果为否,转步骤210。其中,锁定表示多核处理器中的某个处理器单独占 用某个资源,多核处理器中的其他处理器要等到该资源被解锁后才能获取对该资源的占有 权。相应地解锁表示锁定了某个资源的处理器停止对该资源的占用。 步骤209,多核处理器将报文存入流标识对应的保序队列的队尾,使多核处理器中 锁定该保序队列的处理器对所述报文进行处理。 步骤210,多核处理器将报文存入流标识对应的保序队列的头部,并锁定该保序队 列,并对报文进行处理。在处理过程中,若收到被存入该保序队列的队尾报文,则在首个报 文处理完毕后继续处理保序队列中的其它报文,直到保序队列中所有的报文都处理完毕, 则释放对该保序队列的控制权,从QOS队列获取下一个报文进行处理。
在步骤209或步骤210对报文进行处理之后,还可以包括
多核处理器将所述处理后的报文从端口发送出去;或 多核处理器计算所述处理后的报文的新的流标识,将所述处理后的报文存入所述 新的流标识对应的保序队列中进行进一步处理。 报文在系统内的处理可能分为多个阶段,例如分为三个阶段,S卩报文从端口接收 阶段,报文从端口发送阶段和报文从端口发送到端口接收之间的衔接阶段,这三个阶段都 可以由多核处理器完成。 本发明另一个实施例中,通过计算报文的流标识并根据所述流标识处理报文,在 对报文实现保序的同时减少了空等待时间,实现了多核处理器基于报文流的并发处理,提 高了多核处理器对报文的处理效率。 本发明一个实施例提供了一种报文保序的装置,如图3所示,包括
获取单元301,用于获取报文的流标识; 处理单元302,当获取单元301获取的流标识对应的保序队列没有被锁定时,将所
述报文存入所述保序队列的头部,并锁定所述保序队列。 其中,所述装置还包括 缓存单元303,用于根据优先级顺序将得到的报文进行缓存;
则获取单元301,具体用于获取缓存单元303缓存的报文的流标识。
其中,获取单元301包括 计算子单元3011,用于对所述报文的IP头进行CRC运算得到所述流标识。
其中,处理单元302,还用于当获取单元301获取的流标识对应的保序队列已被锁 定时,将所述报文存入所述保序队列的队尾。
其中,还包括 发送单元304,用于将处理单元302处理后的报文从端口发送出去。
具体地,发送单元304可以将处理后的报文从端口发送出去;或在获取单元301获 取处理后的报文的新的流标识后,将处理单元302处理后的报文存入所述新的流标识对应 的保序队列中。 其中,所述实现报文保序的装置可以为多核处理器。 本发明一个实施例中,通过获取报文的流标识并根据所述流标识处理报文,在对 报文实现保序的同时减少了空等待时间,实现了多核处理器基于报文流的并发处理,提高 了多核处理器对报文的处理效率。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通
过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发
明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储
介质(可以是CD-ROM, U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可
以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。
权利要求
一种报文保序的方法,其特征在于,包括以下步骤获取报文的流标识;若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头部,并锁定所述保序队列。
2. 如权利要求1所述的方法,其特征在于,所述获取报文的流标识之前,还包括 根据优先级顺序将得到的报文进行缓存; 则所述获取报文的流标识包括获取所述缓存的报文的流标识。
3. 如权利要求1所述的方法,其特征在于,所述获取报文的流标识包括 对所述报文的互联网协议IP头进行循环冗余码校验CRC运算得到所述流标识。
4. 如权利要求l所述的方法,其特征在于,还包括若所述流标识对应的保序队列已被锁定,则将所述报文存入所述保序队列的队尾。
5. 如权利要求1所述的方法,其特征在于,所述将报文存入所述保序队列之后,还包括将处理后的报文从端口发送出去;或获取处理后的报文的新的流标识,将所述处理后的报文存入所述新的流标识对应的保 序队列中。
6. —种实现报文保序的装置,其特征在于,包括 获取单元,用于获取报文的流标识;处理单元,当所述获取单元获取的流标识对应的保序队列没有被锁定时,将所述报文 存入所述保序队列的头部,并锁定所述保序队列。
7. 如权利要求6所述的装置,其特征在于,还包括 缓存单元,用于根据优先级顺序将得到的报文进行缓存; 则所述获取单元,具体用于获取所述缓存单元缓存的报文的流标识。
8. 如权利要求6所述的装置,其特征在于,所述获取单元包括 计算子单元,用于对所述报文的IP头进行CRC运算得到所述流标识。
9. 如权利要求6所述的装置,其特征在于,所述处理单元,还用于当所述获取单元获取 的流标识对应的保序队列已被锁定时,将所述报文存入所述保序队列的队尾。
10. 如权利要求6项所述的装置,其特征在于,还包括发送单元,用于将所述处理单元处理后的报文从端口发送出去;或在所述获取单元获 取所述处理单元处理后的报文的新的流标识后,将所述处理单元处理后的报文存入所述新 的流标识对应的保序队列中。
全文摘要
本发明实施例公开了一种报文保序的方法和装置,所述方法包括以下步骤获取报文的流标识;若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头部,并锁定所述保序队列。本发明的实施例中,通过获取报文的流标识并根据所述流标识处理报文,在对报文实现保序的同时减少了空等待时间,实现了多核处理器基于报文流的并发处理,提高了多核处理器对报文的处理效率。
文档编号H04L1/00GK101771595SQ20081018802
公开日2010年7月7日 申请日期2008年12月29日 优先权日2008年12月29日
发明者何贵洲 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1