网络数据包线速捕获方法

文档序号:6543504阅读:213来源:国知局
网络数据包线速捕获方法
【专利摘要】本发明公开了网络数据包线速捕获方法,具体包括以下步骤:步骤一、在Tilera众核平台下配置Mpipe规则;步骤二、创建n个收包线程,为各个线程绑定一个用于处理数据包的CPU核,n个收包线程并行运行;步骤三、在每个收包线程中,调用Mpipe接口接收网络数据包,当CPU核接收到数据包,把数据包转变为PCAP文件格式,根据数据包的序列号获取数据包保存在PCAP文件内存的首地址,根据首地址存取数据包;步骤四、在每个收包线程中,当CPU核接收到数据包,修改数据包的描述符,然后调用Mpipe接口转发数据包;步骤五、在每个收包线程中,判断是否完成处理(完成处理指不进行后续数据包的处理),均完成后,结束处理,否则,返回步骤三。本发明大大提高了数据包线速捕获的效率。
【专利说明】网络数据包线速捕获方法
【技术领域】
[0001]本发明涉及网络数据包的线速捕获,具体是一种基于Tilera (多核处理器)众核平台网络数据包的线速捕获方法。
【背景技术】
[0002]传统的网络数据包线速捕获方法是通过CPU的中断进行数据包捕获的方法。由于CPU中断系统的开销是昂贵的,而且中断的频繁发生会导致系统处理能力的下降,所以当数据包到达的速率过快时,会导致数据包的丢失。同时在传统的网络数据包捕获技术中,由于网络数据包的传输需要多次拷贝,因此它会消耗大量的CPU周期和内存资源。

【发明内容】

[0003]本发明是为了最大程度的提高线速捕获的数据包数量以及线速捕获的效率,提出的一种网络数据包的线速捕获方法。本发明通过Tilera众核平台下Mpipe (多核可编程智能包引擎)接口实现网络数据包的接收以及数据包的捕获,同时创建多个线程,为各个线程绑定一个CPU核,并行接收数据包,并且进行数据包的捕获,大大提高了数据包的捕获效率。
[0004]网络数据包线速捕获方法,具体包括以下步骤:
[0005]步骤一、在Tilera众核平台下配置Mpipe规则;
[0006]步骤二、创建η个收包线程,为各个线程绑定一个用于处理数据包的CPU核,η个收包线程并行运行;
[0007]步骤三、在每个收包线程中,调用Mpipe接口接收网络数据包,当CPU核接收到数据包,把数据包转变为PCAP文件格式,根据数据包的序列号获取数据包保存在PCAP文件内存的首地址,根据首地址存取数据包;
[0008]步骤四、在每个收包线程中,当CPU核接收到数据包,修改数据包的描述符,然后调用Mpipe接口转发数据包;
[0009]步骤五、在每个收包线程中,判断是否完成处理(完成处理指不进行后续数据的处理),均完成后,结束处理,否则,返回步骤三;
[0010]本发明的优点与积极效果在于:
[0011]在Tilera众核平台下使用Mpipe接口接收数据包,并且为各个线程绑定CPU核,并行处理数据包,进行数据包的线速捕获,大大提高了数据包线速捕获的效率。
【专利附图】

