第五章 数据流方法
文章目录
1. 数据流的相关背景
物联网高速发展、新技术不断涌现,网络流量测量已经被广泛应用于流量计费、流量工程、网络应用识别等领域。网络链路速率的不断提高和网络数据流的剧增,使得在高速骨干网链路上进行网络流量测量迎来了技术挑战。对于高速链路上的流量测量,通常要在几纳秒内完成。
- 数据的增长速度超过了我们存储或索引数据的能力
- 目前,OC-768(40Gbps)链路已经在核心网络中部署,OC-3072(160Gbps)技术逐渐成熟
- 100Gbps以太网链路已经开始在大型数据中心以及园区网中采用,400Gbps以太网技术相关的硬件已经得到量产
- 在100Gbps以太网链路中,若要处理平均大小为32字节的分组,则平均处理时间约为2.38ns
- 截至2021年6月,我国千兆带宽以上固定带宽接入用户数量为1423万,互联网普及率71.6%,网络数据量空前繁荣。
1.1 分析海量数据的必要性
- 科学研究方面:环境监测、物种监测、其他事件的监测
- 系统管理方面:故障定位、中断、海量日志
- 客户研究方面:用户行为测量、推荐系统、社区发现
- 犯罪侦查方面:电信诈骗、服务滥用等行为
- 网络测量方面:活跃流计数、大流识别、流长分布、流矩阵估计、熵估计。
1.2 网络数据的特点及其分析
网络是海量数据的来源:每个路由器每小时的元数据是几千、几万、几十万兆字节。特点:高速链路网络中,网络流具有实时性、连续性、无界性等特点。数据流分析的基本问题:存储或传输的信息太多。高速链路网络的测量需求:只能对网络流执行一次计算、算法需要使用的空间必须足够小、处理和更新必须简单迅速、对于查询必须要保证一定的准确度。抽样方法在网络测量中的缺点:抽样技术可以通过抽样产生的代表子集来推断网络流量统计信息,但存在一定的误差
例1:IP网络监管
- 运营商路由节点按照7 * 24 IP packet/flow 级数据流作为网络元素需要被测量
- 大规模、链路速度极高的数据流流速
- 东南大学四牌楼CERNET节点,四个C类网段每小时产生约30GB流量数据
- 有些测量任务需要发送至数据中心进行离线分析
例2:Packet-Level数据流举例
- 对于2Gbps的链路,设平均数据包大小为50字节,则有:每秒数据包数=500万;每包时间=0.2微秒;如果只捕获每个数据包的头信息:src/dest IP 、时间、字节数等,则至少10字节。每秒的空间是50Mb,每天每个链路中产生的数据大小是4.5Tb,通常ISP有数百条链路需要处理。
例3:ISP监控网络节点为例
- 网管人员对数据分析的需求:在网络上可以看到多少不同的地址?哪些目的地或组使用最多带宽?查找具有类似使用模式的主机?哪些固定的源地址IP产生了异于常量的流量? 解决这些问题会产生额外的复杂性,但这些复杂性来自有限的空间和时间。
1.3 存在的3类方法
- 利用高性能的专用硬件如:TCAM、ASIC等,但高性能的硬件设备极其昂贵。
- 利用抽样技术对部分有代表性的网络流量数据进行采集处理,从而降低系统的负荷,但抽样测量方法难免存在较大的误差。
- 利用数据流技术和方法对所有网络流量数据进行处理,有效地减少存储资源的需求,并保持一定的准确性。
1.3.1 数据流定义
数据流的概念最早出现在通信领域,指通信传输过程中,所对应信息的“数字编码信号序列”。引入计算机领域后,数据流(Data Stream) 代表以非常高的速度到来的输入数据,它强调通信和计算基础设施较难传输、计算和存储。网络数据流(Network Data Stream) 为一个时间区间内顺序到达的报文序列,一个“源”有报文头的一个或多个源字段构成,如:源IP地址、源端口、源IP地址和源端口的二元组;类似的,一个目的由一个或多个目的字段构成。
在IP网中,“流”的概念可定义为对一个呼叫或连接的认为逻辑对应,是流量的一部分,也是某时间段内通过一个观测点且具有共同性质的报文集合。数据流方法最早出现于数据库研究领域。
- 基于频率分布:我们将考虑定义频率分布的流。例如:从源A到源B的数据包频率,这个简单的设置捕获了数据流中很多核心算法问题:可以看到多少不同的(非零)值?频率分布的熵是多少?最高频率是什么(在哪里)?更一般的,可以考虑定义多维分布、圆形、几何数据等的流。
- 通常地,将数据流建模为简单元组序列:其中,复杂性源于流的巨大长度。对于只有到达的数据流:例如:(x,3), (y,2), (x,2)分别代表流x中到达3个元组,流y中到达2个元组,接着流x中又到达2个元组。可以以此表示网络中数据包的到达。
- 对于有到达和离开的数据流:例如:(x,3), (y,x), (x,-2)代表最后的状态(x,1), (y,2)。
1.3.2 高速网络流量测量技术评估标准
- 实时性:反映网络流量测量技术在线快速处理网络数据流的能力
- 准确性:反映网络流量测量技术估计网络数据流的能力
- 可扩展性:反映网络流量测量技术处理大量网络数据流的能力
- 存储复杂性:反映网络流量测量技术准确估计网络数据流所需存储空间
- 计算复杂性:反映网络流量测量技术准确估计网络数据流所需的处理开销,如:内存访问、CPU。
1.3.3 数据流算法使用的测量任务场景
- 熵估计:对高速链路中的网络流量的熵进行估计,有利于监测异常等。其中OD流的熵可以很好的反映出网络运营商(ISP)网络内流量动力学。
- 流量与流矩阵估计:流量矩阵的准确估计有利于网络管理,如:容量规划与预测、网络故障与可靠性诊断以及路由配置。
- 连接度估计:高速链路上准确、实时地监测超连接度主机,是网络测量与网络安全中一个重要任务。
- 大流识别:在互联网中,少量的大流占据了网络流量的 大部分,它们对于网络计费、流量工程等应用非常重要。
- 活跃流的计数:对于给定源IP的活跃流数量进行计数可以有效识别网络攻击等问题。
1.3.4 常见数据流数据结构
- Bitmap:一个简单的数据结构,将某个域映射到位数组,用于统计重复元素的个数。
- Bloom filter:是对Bitmap的拓展,是一个简单、高效、基于概率的随机数据结构,其基础数据结构是一个比特向量。
- Sketch:是一类被广泛应用在网络测量领域的次线性空间、概率型的数据结构
- Counter Braids:通过随即图编织分层的计数器,解决了流测量的计数器空间和流-计数器关联问题。通过共享流间计数器,显著减少了存储空间。
- BRICK:基于统计复用把计数器分成计数器数目相等的组,每组的计数器随机地从计数器数组中选择。
- Hybrid SRAM/DRAM Counter:显著减少SRAM开销,有效维护准确的主动式计数器。
1.3.5 小结
- 高速网络流量测量方法大致经历了一个**“报文抽样-流抽样-数据流”**的发展历程。但抽样固有的误差性,无法满足高速链路的测量需求。
- 高速网络流量测量方法的主要目标是:在保证一定准确性的前提下降低所需要的处理和存储开销。
- 数据流方法具有单遍扫描、有限的计算和内存资源等特点,是高速网络流量测量的重要方法。
- Bitmap、Bloom filter、Sketch算法最早由数据库研究领域引申入网络测量领域的数据结构,在很大程度上促进了网络数据流方法的发展。
- 针对高速链路下测量任务需要高准确性、高内存效率、实时性、每包处理速度快等性能需求。