以数据为中心的软件定义网络中的方法和装置与流程

文档序号:18009307发布日期:2019-06-25 23:47阅读:178来源:国知局
以数据为中心的软件定义网络中的方法和装置与流程

本公开的实施例一般地涉及计算机领域和数据通信领域,并且更特别地涉及一种以数据为中心的软件定义网络(sdn)中的方法和装置。



背景技术:

软件定义网络(sdn)将网络控制功能与转发功能解耦,使得网络控制变为直接可编程的并且底层的基础设施可以针对应用和网络服务而被抽象。南向接口(sbi)是在sdn网络的控制层与转发层之间定义的通信接口,其是用于构建sdn解决方案的基本元素。openflow作为sdn框架中的关键sbi接口之一,在行业中广泛地被接受。openflow允许直接访问和操控网络设备的转发平面,诸如openflow交换机。

此外,在基于sdn的网络中,网络编排单元实施sdn网络资源的创建、管理和操控,而云编排单元涉及云资源(即云端的计算、存储和网络)的创建、管理和操控,以便实现网络环境和云环境中的用户请求。端到端的资源编排要求触及到所有编排单元来修改所要求的资源。

目前,在openflow交换机中,架构是完全以应用为中心的,即分组查找和转发的逻辑与流表、流条目、计量表和端口状态等的数据紧密耦合在一起以形成分组转发功能(应用)。此外,网络编排单元、云编排单元、sdn控制器和虚拟网络功能管理(vnfm)之间的相互作用是协议驱动的并且完全以应用为中心。然而,这样的实现方式可能导致复杂的系统实现并且降低系统可伸缩性和灵活性,在许多应用场合将无法满足性能要求。



技术实现要素:

本公开的实施例涉及一种用于数据管理的方法以及使用在openflow系统中的装置。

在本公开的第一方面,提供了一种用于数据管理的方法。该方法包括:在openflow系统中建立第一设备与第二设备之间经由数据存储装置的数据分发服务(dds)通信连接,数据存储装置存储与第一设备有关的数据以使得第一设备的数据与处理逻辑分离;从第一设备接收涉及数据存储装置中所存储的数据的dds订阅消息,dds订阅消息指示第一设备订阅涉及数据的修改;基于从第二设备接收的针对数据的dds发布消息,修改数据;以及向第一设备发送修改后的数据。

在一些实施例中,建立dds通信连接可以包括:基于从第一设备和第二设备分别接收的第一dds订阅消息和第二dds订阅消息,确定第一设备和第二设备订阅对方的连接信息;基于从第一设备和第二设备分别接收的第一dds发布消息和第二dds发布消息,存储第一设备的第一连接信息和第二设备的第二连接信息;以及向第一设备发送第二连接信息并且向第二设备发送第一连接信息。

在一些实施例中,确定第一设备和第二设备订阅对方的连接信息可以包括以下至少一项:基于第一dds订阅消息,确定第一设备还订阅第三设备的连接信息;或者基于第二dds订阅消息,确定第二设备还订阅第四设备的连接信息。

在一些实施例中,基于dds发布消息修改数据可以包括:验证dds发布消息;以及响应于验证通过,提交对数据的修改。

在一些实施例中,dds发布消息可以是涉及对数据的多个修改的多个dds发布消息之一,并且基于dds发布消息修改数据可以包括:验证多个dds发布消息;以及响应于对多个dds发布消息的验证通过,一次性提交多个修改。

在一些实施例中,该方法可以进一步包括:从第一设备和第二设备中的源设备接收包括分组的dds发布消息,其中分组要发送给第一设备和第二设备中的目的地设备;基于dds发布消息将分组存储在数据存储装置中;以及向目的地设备发送分组。

在一些实施例中,向第一设备发送修改后的数据可以包括:从dds发布消息中提取安全性信息;将安全性信息存储在数据存储装置中;以及随修改后的数据向第一设备发送安全性信息。

在一些实施例中,数据可以包括以下至少一项:时间敏感数据的抽象数据或非时间敏感数据。

在一些实施例中,时间敏感数据的抽象数据可以包括第一设备中的物理流表的逻辑抽象流表。

在一些实施例中,数据可以使用标准建模方法来定义。

在一些实施例中,第一设备可以包括交换机并且第二设备可以包括软件定义网络(sdn)控制器。

在一些实施例中,第一设备可以包括sdn控制器或虚拟网络功能管理(vnfm)中的至少一项,第二设备可以包括资源编排单元,并且数据可以包括与sdn控制器或vnfm相关联的资源数据。

在本公开的第二方面,提供了一种用于数据管理的方法。该方法包括:在openflow系统中建立第一设备与第二设备之间经由数据存储装置的dds通信连接,数据存储装置存储与第一设备有关的数据以使得第一设备的数据与处理逻辑分离;向数据存储装置发送涉及数据存储装置中所存储的数据的dds订阅消息,dds订阅消息指示第一设备订阅涉及数据的修改;从数据存储装置接收修改后的数据;以及基于修改后的数据执行操作。

在一些实施例中,数据可以包括以下至少一项:时间敏感数据的抽象数据或非时间敏感数据。

在一些实施例中,时间敏感数据的抽象数据可以包括第一设备中的物理流表的逻辑抽象流表。

在一些实施例中,数据可以使用标准建模方法来定义。

在一些实施例中,基于修改后的数据执行操作可以包括:基于修改后的逻辑抽象流表对物理流表进行对应的修改;以及基于修改后的物理流表来执行分组转发。

