[发明专利]多核下连接并发处理的方法有效
申请号: | 200810241124.3 | 申请日: | 2008-12-30 |
公开(公告)号: | CN101771600A | 公开(公告)日: | 2010-07-07 |
发明(设计)人: | 蒋海荣;吴亚飚 | 申请(专利权)人: | 北京天融信网络安全技术有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 信息产业部电子专利中心 11010 | 代理人: | 梁军 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多核 连接 并发 处理 方法 | ||
技术领域
本发明涉及通讯技术领域,尤其涉及一种多核下连接并发处理的方法。
背景技术
通常,连接是指在网络通讯过程中,为了快速转发建立的一组存储信息。 源地址、目的地址、源端口、目的端口、协议及传输需要的其他控制信息构成 一个连接。
多个连接组成连接表。一般在接受第一个报文时通过接受的网络报文,获 得源地址、目的地址、源端口、目的端口、协议,并根据上述五元素,计算hash (哈希)值,查询连接表,若连接存在,查询连接的控制信息,根据控制信息 或直接转发或丢弃报文,从而达到快速转发的目的。
目前的连接多在单核下运行,不支持并发,若在多核下运行,就会发生数 据不一致,比如cpu0正在查询连接a,cpu1在修改它,cpu2正在删除它,cpu2 删除时,cpu0、cpu1正在使用,cpu0、cpu1可能会发生指针错误,cpu0、cpu1 就会发生系统异常。
因此,不支持并发的连接在多个cpu同时操作时,会发生数据错误,甚至 出现系统崩溃,无法运行的情况。
发明内容
鉴于上述的分析,本发明目的在于提供一种连接并发处理的方法,用以解 决现有技术中存在的多核下连接不支持并发的问题。
本发明的目的主要是通过以下技术方案实现的:
本发明提供了一种多核下连接并发处理的方法,设定连接状态转换策略和 引用计数策略,所述连接状态包括:创建状态、准备状态、确认状态和删除状 态,则所述方法包括:
步骤A:根据接收到的报文中的五元组计算hash值,并根据该hash值对 连接表中相应的hash链表上细粒度读锁;所述五元组包括:源地址、目的地 址、源端口、目的端口、协议;
步骤B:根据该hash值查询连接表,并在查询结束后释放该hash链表上 的细粒度读锁;
步骤C:查询连接表判断该hash值对应的连接是否存在,如果不存在,则 执行步骤D;如果已存在,则使用该连接或删除该连接,然后转到步骤E;
步骤D:创建新的连接并对该新的连接上自旋锁后,再次查询连接表判断 该hash值对应的连接是否存在,如果不存在,分别将确定的客户端半连接和 服务器半连接插入对应的hash链表中,并释放该新的连接的自旋锁;否则释 放该新的连接;
步骤E:查询相关策略,并根据该相关策略进行报文的后续处理;所述相 关策略包括:防火墙策略。
进一步地,所述步骤C中,使用该连接的步骤具体包括:
使用该连接,并根据该连接所处的连接状态进行判断处理:
如果该连接的状态为准备状态,则进入等待;
如果该连接的状态为确认状态且引用计数大于0,连接引用计数加1,使 用该连接的信息对报文进行相应处理,并在处理结束后,连接引用计数减1; 并且,当减1后的引用计数变为0后,释放该连接,连接状态置为创建状态; 如果该连接的状态为删除状态或引用计数大于0,则不再继续该报文的处理。
进一步地,所述步骤C中,删除该连接的步骤具体包括:
将该连接上自旋锁,原子的检查连接状态是否为删除状态:如果是,释放 该连接上的自旋锁;如果不是,则计算该连接的hash值,根据计算得到的hash 值对相应的hash链表上写锁,删除该连接,释放写锁;然后将该连接从超时 队列删除,释放连接的自旋锁;最后引用计数减2,当发现引用计数为0时, 释放该连接。
进一步地,所述步骤D具体包括:
步骤D1:创建新的连接,根据报文中的源地址和目的地址确定客户端半 连接和服务器端半连接,对该新的连接上自旋锁;
步骤D2:计算客户端半连接的hash值,并根据该hash值对对应的hash 链表上写锁;
步骤D3:再次查询连接表判断该hash值对应的连接是否存在,如果不存 在,执行步骤D4,否则转到步骤D6;
步骤D4:将客户端半连接插入对应的hash链表后,设置连接状态为准备 状态,加内存屏障,释放该hash链表的写锁;
步骤D5:计算服务器端半连接的hash值,并根据该hash值对对应的hash 链表上写锁,再将服务器端半连接插入对应的hash链表后,释放该hash链表 的写锁,并释放该新的连接的自旋锁;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天融信网络安全技术有限公司,未经北京天融信网络安全技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810241124.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:邻居关系建立方法、通信设备及系统
- 下一篇:一种报文保序的方法和装置