面向边缘计算的物联网网络流量测量方法
2021-02-26张文金熊继平
凌 敏,张文金,袁 亮,熊继平
(1.成都航空职业技术学院 汽车工程学院,成都610100;2.成都盘沣科技有限公司,成都610100;3.浙江师范大学 物理与电子信息工程学院,浙江 金华321004)
随着移动通信、物联网、云计算等技术发展的飞速发展,4G移动通信技术已经得到普及,5G移动通信系统的部署也在不断加快,移动应用的场景呈多样化,移动终端接入数量、业务类型和业务量等也呈指数级增长,网络中海量的数据对通信系统在接入能力、计算能力、传输带宽和时延等提出了更高的要求。5G通信网络定义了增强移动宽带(EMBB,enhanced mobile broadband)、高可靠低时延连接(uRLLC,ultra reliable and low latency communication)、大规模物联网(m MTC,massive machine type of communication)三大应用场景,能够在时延、带宽、接入量等方面根据用户的不同需求提供差异化的服务[1]。根据IDC(internet data center)的数据统计,到2020年接入到网络中的终端数量将达到500亿,海量的数据终端接入到网络中,必将给网络架构带来了巨大的挑战。
物联网利用传感器将设备的信息进行数据化,通过数据的综合处理以实现设备的智能化管理。为了处理和分析海量的物联网数据,云计算平台能够实现对物联网海量的数据进行动态的处理、融合和深层次分析等[2-3]。在物联网中,传感设备产生海量数据通过网络将数据汇聚到云计算平台,大量的数据汇聚和传输将会消耗大量的网络资源,同时也会对云计算平台的计算能力和存储能力提出更高的要求。云计算平台中的服务器CPU和内存都具有很高的处理能力,且运行速度远高于网络数据传输的速度,此时,数据在物联网网络中的传输时延将会成为云计算的瓶颈。由于大量的物联网应用,对物联网网络的带宽和时延具有很高的要求,提高网络的传输能力和数据处理能力是物联网目前所有解决的瓶颈问题。
在物联网中,有些数据仅在很小的范围内使用,不需要实时地转移到云计算平台进行处理,特别是对于一些对时间敏感的应用,例如无人驾驶、设备控制等,随着边缘计算、雾计算等技术应运而生[4]。边缘计算(edge computing)是在靠近数据源一侧对数据进行传输、计算、存储和应用等处理功能于一体的开放平台,能够极大提升网络的服务能力。边缘计算相对于云计算中心更加靠近应用程序的数据生成终端,能够极大地降低传输的时延。边缘计算通过对数据进行初步的计算和筛选,极大地缓解网络传输数据的压力,提高数据价值和传输质量,然后再将处理后的数据通过网络传输到云计算平台,将提高网络通信效率[5-7]。
在面向边缘计算的物联网核心网络中,边缘计算节点和云计算中心之间、边缘计算节点之间仍然需要传输和交换大量的数据,网络架构如图1所示,目前网络数据传输仍是物联网目前所要面临和必须解决的一个关键问题。物联网中随着接入设备的多样化和大量新应用的不断涌现,可扩展和灵活性是物联网网络应该具备的基本能力,能够根据业务的类型和用户的需求灵活的调整网络资源配置,满足用户的动态需求[8-9]。为了提高网络的灵活性,降低网络管理的复杂度,尤其是针对应用程序开发和服务提供商,因此,具备可编程能力的软件定义网络(SDN,software defined networking)能够满足物联网网络架构的需求。SDN是一种新型的网络架构,它通过将制定流量转发策略的控制平面(control plane)与负责数据转发的数据平面(data plane)进行解耦,实现网络的可编程、可扩展。在面向边缘计算的物联网网络中,基站收集服务范围内的接入节点数据,然后再边缘计算服务器上进行计算[10-12]。边缘服务器节点之间以及边缘服务器和云计算中心之间通过网络进行数据更高层次、更深层度的数据融合和处理,为人们提供更多种类的便民服务[13]。随着大数据分析技术和人工智能技术的广泛应用,数据的集中式和智能化处理能够深度挖掘数据中的信息,提高数据的使用价值,这也是智慧城市主要的发展方向。
网络流量测量在物联网网络管理和提高物联网服务质量中起着非常重要的作用,越来越多的网络流量测量方法被相继提出。在SDN架构的网络中,根据测量方式的不同通常被分为主动测量和被动测量两种方式[14]。被动测量主要利用SDN架构中常用OpenFlow协议的PacketIn和Flow Removed消息;而主动测量主要利用OpenFlow协议中统计信息的Request和Reply消息。物联网网络流量在不同密度下具有不同的特性。网络流量在不同的密度下具有不同的流量特性,在汇集网络的流量中具有稀疏性,通过汇聚的流量在边缘计算平台上进行处理和计算;而在物联网网络中,经过汇集的数据流将会产生大量的突发流,网络中流量的相关性与网络流量的突发性有关。在面向边缘计算的SDN物联网网络架构中,被动测量利用流表设置的Hard_timeout和Idle_timeout定时器超时向控制器发送Flow Removed消息对物联网的网络流量进行被动测量,这种测量方式灵活性非常差。FlowSense将特定周期时间内触发PacketIn消息但没触发Flow Removed消息的流量定义为活跃流量,通过累加活跃流量在周期时间内的传输速率来估算当前链路的带宽利用率主动测量算法通过周期地从相关交换机采集流量数据来估算链路资源利用率[15]。He等[16]提出了一种基于Open Flow的低开销和高精度的SDN测量框架,通过自适应的调整采样频率来测量网络中流量的速率。Huo等[17]提出一种基于SDN的细粒度的测量和车联网通信流量建模方法。关于网络流量测量还有许多相关的研究,如流量分析、流量预测、流量特性分析等[18-20]。
图1 面向边缘计算的物联网网络架构示意图Fig.1 Schematic diagram of IoT network architecture based on edge computing
上述测量方法都是在SDN的架构下对网络中的流量进行测量,然而在面向边缘计算的物联网网络中,经过汇聚的网络流量相对于初始的网络流量已将发生了巨大的变化,因此,网络流量的特性也有所改变。未来应对智慧城市发展的需要,需要多网络的中流量进行低开销、高精度的网络流量测量,因此如何在低开销的情况下提高网络流量的测量精度,是物联网网络流量测量所要应对的一个问题。基于此,文中针对面向边缘计算的物联网中提出了基于采用粗粒度测量和插值优化的方法对网络中的流量进行测量。
1 测量方案和架构
在面向边缘计算的物联网网络管理中,例如负载平衡,路由规划和异常检测,不仅需要精确的测量结果,还需要基于用户需求的动态调整测量的粒度。为了获得具有低测量开销的高精度测量结果,文中提出了一种轻量级高精度的面向边缘计算的物联网网络测量方案,具体架构如图2所示。
1.1 测量架构
文中提出了一种新的轻量级测量架构如图2所示。测量过程分为粗粒度测量、细粒度数据填充与优化2个阶段。首先,SDN架构中的控制器将会根据用户或应用程序的测量需求对测量方案进行分析和配置,然后通过调用测量API并在控制器中设置其采样要求,例如测量粒度和持续时间。同时,控制器还将通过测量配置确定采样的对象,如数据流采样、交换机采样等。测量模块根据采样需求生成采样请求消息,并通过Open Flow协议将其发送给所选定的交换机。当目标交换机都收到消息时,交换机会收集流量和端口的统计信息,并将它们打包成reply消息并返回给控制器。在SDN网络中,控制器利用链路发现协议(LLDP,Link Layer Discovery Protocol)能够掌握全局拓扑中的链路和端口信息;另外,控制器根据交换机在新流到达数据包时产生的Packet_In消息对流的转发路径和转发规则的记录结果,获得网络中流的路由信息。基于从控制器中获得的拓扑信息、路由信息以及粗粒度的测量结果,构建能够表达网络流量特征的流量矩阵。
图2 面向边缘计算的物联网网络测量框架Fig.2 IoT network measurement framework based on edge computing
利用通过采样获得的粗粒度网络流量值,根据用户或应用的要求在对网络流量进行插值,并采用智能优化的方法减少测量误差。在面向边缘计算的物联网网络中,根据任务的需求开发相应的测量组件并安装到控制器中执行,用户和应用程序可以通过API调用这些模块。新的测量架构中的模块与SDN控制器中的其他现有模块相互兼容。由于所有这些模块都是基于流的测量,最关键的部分就是网络流量统计数据的收集。文中根据用户的需求采用主动流量测量的方法,读取基于OpenFlow交换机中的网络流量统计数据,该测量方案可以通过降低测量的粒度来减少网络测量的开销。控制器从交换机获取到的统计信息,此过程独立于控制任务的制定和任务分配过程。通过在测量的粗粒度流量矩阵中插入许多离散值来获得细粒度插值测量结果,这种测量方法比传统的网络流量测量方法更加灵活易用。
1.2 物联网网络流量矩阵
在基于SDN架构的物联网核心网络中,控制器利用链路层发现协议来获取网络中的所有交换机,端口和链路等信息。控制器发送链路层发现协议LLDP探测报文到OpenFlow交换机,并收集交换机返回的消息,收集链路状态,传输延迟,路径丢失和网络全局视图等信息。文中采用流量矩阵来描述面向边缘计算的物联网网络中的流量特性。
在物联网网络中,数据流通过Open Flow交换机相互交换数据。流(flow)就是从源节点到目的节点的数据包序列,在网络中有n个边缘计算服务器,所以总共有N=n2个源 目的(OD,origin destination)节点对,网络的流量矩阵为
式中:m表示源节点;n表示目的节点。假如网络中有M条链路,采用向量Y=[L1,L2,…,L M]T代表网络中的链路负载。流量矩阵可表示为X=[x1,x2,…,x N]T。在网络中,路由矩阵是一个由二进制变量进行表示的矩阵,其中每一个变量都表示流和链路之间的相关性。文中采用a mn表示流m是否通过链路n。a mn=1表示流m通过链路n;a mn=0表示流m不通过链路n。因此,链路负载可以被流表示为
构造链路负载与流量之间的关系矩阵为
式中,使用变量Y表示交换机之间每条链路上网络的链路负载,A表示链路和流之间的相关矩阵,因此,式(3)可以写为
在面向边缘计算的物联网中,控制器通过发送和接收LLDP报文来获取网络的全局视图并存储在控制器中。因此,路由矩阵A可以直接从控制器中读取,并且通过读取交换机的统计信息获得粗粒度的流量矩阵。
当用户或应用程序请求度量网络流量时,控制器生成请求消息并将其发送到交换机。然后,被选中的交换机收集数据包和端口统计信息,并将它们返回给控制器,但是控制器要处理大量的数据,这对控制器来说将是一个巨大的挑战。网络中的流量一般具有高密度、高动态性等特点。细粒度流量测量不仅需要很小的测量间隔,而且还将消耗大量的带宽用于传输测量相关的报文,因此细粒度流量测量对于网络来说将会产生巨大的负荷。然而,在SDN网络中,具有低开销的基于流的细粒度流量测量是很难实现的。为此,文中提出一种低开销的细粒度网络流量测量方法,该方法需要对网络流量进行粗粒度的测量,并利用插值方法恢复细粒度的流量测量。由于链路负荷和流量满足映射关系式(4),利用流量矩阵和链路流量的测量值,通过优化插值结果,找到细粒度流量测量值。
文中所提的测量框架中,需要测量SDN架构的物联网网络中粗粒度的流量数据。控制器根据用户或应用程序的请求制定测量规则,并向被选中的OpenFlow交换机发送测量请求消息。有许多方法可以测量链路和流量的传输速率,在传统方法中,sFlow和Netflow需要硬件支持并安装测量代理软件来测量每条流的流量和链路负载,但是SDN架构中提供了更加方便的网络流量测量方法。控制器只需要向Open Flow交换机读取中数据包和端口的统计信息,并不需要额外的软硬件支持,因此,基于流的物联网网络流量测量非常灵活和方便。
1.3 随机粗粒度抽样
在面向边缘计算的物联网网络中,从源节点到目标节点的网络流量是随时间波动的,可以用时间相关的向量x n(t)表示,它类似于信号在自由空间中传播。然而,存储所有网络设备的流量记录信息将消耗大量的存储空间和计算资源,在实践中网络设备只提供有限的空间,所以采用抽样方法只需要获取和存储少量的信息就可以解决数据存储的问题。文中将介绍获取流和链路瞬时流量的采样方法。流和链接的采样序列分别用{x n(k),k∈Z}和{y m(k),k∈Z}表示,因此,流的采样流量序列可以表示为
式中,t k表示采样时刻。其次,流量采样的另一个问题是如何重建与实际流量近似的流的流量x n(t)。流的流量重构方法有插值法、矩阵填充法等。在这里,将采用插值的方法对粗粒度的网络流量进行数据填充。
在OpenFlow交换机中,流量的统计记录与流表项匹配的数据包和字节数,并记录流表项的持续时间。然后,可以使用统计数据来计算流量和链接的速度。控制器根据用户或应用程序测量链路中的流量或数据流量的要求,在短时间内发送两条请求消息。使用t1和t22个检查点来表示短时间间隔。检查点t1,控制器向交换机发送一些请求消息,然后等待包含统计信息S1和流条目持续时间T1的应答消息。在短暂的等待时间内控制器在检查点t2发送其他请求消息,然后等待返回的统计信息S2和流条目持续时间T2。在测量间隔期间增加的字节数为ΔS t。对于流条目的持续时间,假设它比测量间隔长得多,因此短间隔ΔT t中的数据速率可以写成
当测量间隔足够小时,考虑ΔR t为采样点t处的传输速率。通过收集端口和流量的统计信息,利用式(6)计算t时刻的链路负载和数据流的流量,然后根据式(4)建立流量矩阵。
当需要了解更多关于网络中数据传输信息时,可以使用抽样方法来测量网络中的流量,抽样间隔越小越好。但是对于细粒度流量测量方法,高频率的发送采样报文将会导致网络在控制器和交换机之间传输大量的请求消息和应答消息,严重影响交换机和控制器的性能以及增加网络负荷。因此,应采用有效的测量方法,在不影响测量性能的前提下,减少控制器与交换机之间统计信息的传输。基于采样的粗粒度流量测量方法是一种有效的解决方案。
2 流量矩阵填充和优化方法
采样法是在一定的时间间隔内周期获取流量和链路负荷。由于网络中的流量是随机变化的,文中将考虑采用均匀抽样的方法获取SDN架构中物联网网络的流量值。获取网络流量以后,通过使用插值方法,恢复细粒度的网络流量值,常用的数据插值方法包括三次样条插值、最近邻值插值、平均值插值等。三次样条插值是信号处理中广泛用于填充离散采样点的一种最光滑的逼近方法,其函数可表示为
式中:c0,c1,c1和c3均为待定系数;f(x)为插值结果;x为插补点相关结果。对于流量和链路负载的粗粒度离散采样,文中采用三次样条插值来恢复细粒度测量。此时获得的细粒度测量与网络中的实际流量之间存在着巨大的差距,由于网络中的流量具有相关性,且网络流量的在短时间内具有相关性。因此,文中将考虑利用网络中对网络流量的约束值对网络流
量插值结果进行优化,以减少插值结果的误差。通过填充两个粗粒度采样点之间的离散值,得到了流n的细粒度流量测量x n,因此插值测量得到的链路m上的链路负荷为被测链路m的实际路段负荷为Y m,因此插值结果与实际流的流量之间的差值可以写成通过利用约束条件构造了一个目标函数对其进行优化,具有多约束的优化目标函数可表示为
式中:约束条件C1表示链路负载与流量之间的约束,即Y m表示链路m的负载;约束条件C2中,L m为链路m上的最大负荷,即链路m上的总估计流的流量不能超过链路最大流量负荷;约束条件C3表示了链路负载非负;约束条件C4表示路由因子,即流量与链路之间的相关系数。通过求解等式(8)中的最优化模型,可获得更精确的流量测量结果。
由目标函数(8)中的约束C1可知,链路负荷与流量关联矩阵A有m行N列m≤N。在SDN架构的网络中,交换机转发大量的实时性比较到的数据,网络中任意2个源 目的节点之间的对数远远大于网络中链路的数据,即M≪N。因此,路由矩阵A是一个欠定的矩阵,即满足约束条件的解有无穷多组。文中将利用梯度下降的方法对目标函数进行求解,求解算法如表1所示,最终获得最优的网络流量结果。
表1 面向边缘计算的物联网网络流量测量方法Table 1 IoT network traffic measurement method based on edge computing
在表1的算法中,控制器从交换机中获取链路负载和流的流量,并用流量矩阵描述它们之间的关系。假设在2个采样点之间插入k个点,插补过程的复杂度为O(k)。为减小细粒度流量测量与实际流量之间的差距,优化过程的复杂度为O(kn),其中n为各插值点优化的复杂度,即算法1的复杂度是O(k(1+n))。
3 仿真分析
为了评估测量体系结构的性能和提出的测量方案,文中建立一个基于SDN架构的物联网网络流量测量平台,该平台使用Ryu作为控制器,并使用Mininet模拟具有交换机、主机和链路的网络。基于Open Flow的Mininet网络中的交换机采用Open vSwitch进行模拟,并将源IP、目的IP、源MAC地址、目的MAC地址作为流的匹配项,对数据包进行转发。
为了测量网络中的数据流量,文中构建一个简单的校园网网络拓扑,如图3所示。在此拓扑中,将摄像头作为数据源,将主机作为目的端,网络中的交换机都是Open Flow交换机。因此,对于每个主机与摄像头之间都有一个数据流,同时网络中也有很多其他的数据流,图3中仅画出5条数据流进行展示。对于网络中的所有链接,控制器利用LLDP协议获取全局的网络视图,在网络中的链路均采用双工传输模式。在面向边缘计算的SDN网络中利用Iperf模拟数据流,并利用所开发的测量模块对网络测量性能进行测试。通过采集到的网络流量数据进行分析,在此文章将随机选择2条流量进行分析,以下以数据流F1和F2作为例进行讨论。
图3 模拟物联网网络的拓扑图Fig.3 Simulation of the topology of the IoT network
在测量过程中,控制器根据用户的需求生成采样的时间间隔;然后控制器生成采样请求的request信息并将请求消息发送到被选中的交换机中去读取交换机中的统计信息,然后控制器等待Open Flow交换机返回的统计消息,并由数据接收模块对Reply的数据包进行处理。接着,控制器中的流量填充模块将执行数据插值和目标优化算法并获得细粒度的网络流量数值。在文中所执行的仿真实验中,并采用不同的采样粒度对网络流量进行测量结果的对比分析。细粒度网络流量测量即采用非常小的测量周期获取网络中数据流的统计信息,采样的粒度越小,网络流量的测量结果越准确。在实验中,文中将使用所提方法按不同的采样周期对网络流量进行粗粒度采样,并对利用文中所提算法进行细粒度的网络流的恢复;其中,FM、F1和F2均采用文中所提的测量方法,它们的粗粒度采样间隔分别为60、120和300 ms;另外,文中还将采用主成分分析法(PCA,principal component analysis)对网络流量进行预测,并将预测结果与文中所提方法进行对比和分析。为了评价文中所提算法的性能,将对绝对误差(AE,absolute error)、相对误差(RE,relative error)等进行分析。绝对误差和相对误差能够反映实际流量和测量结果之间的偏差。另外,将对网络流量测量结果的均方根误差(RMSE,root mean square error)进行分析。RMSE能够反映网络流量测量结果的精度和算法的稳定性。用变量EAEn、EREn和ERMSEn分布表示AE、RE和RMSE的测量误差。因此,EAEn、EREn和ERMSEn可以表示为
式中:x n表示在流时间段中提出的方案中第n条流在第i个时刻所测量的流量值是第n条流的实际流量值表示第n条流的K个测量结果的平均值。
图4绘制了文中所提算法的测量结果FM、F1、F2和PCA方法的测量结果曲线对比。发现它们都能反映流量的流量趋势。在图5和图6中,比较了细粒度的RE和AE流量测量、建议的方案和PCA方法。细粒度流量测量的采样间隔为1个时隙,并分别生成了该方法的采样间隔为60和120个时隙。图5和图6分别表示不同测量方案测量的相对误差和绝对误差。从图4中可以看出,大多数流量通过约束条件估计后获得的。比较AE和使用PCA方法提出的方法的RE,从图中可以发现,该方法的测量AE和RE均小于PCA,这主要是由于随机采样方法使用实际采样点以调节误差,并通过估算获得PCA方法的所有测量,所提出的方法比PCA方法具有更多的信息来估计网络中的流量。另外,从图中还可以发现两者的AE和RE的所有这些方法是稳定的有类似趋势,表明提出的测量方法是可行和有效的。
图4 不同测量方案的网络流量测量结果对比Fig.4 Comparison of network traffic measurement results of different measurement schemes
图5 测量结果的绝对误差对比Fig.5 Absolute error comparison of measurement results
图6 测量结果的相对误差对比Fig.6 Relative error comparison of measurement results
在图7中,将不同方法的测量值与实际流量进行比较,对角线与实际流量进行比较。从图7中可以发现细粒度的效果是最好的,而PCA是最差的。和随机抽样方案提出与下采样预期优于较大的采样预期,这主要是由于流量的随机波动和间隔。因此,在FM测量方案性能仍优于PCA方法。
图7 网络流的测量值与实值的对比Fig.7 Comparison of measured and real values of network flow
在图8和图9中,比较了不同方法的RE和REMS的累积分布函数图(CDF,cumulative distribution function)。在图8中可以发现,相对错误误差细粒度测量和方案提出,方法F1在相对误差为20%时大于90%,在相对误差为20%时,4种方法均大于60%左右,因此细粒度测量方法和建议采用方案F1,用于准确测量网络中的流量。图9比较RMES的CDF不同的方法。x轴是相对RMSE,y轴是RMSE的概率。流量的RMSE这里主要用于反映测量误差的可度性。图9表明文中所提出方案要比PCA方法稳定。从图8~图9中可以发现大多数测量点的测量误差均在10%~40%之间。
图8 网络流测量结果的相对误差的CDF图Fig.8 CDF of relative error of network traffic measurement results
图9 网络流测量结果的RMSE的CDF图Fig.9 CDF of RMSE of network traffic measurement results
4 结 语
流量测量的精度和粒度对网络交通工程产生了巨大的影响。研究了面向边缘计算的物联网网络中,采用SDN网络架构情况下的网络流量测量方法。提出的测量体系结构由两部分组成:第一部分,控制器对网络流量进行粗粒度的采样,并从控制器中获得网络拓扑和网络路由矩阵,然后构建流量矩阵;第二部分,控制器执行插值和优化过程,获得细粒度流量测量结果。最后,构建了一个软件仿真验证平台来验证所提出的流量测量方法。仿真结果表明,该方案是有效和可行的。