在一些实施例中,建立dds通信连接可以包括:向数据存储装置发送用于建立dds通信连接的dds订阅消息,dds订阅消息指示第一设备订阅第二设备的第二连接信息;向数据存储装置发送用于建立dds通信连接的dds发布消息,dds发布消息包括第一设备的第一连接信息;从数据存储装置接收第二连接信息;以及基于第二连接信息向数据存储装置发送与第二设备相关的dds订阅消息。

在一些实施例中,用于建立dds通信连接的dds订阅消息可以还指示第一设备订阅第三设备的连接信息。

在一些实施例中,该方法可以进一步包括:向数据存储装置发送包括分组的dds发布消息,其中分组要发送给第二设备。

在一些实施例中,从数据存储装置接收修改后的数据可以包括:在修改后的数据中提取安全性信息;基于安全性信息来认证第二设备或修改后的数据的完整性。

在一些实施例中,第一设备可以包括交换机并且第二设备可以包括sdn控制器。

在一些实施例中,第一设备可以包括sdn控制器或vnfm中的至少一项,第二设备可以包括资源编排单元,并且数据可以包括与sdn控制器或vnfm相关联的资源数据。

在一些实施例中,基于修改后的数据执行操作可以包括:基于修改后的资源数据来执行对物理网络功能和虚拟网络功能的管理。

在本公开的第三方面,提供了一种用于数据管理的方法。该方法包括:在openflow系统中建立第一设备与第二设备之间经由数据存储装置的数据分发服务(dds)通信连接,数据存储装置存储与第一设备有关的数据以使得第一设备的数据与处理逻辑分离;确定第二设备针对数据的修改;以及向数据存储装置发送dds发布消息,dds发布消息指示修改。

在一些实施例中,建立dds通信连接可以包括:向数据存储装置发送用于建立dds通信连接的dds订阅消息,dds订阅消息指示第二设备订阅第一设备的第一连接信息;向数据存储装置发送用于建立dds通信连接的dds发布消息,dds发布消息包括第二设备的第二连接信息;从数据存储装置接收第一连接信息;以及基于第一连接信息向数据存储装置发送与第一设备相关的dds订阅消息。

在一些实施例中,用于建立dds通信连接的dds订阅消息可以还指示第二设备订阅第三设备的连接信息。

在一些实施例中,确定第二设备针对数据的修改可以包括:基于第二设备对第一设备的配置更新,确定针对数据的修改。

在一些实施例中,该方法可以进一步包括:向数据存储装置发送包括分组的dds发布消息,其中分组要发送给第一设备。

在一些实施例中,向数据存储装置发送dds发布消息可以包括:在dds发布消息中添加安全性信息;以及随dds发布消息向数据存储装置发送安全性信息。

在一些实施例中,数据可以包括以下至少一项:时间敏感数据的抽象数据或非时间敏感数据。

在一些实施例中,时间敏感数据的抽象数据可以包括第一设备中的物理流表的逻辑抽象流表。

在一些实施例中,数据可以使用标准建模方法来定义。

在一些实施例中,第一设备可以包括交换机并且第二设备可以包括sdn控制器。

在一些实施例中,第一设备可以包括sdn控制器或vnfm中的至少一项,第二设备可以包括资源编排单元,并且数据可以包括与sdn控制器或vnfm相关联的资源数据。

在一些实施例中,确定第二设备针对数据的修改可以包括:编排与sdn控制器或vnfm相关联的资源;以及基于经编排的资源来确定对资源数据的修改。

在本公开的第四方面,提供了一种使用在openflow系统中的装置。该装置包括至少一个处理器;以及包括计算机程序指令的至少一个存储器。至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使得装置执行根据第一至第三方面的方法。

附图说明

通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:

图1示出了snd网络中的典型openflow交换机和sdn控制器的示意性框图。

图2示出了sdn网络中的用于端到端资源编排的系统的示意性框图。

图3示出了根据本公开的实施例的交换机、数据存储装置、sdn控制器的示意性框图。

图4示出了根据本公开的实施例的端到端资源编排的示意性系统框图。

图5示出了根据本公开的实施例的第一设备、数据存储装置、第二设备之间的通信交互示意图。

图6示出了根据本公开的实施例的建立交换机与sdn控制器之间经由数据存储装置的dds通信连接的通信交互示意图。

图7示出了根据本公开的实施例的建立交换机与sdn控制器之间经由数据存储装置的dds通信连接的另一通信交互示意图。

图8示出了示出了根据本公开的实施例的数据存储装置中存储的数据类型的示意图。

图9示出了根据本公开的实施例的sdn控制器通过数据存储装置对交换机中的物理流表进行操作的通信交互示意图。

图10示出了根据本公开的实施例的sdn控制器通过数据存储装置对交换机中的物理流表进行操作的另一通信交互示意图。

图11示出了根据本公开的实施例的在交换机与sdn控制器之间通过数据存储装置传送分组的通信交互示意图。

图12示出了根据本公开的实施例的在交换机与sdn控制器之间通过数据存储装置实现通信安全的通信交互示意图。

图13示出了根据本公开的实施例的在数据存储装置处实现的方法的流程图。

图14示出了根据本公开的实施例的在第一设备处实现的方法的流程图。

图15示出了示出了根据本公开的实施例的在第二设备处实现的方法的流程图。

图16示出了一种可以被用来实施本公开的实施例的设备的示意性框图。

贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的组件。

具体实施方式

下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。

图1示出了snd网络中的典型openflow交换机110和sdn控制器120的示意性框图100。如图1所示,典型的openflow交换机110可以包括数据路径101和控制路径102。数据路径101主要执行openflow交换机110的分组查找和转发等功能,并且可以包括一个或多个流表111-1、111-2、111-3(统称为流表111)、群组表112、计量表113、以及端口114-1至114-4(统称为端口114)等等。

