[发明专利]报文保序的方法及装置有效
申请号: | 201210578439.3 | 申请日: | 2012-12-27 |
公开(公告)号: | CN103067304A | 公开(公告)日: | 2013-04-24 |
发明(设计)人: | 赵桃李 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L12/863 | 分类号: | H04L12/863;H04L12/883 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 谭磊 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 报文 方法 装置 | ||
技术领域
本发明实施例涉及通信技术,尤其涉及一种报文保序的方法及装置。
背景技术
随着多核技术的发展,多核中央处理器(Central Processing Unit,简称CPU)得到了越来越广泛的应用,然而,当多核CPU处理及转发报文时,容易产生报文乱序的现象,例如,三核CPU按照报文1、2、3的顺序依次接收到3个报文并分别分发给核C1、C2、C3进行处理,由于报文内容,CPU处理策略以及每个核的负载情况均存在差异,有可能出现报文2和报文3先处理完毕,报文1后处理完毕的情况,此时,若CPU把处理完毕的报文直接发送出去,就出现了发送报文顺序为2、3、1的乱序现象。现有网络中部分网络设备和终端对组播报文的乱序敏感,乱序的报文会导致网络设备和终端的工作异常。
目前,对于单播报文,CPU在发送报文之前先将处理后报文的报文包放到报文入发送队列中,按照进入设备的顺序放置,进而保证处理后的报文包在出接口发送的顺序跟进入设备的顺序一致。
而对于组播报文,实现报文保序的方式为:将同一个组播组的流量按照一定的哈希(Hash)算法分配到固定的核进行处理,其对组播流量的处理性能跟单核设备相当,在对报文进行处理时对每个发送接口拷贝一份进行发送,在组播组较少或者不同组播组间的流量差别大的情况下,也容易造成多个核的负载严重不均,无法充分发挥多核设备的处理性能,使得CPU的处理效率无法提高。
发明内容
有鉴于此,本发明实施例提供一种报文保序的方法及装置,用以解决现有技术中对于组播报文易造成多核负载不均衡,导致CPU的处理效率降低的问题。
第一方面,提供了一种报文保序的方法,包括:
在中央处理器CPU接收报文,并将所述报文逐包分发到所述CPU的两个以上的核进行处理之后,所述CPU的第N核接收所述CPU分发的包括编号为M的第M个报文包;
所述第N核确定所述第M个报文包为组播报文的报文包之后,处理所述第M个报文包,并将处理后的所述第M个报文包按照所述编号M排列在报文入发送队列中;
所述第N核确定所述报文入发送队列中有当前直接发送的报文包,则确定处理后的第M个报文包对应的出接口是否是所述报文对应的所有出接口中的最后一个;
若不是,则所述第N核将所述报文入发送队列中当前直接发送的报文包发送,并向第P核发送通知消息,所述通知消息用于指示所述第P核处理所述第M个报文包;所述第P核为所述第N核按照预设算法算出的用于向另一个出接口发送报文包的核;以使所述第P核处理所述第N核处理后的第M个报文包,并重复确定所述第P核处理后的报文包对应的出接口是否是所有出接口中最后一个的过程,以及在所述第P核处理后的报文包对应的出接口不是最后一个时,重复向下一个出接口发送报文包的第Q核发送通知消息的过程,直至所述报文对应的所有出接口都依序发送有处理后的报文;
其中,所述N、M、P、Q为大于等于1的自然数。
结合第一方面,在第一种可能的实现方式中,所述第N核确定所述第M个报文包为组播报文的报文包之后,处理第M个报文包,包括:
所述第N核确定所述第M个报文包为组播报文的报文包之后,查找所述第M个报文包对应的所有出接口的信息,将所有出接口的信息记录到所述第M个报文包中,且取出所有出接口中的第一个出接口,以及删除所述所有出接口中的第一个出接口;
所述第P核处理所述第N核处理后的第M个报文包,包括:
所述第P核将所述第N核处理后的第M个报文包中的出接口信息中的排在最前的出接口取出,以及在所述出接口信息中删除第P核所取出的出接口。
结合第一方面及上述可能的实现方式,在第二种可能的实现方式中,所述将处理后的所述第M个报文包按照所述编号M排列在报文入发送队列中的步骤之后,还包括:
所述第N核确定所述报文入发送队列中无当前直接发送的报文包,则等待所述报文入发送队列中排在编号M之前的能够直接发送的报文包。
结合第一方面,在第三种可能的实现方式中,所述确定处理后的第M个报文包对应的出接口是否是所述报文对应的所有出接口中的最后一个的步骤之后,还包括:
若是,所述第N核将所述报文入发送队列中当前直接发送的报文包发送,并通知所述第N核所在的CPU回收所述报文占用的内存。
结合第一方面,在第四种可能的实现方式中,所述第N核确定所述第M个报文包为组播报文的报文包,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210578439.3/2.html,转载请声明来源钻瓜专利网。