基于Linux的校园网中P2P流量识别及控制

2014-03-21 04:07马娟
无锡商业职业技术学院学报 2014年3期
关键词:关键字哈希校园网

马娟

(山西财贸职业技术学院,太原 030031)

基于Linux的校园网中P2P流量识别及控制

马娟

(山西财贸职业技术学院,太原 030031)

在互联网领域中,分布性的P2P(peer to peer)模式成为了当今网络不可忽视的重要组成部分。所以,准确地识别P2P流量对于保证QoS(Quality of Service)、流量控制、校园网计费管理有着比较重大的意义。通过比较过去的几种技术,文章研究了P2P流量的识别技术,提出了新的识别方法,并在Linux的防火墙Net filter框架下实现有效地控制校园网中P2P流量。

校园网;流量识别;Linux

P2P网络是一种在IP网络之上的应用层分布式网络,每个对等节点平等地、自由地分享它们拥有的资源。这种技术给人们带来了很大的便利,但同时也占用了大量的带宽,尤其在一些院校中,P2P流量占据了总流量的80%以上,致使校园网络非常拥挤,影响很多同学的正常使用。因此,对P2P流量的识别和控制成为校园网中必须解决的问题。

一、P2P流量的识别算法分析

早些时候,P2P流量识别主要采用的是端口识别技术,可实现对网络中P2P流量的识别和控制。这种识别方式简单易行,并且识别出来的流量容易控制,但端口识别方式已经不再适合于现在的网络流量识别。紧接着是基于节点行为或流量特征的识别技术,深度包检测(DPI)识别技术。[1]国外的研究还发现了流量分布具有重尾特征,还有部分研究提出了基于网络流量特征的识别。[2-3]同时,很多研究提出了利用数据挖掘技术,把多特征作为流量识别,也有的研究采用了基于机器学习的检测方法。

目前,比较成熟的技术是基于应用层明文特征的识别方法,该方法广泛地应用于各个网络设备上的识别系统中,能够准确识别P2P流量。[4]该方法主导因素就是特征字符串匹配算法,本文借鉴了以往算法的原理,并提出一种新的算法,以提高字符串匹配的效率,缩短匹配时间。

二、QoS服务模型与Linux防火墙模型

以往的IP传输服务称为“尽力而为”型服务,这种类型的服务传输流不需要QoS(Quality of Service)控制,对延时和可靠性等性能不提供任何保证,哪个数据报先到就为哪个数据报服务,但这种服务已经不能满足当今各种网络应用的需求。目前主要有综合服务模型、区分服务模型和多协议标记交换模型,这些QoS技术用来保证网络各种业务流的性能得到满足的需要。

Linux操作系统属于自由软件,获取途径简单,并具有成本低、系统稳定等优点,广泛用于防火墙、路由器、网络地址转换NAT以及VPN等各种网络应用。[5]Linux防火墙技术发展了三代,第三代是基于Linux 2.4内核的iptables。iptables通过防火墙规则列表来提供防火墙规则控制,这些列表称为防火墙链。iptables共有三条链:INPUT(输入链)、OUTPUT(输出链)和FORWARD(转发链),当输入、输出和转发的包匹配这些规则时被执行。Netfilter是Linux内核中火墙框架,允许用接口将数据包处理代码以模块的形式添加到内核中。它由一系列基于协议栈的钩子函数组成,通过内核模块对协议钩子的注册挂载,从而能够实现对数据包的检测、修改、过滤等功能。

三、算法的选择

以往算法都是将字符串进行逐一的比较,然后判断是否匹配,因而效率上比较低,新算法则是应用到hash函数,然后把关键字都转换为数值,再进行比较。同时,将单位时间内匹配率较高的字符串设置单独的高匹配表,优先查找。这样可以在多个P2P端进行大量访问时进一步降低匹配时间。同时,依据P2P数据流量大,节点间数的数据交换非常频繁,具有不分段性和持续性,访问往往是突发的,持续时间比较短,都集中于访问某几个关键字,所以在新算法中进行了统计,设置了高重复率表,并进行优先匹配。

算法实现如下:(1)将结果和首先和高重复率表表中进行对比,如果匹配,则进行第5步;(2)对关键字进行哈希运算;(3)将关键字进行哈希运算,存入表中,并设立计数表,初始化对应的高重复率表;(4)否则,进行哈希运算,在哈希表中进行查找,如果查找到,则进行第5步,否则进行到第6步;(5)进行则进行流量控制,并将该关键字进行计数,写入哈希表;(6)返回第1步。

通过算法的实现是作为linux的内核模块,通过调用NF_HOOK函数执行Netfilter钩子函数,而流量的控制需要借助于iptables与Traffic Control。

四、流量控制框架实现

Linux内核网络协议栈对流量控制的支持模块称为Traffic Control,简称TC。数据包在IP协议层首先由输入多路分配器模块检查,如果该数据包目的地是本地,则将该数据包送往上层协议进行处理,否则将该数据包送forward转发模块处理;Forward模块也可能接受由本地产生经传输层传入的数据包,负责查询路由表并决定该数据包的下一个目的地,最后送入output输出队列模块进行相关分类,并决定是否丢弃、延迟或立即发生该数据包,该模块是Linux流量控制处理的重点范围。

在算法具体实现时,首先是利用内核模块编程进行识别。同时,在iptables中,有个L7-filter,它是iptables的增强型插件,使用正则表达式进行匹配应用层协议并进行分类,可以对常规的P2P网络流量进行识别及标识。然后进一步利用iptables,标识出P2P流量,再利用Traffic Control中的HTB队列对各种流量分配以不同的带宽和优先级。从而实现流量的控制,进行带宽管理,确保网络中最基本的和关键的应用业务的服务质量。

在实验中,改进后的算法能有效的进行流量的控制,使得在P2P流量高峰时期,能保证正常的HTTP、E-MAIL、SSH等关键业务的服务质量,抑制P2P等非关键业务的流量,具有较高的实用价值。

[1]黄立辉.P2P流量识别系统的设计与研究[D].硕士学位论文,武汉:华中科技大学图书馆,2011.

[2]王平,方滨兴,云晓春.基于自动特征提取的大规模网络蠕虫检测[J].通信学报,2006(7):87-93.

[3]张文,沈磊.基于特征进程的P2P流量识别[J].网络与通信,2008(15):120-122.

[4]王圣凯.基于明文特征的P2P协议识别系统的研究与设计[D].苏州大学,2011.

[5]郭忠义.分布式并行防火墙系统研究与设计[M].成都:电

子科技大学出版社,2004.

(编辑:章萍 徐永生)

P2P Flow Identification and Control of Linux-based Campus Network

MA Juan
(Shanxi Finance and Trade Vocational and Technical College,Taiyuan 030031,China)

In the Internet field,the distributive P2P(peer to peer)mode has become an important part of today's network.Statistics show that P2P flow accounts for 60%to 85%of the total campus network flow.Sharp increase of P2P flow has led to irrational distribution of network bandwidth and huge loss.Therefore,it is of great significance to accurately identify P2P flow so as to guarantee quality of service,flow control and campus network accounting management.This paper studies the technology of P2P flow identification and puts forward a new identification method based on comparing several techniques in the past,which can be used to achieve effective control of the campus network P2P flow in the Linux firewall Net filter framework.

campus network;flow identification;Linux

TP 393.18

A

1671-4806(2014)03-0111-02

2014-02-14

马娟(1978—),女,山西永济人,讲师,硕士,研究方向为计算机网络。

猜你喜欢
关键字哈希校园网
履职尽责求实效 真抓实干勇作为——十个关键字,盘点江苏统战的2021
哈希值处理 功能全面更易用
数字化校园网建设及运行的几点思考
文件哈希值处理一条龙
成功避开“关键字”
试论最大匹配算法在校园网信息提取中的应用
基于VRRP和MSTP协议实现校园网高可靠性
NAT技术在校园网中的应用
基于OpenCV与均值哈希算法的人脸相似识别系统
巧用哈希数值传递文件