控制路径102主要用于实现对openflow交换机110的控制功能,并且可以包括一个或多个openflow信道115-1、115-2(统称为openflow信道115),等等。如图1所示,openflow信道115可以连接到外部的sdn控制器120-1、120-2等(统称为sdn控制器120),由此sdn控制器120与openflow交换机110进行通信,从而可以经由openflow协议来管理openflow交换机110。使用openflow协议,sdn控制器120可以添加、更新、或删除流表111中的流条目。openflow交换机110中的每个流表111可以包含流条目的集合,每个流条目可以包括匹配字段、计数器、以及用于匹配分组的指令集,等等。

应当理解,尽管图1中示出了openflow交换机110包括特定的组件并且示出了组件的特性数目,但是本公开的实施例不限于此,在其他实施例中,openflow交换机110可以包括更多或更少的组件或单元,也可以包括图1中未示出的其他组件或单元。

如上文提到的,在openflow交换机中,架构是完全以应用为中心的,即分组查找和转发的逻辑与流表111、流条目、计量表113和端口114状态等的数据紧密耦合在一起以形成分组转发功能(应用)。此外,sdn控制器120与openflow交换机110之间的openflow协议通信基于点到点消息,且利用预配置的ip地址和tcp端口,这种方式不利于功能和系统扩展。openflow协议中的数据和逻辑的紧密耦合以及数据发送方与接收方的紧密耦合导致了复杂的系统实现,并且降低了系统可伸缩性和灵活性。

图2示出了sdn网络中的用于端到端资源编排的系统200的示意性框图。如图2所示,系统200可以包括资源编排单元210、sdn控制器220、虚拟网络功能管理器(vnfm)230、物理网络功能(pnf)240、以及虚拟网络功能(vnf)250。资源编排功能210可以包括跨网络/域资源编排211、网络资源编排单元213和vnf资源编排单元215。

跨网络/域资源编排211可以与网络资源编排单元213和vnf资源编排单元215进行交互,以传达编排信息等。网络资源编排单元213和vnf资源编排单元215进而可以通过例如rest/restconf.等协议分别与sdn控制器220和vnfm230进行交互以传递对资源数据的修改信息。进一步地,sdn控制器220可以通过pcep、bgp-ls、netconf、igp和openflow等各种协议来控制、管理、部署pnf240,而vnfm230可以通过例如openflow等协议来控制、管理、部署vnf250。

应当理解,尽管图2中示出了资源编排单元210、sdn控制器220、vnfm230、pnf240、以及vnf250包括特定的组件并且示出了组件的特性数目,但是本公开的实施例不限于此,在其他实施例中,这些组件或单元可以包括更多或更少的组件,也可以包括图2中未示出的其他组件或单元。

如上文提到的,网络资源编排单元213、nfv(在本文中与“云”可互换地使用)资源编排单元215、sdn控制器220和vnfm230之间的相互作用是协议驱动的并且完全以应用为中心。具体地,编排工作通常以命令式编程或脚本语言实现并且经由通信协议直接与资源控制单元交互。资源编排单元210与网络资源控制单元或nfv(云)资源控制单元多样化在不同的标准组(例如,onf、ietf和mef等)中且迄今是动态的。为了提供端到端的网络&云资源编排,需要支持许多协议,这引入了复杂性和巨大的开发投入。另外,编排单元和网络/云控制器的控制器逻辑与相关数据紧密地耦合在一起。再次地,数据和逻辑的紧密耦合以及数据发送方与接收方的紧密耦合导致了复杂的系统实现,降低了系统可伸缩性和灵活性,并且数据是相对封闭的。

鉴于sdn网络中的已有架构和方法的上述或其他问题,本公开的实施例提供了一种以数据为中心的软件定义网络中的方法和装置。其主要基于以下几个方面的基本思想。首先,本公开的实施例以数据为中心,这主要体现在对于openflow交换机以交换机的数据为中心,例如流表、流条目、计量表、端口状态等,而对于端到端资源编排则以网络和云端的资源数据为中心。其次,本公开的实施例可以将逻辑与数据分离,例如将openflow交换机中的分组查找和转发逻辑与流表等数据分离,将资源控制、管理和编排的逻辑与资源数据分离,从而使得openflow交换机的软件或sdn控制器、nfvm和资源编排单元的软件可以是无状态的。

再次,本公开的实施例可以部署实时的分布式数据库来服务于openflow交换机场景以及端到端资源编排场景,从而可以利用成熟的数据库管理技术。第四,在openflow交换机场景以及端到端资源编排场景中,各种单元之间的通信可以通过对数据存储装置中的共享数据进行更新和访问来实现。下文首先结合图3和图4来介绍根据本公开的实施例的与openflow交换机相关联的第一场景的框图以及与端到端资源编排相关联的第二场景的框图。

图3示出了根据本公开的实施例的交换机310、数据存储装置330、sdn控制器320的示意性框图300。如图3所示,交换机310可以包括数据路径301和控制路径302。不同于图1中示出的典型openflow交换机110,数据路径301中不再存储大部分的数据,这些数据已经与交换机310的逻辑分离地存储在数据存储装置330中。但是,数据路径301仍然可以包括一个或多个物理流表311-1、311-2、311-3(统称为物理流表311)以及端口114-1至114-4(统称为端口114)。如后文将详细描述的,数据路径301包括物理流表311将是有利的,因为物理流表311是时间敏感数据。控制路径302可以包括交换机控制器315,其可以通过dds服务来与数据存储装置330进行交互。

dds基于所定义的数据“主题”和“类型”来分发数据。“主题”提供了唯一识别经由数据存储装置交换的数据的标识符。“类型”提供了数据的结构信息。在以数据为中心的机制中,为了实现sdn控制器320与交换机310之间的通信,可以对openflow协议中的每个消息类型定义对应的dds数据“主题”和“类型”。在dds数据“主题”和“类型”的定义内,一个或多个数据元素可以被选择作为dds主题“关键词”。可以将接收方设置为仅能接收到关键词相匹配的传入主题数据。此外,sdn控制器320和交换机310可以订阅或发布这些dds消息来实现它们之间的通信。

数据存储装置330可以包括与交换机310相关联的各种数据,例如对物理流表311-1、311-2、311-3的逻辑抽象流表331-1、331-2、311-3、群组表332、计量表333、端口状态334、配置数据335等。如图3中示出的,sdn控制器320也可以通过dds服务来与数据存储装置330进行交互,从而间接实现对交换机310的控制。

例如,在一种典型的控制过程中,sdn控制器320可以利用dds发布消息来修改数据存储装置330中存储的交换机310的数据。数据存储装置330可以基于交换机310对该数据的dds订阅向交换机310通知经修改的数据。交换机310在接收到经修改的数据后,可以基于该修改数据进行分组转发等操作。

应当理解,尽管图3中示出了openflow交换机310和数据存储装置330包括特定的组件并且示出了组件的特性数目,但是本公开的实施例不限于此,在其他实施例中,openflow交换机310和数据存储装置330可以包括更多或更少的组件或单元,也可以包括图3中未示出的其他组件或单元。

图4示出了根据本公开的实施例的端到端资源编排的示意性系统框图400。如图4所示,数据存储装置440设置在sdn控制器420和vnfm430与资源编排单元410之间。数据存储装置440中存储的数据可以包括与sdn控制器420或vnfm430相关联的资源数据。

与图3中类似,资源编排单元410可以通过dds服务来与数据存储装置440进行交互,从而间接实现对sdn控制器420或vnfm430的控制。例如,在一种典型的控制过程中,资源编排单元410可以编排与sdn控制器420或vnfm430相关联的资源。基于经编排的资源来确定对与sdn控制器420或vnfm430相关联的资源数据的修改。进而,利用dds发布消息来修改数据存储装置440中存储的与sdn控制器420或vnfm430相关联的资源数据。

数据存储装置440可以基于sdn控制器420或vnfm430对该数据的dds订阅向它们通知经修改的资源数据。sdn控制器420或vnfm430在接收到经修改的资源数据后,可以基于该修改的资源数据基于修改后的所述资源数据来分别执行对物理网络功能和虚拟网络功能的管理,例如对pnf450和vnf460的控制、管理和部署。

应当理解,尽管图4中示出了资源编排单元410、sdn控制器420、vnfm430、数据存储装置440、pnf450、以及vnf460包括特定的组件并且示出了组件的特性数目,但是本公开的实施例不限于此,在其他实施例中,这些组件或单元可以包括更多或更少的组件,也可以包括图4中未示出的其他组件或单元。

从图3和图4可以看出,可以利用数据存储装置330或440在上述第一场景中和第二场景中实现以数据为中心的架构转变。下面结合图5来描述本公开的实施例提供的用于在上述第一场景中和第二场景中的实现这一转变的通信交互流程。

图5示出了根据本公开的实施例的第一设备510、数据存储装置530、第二设备520之间的通信交互示意图500。在针对上述第一场景的实施例中,第一设备510可以包括图3中示出的交换机310并且第二设备520可以包括sdn控制器320。在针对上述第二场景的实施例中,第一设备510则可以包括图4中描绘的sdn控制器420或vnfm430中的至少一项,并且第二设备520可以包括资源编排单元410。

如图5所示,在第一设备510与第二设备520之间建立505经由数据存储装置530的dds通信连接,其中数据存储装置530存储与第一设备510有关的数据以使得第一设备510的数据与处理逻辑分离。例如,在与第一场景有关的实施例中,数据存储装置330可以将交换机310中的处理逻辑(诸如分组查找和转发逻辑等)与流表等数据分离,从而使得交换机310的软件可以是无状态的。在与第二场景有关的实施例中,数据存储装置440可以将资源控制管理和编排的逻辑与资源数据分离,从而使得sdn控制器420、nfvm430和资源编排单元410的软件可以是无状态的。

在一些实施例中,数据可以使用标准建模方法来定义。例如,可以在各单元(例如,第一场景中的交换机310和sdn控制器320等,或者第二场景中的资源编排单元410、sdn控制器420和vnfm430等)中使用yang标准数据模型,以支持数据(例如,openflow数据、拓扑数据等)的兼容性和开放性,以便用标准的方式支持数据开放生态系统。

在一些实施例中,第一设备510可以向数据存储装置530发送用于建立dds通信连接的dds订阅消息,该dds订阅消息指示第一设备510订阅第二设备520的连接信息。在一些实施例中,连接信息可以包括例如设备标识符(id)或协议版本等信息。

例如,在以数据为中心的机制中,交换机310与sdn控制器320之间的dds通信连接是通过设备id来识别的,例如交换机310的设备id和sdn控制器320设备id。为了通过dds建立通信连接,交换机310的设备id和sdn控制器320设备id可以被选择作为主题“关键词”以便获取来自所识别的发送方的数据并且屏蔽来自其他发送方的数据。

类似地,第二设备520也可以向数据存储装置530发送用于建立dds通信连接的dds订阅消息,该dds订阅消息指示第二设备520订阅第一设备510的第一连接信息。数据存储装置530可以基于从第一设备510和第二设备520分别接收的第一dds订阅消息和第二dds订阅消息,确定第一设备510和第二设备520订阅对方的连接信息。

此外,第一设备510向数据存储装置530发送用于建立dds通信连接的dds发布消息,该dds发布消息包括第一设备510的第一连接信息。类似地,第二设备520向数据存储装置530发送用于建立dds通信连接的dds发布消息,该dds发布消息包括第二设备520的第二连接信息。数据存储装置530基于从第一设备510和第二设备520分别接收的第一dds发布消息和第二dds发布消息,存储第一连接信息和第二连接信息。

再者,数据存储装置530向第一设备510发送第二连接信息并且向第二设备520发送第一连接信息。相应地,第一设备510从数据存储装置530接收第二设备520的第二连接信息,第二设备520从数据存储装置530接收第一设备510的第一连接信息。

进一步地,为了与第二设备520进行通信,第一设备510基于第二连接信息向数据存储装置530发送与第二设备520相关的dds订阅消息。类似地,为了与第一设备510进行通信,第二设备520基于第一连接信息向数据存储装置530发送与第一设备510相关的dds订阅消息。

通过这样的方式,第一设备510和第二设备520可以经由数据存储装置530获得对方的连接信息,从而可以在彼此之间建立经由数据存储装置530的dds通信连接。下面结合图6来描述本公开的实施例针对第一场景在交换机310与sdn控制器320之间经由数据存储装置330建立dds通信连接的详细过程。本领域的技术人员应当理解,在上述第二场景和其他可能场景中也可以实现类似的流程。

图6示出了根据本公开的实施例的建立交换机310与sdn控制器320之间经由数据存储装置330的dds通信连接的通信交互示意图600。应当理解,图6仅描绘了一种示例,无意以任何方式限制本公开的范围。本领域的技术人员将理解,在建立dds通信连接的其他实施例中,可以包括比图6描绘的更多或更少的操作或流程。

如图6所示,交换机310可以启动612。交换机310可以配置614与之相关联的sdn控制器320的设备标识符(id)。交换机310可以向数据存储装置330发送616dds订阅消息,以订阅sdn控制器的连接信息。例如,该dds订阅消息可以是“hello”主题的订阅消息,并且关键字为sdn控制器320的设备id和交换机310的设备id。

sdn控制器320可以启动642。sdn控制器320可以向数据存储装置330发送644dds订阅消息,以订阅交换机310的连接信息。例如,该dds订阅消息可以是“hello”主题的订阅消息,并且关键字仅为sdn控制器320的设备id。这表示sdn控制器320可以接收任何交换机发起的dds通信连接初始化。

交换机310可以向数据存储装置330发送618dds发布消息,以向数据存储装置330通知自己的openflow协议版本和设备id。例如,该dds发布消息可以是“hello”主题的发布消息,内容包括交换机310的openflow协议版本和设备id,并且关键字为sdn控制器320的设备id。

数据存储装置330可以存储632交换机310的openflow协议版本和设备id。在634处,由于sdn控制器320进行了订阅644,数据存储装置330向sdn控制器320推送交换机310的openflow协议版本和设备id。相应地,sdn控制器320可以获取646交换机310的openflow协议版本和设备id。

sdn控制器320可以向数据存储装置330发送648dds发布消息,以向数据存储装置330通知自己的openflow协议版本。例如,该dds发布消息可以是“hello”主题的发布消息,内容包括sdn控制器320的openflow协议版本,并且关键字为sdn控制器320的设备id和交换机310的设备id。

数据存储装置330可以存储636sdn控制器320的openflow协议版本。在638处,由于交换机310在616处进行了订阅,数据存储装置330向交换机310推送sdn控制器320的openflow协议版本。交换机310可以获取620sdn控制器320的openflow协议版本。交换机310可以进行openflow协议版本协商622。交换机310可以利用sdn控制器320的设备id等信息向数据存储装置330发送624其他主题的订阅消息,以订阅sdn控制器320对数据存储装置330中的数据的操作。

对应地,sdn控制器320可以进行openflow协议版本协商650。sdn控制器320可以利用交换机310的设备id等信息向数据存储装置330发送652其他主题的订阅消息,以订阅交换机310对数据存储装置330中的数据的操作。

图7示出了根据本公开的实施例的建立交换机310与sdn控制器320之间经由数据存储装置330的dds通信连接的另一通信交互示意图700。如图7中示出的,在交换机310与多个sdn控制器(例如,主sdn控制器320、从sdn控制器321、等同sdn控制器322)建立dds通信连接的场景中,交换机310可以选择使用图6中描绘的相同方式分别建立704、706、708与主sdn控制器320、从sdn控制器321、等同sdn控制器322的dds通信连接。

替换地,由于本公开的实施例在以数据为中心的架构中提供了dds数据发送方/接收方的解耦,所以交换机310可以使用另一种方式与多个sdn控制器建立点到多点的dds通信连接。这在图7中以710、712、714示意性地示出。

在这样的实施例中,交换机310向数据存储装置330发送的用于建立dds通信连接的dds订阅消息还可以指示交换机310订阅其他sdn控制器的连接信息。类似地,sdn控制器320向数据存储装置330发送的用于建立dds通信连接的dds订阅消息还可以指示sdn控制器320订阅其他交换机的连接信息。相应地,向数据存储装置330可以基于交换机310发送的dds订阅消息,确定交换机310还订阅其他sdn控制器的连接信息,或者基于sdn控制器320发送的dds订阅消息,确定sdn控制器320还订阅其他交换机的连接信息。

