CN102932199B - 一种多核系统检测p2p流的方法和系统 - Google Patents
一种多核系统检测p2p流的方法和系统 Download PDFInfo
- Publication number
- CN102932199B CN102932199B CN201210352542.6A CN201210352542A CN102932199B CN 102932199 B CN102932199 B CN 102932199B CN 201210352542 A CN201210352542 A CN 201210352542A CN 102932199 B CN102932199 B CN 102932199B
- Authority
- CN
- China
- Prior art keywords
- message
- node
- streams
- list item
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多核系统检测P2P流的方法和系统,通过转发核从报文列表中获取待转发的报文,在共享内存中查找报文转发所需要的表项,如果找到则直接将表项从共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成报文转发所需要的表项,将表项存储到共享内存中,转发核再将表项从共享内存中转发走;管理核检测P2P流节点定时器并更新所有P2P流节点;转发核经过第一判断模块、第二判断模块、第三判断模块、第四判断模块、第五判断模块依次判断,从而在多核系统的管理核和转发核上分工合作实现P2P的检测,保证在不影响多核系统转发性能的前提下实现高效率检测P2P流。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种多核系统检测P2P流的方法和系统。
背景技术
P2P(Peer-to-Peer,对等网络)由多个加入该网络的节点组成,也叫P2P叠加网。在对等网络中,两个或两个以上的PC机或其它设备,在网络上直接通信或协作,彼此共享包括处理能力(CPU)、程序以及数据在内的共用资源。在P2P网络中不存在中心节点或中央服务器,每一个节点都同时担当信息消费者、信息提供者和信息中介者三重职责。P2P网络中的每一个节点都具有完全相同的地位,权利和义务都是对等的。
近年来,对等网络(P2P)的用户规模、应用类型和流量均呈爆发式增长。P2P应用类型早己经从文件共享扩展到语音、视频等应用领域,P2P流量己占整个互联网流量的60%。大部分P2P应用对带宽是一种侵占式的占用,为了控制网络P2P应用对带宽的大量占用,开展高效、准确的P2P流量(尤其是多媒体内容)实时检测与过滤相关技术研究,不仅有利于合理利用互联网基础设施、合理利用P2P技术、合理部署P2P应用,有利于制止非法内容在P2P网络中的传播。随着互联网上P2P流量的比例也在不断攀升,用户大量使用P2P进行文件下载,极大地占用了网络带宽资源,影响正常的互联网应用和依赖于网络连接的工作。因此,需要对P2P流进行有效的检测和控制,但首先必须将P2P流检测出来。
对P2P流的检测,目前理论上主要有以下四种技术:端口识别、深层数据包检测技术、基于机器学习的流量识别技术和基于P2P网络行为特征技术。这些技术主要有以下缺点:
a、目前的p2p软件都是采用了随机端口技术,因此基于端口进行识别是否为P2P流的方式几乎失去了作用;
b、深度数据包检测技术侵害了个人的隐私权,对加密后的P2P报文几乎没有任何识别作用,并且每当有一款新的P2P下载软件上市,就需要更新本地的P2P识别特征库,因此用户体验感不好,对于网络转发设备来说性能损失巨大;
c、基于机器学习的流量识别技术,受网络环境影响较大,所以健壮性差,并且实现机器学习技术的流量分类工具只有 Tstat2.0,而 Tstat2.0 仅能够识别 Skype 流量,尚不能利用机器学习技术识别所有应用流量,该技术无法真正应用于实际网络设备中;
d、基于网络行为特征的流量识别技术是通过对传输层数据包进行分析,并结合P2P流量特征识别出P2P流。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
基于网络行为特征的P2P流量识别技术不适用于高速网络环境下的在线实时识别P2P流量,无法实现在不对多核系统的转发性能造成很大影响的前提下基于P2P行为特征来识别P2P流。
发明内容
为解决上述问题,本发明实施例提供了一种多核系统检测P2P流的方法和系统,通过转发核从报文列表中获取待转发的报文,在共享内存中查找报文转发所需要的表项,如果找到则直接将表项从共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成报文转发所需要的表项,将表项存储到共享内存中,转发核再将表项从共享内存中转发走;管理核检测P2P流节点定时器并更新所有P2P流节点;转发核经过第一判断模块、第二判断模块、第三判断模块、第四判断模块、第五判断模块依次判断,从而在多核系统的管理核和转发核上分工合作实现P2P的检测,保证在不影响多核系统转发性能的前提下实现高效率检测P2P流。
为达到上述目的,本发明实施例提供了一种多核系统检测P2P流的方法,具体包括以下步骤:
所述转发核从报文列表中获取待转发的报文,在共享内存中查找所述报文转发所需要的表项,如果找到则直接将所述表项从所述共享内存中转发走;如果未找到则向所述管理核发送表项报文,所述管理核生成所述报文转发所需要的表项,将所述表项存储到所述共享内存中,所述转发核再将所述表项从所述共享内存中转发走;
所述管理核检测P2P流节点定时器并更新所有P2P流节点;
所述转发核判断所述报文的长度是否大于第一阈值,如果所述报文长度不大于所述第一阈值,则等待接收下一条报文;
其中所述第一阈值为一千字节;
如果所述报文长度大于所述第一阈值,则从接收到的报文中提取出目的IP和目的端口,并根据所述目的IP和所述目的端口通过哈希算法计算出hash值;
以所述hash值为索引,判断在所述P2P流节点链表中是否存在与所述hash值相同的节点,如果不存在,则在所述P2P流节点链表内存中创建新的P2P流节点,并记录下所述报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文;
如果存在,则继续判断所述P2P流节点的标志位是否为TRUE,如果是TRUE,则接收到的报文为P2P报文,所述报文的源IP和源端口组与之前记录的所述源IP和所述源端口组相同,更新所述P2P流节点中记录的时间值,等待接收下一条报文;
如果标志位不是TRUE,则进一步把接收到的报文中目的IP和目的端口组与所述P2P流节点链表中记录的所有的目的IP和目的端口组进行匹配,如果存在相同的,则记录下所述报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文;
如果不存在相同的,则记录下所述报文的源IP和源端口组,以及系统当前时间,继续比较所述P2P流节点中记录的源IP和源端口组的个数与第二阈值的大小,如果所述P2P流节点中记录的源IP和源端口组的个数小于所述第二阈值,则等待接收下一条报文;如果所述P2P流节点中记录的源IP和源端口组的个数大于等于所述第二阈值,则所述报文的网络信息符合P2P流的网络特征,所述报文为P2P报文,将标志位设置为TRUE,判断结束,等待接收下一条报文;
其中所述第二阈值为4,所述P2P流的网络特征为一个目的IP和目的端口组对应多个源IP和源端口组。
另一方面,本发明实施例还提供了一种多核系统检测P2P流的系统,包括:
一个管理核和N个转发核,其中N为大于等于2的自然数;
其中,所述管理核包括发送单元、生成单元、存储单元、更新单元;
所述发送单元用于发送表项报文;
所述生成单元用于生成报文转发所需要的表项;
所述存储单元用于将所述表项存储到所述共享内存中;
所述更新单元用于更新所有的P2P流节点信息;
所述转发核包括获取单元、查询单元、转发单元;
所述获取单元用于从报文列表中获取待转发的报文;
所述查询单元用于在共享内存中查找所述报文转发所需要的表项;
所述转发单元用于将找到的表项从所述共享内存中转发走。
与现有技术相比,本发明的实施例具有以下优点:
通过转发核从报文列表中获取待转发的报文,在共享内存中查找报文转发所需要的表项,如果找到则直接将表项从共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成报文转发所需要的表项,将表项存储到共享内存中,转发核再将表项从共享内存中转发走;管理核检测P2P流节点定时器并更新所有P2P流节点;转发核经过第一判断模块、第二判断模块、第三判断模块、第四判断模块、第五判断模块依次判断,从而在多核系统的管理核和转发核上分工合作实现P2P的检测,保证在不影响多核系统转发性能的前提下实现高效率检测P2P流。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中一种多核系统检测P2P流的方法的操作步骤示意图;
图2是本发明实施例中一种多核系统检测P2P流的方法中管理核检测P2P流节点定时器并更新所有P2P流节点的实施步骤示意图;
图3是本发明实施例中一种多核系统检测P2P流的方法中管理核工作的具体流程示意图;
图4是本发明实施例中一种多核系统检测P2P流的方法中转发核工作的具体流程示意图;
图5是本发明实施例中一种多核系统检测P2P流的系统结构示意图;
图6是本发明实施例中一种多核系统检测P2P流的系统另一种结构示意图;
图7是本发明实施例中一种多核系统检测P2P流的系统中的第一判断单元结构示意图;
图8是本发明实施例中一种多核系统检测P2P流的系统中的第三判断单元结构示意图;
图9是本发明实施例中一种多核系统检测P2P流的系统中的第一判断模块结构示意图;
图10是本发明实施例中一种多核系统检测P2P流的系统中的第二判断模块结构示意图;
图11是本发明实施例中一种多核系统检测P2P流的系统中的第三判断模块结构示意图;
图12是本发明实施例中一种多核系统检测P2P流的系统中的第四判断模块结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例提供了一种多核系统检测P2P流的方法,其中所述多核系统包括一个管理核和N个转发核,转发核之间并行工作,N为大于等于2的自然数,具体操作步骤如图1所示,包括以下步骤:
步骤s101、转发核从报文列表中获取待转发的报文,在共享内存中查找上述报文转发所需要的表项。
在共享内存中查找上述报文转发所需要的表项之前还包括:对获取到的报文的报文头进行分析生成报文描述符,并更新报文描述符。
如果在共享内存中找到上述报文转发所需要的表项,则直接将表项从共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成上述报文转发所需要的表项,将表项存储到共享内存中。
具体的,管理核生成上述报文转发所需要的表项具体为管理核对上述报文进行表项学习,生成上述报文转发所需要的表项。
步骤s102、转发核将表项从共享内存中转发走。
步骤s103、管理核检测P2P流节点定时器并更新所有P2P流节点,具体操作步骤如图2所示,包括:
步骤s1031、运行管理核,启动P2P流节点定时器。
步骤s1032、判断P2P流节点定时器是否达到检测周期。如果没有达到则进入步骤s1037;如果达到检测周期,则进入步骤s1033。
步骤s1033、获取P2P流节点链表表头指针,进入步骤s1034。
步骤s1034、判断是否还有待检测的P2P流节点,如果没有则不作处理;如果有则进入步骤s1035。
步骤s1035、判断P2P流节点获取到的系统当前时间减去P2P流节点原来记录的时间得到的时间差值是否大于时间阈值,其中时间阈值为2s-3s经验值。
如果大于时间阈值,则进入步骤s1036;如果不大于时间阈值,则直接返回步骤s1034,直到所有P2P流节点都检测完毕。
步骤s1036、删除P2P流节点,释放P2P流节点在链表中占用的内存空间,再返回步骤s1034。
步骤s1037、等待检测周期的到达。
上述管理核工作的具体流程示意图如图3所示。
步骤s104、转发核判断报文的长度是否大于第一阈值,其中第一阈值为一千字节。
如果报文长度不大于第一阈值,则等待接收下一条报文;
如果报文长度大于第一阈值,则从接收到的报文中提取出目的IP和目的端口,并根据目的IP和目的端口通过哈希算法计算出hash值。
步骤s105、以hash值为索引,判断在P2P流节点链表中是否存在与hash值相同的节点。
如果不存在,则在P2P流节点链表内存中创建新的P2P流节点,并记录下报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文;
如果存在,则进入步骤s106。
步骤s106、判断P2P流节点的标志位是否为TRUE。
如果是TRUE,则接收到的报文为P2P报文,报文的源IP和源端口组与之前记录的源IP和源端口组相同,更新P2P流节点中记录的时间值,等待接收下一条报文;
如果标志位不是TRUE,则进入步骤s107。
步骤s107、把接收到的报文中目的IP和目的端口组与P2P流节点链表中记录的所有的目的IP和目的端口组进行匹配。
如果存在相同的,则记录下报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文,当转发核再次接收到报文,则提取再次接收到的报文的目的IP和目的端口,并与所述上一条报文的源IP和源端口比较,如果相同则不做任何操作,如果不相同则记录下本次接收到报文的源IP和源端口,并更新所述P2P流节点中记录的时间值;
如果不存在相同的,则记录下报文的源IP和源端口组,以及系统当前时间,进入步骤s108。
步骤s108、比较P2P流节点中记录的源IP和源端口组的个数与第二阈值的大小,其中第二阈值为4。
如果P2P流节点中记录的源IP和源端口组的个数小于第二阈值,则进入步骤s1010;
如果P2P流节点中记录的源IP和源端口组的个数大于等于第二阈值,则报文的网络信息符合P2P流的网络特征,则进入步骤s109,其中P2P流的网络特征为一个目的IP和目的端口组对应多个源IP和源端口组。
步骤s109、报文为P2P报文,将标志位设置为TRUE,判断结束,进入步骤s1010。
步骤s1010、等待接收下一条报文
转发核工作的具体流程示意图如图4所示。
本发明的实施例还提供了一种检测P2P流的多核系统,如图5所示,具体包括:
一个管理核310和N个转发核320,其中N为大于等于2的自然数,因为N个转发核之间是并行工作的,而且N个转发核的工作原理和结构组成都相同,所以在本实施例中只举例介绍一个转发核的结构组成。
其中,管理核310包括发送单元311、生成单元312、存储单元313、更新单元314;
发送单元311用于发送表项报文;
生成单元312用于生成报文转发所需要的表项;
存储单元313用于将表项存储到共享内存中;
更新单元314用于更新所有的P2P流节点信息;
转发核320包括获取单元321、查询单元322、转发单元323;
获取单元321用于从报文列表中获取待转发的报文;
查询单元322用于在共享内存中查找报文转发所需要的表项;
转发单元323用于将找到的表项从共享内存中转发走。
本发明的实施例还提供了一种检测P2P流的多核系统还有另外一种结构组成图,如图6所示,管理核310还包括定时器315、第一判断单元316、第二判断单元317和第三判断单元318,其中定时器315用于定时,设定检测周期。
第一判断单元316包括第一判断子单元3161和第一获取子单元3162,结构组成图如图7所示。
其中,第一判断子单元3161用于判断判断定时器315是否达到检测周期,如果没有达到则等待检测周期的到达。
第一获取子单元3162用于当达到检测周期时,获取P2P流节点的表头指针,进入第二判断单元317进行进一步判断。
第二判断单元317用于判断是否还有待检测的P2P流节点,如果没有则不作处理;如果有则进入第三判断单元318进行进一步判断。
第三判断单元318包括第三计算子单元3181、第三判断子单元3182和第三删除子单元3183,结构组成图如图8所示。
其中,第三计算子单元3181用于将系统当前时间减去P2P流节点原来记录的时间,得到时间差值。
第三判断子单元3182用于判断时间差值是否大于时间阈值,其中时间阈值为2s-3s经验值。
如果大于则由第三删除子单元3183进行删除,返回到第二判断单元317;如果不大于则直接返回第二判断单元317,直到所有P2P流节点都检测完毕。
第三删除子单元3183用于删除P2P流节点,释放占用的内存空间。
转发核320还包括P2P流节点链表324、第一判断模块325、第二判断模块326、第三判断模块327、第四判断模块328和第五判断模块329。
其中,P2P流节点链表324包含所有的P2P流节点,在P2P流节点链表324中记录所有P2P流节点的源IP、源端口、目的IP、目的端口和更新时的系统当前时间。
第一判断模块325包括第一判断子模块3251、第一提取子模块3252、第一计算子模块3253,结构组成图如图9所示。
其中,第一判断子模块3251用于判断报文长度是否大于第一阈值,第一阈值为一千字节,如果报文长度不大于第一阈值,则等待接收下一条报文。
第一提取子模块3252用于当报文长度大于第一阈值时继续由第一计算子模块3253进行提计算。
第一计算子模块3253根据目的IP和目的端口通过哈希算法计算出hash值。
第二判断模块326包括第二判断子模块3261、第二分配子模块3262,结构组成图如图10所示。
其中,第二判断子模块3261用于根据hash值判断在P2P流节点链表324中是否存在与hash值相同的节点。
如果不存在则由第二分配子模块3262为其分配新节点,如果存在,则进入第三判断模块327进行进一步判断。
第二分配子模块3262用于当P2P流节点链表324中不存在与hash值相同的节点时,在内存中分配新的P2P流节点,并记录下报文的源IP和源端口组,以及系统当前时间。
第三判断模块327包括第三判断子模块3271、第三更新子模块3272,结构组成图如图11所示。
其中,第三判断子模块3271用于判断P2P流节点的标志位是否为TRUE。
如果是TRUE,则接收到的报文为P2P报文,报文的源IP和源端口组与之前记录的源IP和源端口组相同,再由第三更新子模块3272进行更新,继续等待接收下一条报文;如果标志位不是TRUE,则进入第四判断模块328进行进一步判断;
第三更新子模块3272用于更新P2P流节点中记录的时间值。
第四判断模块328包括第四判断子模块3281、第四提取子模块3282,结构组成图如图12所示。
其中,第四判断子模块3281用于将接收到的报文中目的IP和目的端口组与P2P流节点链表324中记录的所有的目的IP和目的端口组进行匹配。
如果存在相同的,则由第四提取子模块3282记录信息,并等待接收下一条报文;如果不存在相同的,则由第四提取子模块3282记录信息,进入第五判断模块329进行进一步判断。
第四提取子模块3282用于记录报文的源IP和源端口组,以及系统当前时间。
第五判断模块329用于比较P2P流节点中记录的源IP和源端口组的个数与第二阈值的大小,如果P2P流节点中记录的源IP和源端口组的个数小于第二阈值,则等待接收下一条报文;如果P2P流节点中记录的源IP和源端口组的个数大于或等于第二阈值,则报文的网络信息符合P2P流的网络特征,报文为P2P报文,将标志位设置为TRUE,判断结束,等待接收下一条报文.
其中第二阈值为4,P2P流的网络特征为一个目的IP和目的端口组对应多个源IP和源端口组。
本发明实现了以下有益效果:通过转发核从报文列表中获取待转发的报文,在共享内存中查找报文转发所需要的表项,如果找到则直接将表项从共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成报文转发所需要的表项,将表项存储到共享内存中,转发核再将表项从共享内存中转发走;管理核检测P2P流节点定时器并更新所有P2P流节点;转发核经过第一判断模块、第二判断模块、第三判断模块、第四判断模块、第五判断模块依次判断,从而在多核系统的管理核和转发核上分工合作实现P2P的检测,保证在不影响多核系统转发性能的前提下实现高效率检测P2P流。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (19)
1.一种多核系统检测P2P流的方法,其特征在于,所述多核系统包括一个管理核和N个转发核,其中N为大于等于2的自然数,所述方法具体包括以下步骤:
步骤S101、所述转发核从报文列表中获取待转发的报文,在共享内存中查找所述报文转发所需要的表项,如果找到则直接将所述表项从所述共享内存中转发走;如果未找到则向所述管理核发送表项报文,所述管理核生成所述报文转发所需要的表项,将所述表项存储到所述共享内存中;
步骤S102、所述转发核再将所述表项从所述共享内存中转发走;
步骤S103、所述管理核检测P2P流节点定时器并更新所有P2P流节点;
步骤S104、所述转发核判断所述报文的长度是否大于第一阈值,如果所述报文长度不大于所述第一阈值,则等待接收下一条报文;
其中所述第一阈值为一千字节;
如果所述报文长度大于所述第一阈值,则从接收到的报文中提取出目的IP和目的端口,并根据所述目的IP和所述目的端口通过哈希算法计算出hash值;
步骤S105、以所述hash值为索引,判断在所述P2P流节点链表中是否存在与所述hash值相同的节点,如果不存在,则在所述P2P流节点链表内存中创建新的P2P流节点,并记录下所述报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文;如果存在,则进入步骤S106;
步骤S106、继续判断所述P2P流节点的标志位是否为TRUE,如果是TRUE,则接收到的报文为P2P报文,所述报文的源IP和源端口组与之前记录的所述源IP和所述源端口组相同,更新所述P2P流节点中记录的时间值,等待接收下一条报文;
如果标志位不是TRUE,则进入步骤S107;
步骤S107、把接收到的报文中目的IP和目的端口组与所述P2P流节点链表中记录的所有的目的IP和目的端口组进行匹配,如果存在相同的,则记录下所述报文的源IP和源端口组,以及系统当前时间,等待接收下一条报文;
如果不存在相同的,则记录下所述报文的源IP和源端口组,以及系统当前时间;
步骤S108、继续比较所述P2P流节点中记录的源IP和源端口组的个数与第二阈值的大小,如果所述P2P流节点中记录的源IP和源端口组的个数小于所述第二阈值,则进入步骤S1010;如果所述P2P流节点中记录的源IP和源端口组的个数大于等于所述第二阈值,则所述报文的网络信息符合P2P流的网络特征;
步骤S109、所述报文为P2P报文,将标志位设置为TRUE,判断结束;
步骤S1010、等待接收下一条报文;
其中所述第二阈值为4,所述P2P流的网络特征为一个目的IP和目的端口组对应多个源IP和源端口组。
2.如权利要求1所述方法,其特征在于,所述N个转发核之间并行工作。
3.如权利要求1所述方法,其特征在于,所述管理核生成所述报文转发所需要的表项具体包括:
所述管理核对报文进行表项学习,生成所述报文转发所需要的表项。
4.如权利要求1所述方法,其特征在于,所述在共享内存中查找所述报文转发所需要的表项之前还包括:
对所述报文的报文头进行分析生成报文描述符,并更新所述报文描述符。
5.如权利要求1所述方法,其特征在于,所述管理核检测P2P流节点定时器并更新所有P2P流节点具体包括:
运行所述管理核,启动所述P2P流节点定时器,判断所述P2P流节点定时器是否达到检测周期,如果没有达到则等待检测周期的到达;
如果达到检测周期,则获取所述P2P流节点链表表头指针,进一步判断是否还有待检测的P2P流节点,如果没有则不作处理;
如果有则继续判断所述P2P流节点获取到的系统当前时间减去所述P2P流节点原来记录的时间得到的时间差值是否大于时间阈值,如果大于所述时间阈值,则删除所述P2P流节点,释放所述P2P流节点在链表中占用的内存空间,再返回判断是否还有待检测的P2P流节点;如果不大于所述时间阈值,则直接返回继续判断是否还有待检测的P2P流节点,直到所有P2P流节点都检测完毕;
其中所述时间阈值为2s-3s经验值。
6.一种检测P2P流的多核系统,其特征在于,所述多核系统具体包括:一个管理核和N个转发核,其中N为大于等于2的自然数;
其中,所述管理核包括发送单元、生成单元、存储单元、更新单元;
所述发送单元用于发送表项报文;
所述生成单元用于生成报文转发所需要的表项;
所述存储单元用于将所述表项存储到共享内存中;
所述更新单元用于更新所有的P2P流节点信息;
所述转发核包括获取单元、查询单元、转发单元;
所述获取单元用于从报文列表中获取待转发的报文;
所述查询单元用于在共享内存中查找所述报文转发所需要的表项;
所述转发单元用于将找到的表项从所述共享内存中转发走;如果未找到则向管理核发送表项报文,管理核生成报文转发所需要的表项,将表项存储到共享内存中,转发核再将表项从共享内存中转发走;管理核检测P2P流节点定时器并更新所有P2P流节点;转发核经过第一判断模块、第二判断模块、第三判断模块、第四判断模块、第五判断模块依次判断,从而在多核系统的管理核和转发核上分工合作实现P2P的检测。
7.如权利要求6所述系统,其特征在于,所述N个转发核之间并行工作。
8.如权利要求6所述系统,其特征在于,所述管理核生成所述报文转发所需要的表项具体包括:
所述管理核对报文进行表项学习,生成所述报文转发所需要的表项。
9.如权利要求6所述系统,其特征在于,所述在共享内存中查找所述报文转发所需要的表项之前还包括:
对所述报文的报文头进行分析生成报文描述符,并更新所述报文描述符。
10.如权利要求6所述系统,其特征在于,所述管理核还包括定时器、第一判断单元、第二判断单元和第三判断单元,其中所述定时器用于定时,设定检测周期。
11.如权利要求10所述系统,其特征在于,所述第一判断单元包括第一判断子单元和第一获取子单元;
其中,所述第一判断子单元用于判断判断所述定时器是否达到所述检测周期,如果没有达到则等待所述检测周期的到达;
所述第一获取子单元用于当达到所述检测周期时获取所述P2P流节点的表头指针,进入所述第二判断单元进行进一步判断。
12.如权利要求10所述系统,其特征在于,所述第二判断单元用于判断是否还有待检测的P2P流节点,如果没有则不作处理;如果有则进入所述第三判断单元进行进一步判断。
13.如权利要求10所述系统,其特征在于,所述第三判断单元包括第三计算子单元、第三判断子单元和第三删除子单元;
其中,所述第三计算子单元用于将系统当前时间减去所述P2P流节点原来记录的时间,得到时间时间差值;
所述第三判断子单元用于判断所述时间时间差值是否大于时间阈值,如果大于则由所述第三删除子单元进行删除,返回到所述第二判断单元;如果不大于则直接返回所述第二判断单元,直到所有P2P流节点都检测完毕;
所述第三删除子单元用于删除所述P2P流节点,释放占用的内存空间。
14.如权利要求6所述系统,其特征在于,所述转发核还包括P2P流节点链表、第一判断模块、第二判断模块、第三判断模块、第四判断模块和第五判断模块,其中所述P2P流节点链表包含所有的P2P流节点,在所述P2P流节点链表中记录所有P2P流节点的源IP、源端口、目的IP、目的端口和更新时的系统当前时间。
15.如权利要求14所述系统,其特征在于,所述第一判断模块包括第一判断子模块、第一提取子模块、第一计算子模块,其中所述第一判断子模块用于判断所述报文长度是否大于第一阈值,如果所述报文长度不大于所述第一阈值,则等待接收下一条报文,所述第一阈值为一千字节;
所述第一提取子模块用于当所述报文长度大于所述第一阈值时继续由所述第一计算子模块进行提计算;
所述第一计算子模块根据所述目的IP和所述目的端口通过哈希算法计算出hash值。
16.如权利要求15所述系统,其特征在于,所述第二判断模块包括第二判断子模块、第二分配子模块;
所述第二判断子模块用于根据所述hash值判断在所述P2P流节点链表中是否存在与所述hash值相同的节点,如果不存在则由所述第二分配子模块为其分配新节点,如果存在,则进入所述第三判断模块进行进一步判断;
所述第二分配子模块用于当所述P2P流节点链表中不存在与所述hash值相同的节点时,在内存中分配新的P2P流节点,并记录下所述报文的源IP和源端口组,以及系统当前时间。
17.如权利要求14所述系统,其特征在于,所述第三判断模块包括第三判断子模块、第三更新子模块;
所述第三判断子模块用于判断所述P2P流节点的标志位是否为TRUE,如果是TRUE,则接收到的报文为P2P报文,所述报文的源IP和源端口组与之前记录的所述源IP和所述源端口组相同,再由所述第三更新子模块进行更新,继续等待接收下一条报文;如果标志位不是TRUE,则进入所述第四判断模块进行进一步判断;
所述第三更新子模块用于更新所述P2P流节点中记录的时间值。
18.如权利要求14所述系统,其特征在于,所述第四判断模块包括第四判断子模块、第四提取子模块;
所述第四判断子模块用于将接收到的报文中目的IP和目的端口组与所述P2P流节点链表中记录的所有的目的IP和目的端口组进行匹配,如果存在相同的,则由所述第四提取子模块记录信息,并等待接收下一条报文;如果不存在相同的,则由所述第四提取子模块记录信息,进入所述第五判断模块进行进一步判断;
所述第四提取子模块用于记录所述报文的源IP和源端口组,以及系统当前时间。
19.如权利要求14所述系统,其特征在于,所述第五判断模块用于比较所述P2P流节点中记录的源IP和源端口组的个数与第二阈值的大小,如果所述P2P流节点中记录的源IP和源端口组的个数小于第二阈值,则等待接收下一条报文;如果所述P2P流节点中记录的源IP和源端口组的个数大于或等于第二阈值,则所述报文的网络信息符合P2P流的网络特征,所述报文为P2P报文,将标志位设置为TRUE,判断结束,等待接收下一条报文;
其中所述第二阈值为4,所述P2P流的网络特征为一个目的IP和目的端口组对应多个源IP和源端口组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210352542.6A CN102932199B (zh) | 2012-09-19 | 2012-09-19 | 一种多核系统检测p2p流的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210352542.6A CN102932199B (zh) | 2012-09-19 | 2012-09-19 | 一种多核系统检测p2p流的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102932199A CN102932199A (zh) | 2013-02-13 |
CN102932199B true CN102932199B (zh) | 2018-07-27 |
Family
ID=47646906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210352542.6A Active CN102932199B (zh) | 2012-09-19 | 2012-09-19 | 一种多核系统检测p2p流的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102932199B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375147B (zh) * | 2016-08-31 | 2019-08-16 | 成都科来软件有限公司 | 一种长期存储数据包的方法 |
CN110138662B (zh) * | 2019-05-08 | 2021-09-14 | 东软集团股份有限公司 | 多核系统中的会话表项处理方法、装置及多核系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854366A (zh) * | 2010-06-10 | 2010-10-06 | 中兴通讯股份有限公司 | 一种对等网络流量识别的方法及装置 |
CN102055627A (zh) * | 2011-01-04 | 2011-05-11 | 深信服网络科技(深圳)有限公司 | 识别p2p应用连接的方法和装置 |
CN102404396A (zh) * | 2011-11-14 | 2012-04-04 | 北京星网锐捷网络技术有限公司 | P2p流量识别方法、装置、设备和系统 |
CN102480503A (zh) * | 2010-11-23 | 2012-05-30 | 杭州华三通信技术有限公司 | P2p流量识别方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452835B2 (en) * | 2009-12-23 | 2013-05-28 | Citrix Systems, Inc. | Systems and methods for object rate limiting in multi-core system |
-
2012
- 2012-09-19 CN CN201210352542.6A patent/CN102932199B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101854366A (zh) * | 2010-06-10 | 2010-10-06 | 中兴通讯股份有限公司 | 一种对等网络流量识别的方法及装置 |
CN102480503A (zh) * | 2010-11-23 | 2012-05-30 | 杭州华三通信技术有限公司 | P2p流量识别方法和装置 |
CN102055627A (zh) * | 2011-01-04 | 2011-05-11 | 深信服网络科技(深圳)有限公司 | 识别p2p应用连接的方法和装置 |
CN102404396A (zh) * | 2011-11-14 | 2012-04-04 | 北京星网锐捷网络技术有限公司 | P2p流量识别方法、装置、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102932199A (zh) | 2013-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yin et al. | LCARS: A spatial item recommender system | |
CN104717124B (zh) | 一种好友推荐方法、装置及服务器 | |
CN104917739B (zh) | 虚假账号的识别方法及装置 | |
CN105653689B (zh) | 一种用户传播影响力的确定方法和装置 | |
CN107861967A (zh) | 一种智能匹配好友的方法、装置和系统 | |
CN110837608B (zh) | 一种基于多源数据的舆情话题传播路径分析系统和方法 | |
CN109614419B (zh) | 一种面向命名数据网络的知识服务路由挖掘方法 | |
Ramesh et al. | FPGA implementation of 3D NOC using anti-hebbian for multicast routing algorithm | |
CN110300122A (zh) | 一种物联网电子信息处理系统及方法 | |
CN103856462A (zh) | 一种会话的管理方法及系统 | |
CN102932199B (zh) | 一种多核系统检测p2p流的方法和系统 | |
Hossain et al. | Mining accurate message formats for service APIs | |
CN105915442B (zh) | 一种重用已有群的eim会话管理方法及系统 | |
CN106909624B (zh) | 一种海量数据实时排序优化方法 | |
CN104125146B (zh) | 一种业务处理方法及装置 | |
CN104657383B (zh) | 一种基于关联特性的重复视频检测方法与系统 | |
CN101267449A (zh) | 一种基于移动代理机制的树型结构p2p系统资源传输方法 | |
CN101442466B (zh) | 一种叠加网络及实现方法 | |
CN103345535B (zh) | 一种微博用户挖掘方法及装置 | |
CN103051476B (zh) | 基于拓扑分析的网络社区发现方法 | |
CN110113765A (zh) | 一种基于元胞自动机模型的信息源定位算法 | |
CN108540471A (zh) | 移动应用网络流量聚类方法、计算机可读存储介质和终端 | |
CN105681155A (zh) | 即时通讯中的用户信息处理方法及装置 | |
CN104615650B (zh) | 一种内容获取方法及装置 | |
CN102694725B (zh) | 基于带宽来双向搜索路径的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |