一种SDN网络中同步报文排队延时控制方法和装置与流程

文档序号:11524081阅读:276来源:国知局
一种SDN网络中同步报文排队延时控制方法和装置与流程

本发明涉及通信技术领域,具体涉及一种sdn网络中同步报文排队延时控制方法和装置。



背景技术:

sdn(softwaredefinednetwork,软件定义网络),是emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术openflow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。

网络时间同步协议都存在同步报文往返测距延时不对称问题,具体表现在:①同步报文在网络中交换节点时延的不确定性。同步报文在经过传输介质、中继器、交换机和路由器等网络交换设备产生了往返路径时延,在网络负载发生变化时,同步测距报文需要与其他类型的报文在网络交换设备缓存中一起排队,造成节点时延不稳定,甚至会发生冲突、丢包,这些都会影响假设前提的成立。②同步报文受在网络中往返传播路径的不确定性。同步报文经过网络交换节点时,自由选择路由使得同步测距报文往返路径不一致,也会使得测距同步不准确。

目前ieee1588协议能提供最高的时间同步精度,而未来智能电网遵循的61850规约中对于时间同步问题,已经给出了使用ieee1588解决方案,并将其引入电力行业形成了ieee61588协议。

ieee1588协议中针对延时不对称提出的改进措施,采用硬件支持方案,ieee1588协议中引入边界时钟和透明时钟机制来减少经过复杂网络而引起时延抖动,都需要专门的硬件支持。ieee1588协议提出之初,主要应用与本地网络的测控系统的时钟同步。ieee1588v引入边界时钟与同步终端节点之间实现逐级同步,减少了同步报文穿越造成的延时抖动,边界时钟还用于划分同步子域和连接底层通信技术不同的域,但这样容易产生时间误差的累计。它的第二个版本ieee1588v2在v1版本基础上额外引入透明时钟则是通过测量同步报文的驻留时间(同步报文穿过透明时钟所需的时间)以及两个透明时钟间对应端口之间的传输时延,写入follow_up相应字段传递给从时钟完成修正。目前基于ieee1588协议软件算法改进研究主要是将非对称链路时延认为是一种干扰噪声,设计相应的滤波算法;而采用固定时延思想的文章也都是在有硬件tc设备支持下才能实现。

因此,如何克服同步报文往返测距延时不对称而出现延时抖动的现象,成为一个亟待解决的技术问题。



技术实现要素:

因此,本发明要解决的技术问题在于现有技术中因同步报文往返测距延时不对称而出现延时抖动的现象。从而提供一种同步报文排队延时控制方法和装置。

有鉴于此,本发明实施例的第一方面提供了一种sdn网络中同步报文排队延时控制方法,包括:根据预设标识建立时间同步队列;获取时间同步队列的头部同步报文的等待时间;判断所述等待时间是否小于预设固定延时;若所述等待时间小于所述预设固定延时,根据所述等待时间计算所述时间同步队列的第一实际服务速率;根据所述第一实际服务速率和所述预设固定延时计算伪报文的目标长度;在所述头部同步报文前插入所述目标长度的伪报文。

优选地,所述根据所述第一实际服务速率和所述预设固定延时计算伪报文的目标长度包括:获取所述预设固定延时、所述头部同步报文之前的每个同步报文的第一长度、所述头部同步报文之前的每个同步报文前插入的伪报文的第二长度、优先级高于所述时间同步队列的第一业务队列包含的每个业务报文的第三长度、所述第一业务队列的第二实际服务速率、优先级低于所述时间同步队列的第二业务队列包含的每个业务报文的第四长度以及所述第二业务队列的第三实际服务速率;根据所述预设固定延时、所述第一实际服务速率、所述第一长度、所述第二长度、所述第三长度、所述第二实际服务速率、所述第四长度以及所述第三实际服务速率计算得到所述目标长度。

优选地,采用如下公式计算得到所述目标长度:

其中,是在时间同步队列i的头部同步报文k前插入的伪同步报文的所述目标长度,ri-real是所述时间同步队列i当前的所述第一实际服务速率,是所述时间同步队列i的头部同步报文k的所述预设固定延时,是所述时间同步队列i的第k′个同步报文的所述第一长度,是所述第k′个同步报文前插入的伪报文的所述第二长度,是所述第一业务队列j包含的第k个业务报文的所述第三长度,是所述第二业务队列h包含的第k个业务报文的所述第四长度,rj-real是所述第一业务队列j的所述第二实际服务速率,rh-real是所述第二业务队列h的所述第三实际服务速率,k是大于1的正整数,k′是大于0且小于k的正整数,i是大于0的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。