具体地,在图7描绘的示例中,主sdn控制器320、从sdn控制器321、等同sdn控制器322可以仅将交换机310的设备id作为它们所订阅的dds消息的关键词,从而交换机310发布的所有数据可以由所有sdn控制器接收到。对应地,交换机310将sdn控制器的设备id和它自己的设备id作为它所订阅的dds消息的关键词,从而由这些sdn控制器发布的数据仅由交换机310接收到。本领域的技术人员将理解,使用类似的过程,一个sdn控制器也可以与多个交换机建立点到多点的dds通信连接。

这种点到多点的dds通信连接改进了交换机到多个控制器(或控制器到多个交换机)的通信消息,以在一个操作中更新交换机的状态,而无需进行重复的通信。这样的方式还简单地避免了多个控制器之间的冗余和切换。

返回参考图5,第一设备510向数据存储装置530发送515涉及数据存储装置530中所存储的数据的dds订阅消息,该dds订阅消息指示第一设备310订阅涉及数据的修改。相应地,数据存储装置530从第一设备510接收该dds订阅消息。

例如,在与第一场景有关的实施例中,交换机310可以通过向数据存储装置330发送dds订阅消息来订阅sdn控制器320对数据存储装置330中的数据的修改。在与第二场景有关的实施例中,sdn控制器420或vnfm430可以通过向数据存储装置440发送dds订阅消息来订阅资源编排单元410对数据存储装置330中的数据的修改。

第二设备520确定525针对数据存储装置530中所存储的数据的修改。在一些实施例中,第二设备520可以基于第二设备520对第一设备510的配置更新,确定针对数据的修改。

例如,在与第一场景有关的实施例中,sdn控制器320可以先确定需要对交换机310的配置进行哪些更新,进而基于这些更新来确定针对数据存储装置330中的数据的修改。在与第二场景有关的实施例中,资源编排单元410可以先确定需要对sdn控制器420或vnfm430的配置进行哪些更新,进而基于这些更新来确定针对数据存储装置440中的数据的修改。

第二设备520向数据存储装置530发送535dds发布消息,该dds发布消息指示针对数据存储装置530中所存储的数据的修改。例如,在与第一场景有关的实施例中,sdn控制器320可以向数据存储装置330发送dds发布消息,以指示针对数据存储装置330中所存储的数据的修改。在与第二场景有关的实施例中,资源编排单元410可以向数据存储装置330发送dds发布消息,以指示针对数据存储装置440中所存储的数据的修改。

数据存储装置530基于从第二设备520接收的针对数据存储装置330中所存储的数据的dds发布消息来修改545该数据。例如,在与第一场景有关的实施例中,数据存储装置330可以修改与交换机310有关的逻辑抽象流表331、群组表332、计量表333、端口状态334、配置数据335等。在与第二场景有关的实施例中,数据存储装置440可以修改与sdn控制器420和vnfm430有关的资源数据441。

此外,在与第一场景有关的实施例中,与交换机310有关的逻辑抽象流表331、群组表332、计量表333、端口状态334、配置数据335可以分为两类,即时间敏感数据和非时间敏感数据。时间敏感数据可以包括物理流表331,而非时间敏感数据可以包括群组表332、计量表333、端口状态334、配置数据335等。下面结合图8来描述本公开的实施例对这两类数据的不同处理。

图8示出了根据本公开的实施例的数据存储装置330中存储的数据类型的示意图。如图8所示,数据存储装置330可以存储交换机310中的时间敏感数据810的抽象数据811。相比之下,对于交换机310中的非时间敏感数据820,数据存储装置330可以存储非时间敏感数据820而不是其抽象数据,即从交换机310的逻辑分离。

以此方式,诸如流表之类的时间敏感数据810可以例如以硬件方式实施在交换机310中,以便实现响应迅速的分组查找和转发等处理。在openflow协议中,流操作是交换机310中最为时间敏感的动作,通常流表物理地嵌入在交换机310的转发芯片集或三态内容寻址存储器(tcam)/同步动态随机存储器(sdram)中。

在数据存储装置330存储有交换机310的时间敏感数据810的抽象数据811和非时间敏感数据820的情况下,sdn控制器320可以通过发送802dds发布消息来修改抽象数据811,而作为响应数据存储装置330可以修改抽象数据811。数据存储装置330可以向交换机310发送806抽象数据811的修改。经由交换机控制器315,交换机310可以相应地修改交换机310中的时间敏感数据810。

另一方面,sdn控制器320可以通过发送804dds发布消息来修改非时间敏感数据820,而作为响应数据存储装置330可以修改非时间敏感数据820。数据存储装置330可以向交换机310发送808修改后的非时间敏感数据820。经由交换机控制器315,交换机310可以接收修改后的非时间敏感数据820。

在一些实施例中,时间敏感数据810的抽象数据811可以包括交换机310中的物理流表311的逻辑抽象流表331。通过这样的方式,本公开的实施例可以在以数据为中心的架构下实现对流表的操作。下面结合图9和图10来具体地描述这样的实施例。

图9示出了根据本公开的实施例的sdn控制器320通过数据存储装置330对交换机310中的物理流表311进行操作的通信交互示意图900。如图9所示,sdn控制器320可以向数据存储装置330发送902添加或修改逻辑抽象流表930中的流条目的dds发布消息。类似地,sdn控制器320还可以向数据存储装置330发送904删除逻辑抽象流表930中的流条目的dds发布消息。

数据存储装置330可以验证908dds发布消息。例如,该验证可以通过特定于应用的验证单元940来进行。响应于验证通过,数据存储装置330可以提交910对所存储的数据(例如,逻辑抽象流表930)的修改。通过数据存储装置330中的逻辑抽象流表930、以及(例如数据库管理的)验证功能908和提交功能910可以提供针对物理流表311的硬件屏蔽功能。因为在对交换机310中的物理流表311的数据修改和物理状态转换之前,数据可以首先根据约束条件被验证并首先在逻辑抽象流表930中提交修改。