【附图说明】
[0012]图1是本发明的网络数据包线速捕获方法的步骤流程图;
【具体实施方式】
[0013]下面将结合附图和实施例对本发明作进一步的详细说明。[0014]如图1所示,本发明的网络数据包线速捕获方法具体包括以下步骤:
[0015]步骤一、在Tilera众核处理器平台下配置Mpipe规则;
[0016]所述的Tilera众核处理器平台具有高性能低能耗的特点。Tilera芯片基于一种新的架构设计,它在一块芯片上使用RISC (Reduced Instruction Set Computing)内核,与传统的x86芯片完全不同,它的网格设计可以进行更快的数据交换,并且若干并行内核在一个多指针的矩阵内被组织起来以便接受和传递数据,同时Tilera众核处理器平台提供了核间通信非常高的数据带宽,降低了核间通信延时,并通过共享的Cache (高速缓冲存储器)消除了核间互联的性能瓶颈,并降低了芯片功耗,实现了极低的数据延迟和线速流量的小包处理。
[0017]步骤二、创建多个线程,为各个线程绑定一个用于处理数据包的CPU核,η个收包线程并行运行;
[0018]步骤三、在每个收包线程中,调用Mpipe接口接收网络数据包,当CPU核接收到数据包,把数据包转变为PCAP (Packet Capture)文件格式,根据数据包的序列号获取数据包保存在PCAP文件内存的首地址,根据首地址存取数据包,实现了多线程接收的数据包按照接收的先后顺序存储到PCAP文件的内存中,确保了数据包顺序的一致;
[0019]在Tilera众核平台下,多个线程并行接收网络数据包,对数据包并行处理,大大提高了数据包的捕获效率。网络数据包线速捕获方法设置两块内存进行数据包的存储管理,当一块内存存储了指定了的数据包以后,后续数据包存储到另一块内存中,同时从前一块内存中顺序提取数据包保存成PCAP文件。通过两块内存实现数据包的捕获与存储互不影响。
[0020]步骤四、在每个收包线程中,当CPU核接收到数据包,修改数据包的描述符,然后调用Mpipe接口转发数据包;
[0021]所述的Tilera众核平台下的Mpipe (多核可编程智能包引擎)系统提供线速的数据包分类,负载平衡和数据包缓冲管理处理等功能。
[0022]步骤五、在每个收包线程中,判断是否完成处理(完成处理指不进行后续数据包的处理),均完成后,结束处理,否则,返回步骤三;
[0023]本发明在Tilera众核平台下实现数据包的线速捕获,利用了 Tilera众核处理器平台的高性能低功耗的特点,而且Tilera众核处理器平台提供了核间通信非常高的数据带宽,降低了核间通信延时,并通过共享的Cache (高速缓冲存储器)消除了核间互联的性能瓶颈,并降低了芯片功耗。Tilera众核平台下的Mpipe (多核可编程智能包引擎)系统提供线速的数据包分类,负载平衡和数据包缓冲管理处理。数据包的线速捕获采用多线程并且为各个线程绑定CPU核,并行接收数据包和处理数据包,最大程度的提高了数据包的线速捕获效率,而且保证了捕获的数据包的顺序的一致性。
【权利要求】
1.网络数据包线速捕获方法,具体包括以下步骤: 步骤一、在Tilera众核平台下配置Mpipe规则; 步骤二、创建η个收包线程,为各个线程绑定一个用于处理数据包的CPU核,η个收包线程并行运行; 步骤三、在每个收包线程中,调用Mpipe接口接收网络数据包,当CPU核接收到数据包,把数据包转变为PCAP文件格式,根据数据包的序列号获取数据包保存在PCAP文件内存的首地址,根据首地址存取数据包; 步骤四、在每个收包线程中,当CPU核接收到数据包,修改数据包的描述符,然后调用Mpipe接口转发数据包; 步骤五、在每个收包线程中,判断是否完成处理(完成处理指不进行后续数据包的处理),均完成后,结束处理,否则,返回步骤三。
2.根据权利要求1所述的网络数据包线速捕获方法,其中网络数据包线速捕获方法设置两块内存进行数据包的存储管理,当一块内存存储了指定了的数据包以后,后续数据包存储到另一块内在中,同时从前一块内存中顺序提取数据包保存成PCAP文件,通过两块内存实现数据包的捕获与存储互不影响。
【文档编号】G06F9/38GK103916316SQ201410145478
【公开日】2014年7月9日 申请日期:2014年4月11日 优先权日:2014年4月11日
【发明者】张良, 黄成 , 汪立东, 李晓倩, 谢铭 申请人:国家计算机网络与信息安全管理中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1