本发明属于数据通信技术领域,具体涉及一种面向工业sdn的动态网络资源预留qos保障方法。
背景技术:
随着互联网技术的发展,软件定义网络(sdn)的应用越来越广泛。与传统网络不同,软件定义网络采用控制和转发分离的结构,可以在不变动硬件设备的前提下,以中心控制的方式,用程序重新规划网络。从而降低了网络部署成本,减轻了网络运营和维护负担。
网络数据在传输过程中,对带宽、时延等往往有一定义要求,特别是一些周期性业务,通常对带宽、时延的要求相对固定。突发的数据业务往往会对网络造成冲击,使网络短时间内处于阻塞状态,影响了部分重要数据的传输。
针对以上问题,现有的解决办法就是采用资源预留策略,为固定的数据业务预留一定带宽,保障该业务数据的通信。但是由于缺乏对数据业务流量变化的适应能力,其技术手段在sdn网络中也并不适用。
技术实现要素:
有鉴于此,本发明目的在于提供一种面向工业sdn的动态网络资源预留qos保障方法,采用网络与终端协商的方式,动态分配网络资源,满足业务数据对带宽、时延要求。
本发明为实现上述目的所采用的技术方案是:一种面向工业sdn的动态网络资源预留qos保障方法,包括预留资源申请过程、预留资源转发过程和预留资源释放过程;
所述预留资源申请过程,终端节点根据业务需要,发送预留资源协商以太网数据包至所连接的交换机;交换机通过网络控制通道将所述资源协商数据包发送至sdn网络控制器;sdn网络控制器根据链路的负载信息,对业务路径上的预留资源进行计算,并将规划结果以流表项的形式反馈至路径上的各个交换 机;交换机按照执行控制器流表操作,向发起请求的终端节点反馈申请结果;
所述预留资源转发过程,由路径上的各个交换机根据流表进行数据转发和队列控制;
所述预留资源释放过程,当终端节点向sdn网络控制器发送释放带宽资源的请求时,sdn网络控制器删除交换机中资源预留的流表项,释放带宽资源;当流表项未被匹配达设定时间时,由交换机通知sdn网络控制器,由sdn网络控制器决定释放带宽资源。
所述预留资源协商以太网数据包,包括以下信息:
数据流使用到的软件定义网络匹配元组;
带宽要求bp,时延要求τp;
数据流最大数据包长度l。
所述sdn网络控制器根据链路的负载信息,对业务路径上的预留资源进行计算,包括以下步骤:
若预留资源协商以太网数据包中申请的数据流最大数据包长度l大于网络容纳最大长度lmax,则将资源申请状态设置为失败,否则将资源申请状态设置为成功;
sdn网络控制器使用预留资源协商以太网数据包中的数据流使用到的软件定义网络匹配元组信息计算数据流路径,并计算路径上每条链路的可分配带宽:
bkr=αbk0-∑bki
其中,bkr为链路k上可分配带宽;bk0表示链路k总带宽;α为带宽系数,表示预留带宽总量占全部带宽的百分比;bki表示链路k上为第i个数据流分配的带宽,∑bki表示已分配给其他数据流带宽总和;
若申请占用资源中带宽要求bp小于路径上所有链路可分配带宽bkr的最小值bmr,则带宽资源可以满足带宽要求;否则表示带宽资源无法满足带宽要求,将资源申请状态由成功设置为失败,结束预留资源的计算;
根据数据流时延要求τp求数据流在链路k上的分段时延:
根据数据流在链路k上的分段时延τkp计算所需时延保障预留带宽:
取bkp'和bp中较大的作为链路k上为该数据流预留带宽bkp;比较所有链路k上的预留带宽bkp和链路剩余带宽bkr,若链路k上的预留带宽bkp小于链路剩余带宽bkr,则表示可以满足时延要求;否则将资源申请状态由成功设置为失败。
所述资源申请状态设置为成功后,sdn网络控制器进行如下操作:
将申请信息存入数据库;
向提交请求的交换机下发流表,指定交换机将收到的申请信息保持原样返还至申请的终端节点,并指定该交换机在执行一次后将流表删除;
向路径上所有交换机发送流表,为预留资源协商以太网数据包中匹配元组的数据流建立带宽队列并规定转发规则。
所述资源申请状态设置为失败后,sdn网络控制器进行如下操作:
若申请的数据流最大数据包长度l大于网络容纳最大长度lmax,则向提交请求的交换机下发流表,指定交换机用lmax替换l填入预留资源协商以太网数据包的最大长度字段后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除;
若申请的带宽要求bp大于可分配带宽bmr,则向提交请求的交换机下发流表,指定交换机用bmr替换bp填入预留资源协商以太网数据包的带宽要求字bp后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除;
若申请时延要求τp无法满足,则向提交请求的交换机下发流表,指定交换机将预留资源协商以太网数据包的时延要求字段置零后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除。
所述终端节点的申请失败,终端节点根据反馈结果重新发起预留资源申请过程。
所述当终端节点向sdn网络控制器发送释放带宽资源的请求时,sdn网络控制器删除交换机中资源预留的流表项,释放带宽资源,包括以下步骤:
终端节点通过资源协商以太网数据包发送释放资源申请至所连接的交换机;
所述交换机通过网络控制通道将资源协商以太网数据包发送至sdn网络控制器;
sdn网络控制器根据请求发送者和匹配元组查找数据库,若未找到相应的资源预留项,则结束且不进行任何操作;否则,将匹配内容从数据库中删除,向所述交换机下发流表,指定交换机回复申请成功信息并删除路径上的交换机中的相关转发流表项。
所述当流表项未被匹配达设定时间时,由交换机通知sdn网络控制器,由sdn网络控制器决定释放带宽资源,包括以下步骤:
交换机经过周期t检查流表使用情况,当流表在一个周期内未使用时,则通知sdn网络控制器;
sdn网络控制器接收到一个预留资源路径上所有交换机的通知时,则从数据库中找到匹配项,并删除路径上的交换机中的转发流表项。
所述终端设备采用指定以太网类型字段的数据包,申请预留/释放带宽资源,当交换机收到这个数据包时,不识别该数据包,然后发送给控制器。
本发明具有以下优点及有益效果:
(1)本发明很好的将资源预留融入sdn架构,使sdn网络可以满足终端设备的带宽、时延要求。
(2)本发明采用协商的方式实现预留/释放网络资源,可以满足终端设备变化的带宽、时延要求。
(3)本发明利用sdn网络的控制通道和下发流表功能实现终端设备和控制器信息交互的同时,对终端设备隐藏了控制器的存在,增强网络的安全性。
附图说明
图1是本发明网络拓扑示意图;
图2是本发明设备内部结构和通信示意图;
图3是本发明申请预留/释放资源数据格式示意图;
图4是本发明预留资源过程中控制器执行流程图;
图5是本发明终端主动释放预留资源流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
参照图1,本发明的一种面向工业sdn的动态网络资源预留qos保障方法,包括预留资源申请过程、预留资源转发过程和预留资源释放过程。预留/释放资源由终端设备发起,申请信息通过与终端连接的交换机由sdn网络控制通道进入网络控制器,并在控制器中进行资源调度规划,通过流表将反馈结果返还到终端设备。图中粗线表示预留/释放资源协商数据走向,虚线表示控制通道数据。
参照图3,一种面向工业sdn的动态网络资源预留qos保障方法,终端设备采用指定以太网类型字段的数据包申请预留/释放网络资源,sdn网络控制器和交换机严格区分以太网类型字段。数据发送端或者接收端向交换机发送资源申请采用的预留资源协商以太网数据包包括以下信息:
(1)数据流使用到的软件定义网络匹配元组;
(2)带宽要求bp,时延要求τp;
(3)数据流最大数据包长度l;
参照图2,所述预留资源申请过程包括以下步骤:
步骤1:数据发送端采用预留资源协商以太网数据包发送资源申请至所连接的交换机。
步骤2:交换机通过网络控制通道将资源协商数据包发送至网络控制器。
步骤3:参照图4,控制器进行预留资源计算:
步骤3-1:若申请最大数据包长度l大于网络容纳最大长度lmax,将资源申 请状态设置为失败,否则将资源申请状态设置为成功。
步骤3-2:控制器使用申请预留资源数据包中的匹配元组信息计算数据流路径,并计算路径上每条链路的可分配带宽:
bkr=αbk0-∑bki
其中bkr为链路k上可分配带宽;bk0表示链路k总带宽;α为带宽系数,表示预留带宽总量占全部带宽的百分比;bki表示链路k上为第i个数据流分配的带宽,∑bki表示已分配给其他数据流带宽总和。
步骤3-3:若申请占用资源中带宽要求bp小于路径上所有链路可分配带宽bkr的最小值bmr,则带宽资源可以满足带宽要求;否则表示带宽资源无法满足带宽要求,将资源申请状态设置为失败,将资源申请状态设置为失败;
步骤3-4:根据数据流时延τp求数据流在链路k上的分段时延:
步骤3-5:根据链路分段时延τp计算所需时延保障预留带宽:
其中l为数据流最大数据包长度;
步骤3-6:取bkp'和bp中较大的作为链路k上为该数据流预留带宽bkp;比较所有链路k上的预留带宽bkp和链路剩余带宽bkr,若链路k上的预留带宽bkp小于链路剩余带宽bkr,则表示可以满足时延要求;否则将资源申请状态设置为失败。
步骤4:参照图4,资源申请状态设置为成功后,控制器进行如下操作:
步骤4-1:将申请信息存入数据库;
步骤4-2:向提交请求的交换机下发流表,指定交换机将收到的申请信息保持原样返还至申请的终端节点,并指定该交换机在执行一次后将该流表项删除;
步骤4-3:向路径上所有交换机发送流表,为申请预留资源数据包中匹配元组的数据流建立带宽队列并规定转发规则;
步骤5:参照图4,资源申请状态设置为失败后,控制器进行如下操作:
步骤5-1:若申请最大数据包长度l大于网络容纳最大长度lmax,则向提交请求的交换机下发流表:指定交换机用lmax替换l填入申请数据包的最大长度字段后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除;
步骤5-2:若申请带宽bp大于可分配带宽bmr,则向提交请求的交换机下发流表:指定交换机用bmr替换bp填入申请数据包的带宽要求字段后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除;
步骤5-3:若申请时延要求无法满足,则向提交请求的交换机下发流表:指定交换机将申请数据包的时延要求字段置零后将数据包返还至终端节点,并指定该交换机在执行一次后将该流表项删除。
步骤6:交换机按照执行控制器流表操作,向请求终端反馈申请结果。
步骤7:若申请预留资源失败,终端可以根据回馈结果重新申请预留资源。
参照图2,所述的预留资源转发过程,由路径上的各个交换机根据流表进行数据转发和队列控制,。
所述的面向工业sdn的动态网络资源预留qos保障方法,其特征在于所述预留资源释放过程包括以下方式:
方式1:参照图5,终端设备不再需要预留资源或者预留资源有变化时时,通过以下步骤释放现有预留资源:
步骤1:终端设备采用资源协商以太网数据包发送释放资源申请至所连接的交换机。
步骤2:交换机通过网络控制通道将资源协商信息发送至网络控制器。
步骤3:控制器根据请求发送者和匹配元组查找数据库,若未找到相应的资源预留项则结束不进行任何操作;否则,将匹配内容从数据库中删除,向与终端相连的交换机发送一次性执行流表,回复申请成功信息并删除路径上的交换机中的相关转发流表项。
方式2:终端设备不使用预留资源并且没有主动释放时,网络通过以下步骤 释放预留资源:
步骤1:交换机经过周期t检查流表使用情况,当流表在一个周期内未使用时,则通知控制器。
步骤2:控制器接收到一个预留资源路径上所有交换机的通知时,则从数据库中找到匹配项,并删除路径上的交换机中的转发流表项。