数据存储装置330可以向交换机310发送912修改或添加流条目之后的逻辑抽象流表930。类似地,数据存储装置330可以向交换机310发送916删除流条目之后的逻辑抽象流表930。相应地,交换机310可以在物理流表311中添加914或修改914流条目。交换机310可以在物理流表311中删除918流条目。此外,在一些情况下,交换机310还可以向数据存储装置330通知920流条目的删除,数据存储装置330可以向通知906sdn控制器320。

图10示出了根据本公开的实施例的sdn控制器320通过数据存储装置330对交换机310中的物理流表311进行操作的另一通信交互示意图1000。在一些实施例中,在跨多个交换机(例如,交换机310-1、310-2)进行端到端流处理配置的情况中,在交换机310中和跨多个交换机310-1、310-2的流表操作的一致性在sdn网络中是重要的。在以数据为中心的架构下,本公开的实施例可以利用数据存储装置330中的(例如,数据库)的数据验证和事务管理功能来实现操作的一致性且在架构平台层级确保操作的一致性。

具体地,如图10所示,sdn控制器320可以向数据存储装置330发送1002修改逻辑抽象流表1030的dds发布消息。类似地,sdn控制器320可以向数据存储装置330发送1004修改逻辑抽象流表1040的dds发布消息。sdn控制器320可以向数据存储装置330发送1006修改逻辑抽象流表1050的dds发布消息。

数据存储装置330可以验证1008该多个dds发布消息。例如,这些验证可以通过特定于应用的验证单元1060来进行。响应于对多个dds发布消息的验证通过,数据存储装置330可以一次性提交1010多个修改。数据存储装置330可以向交换机310-1推送1012对逻辑抽象流表1030、1040、1050的修改。类似地,数据存储装置330可以向交换机310-2推送1014对逻辑抽象流表1030、1040、1050的修改。

返回继续参考图5,数据存储装置530向第一设备510发送555修改后的数据。相应地,第一设备510从数据存储装置530接收修改后的数据。例如,数据的发送可以通过dds的推送消息来实现,并且可以基于第一设备510此前向数据存储装置530发送的订阅消息。

第一设备510基于修改后的数据执行565操作。例如,在与第一场景有关的实施例中,交换机310可以基于修改后的逻辑抽象流表331、群组表332、计量表333、端口状态334、配置数据335来执行交换机310的相关功能,例如进行分组查找或转发,等等。在一些实施例中,交换机310可以基于修改后的逻辑抽象流表311对交换机310中的物理流表311进行对应的修改,以及基于修改后的物理流表311来执行分组转发。

此外,在与第二场景有关的实施例中,sdn控制器420或vnfm430可以基于修改后的资源数据441来执行sdn控制器420或vnfm430的相关功能,例如对pnf450或vnf460进行控制、管理和编排,等等。

在openflow协议中,“分组传入(packetin)”和“分组传出(packetout)”消息可以用来通过交换机110的数据路径向sdn控制器120或者从sdn控制器120发送分组。openflow协议可以允许在sdn控制器120与交换机110之间递送完整的分组。或者,分组可以被缓冲在交换机110中,而仅在分组传入消息或分组传出消息中包含用于供sdn控制器120中处理的有用信息组成的截短分组。例如,缓冲器标识符(id)可以用来识别交换机110中的缓冲分组以便进一步处理和在数据路径中递送。

然而,在openflow协议中,在交换机110中没有缓冲器可用的情况下,就必须向sdn控制器120递送完整的分组。这将会导致对openflow连接和sdn控制器120的负载压力。因此,在根据本公开的一些实施例中,利用以数据为中心的架构,可以改进openflow协议的这种机制。

图11示出了根据本公开的实施例的在交换机310与sdn控制器320之间通过数据存储装置330传送分组的通信交互示意图1100。如图11所示,sdn控制器320可以向数据存储装置330发送1102包括分组的dds发布消息,其中该分组要发送给交换机310。类似地,交换机310可以向所述数据存储装置330发送1108包括分组的dds发布消息,其中该分组要发送给sdn控制器320。

相应地,数据存储装置330可以从sdn控制器320接收1102并且从交换机310中的源设备接收1108包括分组的dds发布消息,其中分组要发送给sdn控制器320和交换机310中的目的地设备。数据存储装置330可以基于dds发布消息将分组存储1010在数据存储装置330中。数据存储装置330可以向sdn控制器320发送1104并且向交换机310中的目的地设备发送1106分组。

在一些实施例中,根据本公开的实施例也可以在以数据为中心的架构中使用dds服务来支持通信安全性。例如,可以支持openflow的标准传输层安全性(tls)和数据报传输层安全性(dtls)数据加密。图12示出了根据本公开的实施例的在交换机310与sdn控制器320之间通过数据存储装置330实现通信安全的通信交互示意图1200。

如图12所示,sdn控制器320可以在dds发布消息中添加1202安全性信息,并且随dds发布消息向数据存储装置330发送安全性信息。在一些实施例中,安全性信息例如可以包括签名数据或认证数据等信息。

数据存储装置330可以从dds发布消息中提取安全性信息,并且可以将安全性信息存储1204在数据存储装置330中。数据存储装置330可以随修改后的数据向第一设备310发送1206安全性信息。交换机310可以在修改后的数据中提取1208安全性信息,并且基于安全性信息来认证第二设备320或修改后的数据的完整性。

