软件定义网络的扁平控制方式中一种控制器间信息同步方法与流程

文档序号:12694709阅读:365来源:国知局

本发明涉及计算机应用技术领域,特别涉及软件定义网络的扁平控制方式中一种控制器间信息同步方法。



背景技术:

软件定义网络(Software-Defined Networking,SDN)技术能够有效降低网络设备负载,帮助网络运营商更好地控制网络基础设施,降低网络运维成本。在SDN中,数据与控制是分离的。控制层通过可编程的控制器掌握着全局网络信息,网络运营商和科研人员可以灵活地管理配置网络和部署新协议。在数据层,交换机只提供简单的数据转发功能,可以快速地处理匹配的数据包,以应对网络流量日益增长的需求。控制层与数据层之间通过开放的统一接口交互,控制器将转发规则通过标准的南向接口下发给数据层的交换机,交换机只需按照转发规则对数据包进行转发。

控制层的核心组件是控制器,用户通过控制器可以在逻辑上集中控制数据层的交换机,从而实现数据的快速转发,提高网络的整体性能。由于控制器保存有全网的信息,当网络规模较大时,若采用单一控制器来处理交换机的请求,将导致控制器与不同属一个域的交换机之间存在较大的网络延迟,影响网络性能;而且单一控制器还存在着单点失效的问题。



技术实现要素:

有鉴于此,有必要提供一种能够以较低的网络开销实现各控制器间网络信息库NIB的同步更新的信息同步方法。

软件定义网络的扁平控制方式中一种控制器间信息同步方法,所述软件定义网络的扁平控制方式中一种控制器间信息同步方法包括如下步骤:

S1、每个控制器均维护一个NIB当前的版本号,每个NIB增量更新也均对应一个递增的版本号;

S2、对于每个NIB增量版本,控制器都维护一个用于记录尚未更新该NIB增量的远端控制器队列表;

S3、本地控制器统一向远端控制器传输本地控制器的NIB增量更新数据;

S4、当本地控制器收到远端控制器对该NIB增量更新的确认后,即将对应的远端控制器从该NIB增量更新相应的远端控制器队列中移除。

优选的,所述步骤S4包括以下分步骤:

S41、每个控制器还维护了一个该控制器NIB增量更新的已同步版本对应表;当有远端控制器的NIB增量更新传送到本地控制器时,本地控制器将该NIB增量更新版本号添加到已同步版本对应表中;

S42、对比NIB增量更新版本号与记录的NIB当前版本号,当NIB增量更新版本号与记录的NIB当前版本号之间没有缺失更新时,将记录的NIB当前版本号更新到连续的最大已更新增量版本号;并将已同步版本对应表中小于NIB当前版本号的增量版本号删除;

S43、本地控制器向远端控制器发送确认NIB增量更新成功消息,并将对应的远端控制器从该NIB增量更新相应的远端控制器队列中移除。

优选的,每个控制器还都维护了一个计时器,当达到计时器指定的时间片长度时,就统一向远端控制器传输本地控制器在当前时间片中增量更新的NIB数据。

优选的,每个控制器会一直存储本地控制器的NIB增量更新信息,直至本地控制器收到所有远端控制器发送的更新确认。

优选的,当控制器的第一个NIB增量更新对应的“未更新”远端控制器队列为空时,控制器将NIB的当前版本号更新为该NIB增量更新的版本号。

本发明所述软件定义网络的扁平控制方式中一种控制器间信息同步方法,其通过采用增量更新同步方法在占用较小网络带宽的情况下实现了扁平控制方式中分布式控制器间的信息同步,即以较低的网络开销实现各控制器间网络信息库NIB的同步更新,从而提高网络性能,不需要在网络上频繁传输管理控制数据,使网络开销得到有效控制。

附图说明

图1为扁平控制方式中控制器间网络信息库NIB更新与同步示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供软件定义网络的扁平控制方式中一种控制器间信息同步方法,所述软件定义网络的扁平控制方式中一种控制器间信息同步方法采用分段增量更新方式对本地控制器维护的NIB进行更新和同步。

在扁平控制方式中,所有控制器处于同等地位,通过东西向接口通信。这些控制器被分放在不相交的网络区域中,分别管理各自的网络区域,但在逻辑上所有的控制器都是全局控制器,维护着全网的状态信息。当网络拓扑发生变化时,所有的控制器都将同步更新其维护的网络状态信息,而数据层的交换机只需调整与控制器的地址映射,无需进行复杂的更新操作,减少了对数据层的影响。在扁平控制方式中,控制器之间通过网络信息库(Network Information Base,NIB)管理网络,每个控制器都维护着相对应的NIB,通过保持NIB的一致性实现控制器之间信息的同步更新。

