一种使用Tilera多核加速卡基于流的数据包过滤系统及数据包过滤方法

文档序号:9754480阅读:810来源:国知局
一种使用Tilera多核加速卡基于流的数据包过滤系统及数据包过滤方法
【技术领域】
[0001] 本发明涉及的是万兆网络带宽的环境下,基于流的数据包过滤方法。更确切地说 是,利用通用主机与嵌在通用主机PCIe接口的Tilera多核加速卡组成的异构体系结构下的 流量采集、基于流的数据包过滤与数据包存储方法。
【背景技术】
[0002] 随着互联网的发展,万兆网络技术逐渐成为主流的带宽技术,为网络流量管理、流 量实时分析和流量存储带来了挑战。传统的网络流量采集与处理是采用普通网卡与数据采 集软件相结合的方法,如Libpcap( library packet capture,数据包捕获函数库)、BPF (Berkeley Packet Filter,伯克莱封包过滤器)等。但是,随着链路带宽的增加,骨干网链 路速度达到数lOGbps。普通网络加数据采集软件的流量采集处理方式会出现以下问题:
[0003] (1)1/0性能问题:传统的数据包采集与处理方法的I/O性能低,不足以满足高速链 路对I/O的需求。
[0004] (2)主存性能问题(主存容量:高速链路下每秒产生数10Gb的流量,在数据包采集 时,对主存空间需求大,若再考虑到流量应用层的处理,对主存容量的需求会成倍增加;访 存带宽:网络流量处理的访存次数与数据报文数据成正比,在高速网络下,频繁的内存访问 给主存带宽带来巨大压力;访存延迟:在通常情况下,一次访存需要上百个CPU时钟周期,高 速网络环境下,数据报文之间的时间间隔小于访存的时间,因此无法满足高速网络下的线 速率地数据包处理需求)。
[0005] (3)CPU性能问题:现有CPU的处理能力不能满足线速率的数据包处理要求。
[0006] 网络带宽的急剧增长,要求数据包必须快速处理。可编程的多核处理器是网络流 量处理新的发展趋势。一方面,多核处理器的多级缓存机制,加快了数据存取的操作;另一 方面,在多核处理器上采用多线程技术优化算法,提高系统性能。Tilera-g X36是一款板载 在PCIe(高速数据传输总线)接口的网络多核处理器(参见图1所示,参考TILERA UG505手册 在第2页,2013年8月KTilera-gUe和通用CPU组成协处理器架构。它将部分网络功能从通 用CPU中分离出来,将处理后的数据包通过PCIe线速率地传到x86服务器上,减轻通用CPU的 处理负担。Tilera提供了高速数据包处理的编程接口,支持Linux编程环境,具有很好的可 扩展性。此外,Tilera能耗低,是数据中心和网络处理设备的发展趋势。
[0007] 万兆网络环境下的实时流量分析,需要处理海量数据,增大了数据处理的难度。利 用Tilera多核加速卡的mPIPE(多核可编程智能数据包引擎)实现流量的采集;在Tilera多 核处理器上通过流表实现基于流的数据包过滤;将过滤后的数据包通过PCIe驱动传输到通 用主机上,实现数据包的存储。

【发明内容】

[0008] 本发明提出了使用Tilera多核加速卡的基于流的数据包过滤方法。Tilera多核加 速卡的mPIPE数据包处理引擎,完成高速网络环境下数据包的采集;在Tilera多核加速卡上 通过流表机制实现基于流的数据包过滤;利用高速PCIe将过滤后的流量传输到计算机中, 在计算机中存储数据包。本发明使用Tilera多核加速卡采集数据包,适合万兆网络环境中 的数据包采集;基于流的数据包过滤,提高了过滤的效率,减少了数据分析时的数据量; Ti 1 era多核加速卡使用PCI e传输数据包,实现数据的存储。
[0009] 本发明数据包过滤系统的特点是:基于Tilera多核加速卡与通用主机构成的混合 体系结构;其包括有数据包采集、基于流的数据包过虑和数据包存储;Tilera适合在万兆网 络环境下数据包的处理与分析;本发明数据包过滤方法是基于流的数据包过滤,减少了规 则匹配的次数,提高了过滤性能;Tilera多核加速卡通过PCIe接口将数据包无损地传输到 通用主机上,在通用主机上存储数据包。
[0010] 本发明设计的一种使用Tilera多核加速卡基于流的数据包过滤系统,所述Tilera 多核加速卡与计算机之间为PCIe总线连接,其特征在于:基于流的数据包过滤系统包括有 数据包采集模块(21 )、提取五元组内容模块(22 )、流表查找模块(23 )、PCI e数据传输模块 (24)、构建规库模块(31)、规则匹配模块(32)、更新流表模块(33)、PCIe数据包接收模块
[11] 和数据包存储模块(12);其中,数据包采集模块(21)、提取五元组内容模块(22)、流表 查找模块(23)、PCIe数据传输模块(24)、构建规库模块(31)、规则匹配模块(32)和更新流表 模块(33)内嵌在Tilera多核加速卡的Tile核内;其中,PCIe数据包接收模块(11)和数据包 存储模块(12)内嵌在计算机中;
[0011] PCIe数据包接收模块(11)用于接收经Ti lera多核加速卡传输的流集FL= {f lcrn, fl〇W2,··· ,fl〇WN};
[0012] 数据包存储模块(12)是从PCIe队列当中获得流集FL = {f 1 〇W1,f 1 〇W2,…,f 1 _}, 以PCAP文件格式存储在计算机的存储器中;
[0013]数据包采集模块(21) -方面从mPIPE单元中采集数据包PA= {packeti,packet2, packet3,packet4,packet5,packet6,···,packetM},另一方面将米集的PA = {packeti, packet〗,packet3,packet4,packets,packet6,…,packetM}放在缓冲区buffer中;
[0014]提取五元组内容模块(22)从缓冲区buffer中提取出的任意一数据包packetM的五 元组信息〇p= {srcPort,dstPort,tran,srcIP,dstIP},具有相同五元组的数据包组成流 fl〇WN,记为
[0015] 流表查找模块(23)第一方面先根据提取的五元组内容opz计算出五元组的哈希 值,然后根据五元组的哈希值查找流表FTABLE中的流表项;第二方面若流表FTABLE中存在 处理该数据包的流表项,同时该流表项的有效位为1,则直接按照流表项对数据包进行过 滤;若流表FTABLE中不存在处理该数据包的流表项,则再将该数据包输入到规则过滤匹配 模块(32)中;
[0016] PCIe数据包传输模块(24)将Tilera多核加速卡的流集FL={fl〇W1,fl〇W2,···, fl〇WN}采用先进先出方式,传输到计算机上;
[0017] 构建规则库模块(31)用于保存规则;所述规则R={rulei, rule2,.",rulea};
[0018] 规则匹配模块(32)中有由过滤规则组成的过滤器fi 1 ter;将该数据包的五元组内 容opz,逐个查找过滤器f ilter中的规则f ilter = {rulei,rule2,…,rulea},若过滤器 f i 11 e r中存在处理该数据包的规则r u 1 e a,则按照规则r u 1 e a进行过滤,同时生成新的流表 项,添加到流表FTABLE中;若过滤器filter中不存在处理该数据包的规则rulea,则不进行 过滤;
[0019] 流表更新模块(33)用于增加流表项和删除流表项;
[0020] 在对任意一数据包过滤时,一方面,当流表中不存在处理该数据包 的流表项时,仍需要查找规则集合R= {rulei,rule2,…,rulea};如果规则集合R ={rulei,rule2,…,rulea}中有处理该数据包/撤士々::'' 的规则rulea,则更新流表模块需 要将该规则ruleaR化成流表项的格式插入到流表中;另一方面,更新流表模块要监视流表 中流表项的生命周期;当该流表项的生命周期减为0时,将该流表项的有效位设为0,表示该 流表项无效,可以被新的流表项所替代。
[0021] 本发明使用Tilera多核加速卡基于流的数据包过滤的优点在于:
[0022] ①本发明是基于Tilera多核加速卡与通用主机的混合架构的数据包采集、在线数 据包过滤与存储方法。
[0023] ②Tilera多核加速卡将数据包的采集与过滤功能从计算机中分离出来,满足了高 速网络对数据的实时快速处理要求。
[0024] ③Tilera多核加速卡具有硬件可编程的特点,可移植性高;同时在线过滤功能将 与存储和数据分析无关的流量过滤掉,减少了海量数据存储的压力,通用主机只分析与之 有关的流量,提高了数据分析的效率。
【附图说明】
[0025] 图1是Ti lera多核加速卡的内部结构框图。
[0026] 图2是本发明使用Tilera多核加速卡基于流的数据包过滤系统的结构框图。
[0027] 图3是本发明使用Tilera多核加速卡基于流的数据包过滤方法的流程图。
【具体实施方式】
[0028] 下面将结合附图和实施例对本发明做进一步的详细说明。
[0029]在本发明中,第一个数据包记为packet,第二个数据包记为packet2,第三个数据 包记为packet3,第四个数据包记为packet4,第五个数据包记为packets,第六个数据包记为 packet6,第Μ个数据包记为packetM,为了方便说明,packetM也称为任意一个数据包,Μ表示 数据包的标识号。采用集合形式表达数据包集记为PA= {packeti,packet2,packet3, packet4,packets,packet6,…,packetM}〇
[0030] 在本发明中,数据包的五元组信息记为op= {srcPort,dstPort,tran,srcIP, dstIP};
[0031] srcPort表示源端口号。
[0032] dstPort表示目的端口号。
[0033] tran表示协议号。
[0034] srcIP表示源IP地址。
[0035] dstIP表示目的IP地址。
[0036] 在本发明中,网络流量network traffic中通常包含有一条流或者多条流。具有相 同五元组信息的数据包组成一条流f l〇WN,属于所述流f l〇WN的五元组信息记为〇PN。举例说 明,第三个数据包packet3和第四个数据包packet4具有的相同五元组信息记为ορι,则属于 第一条流fl〇Wl,采用集合形式表达戈
第五个数据包 packets和第六个数据包packets,具有的相同五元组信息记为op2,则属于第二条流floW2, 采用集合形式表达
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1