优选地,采用如下公式计算得到所述第一实际服务速率:

其中,ri-real是所述时间同步队列i当前的所述第一实际服务速率,ri是所述时间同步队列i的第一预约服务速率,rj是优先级高于所述时间同步队列i的第一业务队列j的第二预约服务速率,rh是优先级低于所述时间同步队列i的第二业务队列h的第三预约服务速率,rremain是队列调度器的剩余服务速率,i是大于0且小于n的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。

优选地,所述伪报文内容为空。

优选地,所述获取时间同步队列的头部同步报文的等待时间包括:获取所述时间同步队列的优先级对应的平均时延和丢包率;根据所述平均时延和所述丢包率计算得到所述等待时间。

优选地,还包括:若所述等待时间大于所述预设固定延时,则丢弃所述头部同步报文。

本发明实施例的第二方面提供了一种sdn网络中同步报文排队延时控制装置,包括:建立模块,用于根据预设标识建立时间同步队列;获取模块,用于获取时间同步队列的头部同步报文的等待时间;判断模块,用于判断所述等待时间是否小于预设固定延时;第一计算模块,用于若所述等待时间小于所述预设固定延时,根据所述等待时间计算所述时间同步队列的第一实际服务速率;第二计算模块,用于根据所述第一实际服务速率和所述预设固定延时计算伪报文的目标长度;插入模块,用于在所述头部同步报文前插入所述目标长度的伪报文。

优选地,所述第二计算模块包括:获取单元,用于获取所述预设固定延时、所述头部同步报文之前的每个同步报文的第一长度、所述头部同步报文之前的每个同步报文前插入的伪报文的第二长度、优先级高于所述时间同步队列的第一业务队列包含的每个业务报文的第三长度、所述第一业务队列的第二实际服务速率、优先级低于所述时间同步队列的第二业务队列包含的每个业务报文的第四长度以及所述第二业务队列的第三实际服务速率;计算单元,用于根据所述预设固定延时、所述第一实际服务速率、所述第一长度、所述第二长度、所述第三长度、所述第二实际服务速率、所述第四长度以及所述第三实际服务速率计算得到所述目标长度。

优选地,采用如下公式计算得到所述目标长度:

其中,是在时间同步队列i的头部同步报文k前插入的伪同步报文的所述目标长度,ri-real是所述时间同步队列i当前的所述第一实际服务速率,是所述时间同步队列i的头部同步报文k的所述预设固定延时,是所述时间同步队列i的第k′个同步报文的所述第一长度,是所述第k′个同步报文前插入的伪报文的所述第二长度,是所述第一业务队列j包含的第k个业务报文的所述第三长度,是所述第二业务队列h包含的第k个业务报文的所述第四长度,rj-real是所述第一业务队列j的所述第二实际服务速率,rh-real是所述第二业务队列h的所述第三实际服务速率,k是大于1的正整数,k′是大于0且小于k的正整数,i是大于0的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。

本发明的技术方案具有以下优点:

本发明实施例提供的sdn网络中同步报文排队延时控制方法和装置,通过构建一种独立的时间同步队列,对于时间同步队列中的头部同步报文,如果其等待时间小于预设固定延时,则在其头部插入目标长度的伪报文,如此实现通过发送伪报文的“事件”达到消耗同步报文的等待“时间”的目的,进而使同步报文在交换机中有确定的时间延迟,以防止延时抖动,使其能满足通信网特殊的同步场景要求及同步性能要求。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1的sdn网络中同步报文排队延时控制方法的一个流程图;

图2为本发明实施例1的sdn网络中时间同步队列调度算法实现的结构框图;

图3为本发明实施例1的sdn网络中时间同步队列插入伪报文的示意图;

图4为本发明实施例2的sdn网络中同步报文排队延时控制装置的一个框图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”、“第四”仅用于描述目的,而不能理解为指示或暗示相对重要性。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

本实施例提供一种sdn网络中同步报文排队延时控制方法,如图1所示,包括:

s11:根据预设标识建立时间同步队列;具体地,在交换机输入端口构建以“目的地为区分(即预设标识)”的独立的虚拟时间同步队列(即时间同步队列),以区分与交换机其它类型的业务队列,目的地区分防止了在同一交换机中的不同同步报文流之间的阻塞。如图2所示,突发性业务流、随机性业务流、周期性业务流和时间同步测距流通过分类器后,进入队列控制器,在队列控制器生成队列时,以虚拟时间同步队列i∈[1,n]为基准,将优先级高于它的高优先级队列用队列j∈[1,m]表示,优先级低于它的低优先级队列用队列h∈[1,s]表示,根据优先级进入队列调度器,进而形成输出流输出。

s12:获取时间同步队列的头部同步报文的等待时间;作为一种优选方案,步骤s12包括:获取时间同步队列的优先级对应的平均时延和丢包率;根据平均时延和丢包率计算得到等待时间。

s13:判断等待时间是否小于预设固定延时;此处预设固定延时可以通过交换机控制器进行指定,通过判断头部同步报文的等待时间是否小于预设固定延时来确定是否给该头部同步报文插入伪报文,如果是则进入步骤s14,否则进入步骤s17。

s14:若等待时间小于预设固定延时,说明如果继续保持该等待时间排队,将无法保证时间同步报文具有确定的延时,则首先根据等待时间计算时间同步队列的第一实际服务速率,然后进入步骤s15;作为一种优选方案,步骤s14可以包括:采用如下公式计算得到第一实际服务速率:

其中,ri-real是时间同步队列i当前的第一实际服务速率,ri是时间同步队列i的第一预约服务速率,rj是优先级高于时间同步队列i的第一业务队列j的第二预约服务速率,rh是优先级低于时间同步队列i的第二业务队列h的第三预约服务速率,rremain是队列调度器的剩余服务速率,i是大于0且小于n的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。公平类队列调度算法在进行队列调度时的原则是:在保障队列按预约服务速率获得服务的同时,当有队列出现空闲(无backlog状态的数据包)时,将这部分剩余服务速率rremain按预约服务速率比例进行分配,由此可知虚拟时间同步队列i所获得的第一实际服务速率。

s15:根据第一实际服务速率和预设固定延时计算伪报文的目标长度;作为一种优选方案,步骤s15可以包括:获取预设固定延时、头部同步报文之前的每个同步报文的第一长度、头部同步报文之前的每个同步报文前插入的伪报文的第二长度、优先级高于时间同步队列的第一业务队列包含的每个业务报文的第三长度、第一业务队列的第二实际服务速率、优先级低于时间同步队列的第二业务队列包含的每个业务报文的第四长度以及第二业务队列的第三实际服务速率;根据预设固定延时、第一实际服务速率、第一长度、第二长度、第三长度、第二实际服务速率、第四长度以及第三实际服务速率计算得到目标长度。具体地,由于上述各个量与预设固定延时之间有如下关系:

因此可以采用如下公式计算得到目标长度:

其中,是在时间同步队列i的头部同步报文k前插入的伪同步报文的目标长度,ri-real是时间同步队列i当前的第一实际服务速率,是时间同步队列i的头部同步报文k的预设固定延时,是时间同步队列i的第k′个同步报文的第一长度,是第k′个同步报文前插入的伪报文的第二长度,是第一业务队列j包含的第k个业务报文的第三长度,是第二业务队列h包含的第k个业务报文的第四长度,rj-real是第一业务队列j的第二实际服务速率,rh-real是第二业务队列h的第三实际服务速率,k是大于1的正整数,k′是大于0且小于k的正整数,i是大于0的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。

s16:在头部同步报文前插入目标长度的伪报文。此处伪报文内容可以为空,也可以是对整个数据传输过程无不良影响的无意义报文。如图3所示,在头部同步报文前插入该伪报文psp包后,该头部同步报文的总等待时间就会延长,使该同步队列进入保持backlog状态,而目标长度的伪报文恰好可以让该头部同步报文的总等待时间等于预设固定延时,从而确保了同步报文具有稳定的传输带宽。

s17:若等待时间大于预设固定延时,则丢弃头部同步报文。当出现多个同步报文进入虚拟时间同步队列排队时,可能出现一些同步报文在经过等待其前面的其它同步报文(以及插入的伪报文)发送的过程中已经超出了自己的预设固定延时,表现为由步骤s15计算出的该同步报文前插入的伪报文的长度小于0,我们认为改同步报文无论如何都不能在预设固定延时内被发送,则对其执行丢弃策略,以保证其他同步报文拥有稳定的传输带宽。

需要说明的是,本实施例建立的时间同步队列工作原则是:(a)进入虚拟同步队列的时间同步报文等待其发送时机;(b)当虚拟时间同步队列的头部同步报文等待时间等于交换机控制器所指定的预设固定延时,判断是否有优先级高于它的其他业务报文需要发送,如果有则发送该业务报文,而丢弃该头部同步报文,否则发送该头部同步报文。

上述sdn网络中同步报文排队延时控制方法,通过构建一种独立的时间同步队列,对于时间同步队列中的头部同步报文,如果其等待时间小于预设固定延时,则在其头部插入目标长度的伪报文,如此实现通过发送伪报文的“事件”达到消耗同步报文的等待“时间”的目的,进而使同步报文在交换机中有确定的时间延迟,以防止延时抖动,使其能满足通信网特殊的同步场景要求及同步性能要求。

实施例2

本实施例供了一种sdn网络中同步报文排队延时控制装置,如图4所示,包括:建立模块41、获取模块42、判断模块43、第一计算模块44、第二计算模块45和插入模块46,各个模块功能如下:

建立模块41,用于根据预设标识建立时间同步队列,具体参见实施例1中对步骤s11的相关详细描述。

获取模块42,用于获取时间同步队列的头部同步报文的等待时间,具体参见实施例1中对步骤s12的相关详细描述。

判断模块43,用于判断等待时间是否小于预设固定延时,具体参见实施例1中对步骤s13的相关详细描述。

第一计算模块44,用于若等待时间小于预设固定延时,根据等待时间计算时间同步队列的第一实际服务速率,具体参见实施例1中对步骤s14的相关详细描述。

第二计算模块45,用于根据第一实际服务速率和预设固定延时计算伪报文的目标长度,具体参见实施例1中对步骤s15的相关详细描述。

插入模块46,用于在头部同步报文前插入目标长度的伪报文,具体参见实施例1中对步骤s16的相关详细描述。

作为一种优选方案,第二计算模块45包括:获取单元,用于获取预设固定延时、头部同步报文之前的每个同步报文的第一长度、头部同步报文之前的每个同步报文前插入的伪报文的第二长度、优先级高于时间同步队列的第一业务队列包含的每个业务报文的第三长度、第一业务队列的第二实际服务速率、优先级低于时间同步队列的第二业务队列包含的每个业务报文的第四长度以及第二业务队列的第三实际服务速率;计算单元,用于根据预设固定延时、第一实际服务速率、第一长度、第二长度、第三长度、第二实际服务速率、第四长度以及第三实际服务速率计算得到目标长度。具体参见实施例1中的相关详细描述。

作为一种优选方案,采用如下公式计算得到目标长度:

其中,是在时间同步队列i的头部同步报文k前插入的伪同步报文的目标长度,ri-real是时间同步队列i当前的第一实际服务速率,是时间同步队列i的头部同步报文k的预设固定延时,是时间同步队列i的第k′个同步报文的第一长度,是第k′个同步报文前插入的伪报文的第二长度,是第一业务队列j包含的第k个业务报文的第三长度,是第二业务队列h包含的第k个业务报文的第四长度,rj-real是第一业务队列j的第二实际服务速率,rh-real是第二业务队列h的第三实际服务速率,k是大于1的正整数,k′是大于0且小于k的正整数,i是大于0的正整数,j是大于0且小于m的正整数,h是大于0且小于s的正整数。具体参见实施例1中的相关详细描述。

上述sdn网络中同步报文排队延时控制装置,通过构建一种独立的时间同步队列,对于时间同步队列中的头部同步报文,如果其等待时间小于预设固定延时,则在其头部插入目标长度的伪报文,如此实现通过发送伪报文的“事件”达到消耗同步报文的等待“时间”的目的,进而使同步报文在交换机中有确定的时间延迟,以防止延时抖动,使其能满足通信网特殊的同步场景要求及同步性能要求。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

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