具体的,如图1所示,每个控制器都维护了一个NIB当前的版本号,每个NIB增量更新也都对应一个递增的版本号。此外,对于每个NIB增量版本,控制器都维护一个尚未更新该NIB增量的远端控制器队列以及该控制器NIB增量更新的已同步版本对应表,本地控制器通过远端控制器队列来确定需要向哪些远端控制器发送对应的NIB增量更新,并通过维护已同步版本对应表来跟踪尚未在本地控制器同步的远端NIB增量更新,所述同步版本对应表的每一行对应一个本地控制器对于远端控制器的NIB增量同步记录。

每个控制器还都维护了一个计时器,当达到计时器指定的时间片长度时,就统一向远端控制器传输本地控制器在当前时间片中增量更新的NIB数据,而当本地控制器接收到远端控制器的NIB增量更新传送到时,首先本地控制器将该NIB增量更新版本号添加到已同步版本对应表中;对比NIB增量更新版本号与记录的NIB当前版本号,当NIB增量更新版本号与记录的NIB当前版本号之间没有缺失更新时,将记录的NIB当前版本号更新到连续的最大已更新增量版本号;并将已同步版本对应表中小于NIB当前版本号的增量版本号删除;本地控制器向远端控制器发送确认NIB增量更新成功消息,并将对应的远端控制器从该NIB增量更新相应的远端控制器队列中移除。

优选的,每个控制器会一直存储本地控制器的NIB增量更新信息,直到它收到其它所有远端控制器发送的更新确认;且当控制器的第一个NIB增量更新对应的“未更新”远端控制器队列为空时,控制器将NIB的当前版本号更新为该NIB增量更新的版本号。

本地控制器通过接收到NIB增量更新数据更新自身的NIB信息,从而使自身NIB信息与其他控制器的NIB信息同步。

本发明实施例提供软件定义网络的扁平控制方式中一种控制器间信息同步方法的具体实施步骤如下:

步骤S1:每个控制器i对其中的网络信息库NIB维护一个NIB当前版本号V(i,cur)。

步骤S2:每个控制器i对其中的NIB的每个增量更新upd维护一个递增的版本号V(i,upd)。

步骤S3:每个控制器i对NIB的每个增量版本V(i,upd)都维护一个尚未更新该NIB增量版本的远端控制器队列Q(i,upd)。

步骤S4:当控制器i收到远端控制器m对某个NIB增量更新V(i,upd)的确认后,将控制器m从队列Q(i,upd)中移除。

步骤S5:控制器i在其NIB增量的版本号中查找满足V(i,cur)≤V(i,j)≤V(i,upd),且V(i,j)对应的“未更新”远端控制器队列Q(i,j)为空的第一个版本号j,当查找到满足条件的j时,控制器i将其NIB的当前版本号V(i,cur)更新为NIB增量更新的版本号V(i,j)。

步骤S6:每个控制器i维护一个该控制器NIB的已同步版本对应表T(i)。表T(i)的每一行L<i>(m,v,t)对应着控制器i相对远端控制器m的NIB同步记录,该记录包含已同步控制器m的NIB当前版本号v,以及控制器m已更新的NIB增量版本号队列t。

步骤S7:当远端控制器m的增量NIB更新V(m,upd)传送到控制器i时,控制器i更新表格T(i)的相应行L<i>(m,v,t),将该NIB增量更新的版本号V(m,upd)添加到已更新NIB增量版本号队列t中。

步骤S8:当已更新NIB增量版本号队列t中存在某个版本号u与记录的NIB当前版本号v之间没有缺失更新时,将记录的NIB当前版本号v更新为u,同时将u从已更新NIB增量版本号队列t中删除。

步骤S9:重复步骤S8,直到已更新NIB增量版本号队列t中所有的版本号u与记录的NIB当前版本号v之间存在缺失更新。

步骤S10:控制器i向远端控制器m发送增量NIB的V(m,upd)版本更新成功的确认消息。

步骤S11:每个控制器中都维护一个计时器,每当达到计时器指定的时间片长度时,统一向其他远端控制器传输本地控制器在当前时间片中增量更新的NIB数据。

步骤S12:本地控制器接收到远端控制器发来的NIB数据后增量更新自身NIB,使自身NIB与其他控制器的NIB同步。

步骤S13:每个控制器会一直存储本地控制器的NIB增量更新信息,直到它收到其它所有远端控制器发送的增量更新确认。

本发明所述软件定义网络的扁平控制方式中一种控制器间信息同步方法,其通过采用增量更新同步方法在占用较小网络带宽的情况下实现了扁平控制方式中分布式控制器间的信息同步,即以较低的网络开销实现各控制器间网络信息库NIB的同步更新,从而提高网络性能,不需要在网络上频繁传输管理控制数据,使网络开销得到有效控制。

以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实施例即可。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应超过本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、电可编程ROM、电可檫除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其他形式的存储介质中。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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