一种SDN网络编程方法、装置以及可读计算机存储介质制造方法及图纸

技术编号:28294960 阅读:16 留言:0更新日期:2021-04-30 16:18
本发明专利技术公开了一种SDN网络编程方法、装置以及可读计算机存储介质,其中,SDN网络编程方法包括:确定网络功能模块的细粒度;确定第一网络功能模块与第二网络功能模块是否符合连接关系,若符合,则第一网络功能模块与第二网络功能模块连接;所述第一网络功能模块的输出槽位记录所述第二网络功能模块的输入槽位和对象指针;所述第二网络功能模块的输入槽位记录所述第一网络功能模块的输出槽位和对象指针;该SDN网络编程方法将网络应用抽象成多个模块组合方式来完成,模块与模块间的组合方式通过模块内置的查找表来指定,以此通过动态修改查找表的内容,来灵活选择下一个处理数据包的模块,从而支持网络应用的在线更新,避免业务流的中断。

【技术实现步骤摘要】
一种SDN网络编程方法、装置以及可读计算机存储介质
本专利技术涉及软件定义网络
,特别涉及一种SDN网络编程方法、装置以及可读计算机存储介质。
技术介绍
网络已经成为现代社会的基础设施。传统网络将控制逻辑固化于分布式的网络设备之中,控制管理困难、设备臃肿僵化。软件定义网络(SDN)采用了数据平面与控制平面相分离的开放式系统架构,将底层网络设备进行统一抽象,以match+action流水线的形式进行数据包的处理。远程控制器则通过统一的南向编程接口(如OpenFlow)来控制、管理整个网络。然而,早期的SDN网络应用主要是基于开源控制器NOX/POX上进行开发部署,而NOX与POX对外提供的编程接口相对比较底层,其编程过程类似于直接对网络设备上的流表进行操作。因此,网络开发人员在进行SDN网络应用开发的同时往往需要兼顾应用的控制逻辑和对底层设备流表的操作,这无疑对整个开发过程带来了极大的困难与挑战,因此,SDN网络编程并不简单。为了降低SDN网络编程的复杂性,普林斯顿大学JenniferRexford等教授利用模块化的思想提出了SDN组合编程方法与编程框架,该框架将细粒度、功能相对独立的网络功能独立成单独的模块,并通过定义不同的“组合算子”将网络功能模块进行逻辑串接,从而构建功能相对更为复杂的网络应用,最后网络应用会编译成match+action的规则部署到底层网络设备。而所谓的“组合算子”描述了不同功能模块之间的逻辑关系,主要为二目运算符,包括并行、串行及重载三种算子。其中,并行算子保证两个网络功能模块可并行地处理网络数据包;串行算子使得网络数据包被前一个网络功能模块处理,然后再被后一个模块处理,因此前一个模块对数据包的操作会直接影响后一个模块对数据包的处理;重载算子保证数据包在无法被前一个网络功能模块处理时,就会让后一个模块进行处理,否则直接跳过后一个模块。SDN的模块化编程框架极大降低了网络编程的难度,同时加速了网络应用的创新与部署周期。在现有技术中,网络功能模块之间的逻辑关系(有向边)在网络编程系统框架启动前就已经通过配置文件固化确定,在运行过程中无法更改。这即是说网络应用所对应的数据转发流图的形状在运行过程中无法改动。因此,这直接导致了单个复杂网络应用无法进行在线修改或者升级(即动态改变转发流图)。
技术实现思路
为了解决上述问题,本专利技术提供一种支持网络应用的在线更新,避免业务流的中断的SDN网络编程方法以及装置。为了实现上述目的,本专利技术一方面提供一种SDN网络编程方法,包括:确定网络功能模块的细粒度;其中所述网络功能模块包括至少一个输入槽位和至少一个输出槽位;确定第一网络功能模块与第二网络功能模块是否符合连接关系,若符合,则第一网络功能模块与第二网络功能模块连接,否则拒绝连接;;所述第一网络功能模块的输出槽位记录所述第二网络功能模块的输入槽位和对象指针;所述第二网络功能模块的输入槽位记录所述第一网络功能模块的输出槽位和对象指针。可选的,所述确定网络功能模块的细粒度,进一步包括:将网络接口实例化为两个功能模块;将协议层的协议实例化为一个或者多个功能模块;将补充功能实例化为一个或者多个功能模块。可选的,所述网络接口包括物理接口和虚拟接口。可选的,所述网络功能模块的输入槽位和输出槽位的数量在所述网络功能模块初始化时确定。可选的,所述输出槽位和输入槽位用于填充指向对端网络功能模块和对端端口。可选的,在所述的第一网络功能模块与第一网络功能模块连接,之前还包括:判断所述第一网络功能模块与第一网络功能模块对应的输入槽位和输出槽位是否为空,若有其中一个不为空,则拒绝连接。可选的,确定第一网络功能模块与第二网络功能模块是否符合连接关系,进一步包括:根据第一网络功能模块自生的判断逻辑确定下一出口是否为第二网络功能模块或者通过控制面下发的路由表项确定下一出口是否为第二网络功能模块。另一方面,本专利技术还提供一种SDN网络编程装置,包括:第一确定单元,用于确定网络功能模块的细粒度;其中所述网络功能模块包括至少一个输入槽位和至少一个输出槽位;第二确定单元,用于确定第一网络功能模块与第二网络功能模块是否符合连接关系;第一记录单元,用于所述第一网络功能模块的输出槽位记录所述第二网络功能模块的输入槽位和对象指针;第二记录单元,用于所述第二网络功能模块的输入槽位记录所述第一网络功能模块的输出槽位和对象指针。在上述SDN网络编程装置中,可选的,所述第一确定单元包括:第一实例化模块,用于将网络接口实例化为两个功能模块;第二实例化模块,用于将协议层的协议实例化为一个或者多个功能模块;第三实例化模块,用于将补充功能实例化为一个或者多个功能模块。在上述SDN网络编程装置中,可选的,所述网络接口包括物理接口和虚拟接口。本专利技术相对于现有技术的有益效果是:SDN网络应用被抽象成不同功能模块按照一定的串联方式组合而成,单个功能模块完成数据包的处理后需要根据组合逻辑选择后续的功能模块来继续处理数据包。本专利技术对于数据包后续模块的选择采用了查表的方式来进行,即根据查表的结果选择后续的功能模块,通过调用该模块的指针从而继续进行数据包的处理。模块中的表的内容可以通过开放的接口被远程控制器进行实时修改,从而支持网络应用的在线更新,避免业务流的中断。附图说明图1是本专利技术中一种SDN网络编程方法的流程图;图2是IPv6的功能模块转发图;图3是连接器的示意图;图4是连接器的全局配置;图5是本专利技术中一种SDN网络编程装置的结构图;图6是本专利技术中第一确定单元的结构图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参照图1,本实施例提供一种SDN网络编程方法,包括以下步骤:S10:确定网络功能模块的细粒度;其中所述网络功能模块包括至少一个输入槽位和至少一个输出槽位;作为一个独立的操作和逻辑处理过程,网络功能模块大小的划分对整个转发有向图的拓扑结构和实现方式有着十分明显的影响。网络功能模块粒度划分的越大,内部包含的操作数目和逻辑过程也就越多,其灵活性与可编程性也就越差。而功能模块越小,则影响系统的性能。本实施例的模块划分规则如下:每一个网络接口(物理的或者虚拟的)实例化两个网络功能模块Interface-Input和InterfaceOutput;二层、三层、四层相关的协议,每个协议都实例化一个或者多个功能模块,如Ethernet-Input、IPv4、IPv6、ARP、ICMP和ICMP6等;三层转发标准之外的补充功能也实例化为单本文档来自技高网
...

【技术保护点】
1.一种SDN网络编程方法,其特征在于,包括:/n确定网络功能模块的细粒度;其中所述网络功能模块包括至少一个输入槽位和至少一个输出槽位;/n确定第一网络功能模块与第二网络功能模块是否符合连接关系,若符合,则第一网络功能模块与第二网络功能模块连接,否则拒绝连接;/n所述第一网络功能模块的输出槽位记录所述第二网络功能模块的输入槽位和对象指针;/n所述第二网络功能模块的输入槽位记录所述第一网络功能模块的输出槽位和对象指针。/n

【技术特征摘要】
1.一种SDN网络编程方法,其特征在于,包括:
确定网络功能模块的细粒度;其中所述网络功能模块包括至少一个输入槽位和至少一个输出槽位;
确定第一网络功能模块与第二网络功能模块是否符合连接关系,若符合,则第一网络功能模块与第二网络功能模块连接,否则拒绝连接;
所述第一网络功能模块的输出槽位记录所述第二网络功能模块的输入槽位和对象指针;
所述第二网络功能模块的输入槽位记录所述第一网络功能模块的输出槽位和对象指针。


2.根据权利要求1所述的SDN网络编程方法,其特征在于,所述确定网络功能模块的细粒度,进一步包括:
将网络接口实例化为两个功能模块;
将协议层的协议实例化为一个或者多个功能模块;
将补充功能实例化为一个或者多个功能模块。


3.根据权利要求2所述的SDN网络编程方法,其特征在于:所述网络接口包括物理接口和虚拟接口。


4.根据权利要求1所述的SDN网络编程方法,其特征在于:所述网络功能模块的输入槽位和输出槽位的数量在所述网络功能模块初始化时确定。


5.根据权利要求1所述的SDN网络编程方法,其特征在于:所述输出槽位和输入槽位用于填充指向对端网络功能模块和对端端口。


6.根据权利要求1所述的SDN网络编程方法,其特征在于,在所述的第一网络功能模块与第一网络功能模块连接,之前还包括:判断所述第一网络功能模块与第一网络功能模块对应的输入槽位和输出槽位是否为空,若有其中一个不为空,则拒绝连接。<...

【专利技术属性】
技术研发人员:潘恒李振宇武庆华钟植任刁祖龙孟旭颖孙远
申请(专利权)人:网络通信与安全紫金山实验室
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1