一种流表构建方法及系统与流程

文档序号:14683977发布日期:2018-06-12 22:59阅读:246来源:国知局
一种流表构建方法及系统与流程

本发明涉及网络技术领域,特别是指一种流表构建方法及系统。



背景技术:

目前,在标准SDN(Software Defined Network,软件定义网络)架构中,SDN控制器中的流表用于指定数据包在IP网络中的路由,由于SDN控制器了解全局网络拓扑,因此基于此构建的网络流表可以有效地对数据进行路由,从而最大化网络带宽利用。虽然SDN控制器中的流表可以基于其所掌握的全局网络拓扑信息对注入网络的数据流进行路由指派,从而形成流表,但是,这种流表一旦制定后,通常路由路径和带宽是固定的,即使业务流在传输过程的某一时间段不需要大量的带宽(或者相反,某一时间段,需要突发的高带宽)等,这种情况下,由流表指定的路由会出现浪费(或者,路径拥塞)等问题,因此,为了这种情况,为业务提供更好的服务,目前SDN控制器中的流表设计方式仍有较大的提升改进空间。

也就是,现有技术的主要缺点是:目前SDN控制器中的流表仅仅为数据流指定了一条通路,只依靠业务流的源IP地址和目的IP地址来确定该业务流的路由。这种设计的前提是假设业务流量是匀速,带宽是固定不变的情况,而实际情况是由于业务流量本身的特性,或者是在移动无线网络环境下空口带宽的变化,等原因会使得业务流所需的带宽时刻发生变化,此时按照传统SDN控制器中的业务流表定义的转发路由,由于该路由的带宽是固定的,因此建立的带宽不具备随业务流弹性变化的能力,因此当前的SDN控制器中的流表定义不够灵活,仍旧有较大改进空间,以进一步满足充分利用网络带宽资源的需求。



技术实现要素:

本发明的目的在于提供一种流表构建方法及系统,解决现有技术中网络链路利用率低的问题。

为了解决上述技术问题,本发明实施例提供一种流表构建方法,包括:

获取当前的业务资源分配需求和当前的流表内容;

根据所述业务资源分配需求以及所述流表内容,进行业务资源分配;

根据业务资源分配的结果,调整当前的流表内容,获得待下发流表。

可选的,所述业务资源分配需求包括传输路由需求以及带宽需求;

获取当前的业务资源分配需求的步骤包括:

接收当前的业务流资源请求;

根据所述业务流资源请求确定当前的传输路由需求以及带宽需求。

可选的,所述业务资源分配需求包括网络路由及带宽调整需求;

获取当前的业务资源分配需求的步骤包括:

监测当前网络中各段路由的占用情况;

根据网络优化需求和所述占用情况,得到当前的网络路由及带宽调整需求。

可选的,所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:

根据所述业务资源分配需求以及所述流表内容,进行业务资源分配,得到分配是否成功的处理结果;

在所述处理结果为成功时,执行所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的步骤;

在所述处理结果为失败时,拒绝所述业务资源分配需求。

可选的,所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:

根据所述业务资源分配需求以及所述流表内容,进行带宽组合及路由寻找。

可选的,所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的步骤包括:

根据业务资源分配的结果,得到流表项;

根据所述流表项调整当前的流表内容,获得待下发流表。

可选的,在进行业务资源分配分配之前,还包括:

将各段路由之间的总业务资源分解为基本资源;

所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:

根据所述业务资源分配需求以及所述流表内容,对基本资源进行分配。

可选的,在获得待下发流表之后,还包括:

根据所述待下发流表进行流表下发和路由确定。

本发明还提供了一种流表构建系统,包括:

获取模块,用于获取当前的业务资源分配需求和当前的流表内容;

分配模块,用于根据所述业务资源分配需求以及所述流表内容,进行业务资源分配;

第一处理模块,用于根据业务资源分配的结果,调整当前的流表内容,获得待下发流表。

可选的,所述业务资源分配需求包括传输路由需求以及带宽需求;

所述获取模块包括:

接收子模块,用于接收当前的业务流资源请求;

确定子模块,用于根据所述业务流资源请求确定当前的传输路由需求以及带宽需求。

可选的,所述业务资源分配需求包括网络路由及带宽调整需求;

所述获取模块包括:

监测子模块,用于监测当前网络中各段路由的占用情况;

第一处理子模块,用于根据网络优化需求和所述占用情况,得到当前的网络路由及带宽调整需求。

可选的,所述分配模块包括:

第一分配子模块,用于根据所述业务资源分配需求以及所述流表内容,进行业务资源分配,得到分配是否成功的处理结果;

执行子模块,用于在所述处理结果为成功时,执行所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的操作;

拒绝子模块,用于在所述处理结果为失败时,拒绝所述业务资源分配需求。

可选的,所述分配模块包括:

第二处理子模块,用于根据所述业务资源分配需求以及所述流表内容,进行带宽组合及路由寻找。

可选的,所述第一处理模块包括:

第三处理子模块,用于根据业务资源分配的结果,得到流表项;

第四处理子模块,用于根据所述流表项调整当前的流表内容,获得待下发流表。

可选的,还包括:

分解模块,用于将各段路由之间的总业务资源分解为基本资源;

所述分配模块包括:

第二分配子模块,用于根据所述业务资源分配需求以及所述流表内容,对基本资源进行分配。

可选的,还包括:

第二处理模块,用于根据所述待下发流表进行流表下发和路由确定。

本发明的上述技术方案的有益效果如下:

上述方案中,所述流表构建方法通过根据业务资源分配需求进行业务资源分配,然后根据业务资源分配的结果对流表内容进行调整,得到待下发流表;使得在业务资源分配需求变化时,可以对业务资源灵活加减以适配变化的业务资源需求,得到更合理的待下发流表,从而满足不均匀的业务流量更为高效的传输需求,进一步提升网络整体流量的均衡性、最大化网络链路利用率。

附图说明

图1为本发明实施例一的流表构建方法流程示意图;

图2为本发明实施例一的SDN控制器中的弹性流量调度装置结构示意图;

图3为本发明实施例一的细粒度带宽分配及组合示意图;

图4为本发明实施例一的业务适配流程示意图;

图5为本发明实施例二的流表构建系统结构示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明针对现有的技术中网络链路利用率低的问题,提供了多种解决方案,具体如下:

如图1所示,本发明实施例一提供了一种流表构建方法,包括:

步骤11:获取当前的业务资源分配需求和当前的流表内容;

步骤12:根据所述业务资源分配需求以及所述流表内容,进行业务资源分配;

步骤13:根据业务资源分配的结果,调整当前的流表内容,获得待下发流表。

本发明实施例一提供的所述流表构建方法通过根据业务资源分配需求进行业务资源分配,然后根据业务资源分配的结果对流表内容进行调整,得到待下发流表;使得在业务资源分配需求变化时,可以对业务资源灵活加减以适配变化的业务资源需求,得到更合理的待下发流表,从而满足不均匀的业务流量更为高效的传输需求,进一步提升网络整体流量的均衡性、最大化网络链路利用率。

其中的业务资源分配需求可以包括传输路由需求以及带宽需求,还可以包括网络路由及带宽调整需求;对应的,本实施例中:所述业务资源分配需求包括传输路由需求以及带宽需求;

获取当前的业务资源分配需求的步骤包括:接收当前的业务流资源请求;根据所述业务流资源请求确定当前的传输路由需求以及带宽需求。

进一步的,所述业务资源分配需求包括网络路由及带宽调整需求;

获取当前的业务资源分配需求的步骤包括:监测当前网络中各段路由的占用情况;根据网络优化需求和所述占用情况,得到当前的网络路由及带宽调整需求。

考虑到实际应用时,并不是每次的业务资源分配需求都能满足,所以,本实施例中,所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:根据所述业务资源分配需求以及所述流表内容,进行业务资源分配,得到分配是否成功的处理结果;在所述处理结果为成功时,执行所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的步骤;在所述处理结果为失败时,拒绝所述业务资源分配需求。

具体的,所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:根据所述业务资源分配需求以及所述流表内容,进行带宽组合及路由寻找。

其中,所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的步骤包括:根据业务资源分配的结果,得到流表项;根据所述流表项调整当前的流表内容,获得待下发流表。

为了能够更好的调配业务资源,进一步提高链路使用率,本实施例中,在进行业务资源分配分配之前,还包括:将各段路由之间的总业务资源分解为基本资源;

对应的,所述根据所述业务资源分配需求以及所述流表内容,进行业务资源分配的步骤包括:根据所述业务资源分配需求以及所述流表内容,对基本资源进行分配。

为了方案的完整性,进一步的,在获得待下发流表之后,还包括:根据所述待下发流表进行流表下发和路由确定。

下面对本发明实施例一提供的所述流表构建方法进行进一步说明。

