一种用于获取网络中数据包的方法与设备的制作方法

文档序号:7999724阅读:104来源:国知局
一种用于获取网络中数据包的方法与设备的制作方法
【专利摘要】本发明的目的是提供一种用于获取网络中数据包的方法与设备。与现有技术相比,本发明利用多核设备中的多处理核来并行执行高速网络中的数据包抓取,实现通过快速路径无损的获取网络数据包,以克服现有软件实现或基于ASIC实现的技术不足,解决了当前普通的网络收发接口无法通过快速路径无损获取网络数据包的问题,同时具备将抓取的数据包分布存储的功能,通过引入全局序号,从而递增的对每个数据包分配序号,将分布存储的数据精确、无损整合存储到独立的目标存储器,从而在高速流量负载下,充分利用多核和多数据存储器以实现高性能、高可靠性的网络采集,同时便于进一步的数据处理。
【专利说明】—种用于获取网络中数据包的方法与设备

【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种用于获取网络中数据包的技术。

【背景技术】
[0002]当前,在高速网络流量环境中进行网络数据包采集主要存在如下三个问题:
[0003]首先,现有网络采集软件,如wireshark和tcpdump等无法支持高速网络流量。这是由于在高速网络流量下会产生数据丢包,而对于网络的进一步的分析(包括但不限于服务质量分析、语音质量分析、视频质量分析等)很大程度上都依赖于所采集的数据的准确性。所采集的数据丢包率将会影响网络分析器的准确性,从而使得在高速流量下的数据丢包问题成为制约网络分析器可靠性的首要问题。
[0004]而对于目前基于常用的抓包软件(如tcpdump和wireshark)来对网络进行嗅探和分析的方法来说,主要存在如下三个问题:由于过多的中断导致浪费了大量的CPU周期;由于内存拷贝带来的大量的系统调用浪费了大量的CPU周期;后端存储的性能也成为了网络数据包采集的瓶颈。
[0005]第二,现有技术中,存在利用基于定制硬件的解决方案以支持高速网络流量采集的方法。然而这种基于定制硬件的解决方案依然存在着各种问题,例如:定制硬件通常比通用硬件的成本更高;开发周期长;其所具有的对于应用的专用集成电路的依赖使得定制硬件难于维护,部署速度慢;以及可移植性差、可持续性差、无法支持云等。
[0006]第三,通常情况下,所采集的数据需要被存储在外部存储器中以用于进一步的研究,例如服务质量测试或协议分析等。而现有技术中,一些利用多核处理器对数据包处理以进行数据存储的性能很差,另一些则需要引入基于特定硬件的存储设备。这是由于在高速网络流量下,对多个带有相同时间戳的采集数据包进行数据合并时容易产生乱序的问题。


【发明内容】

