APP下载

基于流的校园局域网流量统计方案设计

2013-04-25李隐峰

电子科技 2013年9期
关键词:数据流局域网IP地址

张 鑫,李隐峰

(西安电子科技大学 电子工程学院,陕西 西安710071)

随着校园网的日益扩展,其应用形式在不断丰富,传统的流量统计方法已不能满足校园网对高速网络的实际需求。目前高校校园网多采用基于流的采样技术来进行流量统计与计费,官方统计数据更新滞后,无法实时反应用户的流量使用情况。本文在研究校园网网络环境的基础上,提出了基于流的校园局域网流量统计方案。该方案基于软件实现,开发成本低、执行效率高,为高校实验室局域网流量控制提供了可靠的数据保障。

1 流的概念

1.1 流的定义

流可以被定义为一系列通过网络中某一观察点的具有相同属性的数据包,这些属性包括端点、方向、时间粒度、协议层次。端点指的是流的起点和终点,方向可以是单向或双向的,时间粒度考虑的是数据包的发送起始时间和终止时间,协议层次包括OSI模型的7层协议。最典型的用五元组(源IP、目的IP、源端口、目的端口、协议类型)来定义流[1]。

1.2 流的开始和结束

在对流进行测量时,数据流的开始和结束时刻,是流量分析统计的关键指标。

当一个数据包到达时,它不能划分到某一个正在统计的流中,就表明一个新的流的开始。在NetFlow中,给出了流结束的定义,以下特征都可以作为流结束的标志:(1)传输协议指出连接结束(TCP FIN或TCP RST)。(2)无流量超过15 s(对于UDP协议,15 s是路由器默认的定时时间)。(3)流缓存每30 min过期以实现活动流的周期报告(30 min是路由器默认的定时时间)。(4)缓存满了,判断缓存汇聚的结束时间有2个定时时间:主缓存定时时间和汇聚缓存定时时间。

1.3 流的采样方法

流的采样方法分为周期采样和随机采样。周期采样具有实现简单、算法的系统开销小等优点,但它无法适应网络流量监测和管理的需求。随机采样是根据预先定义的随机过程来确定采样的起始点和采样间隔,实现样本选取的独立性,保证采样测量的无偏性。采样有两种情况:一种是“n out of N”型采样,从N个数据包中随机选取n个数据包作为样本;另一种是概率采样,依据预先定义的概率来判决是否提取某个数据包。

周期采样和随机采样可以是针对数据报个数的,也可以是针对时间的。对不同位置或不同用途的设备可以使用不同的采样率,例如:可以对接近主机或最终用户的端口进行频繁采样,而对接近核心的设备和端口采样频率稍低。采样虽不能保证完全准确,但可以控制在一定的误差范围内。设数据包总数为N,采样所得到的样本数据包为n,其中属于特定类别的数据包数量为c,在所有数据包中,属于特定类别的数据包比率为P=c/n。设所有N个数据包中属于特定分类的数据包数量为Nc,则

只有当Nc的值和实际指定的包数相比,误差在5%之内,才被接受。当误差在5%之内时,Nc的置信区间为[Nc-1.96σ,Nc+1.96σ],估计误差率百分比是

由式(2)可以得出:采样精度只与采样到的特定类别的数据包数量c有关,c越大,精度越高。当c≥1 537时,误差率可以控制在5%以内,为增加采样数,可以增加采样周期或在系统可承受的情况下提高采样速率。

2 基于Libpcap的流量采集原理

2.1 Libpcap介绍

Libpcap是UNIX/Linux平台下的网络数据包捕获的函数库。它的实质是一个系统独立的API函数接口,用于用户层次的数据包截获工作。它为底层网络监控编程提供了一个易于移植的应用框架,这些底层网络应用包括网络数据收集、安全监控和网络调试等。洛仓兹伯克利国家实验室(Lawrence Berkeley National Laboratory)编写这些API函数库的最初目的就是为了统一不同系统上所提供的用于数据包截获的不同类型接口,并使得类似的高层应用程序的编写和移植工作变得简单有效,不再需要对每一个应用都使用不同的、依赖于具体系统的数据包截获模块。同时,该API函数接口在保持基本稳定的基础上,还在不断地进行更新和升级[2]。

2.2 Libpcap工作原理

网络数据包捕获技术是实现网络数据分析的基础,能否快速、完整地捕获到所需的数据包,是准确分析网络数据的前提条件。

在网卡缺省的工作模式下,只能收到广播的数据包和目的地址是自己的数据包。在进行数据包捕获时,首先要将网卡没置为混杂模式,这样就能捕获到流经该网卡的所有数据包。值得注意的是,捕获到的仅是数据包的一份拷贝,不影响数据包的正常传输。正常情况下,当网络数据包到达网卡时,它常规的传输路径是依次经过网卡、设备驱动器、数据链路层、IP层、传输层、最后到达用户层。Libpcap包捕获机制是在数据链路层增加一个旁路处理,其工作流程如图1所示。

图1 Libpcap工作流程图

当一个数据包到达网络接口时,Libpcap首先利用已经创建的Socket从链路层驱动程序获得该数据包的拷贝,再通过Tap函数将数据包发送给BPF过滤器。BPF过滤器收到数据包后,根据用户已经定义好的过滤规则对数据包进行逐一的匹配,符合过滤规则的数据包就是被需要的,将其放入内核缓冲器,并传递给用户层缓冲器,等待应用程序对其进行处理。不符合过滤规则的数据包就被丢弃。如果没有设定过滤规则,所有的数据包都将被放入内核缓冲器[3]。

2.3 基于Libpcap流量采集程序设计

流量采集程序对流经局域网共享网口的数据包进行完全捕获,并对捕获的每个数据包进行分析。分析方法可以根据实际的功能需求进行灵活设计。例如,对指定IP段以外的数据包进行统计,就需要首先分析以太网帧头部。如果帧类型为IP数据报,则记录数据包的源MAC地址、目的MAC地址。接着分析IP数据报,记录数据包的源IP地址、目的IP地址和数据包总长度。然后对数据包的源IP地址和目的IP地址进行判断,过滤掉指定IP段以内的数据包。最后扫描流记录,判断数据包是否属于一个已存在的流,如果属于,累加到用户数据记录当中。如果不属于,则创建属于该用户的数据流。流结束后把捕捉到的该指定网段以外的流量累加到用户的流量记录上[4]。具体步骤如下:(1)选择要监听的接口。在Linux中,这可能是eth0,而在BSD系统中则可能是xl1等。也可以用一个字符串来定义这个设备,或者采用pcap提供的接口名来工作。(2)初始化pcap,获取数据包捕获描述字。(3)进入主体,执行循环。(4)捕获数据包并对其进行分析,过滤指定IP段以内的数据包。(5)根据数据包的源MAC地址和目的MAC地址,判断数据包是否属于一个已存在的流,如果属于,累加到用户数据记录当中。如果不属于,则创建属于该用户的数据流。(6)判断流是否结束,结束后将流量累加到用户流量记录。

3 基于流的校园局域网流量统计方案

3.1 基于校园网的数据流采样方法

由于高校采用的流控设备和统计方案各不相同,到目前为止,国内高校对上网流量的统计和计费还没有统一的标准。但各高校对流量的计费大都遵循一个统一的规则:只对校园网以外的网段进行计费,校园网段以内则不进行计费。而判断数据流所在网段的唯一依据就是数据流的源IP地址和目的IP地址。

假设校园网的流量统计方案都将数据包的源IP和目的IP,作为数据流的主要汇聚依据,那么校园网流量统计就有了统一的参考模型:以{源IP、目的IP}汇聚为核心的基于数据流采样的统计方案。

数据流采样的关键在于对流的开始和结束的定义。NetFlow作为当前流量分析方面的事实标准,已经集成到大多数厂商的路由器和交换机内。同时给出了流结束的定义,本文在此基础上提出了基于流的校园局域网流量统计方案。

3.2 基于流的校园局域网流量统计方案

方案对流的判定、流的开始和结束、流的统计做了如下定义:

(1)对源IP或目的IP不在校内网段,具有相同源MAC地址或目的MAC地址的数据包,定义为一个用户流。

(2)每当流量采集程序捕获到一个数据包时,都会扫描流字段,判断数据包是否属于一个存在的流。如果不属于,缓存中生成一个新的流,初始化字节和包数,记录下数据包被记录的时间,作为一个新的流的开始时间。如果属于,则判断新捕获的数据包时间距对应用户流的开始时间是否超过了15 s,如果超过15 s,且对应用户流统计到的数据包个数<500,则视为流超时。如果在不足15 s的情况下,对应用户流统计到的数据包个数>1 500,则视为缓存已满。如果新捕获的数据包时间距对应用户流的开始时间超过了30 min,则视为流过期。

(3)不同的采样方法,随着采样数据包数量的增加,采样精度越高。流量采集程序对流经局域网网关的数据包进行了完全捕获,当数据流较快时,捕获到的数据包数目很大,采样误差小,对用户流采用完全统计;当数据流较慢时,捕获的数据包数目较少,采样误差较大,对用户流采用估值统计;当用户数据流比较平稳时,对用户流采用完全统计。

在校园网环境下,经过不断的测试,总结出一套算法,可以使统计的流量值逼近基于数据流的采样统计值。具体算法参见文献[5]。

4 结束语

目前,基于流的采样技术都需要专用硬件来实现数据流的转发,消耗了大量的CPU资源和存储资源。本文提出的校园局域网流量统计方案,通过软件实现了对数据流的统计,降低了开发成本。通过对采样周期以及采样数据包数目的调整,实现了流量统计值与官方统计值的逼近。可以实时、稳定地反映局域网用户的流量使用情况,为局域网流量控制管理提供了理论和数据依据。

[1] 刘芳.网络流量监测与控制[M].北京:北京邮电大学出版社,2009.

[2] 唐正军,刘代志.网络嗅探器Sniffer软件源代码浅析3:采用Libpcap库的通用设计[J].计算机工程,2002,28(2):63-65.

[3] 闫丽丽,涂天禄,周兴涛.Libpcap数据包捕获机制剖析与研究[J].网络安全技术与应用,2006(4):38-40.

[4] 刘瑾.校园网用户上网行为分析系统的研究与实现[D].保定:华北电力大学,2007.

[5] 侯捷.C++标准程序库[M].武汉:华中科技大学出版社,2002.

猜你喜欢

数据流局域网IP地址
汽车维修数据流基础(上)
轨道交通车-地通信无线局域网技术应用
汽车维修数据流基础(下)
铁路远动系统几种组网方式IP地址的申请和设置
基于VPN的机房局域网远程控制系统
IP地址切换器(IPCFG)
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考