崔峻玮,翟亚红,周婉旭,贺权,吕勇
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰 442002)
随着网络和云计算领域技术的快速发展,基于视频的多媒体应用层出不穷。Cisco[1]预测,到2023 年,基于互联网协议的视频流量将占据整个互联网流量的80%左右。与此同时,各种基于视频的新型应用使得网络环境日益复杂、网络拥塞现象严重、网络资源管理难、服务质量(quality of service,QoS)保障低。而上述一系列问题则给网络中传输视频流量带来严峻挑战。由于基于视频的多媒体应用依赖于网络进行数据传输,对网络延迟、抖动、吞吐量等指标要求较高。不同业务类型的视频流具有不同的QoS要求,其中网络流量的细粒度分类是解决这类问题的有效途径,保证网络资源的充分利用[2],优化网络性能。当前,网络流量分类方法主要有基于端口检测的流量分类、基于有效负载的流量分类和基于机器学习的流量分类[3]。随着越来越多的通信被加密,应用程序开始使用动态端口,基于端口与有效负载的分类方法不再适用[4]。基于机器学习的流量分类已经是当前研究热点,机器学习算法可实现流量的分类,能很好地解决上述问题。Zhou[5]等提出了基于改进卷积神经网络(convolutional neural network, CNN)的流量分类算法;V.TONG[6]等提出了使用统计特征和有效载荷数据来对QUIC 协议进行流量分类;Chen[7]等使用了再生希尔伯特空间将每个流的时间序列特征转换为二维图像,制作的图像被用作CNN 模型的输入。上述研究主要对网络流量进行粗粒度分类,如果将视频流作为整体进行服务质量保证,由于视频流低时延与高带宽的需求,会造成链路资源的激烈竞争,更容易造成网络拥塞。文中基于SDN 技术,引入区分服务模型(differentiated services,DiffServ)[8]对网络视频流量进行细粒度的分类。通过使用公共数据集和自采集数据集对多种算法进行有效评估,选择CNN分类算法。实验表明,其准确率较高,能够较好地满足多种QoS要求。
随着移动互联网迅速发展,视频、语音、文件下载等多媒体业务在网络流量中的占比越来越大。传统的IP体系网络架构越来越难以适应新业务的管理和适配等问题,SDN 技术[9-10]通过提供差异化的传输服务满足用户的多样性需求。设计了基于SDN的流量分类体系框架,如图1所示。控制平面的分类器通过机器学习算法学习规则,并对未知的数据流量进行预测,提取数据流量的到达过程、到达时间间隔等局部特征[11]。控制器计算并提取数据流量特征信息,将训练完成的分类器部署在控制平面,并将流量特征作为分类器的输入,得到流量类别。数据流量分类后,SDN控制器在交换机中数据流量的入口配置流表,并通过在数据包的差分服务代码点(differentiated services code point,DSCP)字段中设置特定视频类的值来标记数据包,根据QoS 业务对不同类别的数据包按照直播视频流最高、点播视频流次之、下载视频流最后的传输优先级进行排序,旨在保证视频传输质量,降低时延。
图1 基于SDN的流量分类体系框架图
在SDN 框架下搭建了流量自采集系统,采集不同业务的视频流量,并实现细粒度分类。使用公共数据集对一些典型的机器学习分类器进行训练,并评估这些分类器在视频流量分类方面的性能。
文中采用ISCXVPN2016、APPTraffic dataset、IP Network Traffic Flows Labeled 公共数据集训练分类器。ISCXVPN2016[12]网络数据集包含14种应用流量,APPTraffic dataset 网络数据集包含9 种应用流量,IP Network Traffic Flows Labeled 网络数据集包含9种应用流量。文中使用了其中7个应用,将其分成3个视频类别,如表1所示。
表1 视频类别
视频流量数据集以pcap 格式保存,需对数据集清洗,使用Wireshark 过滤坏包得到满足条件的数据包。清洗完成的数据不能作为机器学习分类器的输入,需将数据流量转为数据流量特征(表2)。然后从数据流量中提取流量特征信息并保存为CSV文件,随后用于机器学习的性能评估。
表2 流量特征
为了获得用于分类器评估的数据,构建了基于SDN的视频流量系统(图2)。系统中,直播流服务器通过VLC播放器生成RTSP数据流,点播流服务器通过VLC 播放器生成UDP 数据流,下载流服务器通过配置Vsftpd 以建立FTP 连接。分类器训练数据集的过程见图3。设置最小队列的长度为12,以保证较低的计算成本、较高的分类器质量。
图2 自采集视频流系统
图3 训练数据集流程图
分类器的训练和测试涉及到3 个视频流量类别,评估过程被描述为多分类问题。根据真实值和预测值得到分类器常用评价指标:
式中:A为准确率;P为精确度;R为召回率;F为性能指标;a为真阳性;b为假阴性;c为假阳性;d为真阴性;i为标签,取0 时表示直播,取1 时表示点播,取2时表示下载。
有监督机器学习算法被广泛地应用于流量分类中,文中对支持向量机(support vector machine,SVM)、决策树(decision tree, DT)、随机森林(random forest,RF)、朴素贝叶斯(native bayes,NB)、卷积神经网络(convolutional neural network,CNN)、逻辑回归(logistic regression, LR)和AdaBoost 算法进行对比评估,结果见图4,可以看出,CNN算法不仅在准确率上优于其他算法,在其他指标方面也很有竞争力,选择CNN算法作为文中的分类算法。
图4 不同算法性能对比
为了完成边缘网络节点对未知流的业务区分,DiffServ 模型定义了1种可以可扩展的服务分类体系结构,对DS 编码点的值进行设置,将不同的DS编码值与业务类型匹配,实现对业务流的分类和标记,进而确定该数据流的优先级,保证视频流不同的业务性能。文中引用了Diffserv模型对数据包进行标记,通过二进制编码值来区分优先级。换言之DSCP 为QoS 提供了比TOS 标记更大的优先级范围。DSCP 的格式如图5 所示,其中DS5、DS4 和DS3一起定义分组类别,DS2、DS1和DS0(DS0字段缺省为0)一起定义分组数据包丢弃优先级。010、100、110 分别表示低、中、高丢弃优先级。直播视频流的DSCP 值为“100010”,点播视频流的DSCP值 为“100100”,下 载 视 频 流 的DSCP 值 为“100110”。通过配置DSCP 字段,可以指定直播视频流、点播视频流和下载视频流的优先级。DS3~DS5 指定的是服务等级,DS0~DS2 指定的是流的优先级(直播视频流>点播视频流>下载视频流),优先级高的视频业务对应的丢弃优先级较低。
图5 DSCP标记
DSCP 字段配置到位后,一旦SDN 控制器将流表安全地发送回交换机,边缘交换机就会通过配置其DSCP 字段来标记每个传入的数据包。然后根据业务对其视频流进行优先度排序,保证视频业务的QoS,由此实现了细粒度的视频业务分类方案。
卷积神经网络也被称为CNN,用于处理时间序列和图像这种具有网络拓扑的数据[13]。作为深度学习的重要模型,但很少有人将其应用于网络流量分类领域。文中提出了基于卷积神经网络的流量分类框架,并训练CNN分类器,实现分类,如图6所示。图像和流量数据都是由数值组成,对数据集进行分析,得到合适的灰度图像,然后将网络的输入层设计为16×16 的像素矩阵。网络流量分类的目的是对数据集中不同的流量应用类型进行分类,从而达到分组转发的效果。首先需要提取双向流包的信息,包括包的方向、包大小、包到达时间的相关信息。将包到达时间和包大小作为图像的坐标,然后计算在相同时间间隔内将同样大小数据包的数量作为图像坐标位置上的像素,每张图片包含60 s 单向流的数据包信息。不同业务的视频流量具有的特征大小不同,生成的图片特征也不尽相同,可以更加明显地看出分类结果。
图6 基于卷积神经网络的流量分类框架
实验平台(图7)搭建在Ubuntu16.04 系统下,使用基于TensorFlow 平台上的Keras 库搭建CNN模型,包括SDN控制器、1组交换机、3个服务器和1组客户机。Ryu控制器作为轻量级、高效性的控制器,可用于控制流表下发等操作。网络仿真器使用的是支持OpenFlow 协议的Mininet,交换机使用的是安装在VirtulBox 虚拟机中的Open vSwitch 交换机。3个服务器分别负责生成直播、点播和下载视频流,通过VLC播放器来传输MP4视频文件。RTSP 协议主要用于实时性地直播视频流,UDP 协议用于点播视频流,Vsftpd 协议用于下载视频流,以提供FTP服务,用Filezilla程序来连接FTP服务器。
图7 实验平台示意图
针对视频流量进行检测,通过Wireshark 实时捕获交换机出端口的数据包,以确定DSCP字段是否正确,并且在Ryu 控制器显示相应的视频流类型。在实验中,直播视频流、点播视频流和下载视频流分别设置为0、1 和2。以直播视频流为例,直播流的DSCP 值设置为34,对应的二进制值是100010,关于直播流的实验结果,如图8 所示。其中将CNN 分类器部署于Ryu 控制器中用于对流量类型的识别,可以看出Ryu终端上显示为0,说明正确识别视频流量类型。在Wireshark中可以看到直播流的DSCP值为34。实验结果表明,该系统能够成功地对直播视频流进行分类和标记,同时也对点播和下载视频流进行了同样的测试,并且能够按照预期的效果进行分类。成功标记后,视频流量会按优先级进行传输,文中用K最短路径算法(K-shortest pathes, KSP)来进行路径选择,可以明显看出,以点播视频流量为例,Ryu控制器监控链路状态的变化,并根据“强到弱”的顺序生成路径序列(图9)。由于直播视频流具有最高优先级,因此选择路径序列中的第1条路径进行相应包转发。
图8 直播视频流分类预测和DSCP标记
图9 直播视频流转发路径选择
文中主要研究分组延时、分组剩余带宽和分组丢失率的问题。首先对不同的视频流进行分类标记,然后将分类后的视频流通过KSP算法进行路径规划。如图10a所示,前10个数据包的3个视频流都有很高的延迟,这是因为控制器尚未分类和计算路径,控制器对流特征的计算也会导致端到端的延迟。一旦分类和计算出转发路径,控制器就会下发流表到各个交换机,具有不同DSCP值的数据包将沿各自的路径进行传输,可以明显看出,由于直播视频流对延迟相当敏感,所以选择的是1条延迟最低的路径进行转发,点播和下载视频流也根据不同的QoS 依次选择路径进行转发。视频流未分类时的延迟最高,说明不同类型的视频流量都得到了差异化的传输服务质量保证。如图10b所示,通过数据包的丢失率可以看出直播视频流的可靠性最高,依次是点播视频流和下载视频流,最后是未分类时的丢包率。图10c显示了不同视频流在最初60 s内剩余带宽的变化,虽然一些曲线具有一定程度的波动,但基本可以看出直播视频流的剩余带宽最高,依次是点播、下载和无分类视频流,说明直播视频流所占的带宽比较低,保证了数据的传输质量。
图10 视频流QoS性能分析
文中提出的基于SDN 的流量控制系统不仅满足不同视频流量的QoS 要求,还可应用于其他网络。算法可实现较为优异的分类性能,在公共数据集下分类准确率95.25%,精确率95.66%,召回率95.21%,F1 分数95.01%。整个系统能够优化视频业务流的时延、带宽和丢包率,提高网络性能。