一种网络控制方法、数据转发方法及软件定义网络与流程

文档序号:21637737发布日期:2020-07-29 02:48阅读:329来源:国知局
本发明涉及网络管理
技术领域
:,具体涉及一种网络控制方法、数据转发方法及软件定义网络。
背景技术
::软件定义网络(softwaredefinednetworking,sdn)是一种新型的网络创新架构,也是网络虚拟化的一种实现方式。sdn是通过将网络设备的控制平面与数据平面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。sdn的整体架构由下到上分为数据平面、控制平面和应用平面,其中数据平面由交换机等网络通用硬件组成,各个网络设备之间通过不同规则形成的sdn数据通路连接;控制平面包含了逻辑上为中心的sdn控制器,它掌握着全局网络信息,负责各种转发规则的控制;应用平面包含着各种基于sdn的网络应用,用户无需关心底层细节就可以编程、部署新应用。sdn能够将整个网络的垂直方向变得开放、标准化、可编程,能够有效降低设备负载,协助网络运营商更好地控制基础设施,降低整体运营成本,成为了最具前途的网络技术之一。软件定义网络通过将控制平面和数据平面分离来简化网络管理,提高网络的可编程性。在理想情况下,数据平面的数据包转发行为应该符合控制平面的网络策略,但是在实际情况下,由于数据平面的流表所设置的规则与控制平面的网络策略之间存在的不一致情形,会造成数据包转发所经过的实际路径可能会与控制平面所期望的路径不相同。一旦数据包的转发行为不受控制,网络策略(如流量工程、访问控制等)将无法正常工作。此外,这种不确定的网络行为会进一步造成网络性能的下降甚至网络出错的情形发生(如循环转发、数据包丢失等)。因此,保证sdn中数据包转发所经过的实际路径与控制器所期望的路径一致具有重要的应用意义。当前,路径一致性验证主要采用基于探针包的路径检测方案和基于标签的路径检测方案。对于基于探针包的路径检测方案,针对数据平面的每一条流表规则,人为构造探针包并将其注入数据平面,通过观察探针包的转发行为来判断数据平面的流表规则是否被正确安装,进而判断用户产生的真实数据流量所经过的实际路径是否会与期望路径相同;此方案设计中,需要保证探针包只会触发特定的规则而不会被其它规则所影响,这就导致探针包的构造复杂度很高;这是因为商用openflow交换机中的规则数目能达到上千条甚至上万条,而软件交换机流表中的规则数目则更多;此外,流表中可能会存在多条匹配域部分重叠甚至完全相同的规则。因此,想要设计只触发特定规则的探针包是一项非常复杂并且耗时很多的工作,这就导致基于探针包的路径检测方案无法应用于频繁更新的网络中。对于基于标签的路径检测方案,在用户产生的真实数据包的包头位置插入标签,利用标签记录并压缩数据包经过的实际路径信息,同时在控制平面记录期望路径信息;通过比较标签中携带的实际路径信息和控制平面的期望路径信息,控制器可以判断数据包是否按照期望路径转发。在基于标签的路径检测方案设计中,标签的组成以及更新、控制平面期望路径信息的存储和表示是该类型路径检测方案需要重点关注的问题。随着未来网络的发展,各种网络协议和体系架构被不断的提出,在sdn异构融合网络中,数据平面可能是由多种类型的交换机构成,不同类型的交换机可能支持不同的协议(例如支持ip协议的交换机、支持icn协议的交换机、支持hybrid-icn协议的交换机);那么在sdn异构融合场景下,数据包转发的实际路径和期望路径之间的路径一致性验证问题将变得非常复杂和难解。然而,现有的路径一致性检测方案均没有针对sdn异构融合网络的应用情形,那么有必要针对多协议sdn场景下的路径一致性问题提出解决方案。技术实现要素:本发明主要解决的技术问题是如何在sdn异构融合网络中对数据转发的实际路径和期望路径之间的路径一致性进行有效地验证,避免不确定网络行为的发生。为解决上述技术问题,本申请公开一种网络控制方法、数据转发方法及软件定义网络。根据第一方面,一种实施例中提供一种用于软件定义网络的网络控制方法,所述软件定义网络包括控制层面和数据层面,所述控制层面用于对网络中的数据转发任务进行控制,所述数据层面用于执行网络中的数据转发任务;所述网络控制方法包括:获取所述软件定义网络中的数据层面的拓扑信息,所述拓扑信息包括构建所述数据层面的各个交换机之间的拓扑连接关系;根据所述拓扑信息为所述数据层面上的任意一数据流配置一条理想传输路径,所述理想传输路径是由多个交换机依次连接所构成的数据通道;根据预设的动态采样机制在所述理想传输路径中分配出一条或多条期望路径;所述动态采样机制包括随机确定对所述数据流进行采样的交换机和该交换机的动态采样时间,所述数据流在被采样后形成多个数据包;获取每个所述数据包经过所述数据层面的实际路径,利用所述期望路径对所述实际路径进行路径一致性验证,在未通过所述路径一致性验证时从所述实际路径中定位出出错的交换机。所述根据所述拓扑信息为所述数据层面上的任意一数据流配置一条理想传输路径,包括:对于所述数据层面上的任意一数据流,生成所述数据流对应的流向量,所述流向量用于标识所述数据流的唯一性;根据预设的路由决策机制从所述拓扑信息中确定若干个交换机,且为每个交换机配置对应的流表规则,利用所述流表规则配置形成所述数据流即将经过所述数据层面的理想传输路径;所述路由决策机制包括采用最短路径对数据进行传输,所述流表规则包括数据转发至下一个交换机的匹配动作;为所述理想传输路径中所包含的各个交换机分别配置不同的特征矩阵,所述特征矩阵用于标识对应的交换机的唯一性。所述根据预设的动态采样机制在所述理想传输路径中分配出一条或多条期望路径,包括:利用所述动态采样机制从所述理想传输路径中所包含的各个交换机内随机确定一个交换机,将该交换机作为对所述数据流进行采样的交换机;利用所述动态采样机制为所述数据流配置适合数据量大小的动态采样时间,所述动态采样时间为固定采样时长、线性递增采样时长和乘性递增采样时长中的任意一者;对所述理想传输路径中,采样的交换机及之后分布的各个交换机进行路径分配,得到一条或多条期望路径;所述期望路径用于对所述数据流在被采样后形成的每个数据包进行传输路径的约束;其中,采样的交换机用于将所述数据流采样为匹配于所述动态采样时间的多个数据包,且在每个所述数据包内插入信息标签;所述信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息。所述利用所述动态采样机制从所述理想传输路径中所包含的各个交换机内随机确定一个交换机,将该交换机作为对所述数据流进行采样的交换机,包括:对于所述理想传输路径中包含的各个交换机,用预设的概率分布方法随机计算出每个交换机的采样概率;选择最大的采样概率对应的交换机且作为对所述数据流进行采样的交换机;若各个交换机的采样概率之和为零,则不对所述数据流分配采样的交换机。所述对所述理想传输路径中,采样的交换机及之后分布的各个交换机进行路径分配,得到一条或多条期望路径,包括:若所述理想传输路径中包含的各个交换机均为ip协议类型的交换机,则将采样的交换机及之后分布的各个交换机分配为一条所述期望路径;若所述理想传输路径中包含的各个交换机内的若干个交换机为ip协议类型的交换机,且其余的交换机为icn协议类型的交换机,则将采样的交换机及之后分布的各个交换机,采样的交换机及之后的且任意一个icn协议类型的交换机及之前的各个交换机,分别分配为一条所述期望路径。所述获取每个所述数据包经过所述数据层面的实际路径,利用所述期望路径对所述实际路径进行路径一致性验证,在未通过所述路径一致性验证时从所述实际路径中定位出出错的交换机,包括:对于每个所述数据包,获取该数据包内插入的信息标签,解析所述信息标签包含的采样信息、路径信息和上报信息,根据解析结果得到该数据包经过所述数据层面的实际路径;利用所述实际路径中各个交换机分别对应的特征矩阵,计算得到所述实际路径对应的第一向量;利用每个所述期望路径中各个交换机分别对应的特征矩阵,计算得到该期望路径对应的第二向量,且由各个所述期望路径分别对应的第二向量构建形成向量集合;判断所述第一向量是否属于所述向量集合,若是则确认所述实际路径通过路径一致性验证,若否则确认所述实际路径未通过路径一致性验证;在确认所述实际路径未通过所述路径一致性验证时,根据所述数据包所在的数据流对应的流向量和参与计算所述第一向量的各个特征矩阵进行逆矩阵的乘法运算,选定导致运算结果不为整数的特征矩阵,且将该特征矩阵对应的交换机定位为所述实际路径中出错的交换机。根据第二方面,一种实施例中提供一种用于软件定义网络的数据转发方法,包括:根据上述第一方面中所述的网络控制方法获取所述软件定义网络的控制层面产生的配置信息;所述配置信息包括所述软件定义网络的数据层面上任意一数据流对应的流向量、所述理想传输路径中包含的各个交换机分别对应的流表规则和各个交换机分别对应的特征矩阵,以及确定为采样的交换机和该交换机的动态采样时间;判断所述数据流即将经过的交换机是否为采样的交换机,若不是采样的交换机,则根据该交换机对应的流表规则将所述数据流转发至下一个交换机;若是采样的交换机,则利用采样的交换机将所述数据流采样为匹配于所述动态采样时间的多个数据包,且在每个所述数据包内插入信息标签,以及根据该交换机对应的流表规则将每个所述数据包转发至下一个交换机;所述信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息;将每个所述数据包内的信息标签上报至所述软件定义网络的控制层面,以使得所述控制层面根据上报的信息标签对所述数据包经过所述数据层面的实际路径进行路径一致性验证。在将每个所述数据包转发至下一个交换机时,根据所述数据包所在数据流对应的流向量和下一个交换机的特征矩阵进行矩阵乘法的运算,利用运算结果更新所述数据包内信息标签中的路径信息;在每个所述数据包转发至最后一个交换机时,将最后一个交换机作为出口的交换机以送出所述数据包,且利用最后一个交换机更新所述数据包内信息标签中的上报信息;将所述数据包内最终更新的信息标签上报至所述软件定义网络的控制层面。根据第三方面,一种实施例中提供一种软件定义网络,包括控制层面和数据层面,所述数据层面包括有拓扑连接关系的多个交换机,其中各个交换机与所述控制层面通信连接;所述控制层面用于根据上述第一方面中所述的网络控制方法对所述数据层面上的任意一数据流的数据转发任务进行控制;所述数据层面用于根据上述第二方面中所述的数据转发方法执行所述数据流的数据转发任务。根据第四方面,一种实施例中提供一种计算机可读存储介质,包括程序,所述程序能够被处理器执行以实现上述第一方面中所述的网络控制方法,或者实现上述第二方面中所述的数据转发方法。本申请的有益效果是:依据上述实施例的一种网络控制方法、数据转发方法及软件定义网络,其中软件定义网络包括控制层面和数据层面,控制层面用于对网络中的数据转发任务进行控制,数据层面用于执行网络中的数据转发任务;其中网络控制方法包括:获取软件定义网络中的数据层面的拓扑信息,根据拓扑信息为数据层面上的任意一数据流配置一条理想传输路径,根据预设的动态采样机制在理想传输路径中分配出一条或多条期望路径,获取采样后的每个数据包经过数据层面的实际路径,利用期望路径对实际路径进行路径一致性验证,在未通过路径一致性验证时从实际路径中定位出出错的交换机。第一方面,由于软件定义网络的控制层面根据拓扑信息为数据层面上的任意一数据流配置一条理想传输路径,使得网络中的每一个数据流可以在理想传输路径的约束下进行传输,利于合理配置数据层面中的各个交换机,达到最优的数据转发效果;第二方面,由于根据预设的动态采样机制在理想传输路径中分配出一条或多条期望路径,使得数据流在动态采样和多协议类型交换机转发的情况下依然能够找到合理的期望路径,利于在多协议sdn异构融合网络中得以应用;第三方面,由于采用动态采样机制随机确定采样的交换机和适合数据量大小的动态采样时间,使得采样的交换机不再局限于路径中的第一个交换机,有助于提高数据流的采样效率,也使得大流和小流被采样的次数尽可能地相等,保证大小流采样的公平性;第四方面,由于利用期望路径对采样后的每个数据包经过数据层面的实际路径进行路径一致性验证,使得控制层面能够实时地了解到每个数据包的转发状态,利于及时地检查出数据包的转发错误情形;第五方面,采用动态采样机制可以使得每一条路径被验证的次数尽可能相等,从而保证路径一致性验证尽可能地兼顾验证效率和覆盖率;第六方面,由于控制层面在数据包的实际路径未通过路径一致性验证时从实际路径中定位出出错的交换机,使得数据流的动态采样和数据转发过程可以避免单点交换机的故障情形发生,利于提高路径一致性验证方案的健壮性;第七方面,由于控制层面为任意一数据流生成对应的流向量,为各个交换机配置不同的特征矩阵,使得数据层面的交换机可以通过矩阵乘法的运算来更新数据包内的信息标签,从而达到高效压缩路径信息且占用交换机资源少的目的,也使得控制层面可以通过逆矩阵的乘法运算定位出数据层面中出错的交换机;第八方面,在本申请请求保护的软件定义网络中,对控制层面和数据层面的功能分别进行了合理设置,可以很好地解决多协议sdn场景下路径一致性验证的问题,提高软件定义网络的实用性能。附图说明图1为本申请中软件定义网络的结构示意图;图2为控制层面中控制器的结构示意图;图3为数据层面中交换机的结构示意图;图4为数据流经过数据层面的各个交换机时数据转发过程的示意图;图5为本申请中用于软件定义网络的网络控制方法的流程图;图6为配置理想传输路径的流程图;图7为在理想传输路径中分配出一条或多条期望路径的流程图;图8为进行路径一致性验证的流程图;图9为本申请中用于软件定义网络的数据转发方法的流程图。具体实施方式下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。实施例一、请参考图1,本申请公开一种软件定义网络,其包括控制层面和数据层面,控制层面主要用于对网络中的数据转发任务进行控制,数据层面用于执行网络中的数据转发任务。在本实施例中,软件定义网络(softwaredefinednetwork,简称sdn)的控制层面可以包括控制器1,该控制器1与数据层面进行通信连接,对数据层面上的任意一数据流的数据转发任务实施控制。软件定义网络的数据层面可以通过一些交换机进行构建,即数据层面包括有拓扑连接关系的多个交换机(例如交换机a、b、c、d、e、f、g),且各个交换机分别与控制层面的控制器1进行通信连接,数据层面的各个交换机接收来自控制层面中控制器1产生的配置信息,根据配置信息对数据层面上的任意一数据流的数据转发任务进行控制。在实际应用中,软件定义网络(snd)不仅包括控制层面和数据层面,还会包括应用层面,使得数据层面、控制层面和应用层面形成由下到上(由南到北)的网络构架。其中,数据层面由交换机等网络通用硬件组成,各个网络设备之间通过不同规则形成的sdn数据通路连接;控制层面包含逻辑上为中心的控制器,它掌握着全局网络信息,负责各种转发规则的控制;应用层面包含着各种基于sdn的网络应用,用户无需关心底层细节就可以编程和部署新应用。sdn中的接口具有开放性,以控制器为逻辑中心,南向接口负责与数据层面进行通信,北向接口负责与应用层面进行通信,东西向接口负责多控制器之间的通信。最主流的南向接口cdpi采用的是openflow协议。openflow最基本的特点是基于流(flow)的概念来匹配转发规则,每一个交换机都维护一个流表(flowtable),依据流表中的转发规则进行转发,而流表的建立、维护和下发都是由控制器完成的。针对北向接口,应用程序通过北向接口编程来调用所需的各种网络资源,实现对网络的快速配置和部署。东西向接口使控制器具有可扩展性,为负载均衡和性能提升提供了技术保障。需要说明的是,由于本申请关注的是sdn中控制层面和数据层面之间的通信关系,而不关注应用层面的功能,所以这里不再对应用层面进行结构介绍和功能上的说明,用户可以根据实际需要来为本实施例中的软件定义网络添加应用层面,并在应用层面上部署应用。在本实施例中,参见图2和图3,控制层面的控制器1可以包括初始化模块11、拓扑管理模块12、路由决策模块13、采样控制模块14、路径分配模块15、验证模块16和错误定位模块17,该些模块通过一条控制总线进行连接。数据层面的任意一个交换机(用附图标记2进行表示)包括配置信息获取模块21、动态采样模块22、标签更新模块23、数据转发模块24和标签上报模块25,该些模块通过一条数据总线进行连接。在本实施例中,控制器1中的控制总线与交换机2中的各个模块之间通信连接,通过控制总线实现控制器1的各个模块与交换机2的各个模块之间的信号交互;数据总线可以传输数据流或数据包,在数据流或数据包经过数据总线的过程中,会接受到交换机2中各个模块的处理。接下来将结合图2对初始化模块11、拓扑管理模块12、路由决策模块13、采样控制模块14、路径分配模块15、验证模块16和错误定位模块17的功能分别进行介绍。初始化模块11用于对进入数据层面的任意一个数据流生成该数据流对应的流向量,以及对流向量进行保存,这里的流向量用于标识所述数据流的唯一性,例如用p=(v0,v1)来标识流向量,参数v0、v1表示的是两个整数数值;初始化模块11还用于为数据层面中的各个交换机分别配置不同的特征矩阵,以及将特征矩阵下发至对应的交换机,这里的特征矩阵用于标识对应的交换机的唯一性,例如用2*2维的可逆矩阵来标识交换机2。拓扑管理模块12用于获取软件定义网络中的数据层面的拓扑信息,这里的拓扑信息包括构建数据层面的各个交换机之间的拓扑连接关系。路由决策模块13用于根据预设的路由决策机制从拓扑管理模块12获取的拓扑信息中确定若干个交换机,且为每个交换机配置对应的流表规则,以及将流表规则下方到对应的交换机。其中,路由决策机制包括采用最短路径对数据进行传输,流表规则包括数据转发至下一个交换机的匹配动作。此外,路由决策模块13还用于利用流表规则配置形成数据流即将经过数据层面的理想传输路径,例如,对于用于u1达到用户u2的数据流k,可以配置数据流k的理想传输路径为(a,b,c,d,e,f,g),标记a、b、c、d、e、f、g表示数据依次经过的交换机顺序。采样控制模块14用于利用预设的动态采样机制从理想传输路径中所包含的各个交换机内随机确定一个交换机,将该交换机作为对数据流进行采样的交换机;采样控制模块14还用于利用动态采样机制为数据流配置适合数据量大小的动态采样时间,这里的动态采样时间为固定采样时长、线性递增采样时长和乘性递增采样时长中的任意一者。动态采样机制包括随机确定对数据流进行采样的交换机和该交换机的动态采样时间,以及将采样的交换机的选择信息和对动态采样时间的时间信息下发至数据层面中的该交换机;数据流在被采样后会形成多个数据包。具体地,采样控制模块14对于理想传输路径中包含的各个交换机,用预设的概率分布方法(比如正态均匀分布)随机计算出每个交换机的采样概率,选择最大的采样概率对应的交换机且作为对数据流进行采样的交换机;若各个交换机的采样概率之和为零,则不对数据流分配采样的交换机。需要说明的是,由采样控制模块14确定的采样的交换机用于将数据流采样为匹配于动态采样时间的多个数据包,且在每个所述数据包内插入信息标签。这里的信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息。路径分配模块15用于根据采样控制模块14的动态采样机制在理想传输路径中分配出一条或多条期望路径。具体地,若理想传输路径中包含的各个交换机均为ip协议类型的交换机,则路径分配模块15将采样的交换机及之后分布的各个交换机分配为一条期望路径;若理想传输路径中包含的各个交换机内的若干个交换机为ip协议类型的交换机,且其余的交换机为icn协议类型的交换机,则路径分配模块15将采样的交换机及之后分布的各个交换机,采样的交换机及之后的且任意一个icn协议类型的交换机及之前的各个交换机,分别分配为一条期望路径。验证模块16用于获取每个数据包经过数据层面的实际路径,利用期望路径对实际路径进行路径一致性验证。具体地,对于每个数据包,验证模块16获取该数据包内插入的信息标签,解析信息标签包含的采样信息、路径信息和上报信息,根据解析结果得到该数据包经过数据层面的实际路径;验证模块16利用实际路径中各个交换机分别对应的特征矩阵,计算得到实际路径对应的第一向量;验证模块16利用每个期望路径中各个交换机分别对应的特征矩阵,计算得到该期望路径对应的第二向量,且由各个期望路径分别对应的第二向量构建形成向量集合;验证模块16判断第一向量是否属于向量集合,若是则确认实际路径通过路径一致性验证,若否则确认实际路径未通过路径一致性验证。错误定位模块17用于在数据包的实际路径未通过路径一致性验证时从实际路径中定位出出错的交换机。具体地,错误定位模块17在确认实际路径未通过所述路径一致性验证时,根据数据包所在的数据流对应的流向量和参与计算第一向量的各个特征矩阵进行逆矩阵的乘法运算,选定导致运算结果不为整数的特征矩阵,且将该特征矩阵对应的交换机定位为实际路径中出错的交换机。接下来将结合图3对配置信息获取模块21、动态采样模块22、标签更新模块23、数据转发模块24和标签上报模块25的功能分别进行介绍。配置信息获取模块21用于获取软件定义网络的控制层面产生的配置信息;该配置信息包括软件定义网络的数据层面上任意一数据流对应的流向量、理想传输路径中包含的各个交换机分别对应的流表规则和各个交换机分别对应的特征矩阵,以及确定为采样的交换机和该交换机的动态采样时间。动态采样模块22用于根据配置信息判断数据流即将经过的交换机(即当前的交换机)是否为采样的交换机,若不是采样的交换机,则启动数据转发模块24根据该交换机对应的流表规则将数据流转发至下一个交换机;若是采样的交换机,则利用采样的交换机将数据流采样为匹配于所述动态采样时间的多个数据包,且在每个数据包内插入信息标签,以及启动数据转发模块24根据该交换机对应的流表规则将每个数据包转发至下一个交换机。这里的信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息。标签更新模块23用于在接收到上一个交换机转发过来的每个数据包时,根据该数据包所在数据流对应的流向量和该交换机的特征矩阵进行矩阵乘法的运算,利用运算结果更新数据包内信息标签中的路径信息。此外,标签更新模块23还用于在作为每个数据包转发过程的最后一个交换机时,将该交换机作为出口的交换机以送出数据包,并且利用最后一个交换机更新数据包内信息标签中的上报信息。数据转发模块24用于根据配置信息中的流表规则将标签更新模块23进行标签信息更新后的数据包转发至下一个交换机。此外,数据转发模块24还用于根据配置信息中的流表规则将未被采样的数据流转发至下一个交换机。标签上报模块25用于将每个数据包内的信息标签上报至软件定义网络的控制层面,以使得控制层面中的验证模块16根据上报的信息标签对数据包经过数据层面的实际路径进行路径一致性验证。具体地,标签上报模块25将数据包内最终更新的信息标签上报至软件定义网络的控制层面中的验证模块。在本实施例中,控制层面中的控制器1可以通过一种网络控制方法来对数据层面上的任意一数据流的数据转发任务进行控制,而这里的网络控制方法将在实施例二中进行具体说明。数据层面中的交换机2可以通过一种数据转发方法来执行数据流的数据转发任务,而这里的数据转发方法将在实施例三中进行具体说明。实施例二、请参考图5,在上述实施一中公开的软件定义网络的基础上,本实施例公开一种用于软件定义网络的网络控制方法,其主要包括步骤s110-s140,下面分别说明。需要说明的是,本实施例中的软件定义网络包括控制层面和数据层面。其中,控制层面用于对网络中的数据转发任务进行控制,其内的控制器1包括初始化模块11、拓扑管理模块12、路由决策模块13、采样控制模块14、路径分配模块15、验证模块16和错误定位模块17,关于控制器1的具体结构可以参见图2。其中,数据层面用于执行网络中的数据转发任务,其内的任意一个交换机2包括配置信息获取模块21、动态采样模块22、标签更新模块23、数据转发模块24和标签上报模块25,关于交换机2的具体结构可以参见图3。步骤s110,控制器1中的拓扑管理模块12获取软件定义网络中的数据层面的拓扑信息,这里的拓扑信息包括构建数据层面的各个交换机之间的拓扑连接关系,例如图1中交换机a、b、c、d、e、f、g所形成的拓扑信息。步骤s120,控制器1中的路由决策模块13根据拓扑信息为数据层面上的任意一数据流(例如图4中示意的数据流k)配置一条理想传输路径,该理想传输路径是由多个交换机依次连接所构成的数据通道。例如图4,对于用于u1达到用户u2的数据流k,路由决策模块13可以配置数据流k的理想传输路径为(a,b,c,d,e,f,g),以此来约束数据流k按照交换机a、b、c、d、e、f、g的顺序依次进行传输。步骤s130,控制器1中的路径分配模块15根据预设的动态采样机制在理想传输路径中分配出一条或多条期望路径。这里的动态采样机制包括随机确定对数据流进行采样的交换机和该交换机的动态采样时间,这里的数据流在被采样后形成多个数据包。步骤s140,控制器1中的验证模块16从数据层面获取每个数据包经过数据层面的实际路径,利用期望路径对实际路径进行路径一致性验证,在未通过路径一致性验证时从实际路径中定位出出错的交换机。在本实施例中,参见图6,上述的步骤s120主要为配置理想传输路径的技术手段,其可以包括具体步骤s121-s124,分别说明如下。步骤s121,对于数据层面上的任意一数据流(比如图4中的数据流k),控制器1中的初始化模块21生成该数据流对应的流向量,流向量用于标识数据流的唯一性。例如,对于图4中的数据流k,用p=(v0,v1)来标识数据流k对应的流向量。步骤s122,控制器1中的路由决策模块13根据预设的路由决策机制从拓扑信息中确定若干个交换机,且为每个交换机配置对应的流表规则。需要说明的是,路由决策机制包括采用最短路径对数据进行传输,流表规则包括数据转发至下一个交换机的匹配动作。例如图4,路由决策模块13中从拓扑信息所包含的众多的交换机中选择交换机a、b、c、d、e、f、g,为每个交换机配置对应的流表规则,使得交换机b按照对应的流表规则可以将从交换机a接收到的数据转发给交换机c。需要说明的是,流表规则实际上是一个匹配动作表,指的是如果接受的数据包满足某个条件,那么就会执行相应的动作,执行的动作包括往哪个接口上转发,丢弃数据包等。步骤s123,控制器1中的路由决策模块13利用流表规则配置形成数据流即将经过数据层面的理想传输路径。例如对于图4中的数据流k,路由决策模块13为其配置的理想传输路径为(a,b,c,d,e,f,g),由此来约束数据流k按照交换机a、b、c、d、e、f、g的顺序依次进行传输。步骤s124,控制器1中的初始化模块11为理想传输路径中所包含的各个交换机分别配置不同的特征矩阵,这里的特征矩阵用于标识对应的交换机的唯一性。例如对于图4中的交换机a、b、c、d、e、f、g,初始化模块11分别为这些交换机配置不同的2*2维的可逆特征矩阵。当然,初始化模块11可以为数据层面内所有的交换机预先配置不同的特征矩阵,在得到理想传输路径之后,调用理想传输路径中各个交换机对应的特征矩阵。在本实施例中,参见图7,上述的步骤s130涉及在理想传输路径中分配出一条或多条期望路径的技术手段,其可以具体包括步骤s131-s133,分别说明如下。步骤s131,控制器1中的路由决策模块13利用动态采样机制从理想传输路径中所包含的各个交换机内随机确定一个交换机,将该交换机作为对数据流进行采样的交换机。在一个具体的实施例中,路由决策模块13对于理想传输路径(a,b,c,d,e,f,g)中包含的各个交换机,用预设的概率分布方法随机计算出每个交换机的采样概率;然后,选择最大的采样概率对应的交换机且作为对数据流k进行采样的交换机;若各个交换机的采样概率之和为零,则不对数据流分配采样的交换机。例如,预设的概率分布方法可是采用分布满足a=0、b=1的均匀分布。当无法区分在区间[a,b]内取值的随机变量x取不同值的可能性有何不同时,就可以假定x服从[a,b]上的均匀分布。依据上述公式可以对交换机a、b、c、d、e、f、g,分别随机生成一个随机数,从而产生概率数值上的差异化。需要说明的是,采样的交换机是指数据层面中被确定进行采样的那个交换机,该采样交换机用于将数据流采样为匹配于动态采样时间的多个数据包,且在每个数据包内插入信息标签。这里的信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息。例如,采样信息是指由哪个交换机执行了采样的操作,路径信息是指数据包(例如图4中的数据包k)经过了哪些交换机,上报信息是指哪个交换机执行了信息标签的上报动作。步骤s132,控制器1中的采样控制模块14利用动态采样机制为数据流配置适合数据量大小的动态采样时间。这里的动态采样时间为固定采样时长、线性递增采样时长和乘性递增采样时长中的任意一者。需要说明的是,固定采样时长可以为5s,即采样的时间片为5s。线性递增采样时长具有线性递增规律,例如初始采样时间间隔为1秒,每次以2秒的时间递增,这样动态采样的时间间隔就是1,3,5,7,9等。乘性递增采样时长具有乘性递增规律,例如初始采样间隔为1秒,每次以2秒的时间乘性增加,这样动态采样的时间间隔就是1,2,4,8,16等。需要说明的是,采样控制模块14执行动态采样时,可以合理地调节大小流数据量的采样次数和后续路径一致性验证的次数。比如,大流被采样了10次,则大流对应的那条路径被执行路径一致性验证时检测了10次;而小流被采样了1次,则小流对应的那条路径被路径一致性验证时仅检测检测了1次。如此,能够保证对大小流数据量进行路径一致性验证时做到尽可能的公平和高效。步骤s133,控制器1中的路径分配模块15对理想传输路径中,采样的交换机及之后分布的各个交换机进行路径分配,得到一条或多条期望路径。这里的期望路径用于对数据流在被采样后形成的每个数据包进行传输路径的约束。在一个具体实施例中,若理想传输路径中包含的各个交换机均为ip协议类型的交换机,则路径分配模块15将采样的交换机及之后分布的各个交换机分配为一条期望路径;例如,若理想传输路径(a,b,c,d,e,f,g)中涉及的交换机均为ip协议类型的交换机,且交换机b被确定为采样的交换机,那么路径分配模块15将分配出一条期望路径,即期望路径(b,c,d,e,f,g)。在一个具体实施例中,若理想传输路径中包含的各个交换机内的若干个交换机为ip协议类型的交换机,且其余的交换机为icn协议类型的交换机,则将采样的交换机及之后分布的各个交换机,采样的交换机及之后的且任意一个icn协议类型的交换机及之前的各个交换机,分别分配为一条期望路径。例如,若理想传输路径(a,b,c,d,e,f,g)中涉及的交换机有多种协议类型,交换机d、f为icn协议类型的交换机(icn协议类型的交换机会缓存转发过的数据包packet),交换机a、b、c、e、g为ip协议类型的交换机(ip协议类型的交换机不会缓存数据包),那么路径分配模块15分配出三条期望路径,分别为期望路径(b,c,d,e,f,g)、期望路径(b,c,d)、期望路径(b,c,d,e,f)。需要说明的是,路径分配模块15会可以对这些期望路径进行存储以便后续调用,例如使用multivaluemap来进行存储。需要说明的是,本申请中提及的ip协议类型的交换机是指采样tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/网际协议)协议架构的数据交换设备;icn协议类型的交换机是指采样icn(informationcentricnetworking,信息中心网络)协议架构的数据交换设备。在本实施例中,参见图8,上述的步骤s140涉及路径一致性验证和定位出错交换机的技术手段,其可以具体包括步骤s141-s148,分别说明如下。步骤s141,控制器1中的验证模块16对于每个数据包,获取该数据包内插入的信息标签,解析信息标签包含的采样信息、路径信息和上报信息,根据解析结果得到该数据包经过数据层面的实际路径。需要说明的是,参见图1和图4,在控制器1为数据层面上的数据流k配置理想传输路径和采样的交换机之后,数据流k就在采样的交换机处被采样成多个数据包k,然后数据包k继续沿着期望路径进行数据的转发操作,直至被期望路径上的最后一个交换机(即出口的交换机)送出。但是,由于个别交换机会发生数据转发的故障,将导致数据包k可能没有按照期望路径进行传输,此时要找到数据包k的实际传输路径。例如,如果理想传输路径(a,b,c,d,e,f,g)上的交换机均为ip协议类型的交换机,则同一个数据包k的每一次调度路径都是相同的,也就是说同一个数据包k的每一次传输的实际路径均为(a,b,c,d,e,f,g)。例如,如果理想传输路径(a,b,c,d,e,f,g)上包含了ip协议类型的交换机,又包含了icn协议类型的交换机。因为icn协议类型的交换机会缓存已经转发出去的数据包,所以会导致同一个数据包k的每一次调度路径都可能是不同的。如果交换机d、f是icn协议类型的交换机,其余为ip协议类型的交换机,则对同一个数据包k,它的实际路径有可能为(a,b,c,d,e,f,g)、(a,b,c,d,e,f)、(a,b,c,d)。步骤s142,控制器1中的验证模块16利用实际路径中各个交换机分别对应的特征矩阵,计算得到实际路径对应的第一向量。例如,假设数据流k对应的流向量为p,数据流k被采样后的数据包k经过的交换机为b、c、d、e、f、g,各交换机对应的特征矩阵分别为b、c、d、e、f、g,那么,数据包k经过数据层面的实际路径对应的第一向量r=p*b*c*d*e*f*g,其中*表示矩阵的乘法运算。步骤s143,控制器1中的验证模块16利用每个期望路径中各个交换机分别对应的特征矩阵,计算得到该期望路径对应的第二向量,且由各个期望路径分别对应的第二向量构建形成向量集合。例如,对于交换机d、f为icn协议类型,且交换机a、b、c、e、g为ip协议类型的交换机的情形,数据包k的期望路径分别为期望路径(b,c,d,e,f,g)、期望路径(b,c,d)、期望路径(b,c,d,e,f)。期望路径(b,c,d,e,f,g)对应的第二向量t1=p*b*c*d*e*f*g,期望路径(b,c,d)对应的第二向量t2=p*b*c*d,期望路径(b,c,d,e,f)对应的第二向量t3=p*b*c*d*e*f。那么,由各个期望路径分别对应的第二向量构建形成向量集合为{t1,t2,t3}。步骤s144,控制器1中的验证模块16判断第一向量是否属于向量集合,若是则进入步骤s145。步骤s145,控制器1中的验证模块16确认数据包k的实际路径通过路径一致性验证。步骤s146,控制器1中的验证模块16确认数据包k的实际路径未通过路径一致性验证。步骤s147,控制器1中的验证模块16在确认数据包k的实际路径未通过路径一致性验证时,根据数据包所在的数据流对应的流向量和参与计算第一向量的各个特征矩阵进行逆矩阵的乘法运算,选定导致运算结果不为整数的特征矩阵,且将该特征矩阵对应的交换机定位为实际路径中出错的交换机。例如,假设数据包k所述数据流的流向量为p;数据包k的期望路径是(b,c,d,e),对应的第二向量t=p*b*c*d*e;数据包k的实际路径是(b,f,d,e),对应的第一向量r=p*b*f*d*e;特征矩阵a、b、c、d、e、f的逆矩阵分别为a1、b1、c1、d1、e1、f1,且满足乘法规律a*a1=1、b*b1=1。进行逆矩阵的第一步乘法运算:m=p*b*c*d*e*e1=p*b*c*d*1=p*b*c*d;n=p*b*f*d*e*e1=p*b*f*d*1=p*b*f*d;此时,m!=n,且m和n为整数,没有定位出出错的交换机。进行逆矩阵的第二步乘法运算:m=p*b*c*d*d1=p*b*c*1=p*b*c;n=p*b*f*d*d1=p*b*f*1=p*b*f;此时,m!=n,且m和n为整数,没有定位出出错的交换机。进行逆矩阵的第三步乘法运算:m=p*b*c*c1=p*b*1=p*b;n=p*b*f*c1=p*b*f*c1=p*b*f*c1;此时,m!=n,且n不再为整数,终止判断,定位出出错的交换机为特征矩阵b对应的交换机b。本领域的技术人员可以理解,控制器1中的验证模块16定位出出错的交换机之后,在为其它的数据流配置理想传输路径的时候,可以避开出错的交换机。实施例三、请参考图9,在实施例一中公开的软件定义网络,和实施例二中公开的网络控制方法的基础上,本实施例三公开一种用于软件定义网络的数据转发方法,该数据转发方法包括步骤s210-s280,下面分别说明。需要说明的是,本实施例中的软件定义网络包括控制层面和数据层面。其中,控制层面用于对网络中的数据转发任务进行控制,其内的控制器1包括初始化模块11、拓扑管理模块12、路由决策模块13、采样控制模块14、路径分配模块15、验证模块16和错误定位模块17,关于控制器1的具体结构可以参见图2。其中,数据层面用于执行网络中的数据转发任务,其内的任意一个交换机2包括配置信息获取模块21、动态采样模块22、标签更新模块23、数据转发模块24和标签上报模块25,关于交换机2的具体结构可以参见图3。步骤s210,交换机2中的配置信息获取模块21根据实施例二中的网络控制方法来获取软件定义网络的控制层面产生的配置信息。需要说明的是,这里的配置信息包括软件定义网络的数据层面上任意一数据流对应的流向量(比如为流向量p)、理想传输路径中包含的各个交换机分别对应的流表规则和各个交换机分别对应的特征矩阵(比如为交换机a、b、c、d、e、f、g分别对应的特征矩阵a、b、c、d、e、f、g),以及确定为采样的交换机(比如为交换机b)和该交换机的动态采样时间。步骤s220,交换机2中的动态采样模块22判断数据流即将经过的交换机(即当前的交换机)是否为采样的交换机,若是则进入步骤s230,反之进入步骤s270。步骤s230,交换机2中的动态采样模块22若判断当前的交换机是采样的交换机,则利用采样的交换机将数据流采样为匹配于动态采样时间的多个数据包,且在每个数据包内插入信息标签。例如图4中,若交换机b为采样的交换机,那么该交换机中的动态采样模块可以将数据流k采样为匹配于动态采样时间的多个数据包k,且在每个数据包k内插入信息标签。需要说明的是,这里的信息标签包括依据采样的交换机形成的采样信息、依据该数据包依次经过的交换机形成的路径信息,和送出该数据包的交换机形成的上报信息。步骤s240,交换机2中的动态采样模块22产生触发信息,启动数据转发模块24根据该交换机2对应的流表规则将每个数据包转发至下一个交换机。步骤s250,在将每个数据包转发至下一个交换机时,若交换机2就是下一个交换机且接收到来自上一个交换机转发过来的数据包时,交换机2中的标签更新模块23根据数据包所在数据流对应的流向量和交换机2的特征矩阵进行矩阵乘法的运算,利用运算结果更新数据包内信息标签中的路径信息。需要说明的是,在图4中,假设数据流k的流向量p=[7,8],交换机2的特征矩阵c=[7,4;6,5],模数p为交换机2的特征矩阵的绝对值,即p=|7*5-4*6|=11。那么,可以通过矩阵乘法得到运算结果,运算结果为(j*c)%p=[7*7+8*6,7*4+8*5]%11=[97,68]%11=[2,3];就可以用这个运算结果来更新数据包k内标签信息中的路径信息。需要说明的是,参见图4,假设数据包k先经过交换机c,再经过交换机d的话,那么数据流k的流向量p会先和交换机c的特征矩阵进行矩阵乘法运算,再和交换机d的特征矩阵进行矩阵乘法的运算。步骤s260,在每个数据包转发至最后一个交换机时,若交换机2就是最后一个交换机,那么交换机2中的标签更新模块23将自己作为出口的交换机以送出数据包(比如图4中送出数据包k至用户u2),且利用最后一个交换机更新数据包内信息标签中的上报信息。需要说明的是,若交换机2就是最后一个交换机,那么,交换机2中的标签上报模块25将每个数据包内的信息标签(即最终更新的信息标签)上报至软件定义网络的控制层面,以使得控制层面的验证模块16根据上报的信息标签对数据包经过数据层面的实际路径进行路径一致性验证。步骤s270,交换机2中的动态采样模块22若判断当前的交换机不是采样的交换机,则动态采样模块22产生触发消息,来启动数据转发模块24根据该交换机2对应的流表规则将数据流转发至下一个交换机。步骤s280,在交换机2将数据流转发至下一个交换机后,下一个交换机就获取控制层面产生的配置信息,继续判断自身是否为采样的交换机。这一过程可以参考步骤s210,这里不再进行赘述。本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属
技术领域
:的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1