一种软件定义网络环境下的网络延迟测量优化方法与流程

文档序号:12037699阅读:426来源:国知局
一种软件定义网络环境下的网络延迟测量优化方法与流程

本发明涉及一种网络延迟测量优化方法,更具体的说,尤其涉及一种软件定义网络(softwaredefinednetwork,简称sdn)环境下的网络延迟测量优化方法。



背景技术:

互联网在近二十多年来不断迅速发展,已经成为社会基础设施至关重要的一部分。当前的互联网运行在20多年前设计的核心架构上,随着网络规模的迅速膨胀和应用类型的日益丰富,其显现出越来越多的问题。互联网结构和功能的不断复杂化,使得网络管控能力持续减弱。由于所承载的功能不断扩展(如分组过滤、区分服务、组播、服务质量、流量工程等),作为网络核心的路由器已经变得臃肿不堪。出于市场占有率等考虑,传统网络中的交换机或路由器只能通过命令行接口等方式对外开放少量服务和管理接口,研究人员难以在真实网络中实验和部署新型网络体系,给互联网技术革新造成了难以逾越的桎梏。为了解决现有互联网体系结构面临的诸多难题,世界各国已经大规模开展未来互联网的研究。

2008年,美国斯坦福大学mckeown教授于国际顶级会议acmsigcomm上发表了关于openflow的研究成果。openflow允许用户通过其开放的流表对网络处理行为进行控制,是一种支持网络创新研究的新型网络模型。基于openflow所带来的可编程特性,mckeown教授进一步提出了软件定义网络(softwaredefinednetwork,sdn)概念。sdn技术的主要优势包括:转发控制分离,硬件设备通用化;集中优化网络资源,有利于提高网络资源利用率;网络管理大幅简化;加快网络创新速度,新功能上线周期显著缩短等。2011年,在雅虎、谷歌、德国电信等几家公司的倡议下,国际组织开放网络基金会onf(opennetworkfoundation)成立,致力于sdn及其核心技术openflow的标准化及商业化。2012年,谷歌宣布其主干网络已经全面运行在openflow上,并且通过10g网络链接分布在全球各地的12个数据中心,使广域线路的利用率从30%提升到接近饱和。谷歌的成功案例,在实践上证明了sdn的可行性,有利地促进了sdn的发展。2012年,国际富享声望的mittechnologyreview杂志把openflow选为十大未来技术;国际研究机构gartner预测sdn技术将成为未来五年内it领域十大关键趋势和技术影响之一。在短短几年内,sdn技术已近在全球范围内掀起了新的it热潮,引起了学术界和工业界的广泛关注和研究。

在软件定义网络环境下,网络度量是资源有效调度的基础条件,目前相关研究比较薄弱,已有的研究不能有效满足对软件定义网络特别是大规模网络的低负载、高准确性度量。特别是很多应用程序会因为掌握到网络端到端的延迟信息而获益,网络延迟是网络状态的一个重要指标,许多对服务质量敏感的软件定义网络应用程序要求网络端到端的延迟满足一定的约束条件,因此研究针对延迟的网络测量及其优化方法具有重要的实践意义。

当前许多对服务质量敏感的软件定义网络应用程序要求网络端到端的延迟满足一定的约束条件,而已有的网络测量方法往往只能定时测量、均匀测量,如果更精确只能通过增加测量次数和频率达到,因为测量本身也要占用网络资源,这使得原本的网络资源得到大量消耗。从而无法更精确的得到实际的网络延迟变化。针对此问题,本发明提供一种软件定义网络环境下,能够自动根据网络延迟变化,对网络延迟测量的频度和周期进行优化调整的方法,能够保障和提高网络延迟测量的精确度,降低测量延迟所占用的网络资源消耗。



技术实现要素:

本发明为了克服上述技术问题的缺点,提供了一种既能保证网络延迟测量精度又可避免网络资源过度消耗的软件定义网络环境下的网络延迟测量优化方法。

本发明的软件定义网络环境下的网络延迟测量优化方法,其特征在于,通过以下步骤来实现:

a).获取网络延迟数据,在软件定义网络环境下,通过控制器,每间隔固定的时间t测量一次某相邻两交换机之间链路的网络延迟x,设共测量n次,得到一组延迟集合x(x1,x2,...,xn),xi为第i次测量所获得的网络延迟,1≤i≤n;

b).三角函数拟合,将延迟集合x(x1,x2,...,xn)中的延迟数据进行三角函数拟合,其通过以下步骤来实现:

b-1).求平均值,通过公式(1)求取延迟集合x中网络延迟的平均值e:

式中:n为延迟集合x中网络延迟的数目;

b-2).求差值序列,求取延迟集合x中各网络延迟与平均值e的差值,得到延迟差值序列y(y1,y2,...,yn),y1=x1-e,y2=x2-e,…,yn=xn-e;

b-3).求网络延迟方差,通过公式(2)计算延迟集合x的方差σ2

其中,1≤i≤n;

b-4).得到拟合三角函数,将求取的延迟差值序列y中的值代入公式(3)中,获取拟合三角函数:

其中,τ为最近一次的测量周期,其初始值为t;z为时间;

c).计算测量间隔,通过拟合三角函数得到下一次测量网络延迟的时间间隔,其具体通过以下步骤来实现:

c-1).确定波峰或波谷位置,对拟合三角函数f(z)求导数,并令求取最近一次导数为0的时间点t0,则三角函数f(z)最近一次波峰或波谷的时间位置为t0;

c-2).获取测量时间点,通过公式(5)计算出下一次测量的时间点:

其中,tn+1为下一次测量的时间点,t0为拟合三角函数f(z)最近一次波峰或波谷的时刻,τ为最近一次的测量周期,k为x序列总时间所包含τ的倍数的取整值;n为x序列中所包含的网络延迟的数目;

c-3).获取测量间隔,通过公式(6)求取下一次测量的时间间隔τ′:

tn为x序列中第n次的测量时刻;

d).测量延迟并更新序列,根据步骤c)中所求取的时间间隔τ′,tn时刻开始计时经过τ′时间段后,采用步骤a)中的方法获取两交换机的网络延迟,然后将测量的网络延迟加入延迟集合x中,并将x中第一个网络延迟删除,得到新的延迟集合x;x中为最新的n次测量的延迟值;

e).若不想进一步测量相应链路的延迟,则停止测量运算;如果继续测量相应链路的网络延迟,则利用步骤d)得到的新的延迟集合x,返回执行步骤b),并重复步骤b)、c)和d)即可。

本发明的软件定义网络环境下的网络延迟测量优化方法,步骤a)中所述的获取网络延迟数据,具体通过以下步骤来实现:

a-1).获取到一个交换机的时间,软件定义网络sdn控制器向其中一个交换机si发送测量数据包,记录发送时间;交换机si收到数据包后马上返回给控制器,控制收到发送的数据包后记录接收时间,sdn控制器将接收与发送的时间之差记为t控制器到si时间;

a-2).获取到另一个交换机的时间,sdn控制器向另一个交换机sj发送测量数据包,记录发送时间;交换机sj收到数据包后马上返回给控制器,控制收到发送的数据包后记录接收时间,sdn控制器将接收与发送的时间之差记为t控制器到sj时间;

a-3).获取总时间,sdn控制器向交换机si发送测量数据包,并记录发送时间;同时控制器下发路由流表,使得交换机si收到这个数据包时,将该数据包转发给sj,交换机sj收到消息后马上返回给控制器;控制器收到这个消息后,记录下接收时间;控制器计算出发送数据包和接收到数据包的时间差,记为t总时间;

a-4).计算延迟时间,sdn控制器通过公式计算得到网络延迟。

本发明的软件定义网络环境下的网络延迟测量优化方法,所述延迟集合x中所包含的延迟时间的数目n介于10~30之间。

本发明的有益效果是:本发明的网络延迟测量优化方法,首先利用最近n次测量的网络延迟构成延迟集合x,再将延迟集合x中每个元素减去其平均值构成差值序列集合y,利用集合y中的元素得到拟合三角函数,最后得到与最后一次测量周期成正比与集合y中元素的方差成反比时间间隔,即集合x中网络延迟变化越小,则下一次测量的时间间隔可以更长些,x中网络延迟变化越大,下一次的量的时间间隔理应更短,既能够保障和提高网络延迟测量的精确度,又降低测量延迟所占用的网络资源消耗。

