OpenFlow协议中Enqueue行动的缓存分配研究∗

2021-08-08 11:13林海涛
计算机与数字工程 2021年7期
关键词:队列数据包时延

阳 凯 林海涛

(海军工程大学电子工程学院 武汉430033)

1 引言

SDN架构提出以来,因其将控制与数据转发平面分离的设计架构,和强大的集中控制能力,被视为未来网络的主流方向之一。在网络业务流的QoS保障方面SDN网络传输性能的研究主要围绕路由策略展开[1]。然而由于网络参数的相对客观性,大多数流控算法只能基于网络资源来被动的优化流量转发路径。缓存的配置方式作为可控因素,对流量传输有很大影响,是解决流量QoS的一个可研究思路。OpenFlow 1.0中定义了Enqueue行动,用于实现QoS等功能的队列支持,可将多个队列链接至1个物理端口。但是OpenFlow没有给出En⁃queue行动进行QoS设置的具体方法。

在同一端口同时转发多个数据流的数据包时,需要端口缓存来吸收流量负载的波动,一个自然而然的问题就是需要多少缓存,每个交换机都根据某种排队规则来决定如何缓存等待发送的数据[2]。缓存区太小,数据溢出概率大,易造成数据丢失;缓存区太大,则浪费高速存储器的资源,预处理器的性价比低[3],缓冲区执行的操作是决定交换机服务质量特性的主要方面[4]。长期以来,用于缓存长度的经验方法是[RFC 3439][5],缓存数量等于平均往返时延乘以链路的容量[6],具有相当大的不准确性。

目前,一般的网络排队调度算法有先进先出和公平排队算法[7],分组公平排队类的算法会影响QoS流的传输质量,是通过牺牲流速率来避免网络拥塞,且缺乏优先级保障。目前缓存队列研究中,通常采用FIFO模型[8]。江勇等[9]通过引入排队反馈机制,检测将要发生拥塞时向输入端反馈,从而缓解或者避免拥塞。王文博等[10]将整个端口排队系统视为一个多流表多队列系统,通过经典排队模型求出的平均排队长和平均等待时间来评估系统[11]。但是其设定系统对待每一个任务请求都是平等的,不符合QoS流的应用实际。为了达到较高的发送速率和较低的丢包率,还有很多其他动态网络资源分配机制得到广泛应用,如加权平均排队、早期随机检测、BLUE、XCP和RCP等[12~13],这些方法的主要目的是将主动队列管理的过程自动化,但上述队列管理机制难以适应多种QoS类型的流量应用场景[14]。

在实际应用中,控制不同优先级用户的QoS已经成为迫切的需求[15]。将端口排队系统看做多流表多队列系统,通过统计测量确定数据流中数据包到达的概率分布,根据QoS服务质量目标确定相应排队模型,依据目标时延、目标丢包率、目标带宽等QoS服务质量目标,计算出符合要求的缓存队列大小,来执行端口的Enqueue缓存分配行动,可以保障数据流QoS需求。

2 建立模型

SDN网络和传统网络一样,数据包的到达过程符合随机过程。首先要根据网络实测数据得到数据包到达间隔和服务时间的经验分布,然后按照统计学的方法确定合于哪种理论分布,并估计它的参数值。

对网络中的各节点交换机来说,用户产生的业务数据包是突发的,其数量和持续时间不定、优先级相对也是随机的。设N(t)表示在时间区间[0,t)内到达的数据量,令Pn()t1,t2表示在时间区间(t2>t1,n≥0)内有n个数据到达的概率,在充分小的Δt时间内有其中,λ>0表示概率强度。数据的到达分布形成泊松流,可得在[0,t)区间内至少有1个数据到达的概率是1-P0(t)=1-e-λt。缓存处理时间v的分布也服从指数分布,设它的分布函数和密度分别是。其中,μ表示单位时间能被处理完的数据量,称为平均处理率。

通过统计每个数据流进入端口缓存的监测数据,得到在时间T内,同时有n个数据到达,则可得到再统计n个已完成端口处理转发的数据的平均时间,设处理第i个数据包所需时间为vi,则可得到数据包的平均处理率设为服务强度。当ρ<1时,排队长度为有限长,最终达到稳定状态。

实际缓存系统中,缓存量有限,设系统的最大容量为N。对于单缓存队列的情形,排队等待的数据最多为N-1,在某一数据到达时,如缓存队列中已有N个数据,那么以后到达的数据就被拒绝进入系统。稳态时,可根据排队论的Little公式得到数据包排队系统的各种指标:系统中数据平均队长Ls系统中数据平均逗留时间Ws的期望值。

一般来说,Ls越大,处理效率越低。而Ls过低,又不利于平衡网络波动,影响传输质量。逗留时间为数据包从进入排队系统到转发出的时间,为等待时间和服务时间之和。若QoS流有延时服务质量目标dobj,则Ws≤dobj,有:

此条件下得到的N值即为dobj下的缓存队列最大队长,记为Lmax,超过此队长,则超过统计概率PN会超出延时。

在缓存队长L(L

可得到最小缓存队长Lmin,则在此缓存队长下可以保证丢包率不超过目标pobj。

3 模型仿真及结果分析

本文使用Matlab编写模型仿真。为形成对比数据,每个模型设置三组参数进行计算。每个数据包均携带优先级和QoS服务质量指标。接收端统计数据包到达的分布特征,数据处理率直接设定,得到模型参数,通过不同系列缓存队长值计算得到缓存队长和系统时延之间的关系曲线。图1为M/M/1单队列缓存时延目标要求下的缓存-时延曲线,结合式(2)分析,此模型时延存在稳态上限值,处理率μ越大,稳态下的时延极限越小。服务强度ρ决定了曲线曲率变化速度。

图1 M/M/1模型下缓存队长和时延曲线

图2 为M/M/1模型下队长与丢包率曲线图。结合式(3)分析,此模型下的丢包率由服务强度ρ决定,同等队长下,服务强度越大,丢包率越小。随着缓存队长的增加,丢包率趋于零。

图2 M/M/1模型下缓存队长与丢包率曲线

对比三种模型特征,针对不同QoS业务的服务质量目标,可以用相应的缓存分配方式来满足需求。总结来说,λ<μ时,用M/M/1模型,用式(2)、式(3)来计算符合服务目标要求的队列长。通过缓存的调整,可以在满足QoS服务目标的前提下,优化缓存空间分配,提高缓存资源的利用效率,进而提高网络的吞吐量。

4 结语

在SDN网络中,要保障特定数据流QoS指标,除了在流量控制算法上进行创新和改进之外,通过端口Enqueue排队执行优化的缓存策略也是一种有效的方法。根据数据流统计特征,应用合理的排队模型建模来分配和使用端口缓存,能够提高网络端口的缓存利用率,提高转发效率和吞吐量,从而提升网络的服务价值。数据包符合泊松模型是较为普遍但不绝对的情况。当数据包到达规律是任意分布时,就要采用一般服务时间M/G/1模型,在以后的研究中可以做进一步探讨。

猜你喜欢
队列数据包时延
二维隐蔽时间信道构建的研究*
智能网联车辆队列紧急工况控制策略设计*
计算机网络总时延公式的探讨
计算机网络总时延公式的探讨
基于物联网的IT运维可视化管理系统设计与实现
队列队形体育教案
《舍不得星星》特辑:摘颗星星给你呀
C#串口高效可靠的接收方案设计
青春的头屑
网络数据包的抓取与识别