一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于可编程数据平面的微突发检测与消除方法、系统

2022-07-14 00:32:49 来源:中国专利 TAG:


1.本发明属于网络通信技术领域,更具体地,涉及一种基于可编程数据平面的微突发检测与消除方法、系统。


背景技术:

2.随着5g移动业务在全球范围内的普及,数据流量迅速增加。5g场景下物联网从网络边缘接入、承载大量数据,发挥着重要作用。物联网设备通过物联网网关连接到物联网服务器。物联网网关通过蜂窝、蓝牙等方式提供无线覆盖,多个网关构成边缘网络对其覆盖区域内的流量进行聚合,并发送到物联网远程核心服务器。大量物联网设备同时传输数据导致聚合流量突然增加称为微突发。微突发流量可能会超过边缘网络节点网关的队列缓存空间,导致数据包时延增加甚至被丢弃。同时物联网应用流量的需求特点具有差异性,如远程手术要求低时延低抖动;视频监控对时延几乎没什么要求。
3.物联网边缘网络具有一定的计算和存储资源同时距离微突发源头最近,是解决微突发的理想之处。微突发持续时间短且流量巨大,如何快速检测和消除一直是个难题。
4.使用软件定义网络(software-defined networking,sdn)来实现的边缘网络虽然具有控制与数据分离的体系结构带来的灵活优势,但也面临控制平面与数据平面存在通信、交互延迟的缺点。在一个集中的sdn控制器控制多个边缘交换机的体系结构中,边缘交换机依赖于控制器来获得指令。微突发持续时间很短,通常是几百毫秒,因此首要问题就是快速检测。控制平面对数据平面采取周期性地监控。网络测量周期较大而微突发持续时间较短导致无法发现微突发。微突发产生的流量巨大,通常达到tb级,会带来极高时延等不良后果,因此另一个重要问题则是快速消除。消除微突发的常见方法与相应不足如下:选择其他的交换机出口对微突发流进行重路由,该方法需要控制平面参与,通信与交互的延迟较大,不能及时消除微突发;以邻居交换机作为微突发流量的缓存空间,该方法无法应对邻居交换机队列也发生微突发的场景;在主机端进行发送速率调整等,该方法需要主机端修改网络协议;等等。
5.近些年可编程交换机迅速发展,p4交换机(支持使用p4编程语言)构成的可编程数据平面提供了一种用户自定义数据包处理和转发行为的灵活方式,避免了与控制平面的通信延迟,因此采用p4交换机作为物联网边缘交换机的实体是更优的选择。p4交换机可以灵活编程,但由于要支持数据高速转发同时内部寄存器等资源较少,所以自定义的转发算法要有较低的时间和空间复杂度。因此在p4交换机上实现的微突发检测与消除方法也不得不考虑资源上的限制。


技术实现要素:

6.针对现有技术的以上缺陷或改进需求,本发明提供了一种基于可编程数据平面的微突发检测与消除方法、系统,其目的在于如何同时考虑到微突发流的时延需求和物联网边缘网络的物理资源限制,实现快速检测和消除微突发。
7.为实现上述目的,本发明提供了一种基于可编程数据平面的微突发检测与消除方法,包括:
8.s1.设置各优先级队列的最大出口速率和最大排队时延,微突发流阈值速率;
9.s2.解析入流水线中多个数据流的时延需求,按照数据流所需时延越低,队列优先级越高的原则,将数据流分配到不同的优先级队列;
10.s3.对每个数据流,预估数据流进入所属优先级队列的入口速率,并根据数据流所属优先级队列的最大出口速率,预估数据流进入所属优先级队列的排队时延;
11.若预估的入口速率大于设置的微突发流阈值速率,并且预估的排队时延大于对应优先级队列设置的最大排队时延,则判断该数据流为微突发流,并执行步骤s4;否则,返回步骤s2;
12.s4.以微突发流所需时延作为保障目标,对优先级比微突发流所属优先级低的流进行动态速率调整。
13.优选地,对每个数据流,预估数据流进入所属优先级队列的入口速率,具体为:
14.01.判断数据流当前数据包进入交换机流水线的时间戳tc,与该流上一个数据包时间戳t
p
的大小;若tc大于t
p
,则设置当前数据包与上一个数据包的时间间隔ti=t
c-t
p
;否则,ti设置为0;
15.02.统计进入数据流所属优先级队列的数据包序列数目n;
16.03.由以下公式计算数据流进入所属优先级队列的入口速率v:
[0017][0018]
i表示当前数据包与上一个数据包的时间间隔的序列标号。
[0019]
优选地,根据数据流所属优先级队列的最大出口速率,预估数据流进入所属优先级队列的排队时延,具体为:
[0020]
求解数据流所属优先级队列最大出口速率的倒数,得到相邻数据包的最小传输时延to;
[0021]
由以下公式计算数据流进入所属优先级队列的排队时延tq:
[0022][0023]
优选地,步骤s4具体为,
[0024]
s4.1.如果存在多条数据流比微突发流所属优先级低,则优先丢弃优先级最低的数据流的数据包,再丢弃优先级次低的数据包,以此类推;
[0025]
s4.2.对于需要丢包的数据流,则设置丢包间隔w和监控时间tm;
[0026]
s4.3.每w个数据包丢弃第w个数据包;
[0027]
s4.4.若经过监控时间tm,tq仍大于设置的最大排队时延,则减小丢包间隔w;若否,则结束丢包。
[0028]
优选地,每次将丢包间隔w减小为原来的一半。
[0029]
优选地,w最小为1且不再改变。
[0030]
总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果。
[0031]
缩小检测微突发的时间。p4中的meter测量流的速率,meter三色标记(trtcm)测量ip数据流并将其数据包标记为绿色、黄色或红色。需要提前设置pir、cir两种速率,pir大于cir。如果数据流速率超过pir,则将其标记为红色。否则,根据它是否超过cir,将其标记为黄色或绿色。通常设置某一对固定的pir、cir无法达到预期测量效果。数据平面的meter常需要联合控制平面去动态调整pir、cir来达到较为精确的测量效果,但由于控制平面和数据平面的延迟,对微突发流速率不能取得好的测量效果。本发明提出在数据平面快速估计速率的方法,不需要控制平面的参与,仅使用寄存器、计数器等资源和内置的时间戳等信息,便可以达到快速检测。
[0032]
检测微突发时不会增加入流水线的输入带宽。p4交换机采用流水线的架构处理和转发数据包,数据包在入流水线上选择进入的出口队列或被丢弃,随后是不可编程的流量管理器(包含队列),在出流水线上可以获得在队列中的相关信息(队列长度、排队时延等)。相关队列信息可以作为判断微突发的标志,通常需要将相关队列信息通过包复制传递到入流水线,以对微突发流采取相应的处理策略。若对所有数据包都采取以队列信息作为包头的包复制加传递的方式,会增加入流水线的输入带宽同时处理代价较大。本发明提出快速估计排队时延的方法,通过记录数据包到达时间和已知的数据包离开时间来估计排队时延,不会增加入流水线的输入带宽。
[0033]
快速消除微突发,保障微突发流的时延需求。背景介绍的微突发消除方法直接考虑流量的大小并没有直接针对流的时延需求。本发明的方法针对微突发流直接以估计的排队时延作为保障目标,通过在入流水线丢包的方式,即丢弃一定数量时延需求最低的流量数据包,来快速消除微突发并保障其时延需求。
附图说明
[0034]
图1是一种基于可编程数据平面的微突发检测与消除方法流程图;
[0035]
图2是针对时延需求的微突发消除(丢包过程)示意图。
具体实施方式
[0036]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0037]
一种基于可编程数据平面的微突发检测与消除方法,
[0038]
本发明的方法所输入的微突发流量应当包括相应的时延需求,如经过某交换机的最大排队时延等,可以通过在ip包头携带相应的时延信息来生成相应流量。针对已经包含时延敏感需求的流量,本方法的处理流程包括以下步骤:
[0039]
步骤1:设置各优先级队列的最大出口速率和最大排队时延,微突发阈值速率。三个参数均在程序运行前设定,为可调整参数,速率表示方式为单位时间内经过的数据包数目。
[0040]
步骤2:解析入流水线中多个数据流的时延需求,分配到优先级队列。该流要求时延越低,队列优先级越高。
[0041]
步骤3:微突发流检测。估算该流进入优先级队列的入口速率。结合该流所属优先级队列的最大出口速率,估算在优先级队列中的排队时延。若该流估算的入口速率大于设置的微突发流阈值速率,并且估算的排队时延大于设置的优先级队列最大排队时延,则认为该流是微突发流。
[0042]
步骤4:以时延为保障目标的微突发消除。微突发消除具体方法为:对某些优先级比该流优先级低的流进行动态速率调整。
[0043]
优选地,步骤3包括以下子步骤:
[0044]
步骤3-1:记录该流的当前数据包进入交换机流水线的时间戳为tc,读出该流上一个数据包时间戳为t
p
。若tc大于t
p
,记录当前数据包与前一个数据包的时间间隔为ti,即ti=t
c-t
p
。否则,ti为0。
[0045]
步骤3-3:根据该流所属优先级队列的最大出口速率,得到相邻数据包的最小传输时延to。最小传输时延为最大出口速率的倒数,如设置最大出口速率为每秒1000个数据包,则to为0.001秒。
[0046]
步骤3-4:记录进入该优先级队列的数据包数目为n。该流估算的排队时延tq,估算的入口速率vi由以下公式计算:
[0047][0048][0049]
若该流估算的入口速率vi大于设置的微突发流阈值速率,并且估算的排队时延tq大于设置的优先级队列最大排队时延,则认为该流是微突发流并且需要保障时延。
[0050]
优选地,步骤4包括以下子步骤:
[0051]
步骤4-1:对某些优先级比该微突发流优先级低的流进行动态速率调整。如果存在多条流比该流优先级低,则优先调整优先级最低的流的速率,比如本发明实例中该流优先级为7,则优先丢弃优先级为0的流的数据包,再丢弃优先级为1的流的数据包,依此类推。
[0052]
步骤4-2:判断该优先级的流是否丢包。如果丢包,则设置丢包间隔w和监控时间tm。每w个数据包丢弃第w个数据包(如,计数器统计10个数据包,当计数到10个数据包就丢弃第10个数据包),若经过监控时间tm,tq仍大于设置的最大排队时延,减小丢包间隔,具体流程参考图2,本发明实施例将丢包间隔w变为原来的一半,w最小为1且不再改变。如果不丢包,则无操作。
[0053]
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献