一种报文保序的方法和装置制造方法及图纸

技术编号:4272426 阅读:328 留言:1更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种报文保序的方法和装置,所述方法包括以下步骤:获取报文的流标识;若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头部,并锁定所述保序队列。本发明专利技术的实施例中,通过获取报文的流标识并根据所述流标识处理报文,在对报文实现保序的同时减少了空等待时间,实现了多核处理器基于报文流的并发处理,提高了多核处理器对报文的处理效率。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种报文保序的方法和装置
技术介绍
目前,随着多核处理器的大规模创新应用,实现了不同业务流与报文的并行高速处理,突破传统单核处理器性能瓶颈限制,开创了业务与性能并重的全新天地。 多核处理器最大的优点为处理上能够并行处理报文的转发,即一次流程可以处理多个报文。由于采用多核处理器对报文进行处理,所以同一条报文流中的不同报文可能由不同的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包括 计算子单本文档来自技高网...

【技术保护点】
一种报文保序的方法,其特征在于,包括以下步骤:获取报文的流标识;若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头部,并锁定所述保序队列。

【技术特征摘要】
一种报文保序的方法,其特征在于,包括以下步骤获取报文的流标识;若所述流标识对应的保序队列没有被锁定,将所述报文存入所述保序队列的头部,并锁定所述保序队列。2. 如权利要求1所述的方法,其特征在于,所述获取报文的流标识之前,还包括 根据优先级顺序将得到的报文进行缓存; 则所述获取报文的流标识包括获取所述缓存的报文的流标识。3. 如权利要求1所述的方法,其特征在于,所述获取报文的流标识包括 对所述报文的互联网协议IP头进行循环冗余码校验CRC运算得到所述流标识。4. 如权利要求l所述的方法,其特征在于,还包括若所述流标识对应的保序队列已被锁定,则将所述报文存入所述保序队列的队尾。5. 如权利要求1所述的方法,其特征在于,所述将报文存入所述保序队列之后,还包括将处理后的报文从端口发送出去;或获取处理后的报文的新的流标识,将所述处理后的报文存入所述新的流标识对应的保 序队列中。6. —种实现报文保序的装置,其特征在于,包...

【专利技术属性】
技术研发人员:何贵洲
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有1条评论
  • 来自[北京市联通互联网数据中心] 2014年12月04日 18:38
    报文(message)是网络中交换与传输的数据单元即站点一次性要发送的数据块报文包含了将要发送的完整的数据信息其长短很不一致长度不限且可变
    0
1