[0007]本发明的目的是提供一种用于获取网络中数据包的方法与设备。
[0008]根据本发明的一个方面,提供了一种在多核设备中用于获取网络中数据包的方法,其中,该方法包括以下步骤:
[0009]a经由多核设备的网络接口卡获取网络中的一个或多个数据包;
[0010]b在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应;
[0011]c通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置;
[0012]d根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0013]根据本发明的另一方面,还提供了一种用于获取网络中数据包的多核设备,其中,该设备包括:
[0014]获取装置,用于经由多核设备的网络接口卡获取网络中的一个或多个数据包;
[0015]编序装置,用于在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应;
[0016]并行存储装置,用于通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置;
[0017]合并存储装置,用于根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0018]根据本发明的再一方面,还提供了一种用于负载测试的协议分析设备,其中,该设备包括如上述所述的多核设备。
[0019]根据本发明的又一方面,还提供了一种用于网元的语音质量测试设备,其中,该设备包括如上述所述的多核设备。
[0020]根据本发明的另一方面,还提供了一种视频质量测试设备,其中,该设备包括如上述所述的多核设备。
[0021]与现有技术相比,本发明通过在多核设备中,经由多核设备的网络接口卡无损获取网络中的一个或多个数据包,并在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置,根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置;从而利用多核设备中的多处理核来并行执行高速网络中的数据包抓取,实现通过快速路径无损的获取网络数据包,以克服现有软件实现或基于ASIC实现的技术不足,解决了当前普通的网络收发接口无法通过快速路径无损获取网络数据包的问题,同时具备将抓取的数据包分布存储的功能,通过引入全局序号,从而递增的对每个数据包分配序号,将分布存储的数据精确、无损整合存储到独立的目标存储器,从而在高速流量负载下,充分利用多核和多数据存储器以实现高性能、高可靠性的网络采集,同时便于进一步的数据处理。
[0022]而且,本发明还可以根据所述多核设备中处理核及其对应写线程的性能相关信息,在所述多核设备中确定优选处理核及其对应的优选写线程,通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置;从而获得足够的数据存储的写入速度与写入效率,解决网络采集的主要瓶颈。
[0023]而且,本发明还可以根据所述网络接口卡的网速信息,配置所述多核设备所对应的多个中间存储装置,以供存储所述中间数据包;从而根据网速信息进行中间存储装置的选择,以在保证没有丢包的情况下,节省成本。
[0024]而且,本发明还可以经由多核设备所对应的网络接口卡获取网络中的一个或多个候选数据包,根据预置的过滤策略,从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包;从而获取符合需求的特定数据包,以实现更为精准的网络采集,便于进一步的数据处理。
[0025]而且,本发明还可以在所述数据包中添加对应的全局序号信息以及时间戳信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应;从而结合时间戳信息,将分布存储的数据精确、无损整合存储到独立的目标存储器,以在高速流量负载下,充分利用多核和多数据存储器以实现高性能、高可靠性的网络采集,同时便于进一步的数据处理。
[0026]为了克服现有解决方案的限制,本方案基于通用硬件而设计。
[0027]基于通用硬件的解决方案具有许多优点,如下所示:
[0028]1.低成本
[0029]对于基于通用硬件的解决方案,商用现货(COTS)硬件价格更低。因此,投资总额则大大降低。此外,由于系统需求的情况随时间变化所导致的开发新版本软件所需的硬件成本几乎可以忽略不计。
[0030]2.上市、维护、部署的时间
[0031]如上所述,商用现货(COTS)硬件已经存在。由于这是基于软件的解决方案,所述开发周期则比硬件开发大大缩短。因此,这就很大程度上减少了上市时间。此外,与基于硬件的解决方案相比,升级更灵活。当新功能仅需软件版本升级时,无需对硬件做任何改动。
[0032]3.可移植性
[0033]由于这是基于软件的解决方案,因此可以轻易地在不同的通用处理器(GeneralPurpose Processor)中进行移植。
[0034]4.可持续性
[0035]由于建立在通用硬件上,客户不再需要绑定至一个特定的第三方供应商,任何符合通用硬件标准的硬件都可以被用于该方案。这有助于用户实现更好的风险管理。
[0036]5.云兼容
[0037]虚拟化的硬件是基于通用硬件的,因此这个方案可以被应用在虚拟机上,且被部署至云端。

【专利附图】

【附图说明】
[0038]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0039]图1示出根据本发明一个方面的一种用于获取网络中数据包的多核设备示意图;
[0040]图2示出根据本发明另一个方面的一种在多核设备中用于获取网络中数据包的方法流程图;
[0041]图3示出根据本发明的一个优选实施例的一种在高速网络下进行数据包采集的架构示意图;
[0042]图4示出根据本发明的一个优选实施例的一种快速路径模块架构示意图;
[0043]图5示出根据本发明的一个优选实施例的一种分布式存储模块示意图;
[0044]图6(a)示出根据本发明的一个优选实施例的一种目标存储装置中的数据包格式示意图;
[0045]图6(b)示出根据本发明的一个优选实施例的一种中间存储装置中的数据包格式示意图;
[0046]图7示出根据本发明的一个优选实施例的一种用于负载测试的协议分析设备的参考架构示意图;
[0047]图8示出根据本发明的一个优选实施例的一种用于网元的语音质量测试设备的参考架构示意图;
[0048]图9示出根据本发明的一个优选实施例的一种用于视频质量测试设备的参考架构示意图。
[0049]附图中相同或相似的附图标记代表相同或相似的部件。

