CN110087261A - 一种基于OpenWrt的企业级无线局域网流量控制方法 - Google Patents
一种基于OpenWrt的企业级无线局域网流量控制方法 Download PDFInfo
- Publication number
- CN110087261A CN110087261A CN201910348945.5A CN201910348945A CN110087261A CN 110087261 A CN110087261 A CN 110087261A CN 201910348945 A CN201910348945 A CN 201910348945A CN 110087261 A CN110087261 A CN 110087261A
- Authority
- CN
- China
- Prior art keywords
- flow
- access point
- wireless access
- module
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Abstract
本发明公开了一种基于OpenWrt的企业级无线局域网流量控制方法,包括以下步骤:S1、读取本地配置文件的默认工作参数,初始化无线接入点的默认队列规则、流量标签模块、流量阻断模块;S2、按照数据包获取、流管理、流量识别、流量标记、流量控制的流程对数据包进行转发,并周期性上传给云端中央控制器;S3、云端中央控制器在特定时间向不同的无线接入点发送特定的控制指令;S4、指令动态调整本地无线接入点的参数,返回步骤S2。本发明采用基于OpenWrt的系统平台,更加适合多接入点的部署和管理,更加适合拓展流量控制相关功能,具有更强的通用性和兼容性,无需购置经过定制的无线接入点;云端控制器便于管理多个本地无线网络,使用方便。
Description
技术领域
本发明属于通信网络流量控制领域,具体涉及一种基于OpenWrt的企业级无线局域网流量控制方法。
背景技术
Wi-Fi是一种基于IEEE 802.11标准的无线局域网技术,它可以为用户提供无线网络接入服务,其最大的特点是灵活、便捷。随着无线网络的普及以及物联网IoT技术引领的无线终端设备数量快速增加,无线局域网受到越来越多用户的青睐。不仅是个人用户,越来越多的企业、学校、政府等都使用路由器、无线接入点等设备组建无线局域网,一方面提升自身工作、沟通的效率,另一方面也吸引、协助客户。
针对企业级的场景,无线局域网常常需要部署多个无线接入点,以实现网络信号的大范围覆盖。在现有的基于802.11标准的企业级无线局域网解决方案中,存在两个方面的问题。一方面,从流量控制功能上来讲,传统接入点往往工作在尽力而为的服务模型下,对数据包按照“先到先服务”的原则进行发送,不具备流量识别、流量区分等功能,这将导致重要流量的延迟、抖动等指标很难得到保障,特别是发生网络拥塞或者队列溢出的时候;同时,也无法遏制部分用户不合理的用网行为,导致网络资源分配不均。另一方面,从系统架构上来讲,传统路由器系统相对封闭,无法通过编程进行扩展以做到集中式的管理;基于CAPWAP协议的企业级无线局域网方案虽然做到对多接入点的集中式管理,但是对设备的要求较高,需要购置专用的设备,不同厂商设备间的兼容性较差;同时,现有架构没有提供一个统一的管理平台,不便于网络管理员同时管理多个本地无线局域网。
因此,设计一套通用、灵活的企业级无线局域网流量控制系统就显得尤为重要,以期对局域网内不同的流量进行控制并做到网络资源的公平分配;同时为管理员提供统一的控制平台,可以对多个本地无线局域网进行监控。
发明内容
本发明的目的是为了解决现有企业级无线局域网中流量控制系统平台通用性较差、流量控制不精确、网络带宽分配不公平的问题。为了解决上述问题,本发明提出了一种基于智能路由器操作系统OpenWrt的本地无线局域网、云端中央控制器协同的企业级无线局域网流量控制方法。
本发明的目的是通过以下技术方案来实现的:一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,包括以下步骤:
S1、读取本地配置文件的默认工作参数,并初始化无线接入点的默认队列规则、流量标签模块、流量阻断模块;
S2、按照数据包获取、流管理、流量识别、流量标记、流量控制的流程对数据包进行转发;转发数据包的同时,无线接入点收集流量信息周期性上传给云端中央控制器;
S3、根据网络管理员的指令,云端中央控制器在特定时间向不同的无线接入点发送特定的控制指令;
S4、根据云端中央控制器的指令动态调整本地无线接入点的参数,返回步骤S2。
进一步地,所述步骤S1包括以下子步骤:
S11、读取本地配置文件中的无线接入点整型标号;
S12、对无线接入点中由云端控制的三个模块进行初始化:流量控制模块中的队列规则默认使用无类队列规则中的令牌桶Token Bucket Filter,下行带宽100KBps;流量标记模块初始化为空,默认不对流量进行区分;流量阻断模块初始化为空,不对特定设备流量进行完全阻断。
进一步地,所述步骤S2中,对数据包进行转发包括以下子步骤:
S21、无线接入点截获内核数据包并提取到用户空间,根据流量阻断模块判断是否丢弃该数据包,如果是则直接丢弃并继续截获下一个内核数据包进行判断,否则执行步骤S22;
S22、根据数据包的五元组(源IP地址、目的IP地址、源端口、目的端口和传输层协议)计算哈希值,根据哈希值在流管理模块查找数据流信息;如果数据流信息不存在,则新建该数据流信息,并执行步骤S23;如果信息存在,但未完成识别,执行步骤S23;如果信息存在且已完成识别,则执行步骤S24;
S23、使用深度报文检测技术对数据包的应用层载荷进行匹配和识别,将识别结果存储于流管理模块;然后执行步骤S24;
S24、读取流量标记模块,将识别结果映射成标记并添加到数据包的nfmark属性中,同时将数据包送回内核;
S25、流量控制模块的过滤器将不同标记的数据包导入不同的发送队列,实现流量区分和流量控制;然后返回步骤S21。
步骤S2中,无线接入点收集流量信息周期性上传给云端中央控制器包括以下子步骤:
S26、初始化信息交互模块,建立与云端中央控制器的连接,并准备接收控制指令;
S27、收集无线接入点自身的工作参数信息、无线接入点当前关联的无线终端的基本信息、无线终端的流量信息,用json按照特定的格式组织信息;
S28、以信息类型、无线接入点ID作为标识,将收集到的三类信息上传消息到云端中央控制器。
进一步地,所述步骤S3包括以下子步骤:
S31、网络管理员登陆云端中央控制器提供的网页,选取一个被管理的本地无线局域网,查看当前网络使用情况;
S32、云端后台控制器根据管理员指定的策略给不同的无线接入点发送控制信息,包括:
(1)针对无线接入点流量阻断模块的指令,包括执行和撤销目标用户设备的流量阻断;
(2)针对无线接入点流量标记模块的指令,调整数据流类型和标号的关联关系;
(3)手动针对无线接入点的流量控制模块的控制信息,中央控制器通过网页获取目标接入点编号和流量控制指令,下发一次到目标无线接入点;
(4)自动针对无线接入点的流量控制模块的控制信息,中央控制器周期性地读取接收到的三种上传信息,结合三种自动带宽分配策略之一,周期性地下发流量控制指令。
进一步地,所述三种自动带宽分配策略包括:基于UE数量的公平策略、基于数据流数量和传输速率的公平策略、基于数据流类型的效用公平策略。
进一步地,所述步骤S4包括以下子步骤:
S41、等待云端中央控制器指令;
S42、接收云端中央控制器指令,判断指令类型:如果是针对流量阻断模块的指令,则执行步骤S43;如果是针对流量标记模块的指令,则执行步骤S44;如果是针对流量控制模块的指令,则执行步骤S45;
S43、获取目标用户的IP地址和操作类型,如果操作类型是执行阻断,则将目标IP添加到阻断列表,若目标IP已经存在则不进行操作;如果是撤销阻断,则将目标IP从阻断列表删除,若目标IP不存在则不进行操作;然后返回步骤S41;
S44、获取流量识别类型和标号关系,如果识别类型已存在于流量标记模块,则将对应标号进行替换,否则添加新的关联关系到流量标记模块;然后返回步骤S41;
S45、获取针对流量控制模块的类、队列规则、过滤器的控制指令,按照指令进行流量控制策略的替换;然后返回步骤S41。
本发明的有益效果是:本发明基于智能路由器操作系统OpenWrt设计了一种针对企业级场景的无线局域网流量控制系统。相较于传统的无线接入点,基于OpenWrt的系统平台更加适合多接入点的部署和管理;同时,基于OpenWrt的系统平台可以灵活地拓展流量控制相关功能,包括数据包的获取、数据流的管理、流量的识别、流量加标、流量控制和信息的上传与接收;相较于使用AC和瘦AP的CAPWAP架构,基于OpenWrt的系统平台具有更强的通用性和兼容性,无需购置经过定制的无线接入点。另一方面,云端中央控制器给网络管理员提供统一的管理平台,便于管理员同时管理多个本地无线网络;同时,云端中央控制器使用本发明设计的自动带宽分配策略,可以根据网络资源使用情况对所有的无线接入点进行精确、动态、公平的流量控制策略。
附图说明
图1为本发明的系统模型架构示意图;
图2为本发明的系统工作流程时序图;
图3为本发明的本地无线接入点功能模块关系示意图;
图4为本发明的基于RabbitMQ的通信模块架构设计图;
图5为本发明的本地无线接入点上传的消息内容和格式设计图;
图6为本发明的云端中央控制器功能模块关系示意图;
图7为本发明的云端基于数据流个数和速率的公平带宽分配策略流程图;
图8为本发明的云端基于数据流类型的效用公平带宽分配策略流程图;
图9为本发明效用公平带宽分配策略中使用的各类流量分段效用折线图;
图10为本发明效用公平带宽分配策略中使用的队列规则示意图。
具体实施方式
为便于本领域技术人员理解本发明的技术内容,以下结合附图和具体的实施例对本发明作进一步地详细说明。应当理解,此处所描述的具体实例仅用以解释本发明,并不用于限定本发明。
为了便于本领域的技术人员理解本发明,首先对本发明中涉及技术术语做出如下定义:
UE(User Equipment):用户设备,这里特指使用无线网络的用户终端。
AP(Access Point):接入点,这里特指运行OpenWrt系统的无线接入点。
AC(Access Controller):接入控制器,在自动流控时分析数据库流量信息。
SSID(Service Set Identifier):服务集标识,用于UE识别不同的无线局域网。
TBF(Token Bucket Filter):令牌桶过滤器,用于流量整型的无类队列规则。
HTB(Hierarchical Token Bucket):分层令牌桶,用于流量整型的分类队列规则。
SFQ(Stochastic Fairness Queueing):随机公平队列,用于均匀发送各个流的数据包。
API(Application Programming Interface):应用程序编程接口,即程序对外提供的函数调用接口。
下面结合附图进一步说明本发明的技术方案。
如图1所示为本发明的系统模型架构示意图,系统由本地无线局域网、云端中央控制器两部分组成。图1示例中本地无线局域网包含十个AP,多个UE,以及交换机和路由器。所有AP使用相同SSID(本实例使用“TCS”)覆盖企业级环境,交换机和路由器分别在链路层、网络层连接所有AP。UE是网络资源的使用者,而AP是流量控制的实施者。AP在进行数据包转发、流量控制的同时,搜集网络信息上传至云端数据库。云端中央控制器结合网络管理员指定的具体策略下发不同的控制信息给各个AP。
图2为本发明的一种基于OpenWrt的企业级无线局域网流量控制方法的流程时序图,其包括以下步骤:
S1、每个无线接入点读取本地配置文件的默认工作参数,并初始化无线接入点的默认队列规则、流量标签模块、流量阻断模块;包括以下子步骤:
S11、无线接入点读取本地配置文件中的无线接入点整型标号,该标号具备唯一性,用于在整个流量控制系统中标识每个无线接入点,便于云端中央控制器区分上传信息来源和控制特定的无线接入点;本实施例中无线接入点读取根目录下的配置文件tcs.config,取ap_id作为自己在整个系统中的标识。本实施例共10个AP,因此ap_id∈[1,10]且每个AP不相同。ap_id的取值范围不定,只要保持唯一性即可。
S12、无线接入点通过自定义编程接口对无线接入点中由云端控制的三个模块进行初始化:流量控制模块中的队列规则默认使用无类队列规则中的令牌桶Token BucketFilter(TBF),下行带宽100KBps;流量标记模块初始化为空,默认不对流量进行区分;流量阻断模块初始化为空,不对特定设备流量进行完全阻断。
针对流量控制模块,本系统通过netlink实现出流量控制API,通过tc_cmd(“qdisc”、“add”、“root”、“tbf”、“100”、“50”、“1540)代替命令行指令tc qdisc add devwlan0root tbf rate 100KBps latency 50ms burst 1540对内核模块进行初始化,即在wlan0网卡上使用无类队列规则令牌桶TBF,下行带宽100KBps;本实例的流量标记模块和流量阻断模块都采用双向链表实现,初始化为空,即head=NULL和list_len=0,既不通过标记区分流量,也不阻断流量。
流量阻断模块的双向链表及链表节点定义如下:
流量标记模块的双向链表及链表节点定义如下:
S2、无线接入点按照数据包获取、流管理、流量识别、流量标记、流量控制的流程对数据包进行转发;转发数据包的同时,无线接入点收集流量信息周期性上传给云端中央控制器;具体功能模块和流程关系如图3所示。
其中,对数据包进行转发包括以下子步骤:
S21、无线接入点通过“直路”方式截获内核数据包并提取到用户空间,根据流量阻断模块判断是否丢弃该数据包,如果是则直接丢弃并继续截获下一个内核数据包进行判断,否则执行步骤S22;本实施例中无线接入点通过libnetfilter_queue从防火墙netfilter的forward链mangle表截获转发数据包,并提取到用户空间;通过get_ban_linkedlist(&ues,dest_ip)从流量阻断模块的双向链表中查找数据包的目的IP地址是否需要被阻断;如果目的IP地址存在于阻断链表中则直接丢弃并继续截获下一个数据包进行判断,否则执行步骤S22;
S22、根据数据包的五元组(包括:源IP地址、目的IP地址、源端口、目的端口和传输层协议)计算哈希值(hash_val=flow.src_ip+flow.dst_ip+flow.src_port+flow.dst_port+flow.protocol),根据哈希值,在流管理模块的HashMap中查找数据流信息:如果数据流信息不存在,则新建该数据流信息,并执行步骤S23;如果数据流信息存在,但未完成识别,执行步骤S23;如果数据流信息存在且已完成识别,则执行步骤S24;
流管理模块中的节点关键信息定义如下:
S23、使用深度报文检测技术对数据包的应用层载荷进行匹配和识别,将识别结果存储于流管理模块;若识别完成,则流管理模块中节点信息中的detection_completed置1,识别结果存储于的detected_protocol,并返回给S24;否则detection_completed置0,返回UNKNOWN给S24;
S24、读取流量标记模块,流量标记模块使用protocol_tag_mapper(detected_protocol)在内部双向链表中查找该流量对应的识别标号,将识别结果映射成标记并添加到数据包的nfmark属性中,同时将数据包送回内核;
S25、流量控制模块的fw过滤器读取数据包的nfmark标号,将不同标记的数据包导入不同的发送队列,实现流量区分和流量控制;然后返回步骤S21。
无线接入点收集流量信息周期性上传给云端中央控制器包括以下子步骤:
S26、初始化信息交互模块,建立与云端中央控制器的连接,并准备接收控制指令;AP建立与云端RabbitMQ服务器的连接,本实例设计的RabbitMQ架构如图4所示。AP通过使用binding key为cloud.*.{ap_id}的队列准备接收云端中央控制器的流量控制指令、流量阻断指令、流量加标指令;
S27、收集无线接入点自身的工作参数信息、无线接入点当前关联的无线终端的基本信息、无线终端的流量信息,用json按照特定的格式组织信息;AP从uci、iwinfo、dhcp.leases、流管理模块四个方面收集三类信息,具体包括:AP自身的工作参数信息、AP当前关联的UE的基本信息、无线终端的流量信息。收集的信息用json进行承载,具体信息内容及消息格式如图5所示;
S28、以信息类型、无线接入点ID作为标识,将收集到的三类信息上传消息到云端中央控制器;AP分别以ap.{ap_id}、ue.{ap_id}、flow.{ap_id}为routing key,按照图5定义的消息格式上传S27中的三类信息至云端RabbitMQ服务器,并由云端中央控制器存储至数据库中。本实例中,ap.{ap_id}对应的信息变化较少,每10分钟上传一次;ue.{ap_id}、flow.{ap_id}对应的信息变化较快,每10秒上传一次。
S3、根据网络管理员的指令,云端中央控制器在特定时间向不同的无线接入点发送特定的控制指令;其功能模块和流程关系如图6所示,包括以下子步骤:
S31、网络管理员登陆云端中央控制器提供的网页,选取一个被管理的本地无线局域网,查看当前网络使用情况;
S32、云端后台控制器根据管理员指定的策略给不同的无线接入点发送控制信息,包括:
(1)针对无线接入点流量阻断模块的指令,包括执行和撤销目标用户设备的流量阻断;若管理员提交针对AP关联UE的流量阻断指令,后台控制器获取操作类型(执行或撤销)和目标IP地址,并从数据库中查询该IP地址所在的AP编号,然后以cloud.ban.{ap_id}为routing key,发送指令到对应AP上,以操控流量阻断模块内部的双向链表;
(2)针对无线接入点流量标记模块的指令,调整数据流类型和标号的关联关系;若管理员提交针对AP的流量标记指令,后台控制器获取流量类型和对应标记,然后以cloud.pt.{ap_id}为routing key,发送指令到对应AP上,以操控流量标记模块内部的双向链表;
(3)手动针对无线接入点的流量控制模块的控制信息,中央控制器通过网页获取目标接入点编号和流量控制指令,下发一次指令到目标无线接入点;若管理员递交手动流量控制指令,中央控制器通过网页获取目标接入点编号、流量控制模块的类、队列规则、过滤器参数,使用cloud.pt.{ap_id}为routing key下发一次流量控制指令到目标无线接入点;
(4)自动针对无线接入点的流量控制模块的控制信息,中央控制器周期性地读取接收到的三种上传信息,结合三种自动带宽分配策略(包括基于UE数量的公平策略、基于数据流数量和传输速率的公平策略、基于数据流类型的效用公平策略)之一,周期性地下发流量控制指令;
①若管理员递交自动流量控制指令,并且指定带宽分配策略为基于UE数量的公平策略,则中央控制器每10秒读取数据库中的UE基本信息表。
设ISP分配下行带宽(即总下行带宽)为C,vi(i=1,2,…,10)代表每一个AP节点,令ui,k表示vi下的第k个用户,则UE总数totalUE表示为:
令ni表示第i个AP关联的UE数量,xi表示第i个AP最终分得的下行带宽,则xi可以表示为:
xi=ni*C/totalUE
基于UE数量的公平带宽分配策略不涉及到流量的区分,只进行流量整型,因此使用队列规则为无类队列规则令牌桶TBF。
在计算得出UE数量公平策略下每个AP应得的下行带宽数量后,中央控制器使用cloud.tc.{ap_id}为routing key下发流量控制指令到每个AP,每10秒发送一次。
②若管理员递交自动流量控制指令,并且指定带宽分配策略为基于数据流数量和传输速率的公平策略,则中央控制器每10秒读取数据库的数据流量信息表中的速率信息,分配流程如图7所示;
首先,根据AP个数进行相应的参数进行初始化。其中,X是所有AP最终分得带宽值组成的向量,内部的每个xi初始化为0;Rate是数据库每一条数据流在10秒内的平均下行速率构成的向量;Bandwidth是一个和Rate相同长度的向量,用于每一轮循环中存储公平分配的带宽;totalFlow是统计得到的流的个数;
然后,按行从数据库中读取所有数据流的信息,如果信息有效,则将该行信息的10秒内平均速率插入Rate,同时totalFlow自增1。
随后,基于最大-最小公平性的思想,将Rate向量按照从小到大进行排序,并将总带宽平分给所有的数据流,均值存储在Bandwidth向量中。
其次,遍历Rate向量,将第i位的Rate元素与Bandwidth元素比较,如果Bandwidth元素的值比Rate元素大,则将差值平均分配给后续Bandwidth元素,同时将当前第i位的Rate元素分配给Bandwidth元素;如果第i位的Bandwidth元素的值比Rate元素小,则停止遍历;
最后,将Bandwidth向量中各个流分得的带宽,累加到各个AP上,得到最终的带宽分配向量X。
基于数据流数量和速率的公平带宽分配策略不涉及到流量的区分,只进行流量整型,因此使用队列规则为无类队列规则令牌桶TBF。
在计算得出带宽分配向量X后,中央控制器使用cloud.tc.{ap_id}为routing key下发流量控制指令到每个AP,每10秒发送一次。
③若管理员递交自动流量控制指令,并且指定带宽分配策略为基于数据流类型的效用公平策略,则中央控制器每10秒读取数据库的数据流量信息表中的数据流类型信息,分配流程如图8所示:
首先,读取数据库中的所有流量类型信息,按照深度报文识别的结果,将流量分为四类,分别为VoIP类、TCP类、HTTP类、IPTV类,统计其个数记为h、i、j、k。
然后,为严格实时流量VoIP类预留带宽,每一个VoIP类预留64Kbps的带宽,则剩余带宽C记为:
C=C-64Kbps*h
随后,按照效用公平的原则,统计TCP类、HTTP类、IPTV类三类流量在效用值公平的情况下每种流量应分得的带宽。设x2、x3、x4代表每个TCP类流量、HTTP类流量和IPTV类流量的分配带宽,其对应的线性效用函数分别为U2、U3和U4,则效用公平下的带宽分配值x2、x3、x4可以使用下述公式计算:
本发明采用的分段效用折线图如图9实线所示。
因为此策略涉及数据流类型的区分,所以流量控制模块的队列规则采用分类队列规则HTB和无类队列规则SFQ搭配的方式进行,如图10所示。其中,句柄为“1:2”的队列是VoIP类流量队列,这部分队列的带宽采用预留的方式分配,并且不允许借用。句柄为“1:11”、“1:12”和“1:13”的队列分为是TCP类流量、IPTV类流量、HTTP类流量的队列,各个队列中的最小带宽根据效用公平的方式指定,本实例设计的最大带宽为剩余带宽(扣除VoIP类带宽)的80%,即这三个队列之间允许带宽相互借用。句柄“1:14”的队列是低优先级队列,主要用于其他流量(如未识别流量等),本实例不对这类流量提供最低带宽保证,带宽通过借用的方式获得。
最后,中央控制器仍使用cloud.tc.{ap_id}为routing key下发流量控制指令到每个AP,每10秒发送一次。
S4、根据云端中央控制器的指令动态调整本地无线接入点的参数,返回步骤S2;包括以下子步骤:
S41、等待云端中央控制器指令;
S42、接收云端中央控制器指令,判断指令类型:如果是针对流量阻断模块的指令,则执行步骤S43;如果是针对流量标记模块的指令,则执行步骤S44;如果是针对流量控制模块的指令,则执行步骤S45;本实施例的AP通过匹配routing key的第3位{ap_id}接收属于自己的消息,并根据routing key的第2位判断指令类型:如果是cloud.ban.{ap_id}则执行步骤S43;如果是cloud.pt.{ap_id}则执行步骤S44;如果是cloud.tc.{ap_id}则执行步骤S45;
S43、获取目标用户的IP地址和操作类型,如果操作类型是执行阻断,则通过insert_ban_linkedlist(ban_linkedlist*ues,char*msg)将目标IP添加到阻断模块的双向链表,若目标IP已经存在则不进行操作;如果是撤销阻断,则通过delete_ban_linkedlist(ban_linkedlist*ues,char*msg)将目标IP从阻断模块双向链表删除,若目标IP不存在则不进行操作;然后返回步骤S41;
S44、获取流量识别类型和标号关系,本实施例通过get_pt_linkedlist(pt_list*pts,char*protocol)在流量标记模块的双向链表查询当前流量协议类型的标记,如果识别类型已存在于流量标记模块,则将对应标号进行替换,否则添加新的关联关系到流量标记模块;然后返回步骤S41;
S45、获取指令消息实体,提取流量控制模块的类、队列规则、fw过滤器的控制指令,按照指令进行流量控制策略的替换,使用本发明的流控模块接口tc_cmd将指令传入内核;然后返回步骤S41。
综上所述,本发明提出了一种基于OpenWrt的企业级无线局域网流量控制系统,实现了更通用的系统平台、更精确的流量控制、更公平的带宽资源分配。通过本地和云端的协同工作,不仅在本地AP上做到数据包的获取、流管理、流量识别、流量标记、流量控制等流控相关流程,还可以通过云端控制器对AP进行动态调控,灵活、公平分配网络带宽资源。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (8)
1.一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,包括以下步骤:
S1、读取本地配置文件的默认工作参数,并初始化无线接入点的默认队列规则、流量标签模块、流量阻断模块;
S2、按照数据包获取、流管理、流量识别、流量标记、流量控制的流程对数据包进行转发;转发数据包的同时,无线接入点收集流量信息周期性上传给云端中央控制器;
S3、根据网络管理员的指令,云端中央控制器在特定时间向不同的无线接入点发送特定的控制指令;
S4、根据云端中央控制器的指令动态调整本地无线接入点的参数,返回步骤S2。
2.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述步骤S1包括以下子步骤:
S11、读取本地配置文件中的无线接入点整型标号;
S12、对无线接入点中由云端控制的三个模块进行初始化:流量控制模块中的队列规则默认使用无类队列规则中的令牌桶Token Bucket Filter,下行带宽100KBps;流量标记模块初始化为空,默认不对流量进行区分;流量阻断模块初始化为空,不对特定设备流量进行完全阻断。
3.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述步骤S2中,对数据包进行转发包括以下子步骤:
S21、无线接入点截获内核数据包并提取到用户空间,根据流量阻断模块判断是否丢弃该数据包,如果是则直接丢弃并继续截获下一个内核数据包进行判断,否则执行步骤S22;
S22、根据数据包的五元组计算哈希值,根据哈希值在流管理模块查找数据流信息;如果数据流信息不存在,则新建该数据流信息,并执行步骤S23;如果信息存在,但未完成识别,执行步骤S23;如果信息存在且已完成识别,则执行步骤S24;
S23、使用深度报文检测技术对数据包的应用层载荷进行匹配和识别,将识别结果存储于流管理模块;然后执行步骤S24;
S24、读取流量标记模块,将识别结果映射成标记并添加到数据包的nfmark属性中,同时将数据包送回内核;
S25、流量控制模块的过滤器将不同标记的数据包导入不同的发送队列,实现流量区分和流量控制;然后返回步骤S21。
4.根据权利要求3所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述数据包的五元组为:源IP地址、目的IP地址、源端口、目的端口和传输层协议。
5.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述步骤S2中,无线接入点收集流量信息周期性上传给云端中央控制器包括以下子步骤:
S26、初始化信息交互模块,建立与云端中央控制器的连接,并准备接收控制指令;
S27、收集无线接入点自身的工作参数信息、无线接入点当前关联的无线终端的基本信息、无线终端的流量信息,用json按照特定的格式组织信息;
S28、以信息类型、无线接入点ID作为标识,将收集到的三类信息上传消息到云端中央控制器。
6.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述步骤S3包括以下子步骤:
S31、登陆云端中央控制器提供的网页,选取一个被管理的本地无线局域网,查看当前网络使用情况;
S32、根据管理员指定的策略给不同的无线接入点发送控制信息,包括:
(1)针对无线接入点流量阻断模块的指令,包括执行和撤销目标用户设备的流量阻断;
(2)针对无线接入点流量标记模块的指令,调整数据流类型和标号的关联关系;
(3)手动针对无线接入点的流量控制模块的控制信息,中央控制器通过网页获取目标接入点编号和流量控制指令,下发一次到目标无线接入点;
(4)自动针对无线接入点的流量控制模块的控制信息,中央控制器周期性地读取接收到的三种上传信息,结合三种自动带宽分配策略之一,周期性地下发流量控制指令。
7.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述三种自动带宽分配策略包括:基于UE数量的公平策略、基于数据流数量和传输速率的公平策略、基于数据流类型的效用公平策略。
8.根据权利要求1所述的一种基于OpenWrt的企业级无线局域网流量控制方法,其特征在于,所述步骤S4包括以下子步骤:
S41、等待云端中央控制器指令;
S42、接收云端中央控制器指令,判断指令类型:如果是针对流量阻断模块的指令,则执行步骤S43;如果是针对流量标记模块的指令,则执行步骤S44;如果是针对流量控制模块的指令,则执行步骤S45;
S43、获取目标用户的IP地址和操作类型,如果操作类型是执行阻断,则将目标IP添加到阻断列表,若目标IP已经存在则不进行操作;如果是撤销阻断,则将目标IP从阻断列表删除,若目标IP不存在则不进行操作;然后返回步骤S41;
S44、获取流量识别类型和标号关系,如果识别类型已存在于流量标记模块,则将对应标号进行替换,否则添加新的关联关系到流量标记模块;然后返回步骤S41;
S45、获取针对流量控制模块的类、队列规则、过滤器的控制指令,按照指令进行流量控制策略的替换;然后返回步骤S41。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348945.5A CN110087261B (zh) | 2019-04-28 | 2019-04-28 | 一种基于OpenWrt的企业级无线局域网流量控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348945.5A CN110087261B (zh) | 2019-04-28 | 2019-04-28 | 一种基于OpenWrt的企业级无线局域网流量控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110087261A true CN110087261A (zh) | 2019-08-02 |
CN110087261B CN110087261B (zh) | 2020-11-06 |
Family
ID=67417260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910348945.5A Active CN110087261B (zh) | 2019-04-28 | 2019-04-28 | 一种基于OpenWrt的企业级无线局域网流量控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110087261B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519110A (zh) * | 2019-10-12 | 2019-11-29 | 驷途(上海)科技有限公司 | 一种云宽带配置装置 |
CN111010347A (zh) * | 2019-11-30 | 2020-04-14 | 北京浪潮数据技术有限公司 | 一种云平台的网络流量控制方法及相关装置 |
CN111757378A (zh) * | 2020-06-03 | 2020-10-09 | 湃方科技(北京)有限责任公司 | 一种无线网络中设备识别方法及装置 |
CN111918340A (zh) * | 2020-07-08 | 2020-11-10 | 河北百亚信息科技有限公司 | 一种WiFi无线网络带宽分配方法 |
CN112616151A (zh) * | 2020-11-26 | 2021-04-06 | 成都市吉祥锐意科技有限公司 | 一种基于云端射频优化的技术 |
CN114124731A (zh) * | 2020-08-26 | 2022-03-01 | 华为技术有限公司 | 流量监控方法、装置、集成电路及网络设备 |
WO2022041695A1 (zh) * | 2020-08-26 | 2022-03-03 | 华为技术有限公司 | 流量监控方法、装置、集成电路、网络设备及网络系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478494A (zh) * | 2009-02-16 | 2009-07-08 | 中兴通讯股份有限公司 | 一种基于令牌桶算法的数据包处理方法及装置 |
WO2012000317A1 (zh) * | 2010-07-02 | 2012-01-05 | 中兴通讯股份有限公司 | 一种流量监管方法和装置 |
CN104768188A (zh) * | 2015-04-23 | 2015-07-08 | 杭州华三通信技术有限公司 | 一种流量控制方法和装置 |
US20170331757A1 (en) * | 2015-06-30 | 2017-11-16 | Tencent Technology (Shenzhen) Company Limited | Traffic control method, traffic control apparatus and server |
CN108650192A (zh) * | 2018-04-28 | 2018-10-12 | 国网福建省电力有限公司 | 一种基于令牌桶优化算法的流量控制方法 |
CN109246023A (zh) * | 2018-11-16 | 2019-01-18 | 锐捷网络股份有限公司 | 流量控制方法、网络设备及存储介质 |
-
2019
- 2019-04-28 CN CN201910348945.5A patent/CN110087261B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101478494A (zh) * | 2009-02-16 | 2009-07-08 | 中兴通讯股份有限公司 | 一种基于令牌桶算法的数据包处理方法及装置 |
WO2012000317A1 (zh) * | 2010-07-02 | 2012-01-05 | 中兴通讯股份有限公司 | 一种流量监管方法和装置 |
CN104768188A (zh) * | 2015-04-23 | 2015-07-08 | 杭州华三通信技术有限公司 | 一种流量控制方法和装置 |
US20170331757A1 (en) * | 2015-06-30 | 2017-11-16 | Tencent Technology (Shenzhen) Company Limited | Traffic control method, traffic control apparatus and server |
CN108650192A (zh) * | 2018-04-28 | 2018-10-12 | 国网福建省电力有限公司 | 一种基于令牌桶优化算法的流量控制方法 |
CN109246023A (zh) * | 2018-11-16 | 2019-01-18 | 锐捷网络股份有限公司 | 流量控制方法、网络设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
孙亚茜: "家用路由器中的流量控制功能设计实现及其算法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
庞彪: "家庭网络流量控制系统的研究与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
曾泓源: "基于OpenWrt的流量控制系统设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519110A (zh) * | 2019-10-12 | 2019-11-29 | 驷途(上海)科技有限公司 | 一种云宽带配置装置 |
CN111010347A (zh) * | 2019-11-30 | 2020-04-14 | 北京浪潮数据技术有限公司 | 一种云平台的网络流量控制方法及相关装置 |
CN111757378A (zh) * | 2020-06-03 | 2020-10-09 | 湃方科技(北京)有限责任公司 | 一种无线网络中设备识别方法及装置 |
CN111757378B (zh) * | 2020-06-03 | 2024-04-02 | 中科时代(深圳)计算机系统有限公司 | 一种无线网络中设备识别方法及装置 |
CN111918340A (zh) * | 2020-07-08 | 2020-11-10 | 河北百亚信息科技有限公司 | 一种WiFi无线网络带宽分配方法 |
CN114124731A (zh) * | 2020-08-26 | 2022-03-01 | 华为技术有限公司 | 流量监控方法、装置、集成电路及网络设备 |
WO2022041695A1 (zh) * | 2020-08-26 | 2022-03-03 | 华为技术有限公司 | 流量监控方法、装置、集成电路、网络设备及网络系统 |
CN114124731B (zh) * | 2020-08-26 | 2023-03-31 | 华为技术有限公司 | 流量监控方法、装置、集成电路及网络设备 |
CN112616151A (zh) * | 2020-11-26 | 2021-04-06 | 成都市吉祥锐意科技有限公司 | 一种基于云端射频优化的技术 |
Also Published As
Publication number | Publication date |
---|---|
CN110087261B (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110087261A (zh) | 一种基于OpenWrt的企业级无线局域网流量控制方法 | |
US11381452B2 (en) | Network slicing method and system | |
EP3267640B1 (en) | Balance adjustment methods and devices for egress traffic of sdn-based idc network | |
RU2533166C2 (ru) | Способ, устройство и система для планирования потока данных | |
CN103582512B (zh) | 特征提取装置、网络流量识别方法、装置和系统 | |
CN101510846B (zh) | 基于区分服务网络和IPv6扩展头实现自治QoS的系统和方法 | |
CN105530204B (zh) | 软件定义无线网络中视频业务QoS保证的系统及方法 | |
CN108809857A (zh) | 一种基于sdn的流量监控与业务服务质量保障策略的方法 | |
WO2017005223A1 (zh) | 一种智能电表的信息共享方法、智能电表及采集路由器 | |
CN109600243A (zh) | 数据分析方法和装置 | |
CN104753704B (zh) | 一种软件定义网络中的状态迁移方法及交换机 | |
CN106063202B (zh) | 取决于状态的数据转发方法、控制器和存储介质 | |
CN104010332B (zh) | 承载绑定方法及系统 | |
CN106453149A (zh) | 基于用户应用自动分配带宽的无线wifi路由器及方法 | |
CN108881028A (zh) | 基于深度学习实现应用感知的sdn网络资源调度方法 | |
WO2018010461A1 (zh) | 一种业务流量的控制方法及系统 | |
US6839327B1 (en) | Method and apparatus for maintaining consistent per-hop forwarding behavior in a network using network-wide per-hop behavior definitions | |
Ahmad et al. | Location-aware, context-driven QoS for IoT applications | |
KR20140052847A (ko) | 소프트웨어 정의 네트워킹 기반 네트워크에서 서비스 품질 제공 방법 및 그 장치 | |
WO2022121735A1 (zh) | 网络切片的运维方法、装置、系统和存储介质 | |
Aamir et al. | Performance Analysis of DiffServ based Quality of Service in a Multimedia Wired Network and VPN effect using OPNET | |
Wang et al. | Software defined autonomic QoS model for future Internet | |
CN113453284A (zh) | 一种服务质量Qos控制方法、设备及存储介质 | |
Hefele et al. | SDN managed network slicing in mobile backhaul | |
CN106211141B (zh) | 一种无线局域网漫游站点的流的转发方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |