[发明专利]多核多线程的报文保序方法及系统有效
申请号: | 201210305582.5 | 申请日: | 2012-08-24 |
公开(公告)号: | CN102868635A | 公开(公告)日: | 2013-01-09 |
发明(设计)人: | 陈海滨 | 申请(专利权)人: | 汉柏科技有限公司 |
主分类号: | H04L12/861 | 分类号: | H04L12/861 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 300384 天津市华*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 多线程 报文 方法 系统 | ||
技术领域
本发明涉及网络通信技术领域,特别涉及一种多核多线程的报文保序方法及系统。
背景技术
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫做“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即做出响应,而不是让用户等待程序完成了当前任务以后才开始响应。当前高端网络设备大多采用多核CPU的硬件架构来提高报文的处理和转发性能,对多核CPU分别创建相应的线程与所述多核CPU进行一对一的绑定。
申请号为:201010289667.X,发明名称为:一种基于多核构架的报文转发方法及系统的中国专利中,记载了一种将hash队列(即文中的hash表所划分的区域)与线程相绑定的方法,实现了共享资源的免锁设计,但在网络设备出现几条数据流的报文,通过hash计算后均落在了一个hash队列中时,这样就会导致与该hash队列对应的线程很繁忙,与其他hash队列对应的线程均处于闲置状态的情况出现,从而多核CPU的使用效率较低,造成资源的浪费。
为了提高网络设备中多核CPU的使用效率,现有技术中采用RMI芯片将接收到的报文平均分配给各个CPU,由于将报文平均分配给各个CPU,而报文存在大小不同的情况,因此,每个CPU处理报文的速度会有些不同,在报文处理完成后,会产生报文发送时的乱序现象(测试中有千分之三的乱序几率),对于一般的需求已经足够,但对于IPSEC报文和视频报文等,如果出现乱序就会丢包或者视频马赛克,使得网络通信受到较为严重的阻滞。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何防止报文发送时所出现的乱序现象。
(二)技术方案
为解决上述技术问题,本发明提供了一种多核多线程的报文保序方法,所述方法包括:
S1:接收网卡所获得的报文并根据报文被接收的次序对报文进行标记;
S2:各个CPU分别获取各自的报文,并通过对应的线程对报文进行排序后处理所述报文;
S3:在当前报文被处理后,判断前一个报文是否已经被转发,若是,则将所述处理后的当前报文进行转发,否则等待所述前一个报文被转发后,再将所述处理后的当前报文进行转发。
其中,步骤S1之前还包括:
S0:多核CPU分别对应生成与所述多核CPU数量相同的线程。
其中,所述步骤S1中对报文进行标记的步骤具体为:单网卡设备直接标记序号,从0开始每个报文序号加1;多网卡设备标记当前时间戳。
其中,所述步骤S2中,通过对应的线程对报文进行排序的步骤具体为:对单网卡设备,对应的线程根据报文的序号对报文进行排序;对多网卡设备,对应的线程根据时间戳对报文进行排序。
其中,所述步骤S2中,对报文进行排序的步骤具体为:S21:
如果报文的标记为序号,则直接将报文放入对应全局循环链表上的第n个节点Tn,前一个报文对应所述全局循环链表上的第n-1个节点Tn-1;
如果报文的标记为时间戳,则将报文插入到全局循环链表上比当前报文时间戳早且与当前报文时间戳最接近的报文的节点后面。
其中,步骤S3中具体包括:S31:在当前报文被处理后,判断所述全局循环链表上的节点Tn-1对应的报文是否已经被转发,若是,则将所述处理后的当前报文进行转发,否则等待所述节点Tn-1对应的报文被转发后,再将所述处理后的当前报文进行转发。
其中,所述全局循环链表中每个节点均具有状态标志位,所述状态标志位用于反映节点所对应的报文是否已经被转发的状态;
步骤S31中,通过所述状态标志位来判断所述节点Tn-1对应的报文是否已经被转发。
另一方面,本发明还提供了一种多核多线程的报文保序系统,所述系统包括:
报文接收模块,用于接收网卡所获得的报文并根据报文被接收的次序对报文进行标记;
多核CPU,包括若干CPU,用于分别获取各自的报文,并通过对应的线程对报文进行排序后处理所述报文;
转发模块,用于在当前报文被处理后,判断前一个报文是否已经被转发,若是,则将所述处理后的当前报文进行转发,否则等待所述前一个报文被转发后,再将所述处理后的当前报文进行转发。
(三)有益效果
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210305582.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:视频提取方法和装置
- 下一篇:流量切分方法、装置和系统