在一些实施例中,dds中的服务质量(qos)策略,例如“主题数据”和“用户数据”可以基于每个主题或每个发布者/订阅者来实现认证数据和签名数据,这对于sdn控制器中的交换机和各种应用更加灵活。此外,与数据存储装置330相关的数据库管理中的认证功能也可以提供其他的安全性解决方案。因此,本公开的实施例利用以数据为中心的机制可以在不同的层级中向系统安全提供更多的解决方案。

图13示出了根据本公开的实施例的在数据存储装置530处实现的方法1300的流程图。在与第一场景有关的实施例中,方法1300可以由数据存储装置330来执行。在与第二场景有关的实施例中,方法1300可以由数据存储装置440来执行。

如图13所示,在1302处,在openflow系统中建立第一设备510与第二设备520之间经由数据存储装置530的dds通信连接,数据存储装置530存储与第一设备510有关的数据以使得第一设备510的数据与处理逻辑分离。在1304处,数据存储装置530从第一设备510接收涉及数据存储装置530中所存储的数据的dds订阅消息,dds订阅消息指示第一设备510订阅涉及数据的修改。在1306处,数据存储装置530基于从第二设备520接收的针对数据的dds发布消息,修改数据。在1308处,数据存储装置530向第一设备510发送修改后的数据。

图14示出了根据本公开的实施例的在第一设备510处实现的方法1400的流程图。在与第一场景有关的实施例中,方法1400可以由交换机310来执行。在与第二场景有关的实施例中,方法1400可以由sdn控制器420或vnfm430来执行。

如图14所示,在1402处,在openflow系统中建立第一设备510与第二设备520之间经由数据存储装置530的dds通信连接,数据存储装置530存储与第一设备510有关的数据以使得第一设备510的数据与处理逻辑分离。在1404处,第一设备510向数据存储装置530发送涉及数据存储装置530中所存储的数据的dds订阅消息,dds订阅消息指示第一设备510订阅涉及数据的修改。在1406处,第一设备510从数据存储装置530接收修改后的数据。在1408处,第一设备510基于修改后的数据执行操作。

图15示出了示出了根据本公开的实施例的在第二设备520处实现的方法1500的流程图。在与第一场景有关的实施例中,方法1500可以由sdn控制器320来执行。在与第二场景有关的实施例中,方法1500可以由资源编排单元410来执行。

如图15所示,在1502处,在openflow系统中建立第一设备510与第二设备520之间经由数据存储装置530的dds通信连接,数据存储装置530存储与第一设备510有关的数据以使得第一设备510的数据与处理逻辑分离。在1504处,确定第二设备520针对数据的修改。在1506处,第二设备520向数据存储装置530发送dds发布消息,dds发布消息指示第二设备520针对数据的修改。

图16示意性地示出了一种可以被用来实施本公开的实施例的设备1600的框图。如图16中所示出的,设备1600包括中央处理单元(cpu)1601,其可以根据存储在只读存储设备(rom)1602中的计算机程序指令或者从存储单元1608加载到随机访问存储设备(ram)1603中的计算机程序指令,来执行各种适当的动作和处理。在ram1603中,还可存储设备1600操作所需的各种程序和数据。cpu1601、rom1602以及ram1603通过总线1604彼此相连。输入/输出(i/o)接口1605也连接至总线1604。

设备1600中的多个部件连接至i/o接口1605,包括:输入单元1606,例如键盘、鼠标等;输出单元1607,例如各种类型的显示器、扬声器等;存储单元1608,例如磁盘、光盘等;以及通信单元1609,例如网卡、调制解调器、无线通信收发机等。通信单元1609允许设备1600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法1300、1400和1500,可由处理单元1601来执行。例如,在一些实施例中,方法1300、1400和1500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1608。在一些实施例中,计算机程序的部分或者全部可以经由rom1602和/或通信单元1609而被载入和/或安装到设备1600上。当计算机程序被加载到ram1603并由cpu1601执行时,可以执行上文描述的方法1300、1400和1500的一个或多个步骤。

本公开的实施例实现了网络和系统架构从软件的视角以应用为中心转变为以数据为中心,至少实现了以下有益技术效果。首先,数据存储与应用逻辑的分离使得交换机软件或网络/云资源编排软件是无状态的,其显著地降低了软件复杂性,增加了系统稳健性,并且简单地支持软件模块插入和播放安装和集成。此外,数据分组和数据共享可以通过高效的方式来支持关键性交换机冗余的备份和恢复。进一步地,分离的数据还有助于对第三方的数据开放和网络大数据分析。

此外,通过利用数据库,成熟和现先进的数据库管理技术(例如索引、数据查询、分布式数据存储和访问等)可以使用在通信网络中以简化网络范围的数据管理。此外,openflow应用和端到端网络/云资源编排可以通过数据库管理系统(dbms)功能(例如,认证、一致性、事务处理、数据验证/提交、和安全性等)而被简化,以实现分布式环境中的高性能和能力。

此外,在各单元(例如,sdn控制器与交换机、或sdn控制器和nfvm与资源编排单元)之间的通信通过数据分发服务(dds)的发布/订阅服务来实现。与基于消息的通信相比,其使用数据作为将异构系统和应用互连的手段。它简化了数据传送和信令,高度减小了数据发送方与数据接收方之间的耦合。新功能或应用可以被添加而无需重构整个系统,这使得系统更加灵活和可伸缩,更加适用于端到端的复杂分布式sdn网络以及端到端网络/云资源编排。

此外,本公开的实施例可以采用标准的数据建模技术,例如可以在各单元(例如,第一场景中的交换机和sdn控制器等,或者第二场景中的资源编排单元、sdn控制器和vnfm等)中使用yang标准数据模型,以支持数据(例如,openflow数据、拓扑数据等)的兼容性和开放性,以便用标准的方式支持数据开放生态系统。

如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。

应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。

此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。

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