为解决上述技术问题,本发明实施例提供了一种流表构建方法,也可以说是一种软件定义网络中弹性流表建立方法,主要通过在SDN控制器中设立一个弹性流量调度装置,对流表内容进行分段动态组合,从而满足不均匀的业务流量对更为高效地传输,从而进一步提升网络整体流量均衡、最大化网络链路利用率。

方案具体来说就是,根据SDN控制器对网络整体拓扑的掌握情况,在SDN控制器中建立分段(即,每一跳,也就是任意两个路由器节点之间)的流表,并将每段(跳)之间的带宽分割为若干基本带宽单位,通过设置在SDN控制器中的弹性流量调度装置,来对链路上具备各个基本带宽单位的链路进行组合,从而寻找出满足业务流传输的路由,形成流表写入SDN控制器;特别的,根据业务流的带宽需求变化,可以在业务流程传输过程中,通过对每段(跳)之间的带宽分割为若干基本带宽单位灵活加减以适配变化的业务资源需求,从而达到最大化网络链路利用率的效果。

可实现本方案的具体架构有多种,本发明实施例下面对实现架构进行举例:

首先,在SDN控制器中设置弹性流量调度装置,通过定义弹性流表来协调业务流量和网络带宽之间的动态适配;其次,对SDN控制器中的流表结构进行离散化,并根据弹性流量调度装置的指示,对各段路由的基本带宽单元进行灵活组合,以满足业务流对带宽的动态需要。

以下阐述该方案的主要架构模块及弹性流量调度及适配方法,主要包括:

1、对SDN控制器的要求

如图2所示,SDN控制器中的弹性流量调度装置的核心模块主要包括:

1)业务检测及通知模块:该模块与SDN北向业务接口,即与业务流进行交互,其主要功能是检测业务流量的变化,根据业务流量大小,确定某一时刻或时间段内业务流量的传输路由需求(源IP地址及目的IP地址)以及带宽需求,并将相关需求通知带宽调度及分配模块;

2)带宽调度及分配模块:该模块主要负责根据业务检测及通知模块、网络状态检测模块所提出的对于网络路由及相关带宽资源的需求,启动内部带宽调度及分配算法,形成流表构建模型输出给弹性流表,来建立满足当前业务及网络的流表项;

3)网络状态检测模块:该模块实时监测网络中各段路由的占用情况(包括带宽利用率,路由拥塞等情况),并根据网络优化需求,输出网络路由及带宽调整需求给带宽调度及分配模块,相对于业务检测及通知模块来讲,该模块不会频繁提出需求,更多是在保证现有业务传输质量的基础上,服务于网络优化功能而设置的一种模块,功能类似业务检测及通知模块,但该模块是为了适配网络带宽主动调整需求而设置的;

4)弹性流表:该流表维护了物理网络中各段(跳)路由之间的带宽资源,并将各段的总带宽资源分解为基本带宽(如,两节点之间的总带宽100M,定义基本带宽为10M,那么,这两个节点之间的管道可以看做由10个10M的小管道组合而成),之所以这样细粒度分配,主要是服务于带宽的灵活组合的功能;弹性流表将根据带宽调度及分配模块的指示对带宽进行灵活组合。

2、弹性流表构建方法——细粒度带宽分段分配及组合

下面以图3为例简述弹性流表构建方法,流表的构建主要是以业务流的带宽动态变化需求来进行细粒度的带宽调度及组合。

假设在图3所示的网络中,有4个节点A、B、C、D,根据四个节点的物理拓扑关系以及节点之间的带宽,设每段之间的带宽的基本单元(最小粒度)为10M,在图3中用一条细实线来表示。假设有业务流需要从节点A进入,从节点D输出(即,源地址-目的地址为A-D),以及有业务流从节点A进入,从节点C输出(即,源地址-目的地址为A-C);则可以构建如表1所示路由表以及各段(跳)带宽资源库。

表1路由表

为了说明细粒度带宽分配及组合的方法,以源地址-目的地址为A-D为例:

假设有视频流F,从节点A进入网络,这两个视频流的目的出节点均是D;视频流F是经过分层编码的视频流(所谓分层编码是指视频流可以被分为多层进行传输,基本层用于传输基本视频信息,在基本层的基础上逐渐叠加增强层,可以使得视频清晰度不断增强,这样在无线传输环境中,当信道条件不好,就可以只传输基本流信息,以节省带宽,当然这是以牺牲视频清晰度为代价的)。

假设视频流F,在无线信道较好的情况下传送全部视频分层信息所需带宽为50M,传输其基本层视频信息所需要的带宽为20M,该视频率开始仅传输基本层信息,即需要带宽20M,这时,SDN控制器为视频流F构建流表,选择路由A-B;B-D,占用20M带宽;假设视频流接入网部分(即在进入节点A之前的网络,可能是无线网络,由于无线网络带宽变化,使得视频业务流不得不随时调整自身视频流带宽需求)网络条件变好,可以传输更高质量的视频流,此时,该视频流的增强部分将会通过弹性流量调度装置中的业务检测及通知模块通知带宽调度及分配模块,该模块会向弹性流表查找可服务于该视频流的进行可用带宽,假如这时路由A-D(直达)有20M带宽、A-C;C-D路由有10M带宽可用,这个时候,弹性流量调度装置会形成流表项写入流表,并由SDN控制器根据新建流表建立路由。

在上述这个过程中,流表不再是原有SDN架构下的一种静态流表了,而是成为一种可随业务灵活自适应的动态弹性流表,从而进一步提高了网络服务质量及资源利用率,流表的变化如下:

对上述示例的说明:

(1)上述示例,仅仅说明了最简单的情况,即弹性路由表如何动态适应一个视频流的网络资源需求的变化;实际上,会有很多业务流在并发传输,每个业务流在不同的时间会有不同的带宽要求,因此此时弹性流量调度装置中的业务检测及通知模块、带宽调度及分配模块以及弹性流表会进行频繁快速的消息处理及流表更新、进行路由组合及调度,以满足并适配业务流的需求,具体业务流程在下面部分进行简述;

(2)一个业务流可能会经过多段路由的组合,业务流可能传输在多条路径上,因此需要在出口节点对业务进行缓存;

(3)对于弹性流量调度装置中的网络状态检测模块,其作用类比业务检测及通知模块,用于网络优化的情况下,由网络主动发起的带宽调整需求,相关流程可类比业务流带宽变化需求的例子,不再赘述。

3、业务适配流程

该方法的业务适配流程如图4所示,包括:

步骤41:监测业务流资源请求。

SDN控制器中的弹性流量调度装置持续监测业务流,业务流发起资源变化请求。

步骤42:根据业务流资源请求得到业务流带宽变化需求。

弹性流量调度装置中的业务检测及通知模块根据业务流发起的资源变化转化为带宽资源需求。

步骤43:读取弹性流表中的网络各段带宽资源信息。

弹性流表维护了网络内各段网络带宽资源库,带宽调度及分配模块读取带宽资源库内容,得到网络各段带宽资源信息。

步骤44:根据获取的网络各段资源信息进行带宽组合及路由寻找。

也就是寻找满足业务传输的路由。

步骤45:判断路由确定是否成功,若是,进入步骤46,若否,进入步骤47。

这个步骤中,带宽调度及分配模块尝试构建满足业务流需求的业务路由。

步骤46:形成新的流表项写入弹性流表。

即如果业务路由构建成功,则形成流表项写入弹性流表;然后进入步骤48。

步骤47:拒绝业务流资源请求,返回步骤41。

即如果构建不成功,则返回拒绝业务流需求。

步骤48:SDN控制器根据流表内容进行流表下发及路由确定。

由上可知,本发明实施例提供的方案在SDN控制器中设计了弹性流量调度装置,该装置可动态适配业务流,并形成动态流表满足业务需求,解决了现有技术中网络链路利用率低的问题。

综上所述,本发明实施例通过设计弹性流量调度装置及弹性流表,可以使得网络动态适配业务变化需求,在保证业务流传输质量的基础上,进一步使得网络链路利用率最大化。

本方案相对于现有技术的优势:一是基于对SDN控制器进行功能改进,弹性流量调度装置及弹性流表对链路上具备各个基本带宽单位的链路进行组合,从而寻找出满足业务流传输的路由,形成流表写入SDN控制器;二是根据业务流的带宽需求变化,可以在业务流程传输过程中,通过对每段(跳)之间的带宽分割为若干基本带宽单位灵活加减以适配变化的业务资源需求,从而达到最大化网络链路利用率的效果。

实施例二

如图5所示,本发明实施例二提供了一种流表构建系统,包括:

获取模块51,用于获取当前的业务资源分配需求和当前的流表内容;

分配模块52,用于根据所述业务资源分配需求以及所述流表内容,进行业务资源分配;

