[发明专利]网络数据包的并行处理方法及装置有效
申请号: | 201611162923.2 | 申请日: | 2016-12-15 |
公开(公告)号: | CN106598747B | 公开(公告)日: | 2019-10-11 |
发明(设计)人: | 金健 | 申请(专利权)人: | 东软集团股份有限公司 |
主分类号: | G06F9/52 | 分类号: | G06F9/52 |
代理公司: | 北京鼎佳达知识产权代理事务所(普通合伙) 11348 | 代理人: | 刘喆;刘铁生 |
地址: | 110179 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络 数据包 并行 处理 方法 装置 | ||
1.一种网络数据包的并行处理方法,其特征在于,包括:
设定网络会话对应的会话数据结构表项中,读写变量部分中单个变量的长度不大于中央处理器CPU的字长;
当至少两个CPU核接收到同一个网络会话中的不同网络数据包时,所述CPU核获取所述网络会话对应的会话数据结构表项;
根据所述网络数据包在所述CPU核中的执行情况,对所述会话数据结构表项中的读写变量部分进行原子操作修改。
2.根据权利要求1所述的方法,其特征在于,所述读写变量部分包括计数变量、时间变量和/或状态机变量。
3.根据权利要求2所述的方法,其特征在于,若所述读写变量部分为计数变量、时间变量,所述方法还包括:
将所述计数变量或所述时间变量设置成每CPU变量,所述每CPU变量用于记录所述网络会话在其对应的CPU核中的计数变量或时间变量;
若所述每CPU变量记录的是计数变量,则通过累加所述每CPU变量得到所述网络会话的计数变量;
若所述每CPU变量记录的是时间变量,则通过所述每CPU变量中记录的最晚时间值,得到所述网络会话的时间变量。
4.根据权利要求2所述的方法,其特征在于,若所述读写变量部分为时间变量,所述根据所述网络数据包在所述CPU核中的执行情况,对所述会话数据结构表项中的读写变量部分进行原子操作修改包括:
获取所述CPU核执行所述网络数据包的当前时间;
判断所述当前时间与所述时间变量中记录的时间数值差是否大于预置时间;
若大于,则根据所述当前时间更新所述时间变量。
5.根据权利要求2所述的方法,其特征在于,若所述读写变量部分为状态机变量,所述根据所述网络数据包在所述CPU核中的执行情况,对所述会话数据结构表项中的读写变量部分进行原子操作修改之前,所述方法还包括:
根据读取所述会话数据结构表项中的当前状态和正在处理的网络数据包,运行状态跳转代码,得到新的状态;
判断所述新的状态是否与所述当前状态相同;
所述对所述会话数据结构表项中的读写变量部分进行原子操作修改包括:
若所述新的状态与所述当前状态不同,则重新读取所述会话数据结构表项中的当前状态;
当重新读取的当前状态与上次读取的当前状态相同时,则通过所述新的状态更新所述会话数据结构表项中的当前状态;
当重新读取的当前状态与上次读取的当前状态不同时,则重新获取所述新的状态。
6.一种网络数据包的并行处理装置,其特征在于,包括:
设定单元,用于设定网络会话对应的会话数据结构表项中,读写变量部分中单个变量的长度不大于中央处理器CPU核的字长;
获取单元,用于当至少两个CPU核接收到同一个网络会话中的不同网络数据包时,所述CPU核获取所述网络会话对应的会话数据结构表项;
修改单元,用于根据所述网络数据包在所述CPU核中的执行情况,对所述会话数据结构表项中的读写变量部分进行原子操作修改。
7.根据权利要求6所述的装置,其特征在于,所述读写变量部分包括计数变量、时间变量和/或状态机变量。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
设置单元,用于若所述读写变量部分为计数变量、时间变量,将所述计数变量或所述时间变量设置成每CPU变量,所述每CPU变量用于记录所述网络会话在其对应的CPU核中的计数变量或时间变量;
所述获取单元,还用于若所述每CPU变量记录的是计数变量,则通过累加所述每CPU变量得到所述网络会话的计数变量;
所述获取单元,还用于若所述每CPU变量记录的是时间变量,则通过所述每CPU变量中记录的最晚时间值,得到所述网络会话的时间变量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东软集团股份有限公司,未经东软集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611162923.2/1.html,转载请声明来源钻瓜专利网。