附图说明

图1为本发明的软件定义网络环境下的网络延迟测量优化方法的流程图;

图2为本发明中获取网络延迟数据的流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,给出了本发明的软件定义网络环境下的网络延迟测量优化方法的流程图,其通过以下步骤来实现:

a).获取网络延迟数据,在软件定义网络环境下,通过控制器,每间隔固定的时间t测量一次某相邻两交换机之间链路的网络延迟x,设共测量n次,得到一组延迟集合x(x1,x2,...,xn),xi为第i次测量所获得的网络延迟,1≤i≤n;

如图2所示,给出了本发明中获取网络延迟数据的流程图,其通过以下步骤来实现:

a-1).获取到一个交换机的时间,软件定义网络sdn控制器向其中一个交换机si发送测量数据包,记录发送时间;交换机si收到数据包后马上返回给控制器,控制收到发送的数据包后记录接收时间,sdn控制器将接收与发送的时间之差记为t控制器到si时间;

a-2).获取到另一个交换机的时间,sdn控制器向另一个交换机sj发送测量数据包,记录发送时间;交换机sj收到数据包后马上返回给控制器,控制收到发送的数据包后记录接收时间,sdn控制器将接收与发送的时间之差记为t控制器到sj时间;

a-3).获取总时间,sdn控制器向交换机si发送测量数据包,并记录发送时间;同时控制器下发路由流表,使得交换机si收到这个数据包时,将该数据包转发给sj,交换机sj收到消息后马上返回给控制器;控制器收到这个消息后,记录下接收时间;控制器计算出发送数据包和接收到数据包的时间差,记为t总时间;

a-4).计算延迟时间,sdn控制器通过公式计算得到网络延迟。

b).三角函数拟合,将延迟集合x(x1,x2,...,xn)中的延迟数据进行三角函数拟合,其通过以下步骤来实现:

b-1).求平均值,通过公式(1)求取延迟集合x中网络延迟的平均值e:

式中:n为延迟集合x中网络延迟的数目;

b-2).求差值序列,求取延迟集合x中各网络延迟与平均值e的差值,得到延迟差值序列y(y1,y2,...,yn),y1=x1-e,y2=x2-e,…,yn=xn-e;

b-3).求网络延迟方差,通过公式(2)计算延迟集合x的方差σ2

其中,1≤i≤n;

b-4).得到拟合三角函数,将求取的延迟差值序列y中的值代入公式(3)中,获取拟合三角函数:

其中,τ为最近一次的测量周期,其初始值为t;z为时间;

c).计算测量间隔,通过拟合三角函数得到下一次测量网络延迟的时间间隔,其具体通过以下步骤来实现:

c-1).确定波峰或波谷位置,对拟合三角函数f(z)求导数,并令求取最近一次导数为0的时间点t0,则三角函数f(z)最近一次波峰或波谷的时间位置为t0;

c-2).获取测量时间点,通过公式(5)计算出下一次测量的时间点:

其中,tn+1为下一次测量的时间点,t0为拟合三角函数f(z)最近一次波峰或波谷的时刻,τ为最近一次的测量周期,k为x序列总时间所包含τ的倍数的取整值;n为x序列中所包含的网络延迟的数目;

c-3).获取测量间隔,通过公式(6)求取下一次测量的时间间隔τ′:

tn为x序列中第n次的测量时刻;

d).测量延迟并更新序列,根据步骤c)中所求取的时间间隔τ′,tn时刻开始计时经过τ′时间段后,采用步骤a)中的方法获取两交换机的网络延迟,然后将测量的网络延迟加入延迟集合x中,并将x中第一个网络延迟删除,得到新的延迟集合x;x中为最新的n次测量的延迟值;

e).若不想进一步测量相应链路的延迟,则停止测量运算;如果继续测量相应链路的网络延迟,则利用步骤d)得到的新的延迟集合x,返回执行步骤b),并重复步骤b)、c)和d)即可。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1