第一处理模块53,用于根据业务资源分配的结果,调整当前的流表内容,获得待下发流表。

本发明实施例二提供的所述流表构建系统通过根据业务资源分配需求进行业务资源分配,然后根据业务资源分配的结果对流表内容进行调整,得到待下发流表;使得在业务资源分配需求变化时,可以对业务资源灵活加减以适配变化的业务资源需求,得到更合理的待下发流表,从而满足不均匀的业务流量更为高效的传输需求,进一步提升网络整体流量的均衡性、最大化网络链路利用率。

其中的业务资源分配需求可以包括传输路由需求以及带宽需求,还可以包括网络路由及带宽调整需求;对应的,本实施例中:所述业务资源分配需求包括传输路由需求以及带宽需求;

所述获取模块包括:接收子模块,用于接收当前的业务流资源请求;确定子模块,用于根据所述业务流资源请求确定当前的传输路由需求以及带宽需求。

进一步的,所述业务资源分配需求包括网络路由及带宽调整需求;

所述获取模块包括:监测子模块,用于监测当前网络中各段路由的占用情况;第一处理子模块,用于根据网络优化需求和所述占用情况,得到当前的网络路由及带宽调整需求。

考虑到实际应用时,并不是每次的业务资源分配需求都能满足,所以,本实施例中,所述分配模块包括:第一分配子模块,用于根据所述业务资源分配需求以及所述流表内容,进行业务资源分配,得到分配是否成功的处理结果;执行子模块,用于在所述处理结果为成功时,执行所述根据业务资源分配的结果,调整当前的流表内容,获得待下发流表的操作;拒绝子模块,用于在所述处理结果为失败时,拒绝所述业务资源分配需求。

具体的,所述分配模块包括:第二处理子模块,用于根据所述业务资源分配需求以及所述流表内容,进行带宽组合及路由寻找。

其中,所述第一处理模块包括:第三处理子模块,用于根据业务资源分配的结果,得到流表项;第四处理子模块,用于根据所述流表项调整当前的流表内容,获得待下发流表。

为了能够更好的调配业务资源,进一步提高链路使用率,本实施例中,所述流表构建系统还包括:分解模块,用于将各段路由之间的总业务资源分解为基本资源;

对应的,所述分配模块包括:第二分配子模块,用于根据所述业务资源分配需求以及所述流表内容,对基本资源进行分配。

为了方案的完整性,进一步的,所述流表构建系统还包括:第二处理模块,用于根据所述待下发流表进行流表下发和路由确定。

综上所述,本发明实施例提供的方案可动态适配业务流,并形成动态流表满足业务需求,解决了现有技术中网络链路利用率低的问题。

其中,上述流表构建方法的所述实现实施例均适用于该流表构建系统的实施例中,也能达到相同的技术效果。

需要说明的是,此说明书中所描述的许多功能部件都被称为模块/子模块,以便更加特别地强调其实现方式的独立性。

本发明实施例中,模块/子模块可以用软件实现,以便由各种类型的处理器执行。举例来说,一个标识的可执行代码模块可以包括计算机指令的一个或多个物理或者逻辑块,举例来说,其可以被构建为对象、过程或函数。尽管如此,所标识模块的可执行代码无需物理地位于一起,而是可以包括存储在不同位里上的不同的指令,当这些指令逻辑上结合在一起时,其构成模块并且实现该模块的规定目的。

实际上,可执行代码模块可以是单条指令或者是许多条指令,并且甚至可以分布在多个不同的代码段上,分布在不同程序当中,以及跨越多个存储器设备分布。同样地,操作数据可以在模块内被识别,并且可以依照任何适当的形式实现并且被组织在任何适当类型的数据结构内。所述操作数据可以作为单个数据集被收集,或者可以分布在不同位置上(包括在不同存储设备上),并且至少部分地可以仅作为电子信号存在于系统或网络上。

在模块可以利用软件实现时,考虑到现有硬件工艺的水平,所以可以以软件实现的模块,在不考虑成本的情况下,本领域技术人员都可以搭建对应的硬件电路来实现对应的功能,所述硬件电路包括常规的超大规模集成(VLSI)电路或者门阵列以及诸如逻辑芯片、晶体管之类的现有半导体或者是其它分立的元件。模块还可以用可编程硬件设备,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等实现。

以上所述的是本发明的优选实施方式,应当指出对于本技术领域的普通人员来说,在不脱离本发明所述原理前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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