网络流量监测与调度技术研究
学习目标:流量监测
学习内容:
- 流量管理:路由技术(Segment-Route、IS-IS、BGP)、负载均衡、拥塞控制、流量控制、流量监测
流量监测
流量监测的主要方法:分为主动方式和被动方式
主动的方式是通过监测仪器向网络路径上主动的发送有针对性的探测包,通过对探测包的分析可以得到一些网络性能参数,例如延迟、RTT等。主动测量可以得到不同粒度的端到端QoS,但是它的开销很大,并且会带来附加的流量,
在采用主动方式监测网络时,要充分考虑到监测流量对网络造成的影响,一方面要保证监测结果准确无误。另一方面要考虑降低监测流量对正常流量的影响被动测量是在网络中以某种设备或技术收集经过的流量信息进行测量,可以测量节点的详细信息,相对于主动测量方法,被动测量没有附加流量而干扰测量结果的问题。但是正因为如此,很多端到端的网络性能参数无法或者很难使用被动测量的方法获得。
被动测量技术目前广泛的用在网络中关键路由或交换节点,对经过的网络流量进行数据的采集或统计,得到如数据包的协议分布统计、网络流量的数据流矩阵等信息,但是它的准确性很大程度的依赖于测量装置的性能,同吋也需要复杂的分析机制高速处理网络流量数据。在SDN中,被动方法通过包采样或用统计的方法了解流量的状态,是一种非侵入式的并且不需要产生额外流量的方法,减轻控制器压力的同时又不会对正常的网络流产生影响。但采样可能会使小的流被错过,SDN路径上的多层监测节点也可能会采样重复的包,这将导致测量的不准确。
利用OpenFlow控制消息与询问消息机制设计一种主动与被动相结合的数据收集方案主动方式则通过对数据流的行为分析,利用线性预测以合适的频率向维持了各个流表、端口或接口信息的OpenFlow交换机发出询问,以减小开销,减轻控制器的压力。
流量监测的设计框架
下面是几种流量监测的设计框架
框架一
整个系统分为四部分:流量监测机制、动态负载均衡与节能路由和流调度机制(简称路由和流调度机制)、OpenFlow协议部分和基础设施部分.流量监测机制首先利用 OpenFlow 协议根据设定的自适应轮询算法向基础设施的交换机发出Query请求,然后根据接收到的 Reply消息对每个数据流进行速率监测,同时将与路由和流调度机制进行交互.路由和流调度机制首先根据流速率计算网络链路利用率并且构建链路利用率矩阵,然后再依据偏好计算方法将利用率矩阵转化为链路的偏好矩阵.偏好矩阵同时兼顾了负载均衡与节能的目标,将作为路由与流调度机制的基础数据.当控制器收到PacketIn消息后,路由机制将为数据流提供合理的初始路径,并将新的路径通过 OpenFlow 协议安全通道安装到交换机上.同样当数据流被调度时,控制器将通过流调度模块为数据流计算新的转发路径,并通过 OpenFlow 协议更新到交换机.OpenFlow 协议作为数据平面与控制平面交互的中介,不但需要将每个数据流路径的添加、更新真实地反映到基础设施的交换机上,而且需要作为通道帮助控制器收集数据流信息.
[1]鲁垚光,王兴伟,李福亮,黄敏.软件定义网络中的动态负载均衡与节能机制[J].计算机学报,2020,43(10):1969-1982.
框架二
该模块需要感知整个网络的拓扑以及各OpenFlow交换机的配置信息,根据交换机的配置信息来生成测量需求,控制器与OpenFlow交换机第一次建立连接时,控制器向OpenFlow交换机发功能请求消息,即OFPT_FRATURES_REQUEST消息,该消息可以获取交换机的配置、性能以及功能等信息参数,交换机则会回复OFPT_FEATURES_REPLY消息,通过回复消息,控制器会记录datapathID以及流表数等信息,datapathID从根本上来说就是交换机的ID,用于辨别数据路径,当交换机信息发送改变,该信息也会进行相应的更新。
当需要对流进行删除时,OpenFlow交换机会向控制器发送Flow_Removed消息,控制器因此可以获取该流被删除的相关信息,例如流表编号、流存在的时间以及被删除的原因、流空闲时间等,通过对Flow_Removed消息的处理,可以及时调整监测路径,例如当链路中某些流被删除时,那么监测路径也要随时进行调整。
[1]蔡杰. 基于OpenFlow网络的流量监测关键技术研究[D].湖南大学,2016.
框架三
SDN网络基于线性预测的监测系统架构主要由事件处理模块(Flow Statistics Analyzer)、流数据收集模块(Flow Statistics)、流数据分析模块(Flow Statistics Analyzer)、线性预测询问模块(Linear Prediction)四大模块组成,下面对每个模块进行分析。
事件处理模块:这个部分主要负责捕获控制信息,并将它交给流数据收集模块。SDN网络中存在很多控制信息,这个模块收集能表示流开始和终止的Packet-In和Flow-Removed消息,如果在收到Packet-In消息一段时间内没有收到Flow-Removed消息,这个模块也将负责向指定的交换机发送一个询问信息FlowRequest,并且捕获交换机回复给控制器的信息FlowReply。
流数据收集模块:这个部分负责搜集分析控制信息所包含的数据,包括这个条流已通过的字节数、数据包个数以及持续时间,然后利用吞吐量计算公式(3。1)、(3。2)计算这条流的吞吐量。利用丢包率计算公式(3。3)、(3。4)计算这条流丢包率。
流数据分析模块:网络中同一条链路上可能不止一条活动流存在,对于吞吐量我们必须统计同一时刻链路上所有活动流的吞吐量之和才能得到整条链路的吞吐量。通过前三个模块可计算出每条流的吞吐量,数据分析模块主要负责在每个收到Flow-Removed和FlowReply消息的时间监测点合并活动流的吞吐量,得到整条链路的吞吐量
线性预测询问模块:此模块根据流数据收集模块搜集到的最近N次询问得到的数据计算r,r与当前询问时间间隔通过匹配规则计算出下一次询问的时间间隔。
优点:设计了针对SDN的网络流量智能监测模块,提出利用OpenFlow控制信息零开销的监测持续时间较短的流,同时利用主动询问交换机的方式得到持续时间较长的流的信息,实现了吞吐量与丢包率的测量。另外,为了减小询问所产生的开销,设计了基于线性预测自适应询问的算法,根据询问得到的数据流比特数与预测值进行比较,由比较后得到的参数来判定网络流是否活跃,然后再智能的改变询问的时间间隔。
不足:本文中两种自适应询问的参数需要对网络数据流进行分析,才能最佳的把握网络流量的特征又不増加开销,人为的参数设置势必会带来诸多问题,下一步研宄自动检测流量的情况,自适应的调节监测模块的参数,达到更加智能的效果。设计的基于SDN的网络流量监测模块只在单控制器且主机较少的小型OpenFlow网络环境下完成验证,在多控制器的大型网络上监测性能的验证有待进一步实验和探索。
[1]胡芬. SDN流量智能监测技术研究[D].湖南大学,2017.
参考论文:
[1] Amin Hodaei,Shahram Babaie. A Survey on Traffic Management in Software-Defined Networks: Challenges, Effective Approaches, and Potential Measures[J]. Wireless Personal Communications,2021(prepublish)
(软件定义网络中的流量管理综述:挑战、有效方法和潜在措施)
[2] A Framework for Classification and Visualization of Elephant Flows in SDN-Based Networks
(基于SDN的网络中大象流的分类和可视化框架)
[3] 软件定义网络中的动态负载均衡与节能机制
[4] SDN流量智能监测技术研究_胡芬
[5] 基于OpenFlow网络的流量监测关键技术研究_蔡杰
[6] 软件定义网络环境下DoS攻防实验设计_陈镭
[7] SDN网络流量监测与调度技术研究_张恒
[8] 面向SDN网络的QoS优化解决方案综述_孙瑞娜
[9] 软件定义网络环境下的低速率拒绝服务攻击检测方法_刘向举
–end–