一种基于应用层检测的流量控制方法

文档序号:7869630阅读:271来源:国知局

专利名称::一种基于应用层检测的流量控制方法
技术领域
:本发明是一种对多种网络服务的流量识别与控制系统的方法。主要用来解决各种应用对网络带宽资源争用带来的网络阻塞情况,确保使用者基本的保证带宽,抑制非关键业务的流量,提升网络的服务质量,属于流量识别与控制领域。
背景技术
:近年来随着计算机网络技术以及多媒体技术的飞速发展,各种综合服务应用越来越广泛。传统的分组交换网络是面向FTP、E-mail等非实时的数据通信而设计的,而如今各种分布式多媒体应用不仅包括文本数据,还包括图像、语音和视频等多媒体信息。一些关键应用对网络带宽、延迟性和抖动性等有很高的要求,但是一些非关键应用业务,特别是近年来,随着eMule、BT、迅雷等各种P2P应用的流行,P2P网络已成为互联网的重要组成部分,消耗了大部分的网络带宽资源,严重影响了HTTP、E-mail等其他关键应用的服务质量。随着IP网络的广泛应用,网络上各种应用越来越多,不同的应用对带宽、延迟、抖动和丢包率等的要求是不同的,因此,当网络出现拥塞时,那些对服务质量要求高的应用势必会受到影响。本文的流量控制系统着眼解决现今网络的服务质量问题,对有限的网络带宽进行有效管理,使得对于及时性等重要网络应用能够保证带宽,优先得到服务,是一种有效的QoS解决方案。流量控制系统通过对各种网络应用流量的识别和分类后,根据实际应用需求,对不同等级的使用者及不同网络应用分配不同的保证带宽,并且对于带宽不足的应用能够按照优先权借用其他应用的多余带宽,实现资源的合理调度,保证了关键应用的服务质量。
发明内容技术问题本发明的主要目的是提供一种基于应用层检测的流量控制方法,本发明相比以往的方案,显著的提高了识别准确率,改善了扩展性差的问题,具有实时性强、部署成本低的优点,具有很好的市场前景。技术方案本系统分为协议识别和流量控制两个模块,首先协议识别模块使用iptables和L7_filter识别数据包的应用层协议,然后用iptables对识别出的不同协议数据包打上标记进行分类,最后流量控制模块用TC中的HTB队列规定对各类流量分配不同的带宽和优先级,从而实现流量控制,以保证网络中关键应用业务的服务质量。基于应用层检测的流量控制方法由基于数据包应用层分析识别方法和基于分层的令牌桶HTB(HierarchicalTokenBucket,)流量控制方法组成,该系统实现方法步骤为步骤I)·进行需求分析,对流量控制系统需要完成的功能进行分析,并生成需求分析文档;步骤2).按照步骤I的分析文档设计模块,对各模块功能进行详细分析,生成各个模块之间的逻辑关系和功能说明文档;步骤3).按照步骤2的文档,设计与实现协议识别模块,协议识别模块识别数据包的应用层协议,然后对识别出的不同协议数据包打上标记进行分类;按网络服务的重要性把流量分成6类第一类为安全外壳协议SSH(SecureShell,)、域名系统DNS(DomainNameSystem,)这些要求低延迟的数据包,这是一个最高优先权的类,这个类中的数据包拥有最低的延迟并最先取得空闲带宽;第二类为超文本传送协议HTTP(HypertextTransportProtocol,)协议的数据包,满足大量网页浏览的需求;第三类为简单邮件传输协议SMTP(SimpleMailTransferProtocol,)和邮局协议第3版POP3(PostOfficeProtocol3,)的邮件协议,满足电子邮件业务需求;第四类为文件传输协议FTP(FileTransferProtocol,)协议,满足文件传输需求;第五类为电驴、迅雷点对点P2P(Peer-to-Peer,)协议,满足P2P下载需求;其他的默认为第六类;步骤4).按照步骤2的文档,设计与实现流量控制模块,流量控制模块用TC中的HTB队列规定对各类流量分配不同的带宽和优先级,从而实现流量控制,以保证网络中关键应用业务的服务质量;根据应用需求,对不同流量类创建一个HTB树,对所有用户分成A,B,C三个组,对各用户组设置HTB队列的三个参数保证的最小带宽值rate、可获得的最大带宽值ceil以及带宽借用优先权prio,三个用户组的设计如下用户组A级别最高,分配最多带宽,优先权最高;用户组B级别中等,分配中等带宽,优先权中等;用户组C级别最低,分配最少带宽,优先权最低;然后对每个用户组的不同应用分配不同的带宽,设置不同的带宽借用优先级;分类后的数据包被送入不同的HTB类,通过设置上述六个分类的HTB属性就可以对网络流量实施控制。2.根据权利要求1所述的基于应用层检测的流量控制方法,其特征在于流量控制模块进行流量控制的方法为I).对不同的用户组进行带宽管理,在企业,根据各个部门的工作业务不同,对不同用户组分配不同的带宽,限制一些用户的带宽,确保每组用户无论何时上网都可获得最小保证带宽,防止网络产生拥塞,同时设定每组的最大可借用带宽和借用优先权,避免子网络带宽多余时造成资源浪费,以保证高优先权用户能借到较多的剩余带宽。2).对不同的应用协议进行带宽管理,按照业务的关键性,对各种不同的应用协议分配不同带宽,设置不同的优先级,抑制P2P的非关键业务流量,以保证关键业务的服务质量。有益效果本发明提出了一种控制网络流量的方法,在带宽资源有限的情况下,采用流量控制技术将带宽资源进行有效分配和管理,确保不同使用者不同应用流量的基本带宽,抑制非关键业务的流量,能大大提升网络的服务质量。相对以往的方法有一些显著的优点良好的系统扩展性由于系统模块之间采用的是独立模块化,功能并行层次化设计,系统模块之间的通信机制完全采用层次化的结构,因此可以方便地添加新的功能,也可以很容易地升级现有的功能,所以该系统拥有良好的可扩展性。高度的可靠性和稳定性通过对系统的单元测试、集成测试以及整个流量控制系统的系统测试,表明该系统运行状况良好,占用系统资源少,拥有良好的容错机制以及灾难恢复能力。图1是流量控制系统架构示意图。图2是流量识别模块原理图。图3是流量控制模块的HTB树示意图。图4是用户组A的HTB树示意图。图5是流量控制系统网络环境示意图。具体实施例方式流量控制模块主要针对以下两个方面进行流量控制管理1.对不同的用户组进行带宽管理。在企业,根据各个部门的工作业务不同,对不同用户组分配不同的带宽,限制一些用户的带宽,确保每组用户无论何时上网都可获得最小保证带宽,防止网络产生拥塞。同时设定每组的最大可借用带宽和借用优先权,避免子网络带宽多余时造成资源浪费,以保证高优先权用户能借到较多的剩余带宽。2.对不同的应用协议进行带宽管理。按照业务的关键性,对各种不同的应用协议分配不同带宽,设置不同的优先级,抑制P2P等非关键业务流量,以保证关键业务的服务质量。体系结构Linux防火墙Netfilter/iptables框架Netfilter是Linux2.4内核中实现的第三代防火墙框架。Netfilter防火墙的体系结构提供了一个框架,允许用正规接口将数据包处理代码以模块的形式添加到内核中。它由一系列基于协议栈的钩子组成,通过内核模块对协议钩子的注册挂载,从而能够实现对数据包的过滤、修改等功能。Netfilter在IPv4协议中提供了五个拦截点,分别是PREROUTING、INPUT、FORWARD,P0STR0UTING以及OUTPUT,数据包在网络层的五个关键点调用这些钩子函数。NF_IP_PRE_R0UTING和NF_IP_P0ST_R0UTING分别是数据包进入和离开系统的钩子函数;NF_IP_L0CAL_IN和NF_IP_L0CAL_0UT分别是数据包进入和离开用户空间本地进程的钩子函数;NF_IP_F0RWARD是转发数据包的钩子函数。数据包根据路由规则依次通过各个钩子函数,并检查各个点的过滤规则,并返回NF_DR0P或NF_ACCEPT,分别表示丢弃或接受该数据包。本发明在PRER0UTING点截获到达的数据包,提取数据包信息并加以分类。iptables是Netfilter防火墙的配置管理工具,工作在用户空间,可以很方便的操作数据包过滤表中的规则。Linux路由器HTB带宽管理队列本发明采用Linux提供的带宽管理功能进行流量控制。Linux的流量控制框架定义了排队规则、类别和过滤器这三个基本元素排队规则(QueueingDiscipline):每个网络设备都有一个排队规则,数据包在排队规则中排队发送出去。类别(Class):用类别区分数据包,可以在传输网络流量前根据过滤器将其分为不同的类别,并用不同的优先级处理,类别定义在排队规则中。过滤器(Filter):根据特定的参数(如IP地址、TCP/IP端口号等)将外发数据包分配到排队规则的不同类中。Linux系统提供了多种队列管理机制,本发明使用的是HTB队列。HTB(HierarchicalTokenBucket,分层的令牌桶)是一种分类队列,相对无类队列更加复杂,但能利用分类器实现数据包分类调度,保证关键流量的服务质量。另外HTB队列相比其他分类队列配置比较简单,并支持带宽分割和带宽借用功能。方法流程本发明系统分为协议识别和流量控制两个模块,首先协议识别模块使用iptables和L7-filter识别数据包的应用层协议,然后用iptables对识别出的不同协议数据包打上标记进行分类,最后流量控制模块用TC中的HTB队列规定对各类流量分配不同的带宽和优先级,从而实现流量控制。具体流程如下⑴流量识别与标记协议识别分类模块使用L7-filter对经过Netfilter防火墙的数据包进行基于连接跟踪的应用层协议检测,并用iptables打上标记对协议分类,按网络服务的重要性把流量分成6类第一类为SSH、Telnet、DNS和带有SYN、ACK标记的这些要求低延迟的数据包,这是一个最高优先权的类,这个类中的数据包拥有最低的延迟并最先取得空闲带宽;第二类为HTTP协议的数据包,满足大量网页浏览的需求;第三类为SMTP和POP3的邮件协议,满足电子邮件业务需求;第四类为FTP协议,满足文件传输需求;第五类为电驴、BT、迅雷等P2P协议,满足P2P下载需求;其他的默认为第六类。⑵流量控制根据应用需求,首先对不同流量类创建一个HTB树,对所有用户分成A,B,C三个组,对各用户组设置HTB队列的三个参数保证的最小带宽值rate、可获得的最大带宽值ceil以及带宽借用优先权prio。三个用户组的设计方案如下用户组A级别最高,分配最多带宽,优先权最高;用户组B级别较高,分配较多带宽,优先权较高;用户组C级别最低,分配最少带宽,优先权最低。然后对每个用户组的不同应用分配不同的带宽,设置不同的带宽借用优先级。分类后的数据包被送入不同的HTB类,通过设置上述六个分类的HTB属性就可以对网络流量实施控制。为方便描述,假定如下网络环境主机A、B通过局域网交换机、出口路由器访问Internet,流量控制系统的服务器架设在局域网交换机和出口路由器之间,服务器有两张网卡负责分别负责内部网络的上传和下载流量控制,网卡ethl负责管理内部网络的下载流量,网卡ethO负责管理内部网络的上传流量。在用户组A的内网客户端上运行Web浏览器、FTP和eMule客户端程序访问Internet。具体实施方式如下1、主机A分别打开Web浏览器、FTP和eMule客户端,并向Internet服务器发起登陆请求。2、主机A发出的三类流量数据包通过交换机后到达流量控制系统,系统通过L7-filter使用正则表达式来匹配数据包的应用层协议。3、对流量控制系统识别出的协议贴上标记分类并送入相应HTB队列。4、将HTB队列中的三类数据包按系统设置的速率和优先级发送到外网。5、外网到达主机A的流量处理方式类似,内网和外网的主机之间的双向流量均得到控制。权利要求1.一种基于应用层检测的流量控制方法,其特征在于该方法由基于数据包应用层分析识别方法和基于分层的令牌桶HTB流量控制方法组成,该系统实现方法步骤为步骤I).进行需求分析,对流量控制系统需要完成的功能进行分析,并生成需求分析文档;步骤2).按照步骤I的分析文档设计模块,对各模块功能进行详细分析,生成各个模块之间的逻辑关系和功能说明文档;步骤3).按照步骤2的文档,设计与实现协议识别模块,协议识别模块识别数据包的应用层协议,然后对识别出的不同协议数据包打上标记进行分类;按网络服务的重要性把流量分成6类第一类为安全外壳协议SSH、域名系统DNS这些要求低延迟的数据包,这是一个最高优先权的类,这个类中的数据包拥有最低的延迟并最先取得空闲带宽;第二类为超文本传送协议HTTP(HypertextTransportProtocol,)协议的数据包,满足大量网页浏览的需求;第三类为简单邮件传输协议SMTP和邮局协议第3版POP3的邮件协议,满足电子邮件业务需求;第四类为文件传输协议FTP协议,满足文件传输需求;第五类为电驴、迅雷点对点P2P协议,满足P2P下载需求;其他的默认为第六类;步骤4).按照步骤2的文档,设计与实现流量控制模块,流量控制模块用TC中的HTB队列规定对各类流量分配不同的带宽和优先级,从而实现流量控制,以保证网络中关键应用业务的服务质量;根据应用需求,对不同流量类创建一个HTB树,对所有用户分成A,B,C三个组,对各用户组设置HTB队列的三个参数保证的最小带宽值rate、可获得的最大带宽值ceil以及带宽借用优先权prio,三个用户组的设计如下用户组A级别最高,分配最多带宽,优先权最高;用户组B级别中等,分配中等带宽,优先权中等;用户组C级别最低,分配最少带宽,优先权最低;然后对每个用户组的不同应用分配不同的带宽,设置不同的带宽借用优先级;分类后的数据包被送入不同的HTB类,通过设置上述六个分类的HTB属性就可以对网络流量实施控制。2.根据权利要求1所述的基于应用层检测的流量控制方法,其特征在于流量控制模块进行流量控制的方法为1).对不同的用户组进行带宽管理,在企业,根据各个部门的工作业务不同,对不同用户组分配不同的带宽,限制一些用户的带宽,确保每组用户无论何时上网都可获得最小保证带宽,防止网络产生拥塞,同时设定每组的最大可借用带宽和借用优先权,避免子网络带宽多余时造成资源浪费,以保证高优先权用户能借到较多的剩余带宽;2).对不同的应用协议进行带宽管理,按照业务的关键性,对各种不同的应用协议分配不同带宽,设置不同的优先级,抑制P2P的非关键业务流量,以保证关键业务的服务质量。全文摘要本发明的一种基于应用层检测的流量控制方法是一种对多种网络服务的流量识别与控制系统的方法。1.对不同的用户组进行带宽管理。在企业,根据各个部门的工作业务不同,对不同用户组分配不同的带宽,限制一些用户的带宽,确保每组用户无论何时上网都可获得最小保证带宽,防止网络产生拥塞。同时设定每组的最大可借用带宽和借用优先权,避免子网络带宽多余时造成资源浪费,以保证高优先权用户能借到较多的剩余带宽。2.对不同的应用协议进行带宽管理。按照业务的关键性,对各种不同的应用协议分配不同带宽,设置不同的优先级,抑制P2P等非关键业务流量,以保证关键业务的服务质量。文档编号H04L12/861GK103036803SQ20121056110公开日2013年4月10日申请日期2012年12月21日优先权日2012年12月21日发明者王汝传,蒋华,韩志杰,孙力娟,徐鹤,李致远,邵星申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1