【具体实施方式】
[0050]下面结合附图对本发明作进一步详细描述。
[0051]为了便于说明与理解,本文所釆用的相关术语列出如下:
[0052]SSD-Solid State Driver 固态硬盘
[0053]IRQ-1nterrupt Request 中断请求
[0054]NIC-Network Interface Card 网络接口卡 / 网卡
[0055]COTS-Commercial Off The Shelf 商用现货 / 商业成品组件
[0056]GPP-General Purpose Processor 通用处理器
[0057]IPSW-1ntermediate Package Storage Writer 中间数据包存储写入器
[0058]IPS-1ntermediate Package Storage 中间数据包存储
[0059]GSNA-Global Sequence Number Allocator 全局序号分配器
[0060]GSN-Global Sequence Number 全局序号
[0061]HSNTC-High Speed Network Traffic Capture 高速网络数据流量米集
[0062]BPF-Berkeley Packet Filter 伯克利数据包过滤器
[0063]ACL-Access Control List 访问控制列表
[0064]MGW-Media Gateway 媒体网关
[0065]BTS-Base Stat1n 基站
[0066]MOS-Mean Opt1n Score 平均意见得分
[0067]PESQ-Perceptual Evaluat1n of Speech Quality 语音质量感知评估
[0068]PEVQ-Perceptual Evaluat1n of Video Quality 视频质量感知评估
[0069]MME-Mobility Management Entity 移动性管理实体
[0070]SGW-Service Gateway 服务网关
[0071]PGW-PDN Gateway公共数据网网关
[0072]PDN-Public Data Network 公共数据网络
[0073]ASIC-Applicat1n-Specific Integrated Circuit 专用应用集成电路
[0074]NRE-Non-Recurring Engineering 非循环工程
[0075]NAS-Network Attached Storage 网络附加存储
[0076]SAN-Storage Area Network 存储局域网络
[0077]PMD-Polling Mode Driver 轮询模式驱动器
[0078]PCAP-Packet Capture Library 抓包库
[0079]图1示出根据本发明一个方面的一种用于获取网络中数据包的多核设备示意图;其中,所述多核设备包括获取装置11、编序装置12、并行存储装置13、合并存储装置14。具体地,获取装置11经由多核设备的网络接口卡获取网络中的一个或多个数据包;编序装置12在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应;并行存储装置13通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置;合并存储装置14根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0080]在此,所述多核设备包括但不限于一个或多个通用硬件,所述通用硬件具有多核处理器。优选地,该多核设备还包含多个内存映射文件系统、基于硬盘的多种类型的文件系统(如硬盘、USB硬盘、NAS、SAN、SSD等)的多个数据存储设备。其充分利用多核和多数据存储以获得高性能的、高可靠性的网络流量采集。本领域技术人员应能理解,其他的多核设备同样适用于本发明,也应包含在本发明保护范围以内,并在此以引用方式包含于此。
[0081]上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,进行数据包的获取、中间数据包的生成、中间数据包的写入、中间数据包的合并存储等,直至多核设备停止获取网络中的一个或多个数据包。
[0082]获取装置11经由多核设备的网络接口卡获取网络中的一个或多个数据包。
[0083]具体地,所述获取装置11通过与多核设备的用于收发数据包的物理接口(即网络接口卡)相交互,获取网络中的一个或多个数据包。在此,所述获取包括但不限于通过采集或捕获的方式,获取网络中的一个或多个数据包。
[0084]优选地,所述获取装置11可以经由多核设备所对应的网络接口卡获取网络中的一个或多个候选数据包;根据预置的过滤策略,从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包。
[0085]具体地,所述获取装置11通过与多核设备的用于收发数据包的物理接口(即网络接口卡)相交互,获取一个或多个原始的数据流量信息,所述原始数据流量信息即为所述候选数据包;然后,所述获取装置11根据预置的过滤策略,对所述候选数据包进行验证,例如根据预先配置的访问控制列表(ACL)从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包,不符合所述过滤策略的所述候选数据包将会被丢弃。其中,所述访问控制列表包括但不限于源或目的MAC地址、源或目的IP地址、源或目的端口号、承载协议类型等。
[0086]优选地,在所述获取装置11进行数据包获取之前,本发明还可以对所述多核设备进行配置,如通过配置管理界面来配置该多核设备的过滤策略(如BPF规则)、端口配置、内核分配等。
[0087]编序装置12在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
[0088]具体地,所述编序装置12根据所述数据包在所述网络接口卡中的获取顺序信息,在所述数据包中添加与所述获取顺序信息顺序一致的递增的全局序号信息,以获得对应的中间数据包。
[0089]优选地,所述编序装置12可以在所述数据包中添加对应的全局序号信息以及时间戳信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
[0090]具体地,所述编序装置12除了在所述数据包中添加与所述获取顺序信息顺序一致的递增的全局序号信息外,还可以在所述数据包中添加所述时间戳信息,其中,所述时间戳信息为所述数据包在所述网络接口卡中被捕获的时间信息,以获得对应的中间数据包。所述时间戳信息可独立地、或与所述全局序号信息一起决定将所述中间数据包整合存储至目标存储装置,还可以用于计算时延,抖动等相关传输性能因子。
[0091]并行存储装置13通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置。
[0092]具体地,所述多核设备中包括一个或多个处理核,为了将中间数据包存入独立的中间存储装置,基于例如处理核的CPU利用率、每个写线程的I/O等待性能指标或I/O等待百分比等中的一项或多项创建多个写线程,每个写线程都能够被绑定至一个处理核以获得足够的写入速度。并行存储装置13通过基于如负载均衡算法等,将所述中间数据包发送至不同写线程的队列中每个写线程,通过搜索自己的队列,将所采集的中间数据包写入至一个独立的中间存储装置,所述中间存储装置与所述写线程相对应。
[0093]在此,本领域技术人员应能理解,本发明也可以利用进程来实现在所述并行存储装置13中利用写线程所实现的功能。进一步地,其他优选实施例中,利用线程实现的操作同样可以利用进程来实现。
[0094]优选地,所述并行存储装置13可以根据所述多核设备中处理核及其对应写线程的性能相关信息,在所述多核设备中确定优选处理核及其对应的优选写线程;通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
[0095]具体地,其中,所述性能相关信息包括但不限于处理核的CPU利用率、写线程或输入输出设备的I/O等待性能指标或I/O等待百分比等。
[0096]所述并行存储装置13可以根据所述多核设备中处理核及其对应写线程的性能相关信息,例如选择具有最低CPU利用率的处理核作为优选处理核,从而将所述优选处理核所对应的写线程作为优选写线程;或者将具有最低I/o等待性能指标的写线程作为优选写线程等方式,确定优选处理核及其对应的优选写线程;并通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
[0097]例如,一个具有N个写线程的用于获取网络中数据包的多核设备,则Wl {CPU, I/Owai t}表示写线程I的CPU当前最高使用率以及I/O等待百分比二者的最大值,而WN{CPU,I/Owait}表示写线程N的CPU当前最高使用率以及I/O等待百分比的高点,以此类推。当并行存储装置13需要选择写线程时,则在所有的Wl {CPU, I/Owait},W2 {CPU, I/Owait},...,以及WN{CPU,I/Owait}的值中选择具有最低值的写线程。请注意上述仅仅是一个例子;其中的性能信息可以包括其他的指标,同时CPU以及I/O可以是一段时间的均值。
[0098]优选地,所述多核设备还包括配置装置(未示出),其中,所述配置装置用于根据所述网络接口卡的网速信息,配置所述多核设备所对应的多个中间存储装置,以供存储所述中间数据包。
[0099]具体地,所述配置装置通过根据所述网络接口卡所对应的网速信息(其中,所述网速信息对应需要检测的网络流量信息),根据所述多核设备所对应的多个中间存储装置所对应的种类、数量、中间存储装置所支持的采集性能或吞吐量等信息,对所述中间存储装置进行配置,以供存储所述中间数据包。其中,所述配置包括但不限于选择所述中间存储装置的种类与数量等,从而实现节省成本的目的。
[0100]例如,如果一个内存映射文件系统能够支持最高300Mbps的传输速度,SSD硬盘能够支持支持最高260Mbps的传输速度,USB3.0磁盘能够支持120Mbps的传输速度,若用户希望进行500Mbps的数据采集,则用户可以通过一个SSD以及一个内存映射文件系统完成;若用户希望进行100Mbps的数据采集,则用户可以通过选择一个SSD以及一个内存映射文件系统以及四个USB3.0磁盘完成。上述例子基于一个原理:网络设备的吞吐量要大于等于所需的采集速度。
[0101]为了计算采集系统所需的中间存储装置的数量和类型,可以对采集的吞吐量进行预分析,使得所安排的中间存储装置能够保证不会出现由于存储系统的最大带宽问题导致的丢包。一种方式是,检测网络接口卡的吞吐量。例如,考虑到仅有一个1G的NIC需要被镜像,只需保证多个中间储装置的整体写入速度大于等于该吞吐量,则存储系统就具有足够的写入吞吐量。
[0102]合并存储装置14根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0103]具体地,所述合并存储装置14根据所述中间数据包中所包含的全局序号信息,将所述中间数据包按照所述全局序号信息的顺序进行合并,从而将所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。其中,所述合并后的文件可以是比如Pcap文件等。从而各类分析工具可以根据所合并后的Pcap文件进行进一步的分析。
[0104]图2示出根据本发明另一个方面的一种在多核设备中用于获取网络中数据包的方法流程图。具体地,在步骤Si中,所述多核设备经由多核设备的网络接口卡获取网络中的一个或多个数据包;在步骤s2中,所述多核设备在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应;在步骤s3中,所述多核设备通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置;在步骤s4中,所述多核设备根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0105]上述各步骤之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各步骤分别实时地或者按照设定的或实时调整的工作模式要求,进行数据包的获取、中间数据包的生成、中间数据包的写入、中间数据包的合并存储等,直至多核设备停止获取网络中的一个或多个数据包。
[0106]在步骤Si中,所述多核设备经由多核设备的网络接口卡获取网络中的一个或多个数据包。
[0107]具体地,在步骤Si中,所述多核设备通过与多核设备的用于收发数据包的物理接口(即网络接口卡)相交互,获取网络中的一个或多个数据包。在此,所述获取包括但不限于通过采集或捕获的方式,获取网络中的一个或多个数据包。
[0108]优选地,在步骤Si中,所述多核设备可以经由多核设备所对应的网络接口卡获取网络中的一个或多个候选数据包;根据预置的过滤策略,从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包。
[0109]具体地,在步骤Si中,所述多核设备通过与多核设备的用于收发数据包的物理接口(即网络接口卡)相交互,获取一个或多个原始的数据流量信息,所述原始数据流量信息即为所述候选数据包;然后,在步骤Si中,所述多核设备根据预置的过滤策略,对所述候选数据包进行验证,例如根据预先配置的访问控制列表(ACL)从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包,不符合所述过滤策略的所述候选数据包将会被丢弃。其中,所述访问控制列表包括但不限于源或目的MAC地址、源或目的IP地址、源或目的端口号、承载协议类型等。
[0110]优选地,在步骤Si进行数据包获取之前,本发明还可以对所述多核设备进行配置,如通过配置管理界面来配置该多核设备的过滤策略(如BPF规则)、端口配置、内核分配坐寸ο
[0111]在步骤s2中,所述多核设备在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
[0112]具体地,在步骤S2中,所述多核设备根据所述数据包在所述网络接口卡中的获取顺序信息,在所述数据包中添加与所述获取顺序信息顺序一致的递增的全局序号信息,以获得对应的中间数据包。
[0113]优选地,在步骤s2中,所述多核设备可以在所述数据包中添加对应的全局序号信息以及时间戳信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
[0114]具体地,在步骤s2中,所述多核设备除了在所述数据包中添加与所述获取顺序信息顺序一致的递增的全局序号信息外,还可以在所述数据包中添加所述时间戳信息,其中,所述时间戳信息为所述数据包在所述网络接口卡中被捕获的时间信息,以获得对应的中间数据包。所述时间戳信息可独立地、或与所述全局序号信息一起决定将所述中间数据包整合存储至目标存储装置,还可以用于计算时延,抖动等相关传输性能因子。
[0115]在步骤S3中,所述多核设备通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置。
[0116]具体地,所述多核设备中包括一个或多个处理核,为了将中间数据包存入独立的中间存储装置,基于例如处理核的CPU利用率、每个写线程的I/O等待性能指标或I/O等待百分比等中的一项或多项创建多个写线程,每个写线程都能够被绑定至一个处理核以获得足够的写入速度。并行存储装置13通过基于如负载均衡算法等,将所述中间数据包发送至不同写线程的队列中每个写线程,通过搜索自己的队列,将所采集的中间数据包写入至一个独立的中间存储装置,所述中间存储装置与所述写线程相对应。
[0117]在此,本领域技术人员应能理解,本发明也可以利用进程来实现在所述并步骤S3中利用写线程所实现的功能。进一步地,其他优选实施例中,利用线程实现的操作同样可以利用进程来实现。
[0118]优选地,在步骤S3中,所述多核设备可以根据所述多核设备中处理核及其对应写线程的性能相关信息,在所述多核设备中确定优选处理核及其对应的优选写线程;通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
[0119]具体地,其中,所述性能相关信息包括但不限于处理核的CPU利用率、写线程或输入输出设备的I/O等待性能指标或I/O等待百分比等。
[0120]在步骤s3中,所述多核设备可以根据所述多核设备中处理核及其对应写线程的性能相关信息,例如选择具有最低CPU利用率的处理核作为优选处理核,从而将所述优选处理核所对应的写线程作为优选写线程;或者将具有最低I/o等待性能指标的写线程作为优选写线程等方式,确定优选处理核及其对应的优选写线程;并通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
[0121]例如,一个具有N个写线程的用于获取网络中数据包的多核设备,则Wl {CPU,I/O wait}表示写线程I的CPU当前最高使用率以及I/O等待百分比二者的最大值,而WN{CPU,I/O wait}表示写线程N的CPU当前最高使用率以及I/O等待百分比的高点,以此类推。当并行存储装置13需要选择写线程时,则在所有的Wl {CPU, I/O wait},W2 {CPU, I/Owai t},...,&&WN{CPU,I/O wait}的值中选择具有最低值的写线程。请注意上述仅仅是一个例子;其中的性能信息可以包括其他的指标,同时CPU以及I/O可以是一段时间的均值。
[0122]优选地,所述多核设备还包括步骤s5 (未示出),其中,在步骤s5中,所述多核设备用于根据所述网络接口卡的网速信息,配置所述多核设备所对应的多个中间存储装置,以供存储所述中间数据包。
[0123]具体地,在步骤s5中,所述多核设备通过根据所述网络接口卡所对应的网速信息(其中,所述网速信息对应需要检测的网络流量信息),根据所述多核设备所对应的多个中间存储装置所对应的种类、数量、中间存储装置所支持的采集性能或吞吐量等信息,对所述中间存储装置进行配置,以供存储所述中间数据包。其中,所述配置包括但不限于选择所述中间存储装置的种类与数量等,从而实现节省成本的目的。
[0124]例如,如果一个内存映射文件系统能够支持最高300Mbps的传输速度,SSD硬盘能够支持支持最高260Mbps的传输速度,USB3.0磁盘能够支持120Mbps的传输速度,若用户希望进行500Mbps的数据采集,则用户可以通过一个SSD以及一个内存映射文件系统完成;若用户希望进行100Mbps的数据采集,则用户可以通过选择一个SSD以及一个内存映射文件系统以及四个USB3.0磁盘完成。上述例子基于一个原理:网络设备的吞吐量要大于等于所需的采集速度。
[0125]为了计算采集系统所需的中间存储装置的数量和类型,可以对采集的吞吐量进行预分析,使得所安排的中间存储装置能够保证不会出现由于存储系统的最大带宽问题导致的丢包。一种方式是,检测网络接口卡的吞吐量。例如,考虑到仅有一个1G的NIC需要被镜像,只需保证多个中间储装置的整体写入速度大于等于该吞吐量,则存储系统就具有足够的写入吞吐量。
[0126]在步骤S4中,所述多核设备根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
[0127]具体地,在步骤s4中,所述多核设备根据所述中间数据包中所包含的全局序号信息,将所述中间数据包按照所述全局序号信息的顺序进行合并,从而将所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。其中,所述合并后的文件如Pcap文件等。从而各类分析工具可以根据所合并后的Pcap文件进行进一步的分析。
[0128]图3示出根据本发明的一个优选实施例的一种在高速网络下进行数据包采集的架构示意图;图4示出根据本发明的一个优选实施例的一种快速路径模块架构示意图;其中,所述架构通常建立在通用硬件的上层,一般包括三个模块:配置与管理模块、快速路径模块和分布式存储模块。
[0129]在初始化时,配置PMD驱动器以管理特定的多NIC,并且设置对应的接收队列(RX_Queue)既可以通过内核空间(Kernel Space)也可以通过用户空间(User Space)执行访问。在不同的处理器核心(CPU core)中启动多个线程从不同的接收队列轮询数据包。每个线程保持轮询RX_Queue,以检测是否接收到数据包。一旦存在数据包,则首先基于过滤策略进行验证,例如基于特定的数据源或目标MAC、IP、端口等。该策略也可以设置为空,从而将来自NIC的所有数据包视作有效。不符合策略的数据包将会被丢弃。然后每个合格的数据包则会被放置在多个无锁队列之中的一个。其中一个处理线程随后接受数据包,然后根据从网络接口获取的顺序,依次插入全局序号GSN。优选地,也可以附加当前的时间戳。随后,数据包根据CPU使用率和I/O使用率等性能信息被移至IPSW无锁队列,随后被保存在分布式存储中。
[0130]其中,所述配置和管理模块用于处理器核心分配,NIC端口参数配置,用于设置过滤和集中的相关规则等。
[0131]总体来看,与现有技术相比,本发明为了克服现有网络流量采集的缺点,在快速路径模块中引入了三个主要机制:
[0132]1.网卡驱动操作从中断模式转变为轮询模式,从而能够消除中断请求带来的开销,且多核的使用也能够提高接收性能与采集能力。
[0133]2.对网卡接收队列采用预分配内存,且能够从用户层和核心层访问预分配内存。通过采用这个方法,由内存拷贝和系统调用所产生的开销都能被消除。
[0134]3.采用多个异步无锁队列有效地将采集包移动至后续模块。这种方法消除了不同模块间的依赖关系,从而使得后续模块的性能对快速路径模块没有影响。
[0135]图5示出根据本发明的一个优选实施例的一种分布式存储模块示意图;图6(幻示出根据本发明的一个优选实施例的一种目标存储装置中的数据包格式示意图;图6(13)示出根据本发明的一个优选实施例的一种中间存储装置中的数据包格式示意图;
[0136]在图5中,多个IPSW线程分别与CPU核心绑定。下述步骤描述了所述分布式存储模块的工作过程,从而将所采集的数据包保存至IPS,且最终所有的IPS都基于与每个所采集的包相关联的全局序号合并至目标存储装置。
[0137]步骤1:数据包分发器从获取装置处接收一个所采集的数据包。
[0138]步骤2:数据包分发器要求GSNA提供一个全局序号。
[0139]步骤3:GSNA分配一个全局序号,并返回至所述数据包分发器。
[0140]步骤4:数据包分发器在数据包头处插入全局序号,然后基于上述的负载分发机制选择适当的IPSW。所述数据包分发器将变更后的数据包发送至IPSW。
[0141]步骤5:1PSW将变更后的数据包写入相关的IPS。所述变更后的数据包格式如图6(b)所示。
[0142]步骤6:—段时间之后,数据包集中器从每个IPS处接收变更后的数据包,基于GSN存储所述数据包。
[0143]步骤7:数据包集中器从每个中间包中移除GSN,然后将所述数据包存入目标存储装置,所述数据包格式如图6(a)所示。在目标存储装置中储存数据包的文件格式与现有的通过tcpdump和wireshark所获得的网络采集包文件格式一致,从而现有的离线分析工具能够进行进一步的分析。
[0144]图7示出根据本发明的一个优选实施例的一种用于负载测试的协议分析设备的参考架构示意图。
[0145]在负载测试环境下,需要面对高速的数据包吞吐量,例如,12000爱尔兰的话容大约相当于800Kpps的数据流量。利用传统的数据包采集方法,如wireshark无法保证能够接收所有进入的数据包,且无法保证在高速数据包速率下做到无损保存。而协议分析设备则基于本发明的方法解决该问题,参考图7所示:
[0146]首先,为网关路由器上的A接口和Ab i s接口建立镜像端口,且将镜像端口与HSNTC相连,在数据包采集器中的过滤器根据配置的访问控制列表(ACL, access control list)丢弃非预期的数据包。然后,带有全局序号、时间戳的数据包被分发至中间存储装置。然后,根据附加信息(例如,GSN、时间戳)和配置规则通过数据包集中器生成相应的PCAP文件。在这个实施例中,所述配置规则基于IP地址和UDP端口,因此所有的通过MGW/BTS发送/接收的数据包能够分别的存储在数据流文件中,该数据流文件能够被分析工具所使用。
[0147]图8示出根据本发明的一个优选实施例的一种用于网元的语音质量测试设备的参考架构示意图。
[0148]在此,所述MOS值通过基于ITU标准PESQ算法对输入的语音文件计算生成。由于传统MOS设备仅能利用手机所生成的语音信号,因此其仅能计算端到端MOS值,而由于在连接中包含太多的网元,因此很难发现哪个网元导致了语音质量的下降。MOS设备通常用在高负载的环境中,以查看是否发生了服务质量的下降。然而,如wireshark的传统包采集方法无法保证所有进入的数据包都能被采集,且无法保证在高速包速率下做到无损存储。这个实施例提出了一种利用HSNTC对特定的网元进行MOS值计算的方法,所述HSNTC能够无损的采集所有的语音数据包,这使得我们能够测量通过该网元的语音损耗。参考图8所示:
[0149]在这个实施例中,具有四个测试点(A、B、C、D),以A和B为例。首先,根据ACL,数据包过滤器仅允许信令包和语音包通过。然后,数据包被加入全局序号和时间戳,被分别写入中间存储装置。接下来,根据附加信息和配置规则,通过数据包合并器生成对应的PCAP文件。在这个实施例中,四个数据流文件与每个数据流所包含的相关联的信令包和语音包被分别存储。话音解析器能够根据从信令包和语音包中解析出的X和Y的电话号码生成相应的语音。
[0150]在这个例子中,可以根据不同的呼叫方向和接口生成四个语音文件。最终,这些语音文件将会被MOS计算器计算以生成对应的MOS值。若MOS A = MOS B,即表示通过BSC没有发生质量下降。在其他的测试点也可以得到类似的MOS值,以查看在所述其他的网元处是否发生损耗。通过这种方式,对于端到端呼叫中产生低MOS值时,很容易定位问题节点。
[0151]图9示出根据本发明的一个优选实施例的一种用于视频质量测试设备的参考架构示意图。
[0152]在此,以4G网络为例,在4G网络中,由于带宽的显著提高以及通过视频电话中多人通信的增加,视频电话的质量测量就变得非常重要。然而,如wireshark的传统的数据包采集无法保证所有进入的数据包都能被采集,且在高数据包速率下无法做到无损保存。参考图9所示:
[0153]与图8所对应的实施例相似,在图中也包括四个测试节点(A、B、C、D)。以A和B为例。首先,根据ACL,采集过滤器仅允许信令包和用户层数据包通过。然后,根据配置规则,进入的数据流被分成若干流,在这个实施例中,利用IP地址作为划分数据流的规则。可知,四个数据流文件被分别存储,且每个数据流包含相关的信令包和用户层数据包。视频解析器能够根据X和Y的电话号码、信令包和用户层数据包解析出相对应的视频。在这个示例中,可以根据不同的呼叫方向和接口生成四个视频文件。最终,这些视频文件将会被MOS计算器根据ITU和标准PEVQ计算以生成对应的MOS值。若MOS A = MOS B,即表示通过SGWl没有发生质量下降。在其他的测试点也可以得到类似的MOS值,以查看在所述其他的网元处是否发生损耗。通过这种方式,对于端到端呼叫中产生低MOS值时,很容易定位问题节点。
[0154]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括” 一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
【权利要求】
1.一种在多核设备中用于获取网络中数据包的方法,其中,该方法包括以下步骤: a经由多核设备的网络接口卡获取网络中的一个或多个数据包; b在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应; c通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置; d根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
2.根据权利要求1所述的方法,其中,所述步骤c包括: -根据所述多核设备中处理核及其对应写线程的性能相关信息,在所述多核设备中确定优选处理核及其对应的优选写线程; -通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
3.根据权利要求1或2所述的方法,其中,该方法还包括: -根据所述网络接口卡的网速信息,配置所述多核设备所对应的多个中间存储装置,以供存储所述中间数据包。
4.根据权利要求1至3中任一项所述的方法,其中,所述步骤a包括: -经由多核设备所对应的网络接口卡获取网络中的一个或多个候选数据包; -根据预置的过滤策略,从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包。
5.根据权利要求1至4中任一项所述的方法,其中,所述步骤b包括: -在所述数据包中添加对应的全局序号信息以及时间戳信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
6.一种用于获取网络中数据包的多核设备,其中,该设备包括: 获取装置,用于经由多核设备的网络接口卡获取网络中的一个或多个数据包; 编序装置,用于在所述数据包中添加对应的全局序号信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应; 并行存储装置,用于通过与所述多核设备中一处理核相对应的写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述写线程相对应的一中间存储装置; 合并存储装置,用于根据所述全局序号信息,对所述多个中间存储装置中的所述中间数据包整合存储至目标存储装置。
7.根据权利要求6所述的多核设备,其中,所述并行存储装置用于: -根据所述多核设备中处理核及其对应写线程的性能相关信息,在所述多核设备中确定优选处理核及其对应的优选写线程; -通过所述优选写线程,将所述中间数据包写入所述多核设备所对应的多个中间存储装置中的与所述优选写线程相对应的一中间存储装置。
8.根据权利要求6或7所述的多核设备,其中,该设备还包括: 配置装置,用于根据所述网络接口卡的网速信息,配置所述多核设备所对应的多个中间存储装置,以供存储所述中间数据包。
9.根据权利要求6至8中任一项所述的多核设备,其中,所述获取装置用于: -经由多核设备所对应的网络接口卡获取网络中的一个或多个候选数据包; -根据预置的过滤策略,从所述一个或多个候选数据包中筛选满足所述过滤策略的一个或多个数据包。
10.根据权利要求6至9中任一项所述的多核设备,其中,所述编序装置用于: -在所述数据包中添加对应的全局序号信息以及时间戳信息,以获得对应的中间数据包,其中,所述全局序号信息与所述数据包在所述网络接口卡中的获取顺序信息相对应。
11.一种用于负载测试的协议分析设备,其中,该设备包括权利要求6至10中任一项所述的多核设备。
12.一种用于网元的语音质量测试设备,其中,该设备包括权利要求6至10中任一项所述的多核设备。
13.—种视频质量测试设备,其中,该设备包括权利要求6至10中任一项所述的多核设备。
【文档编号】H04L12/70GK104184659SQ201310193782
【公开日】2014年12月3日 申请日期:2013年5月22日 优先权日:2013年5月22日
【发明者】叶磊, 龚永杰, 沈志宏, 唐善敬 申请人:上海贝尔股份有限公司, 阿尔卡特朗讯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1