一种传输数据的方法及传输设备
技术领域
本发明涉及通信技术领域,特别涉及一种传输数据的方法及传输设备。
背景技术
通信网络经过电路交换的发展,满足了人们打电话、数字程序控制的需求,并且是一个从物理层到应用层完备的协议体系,非常好的支持了网络和应用之间的协调,比如上层感知底层的这个故障,上层流量控制和网络状况的配合等。
分组交换,尤其是IP(Internet Protocol,互联网协议)网络的兴起,为网络互连和网络资源的复用提供了条件,随着科技的发展,在IP网络的基础上衍生了SDN(SoftwareDefined Network,软件定义网络),SDN是一种新型网络架构,其核心技术将网络设备控制面与数据面分离开来,实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。
SDN中有两类设备:控制器和交换机,其中,控制器负责对网络进行集中控制,给交换机下发流表(flow table);而每个交换机基于流表进行数据传输。交换机分为软件层、适配层和硬件层,目前,交换机进行数据传输时,适配层要将软件层所支持的流表转换为硬件层所支持的流表,目前的转换方法是在假设除除第一个流表之外的其他流表的表项都要匹配metadata,并且每条流表项都要带write metadata,但是openflow协议并没有这么规定,因此,目前的流表格式的转换存在一定的局限性,灵活性较差,进而传输数据流的方法存在灵活性较差的缺陷。
发明内容
本发明实施例提供一种传输数据的方法及装置,用以解决现有技术中存在的灵活性较差的缺陷。
第一方面,提供一种传输数据流的方法,包括:
控制硬件层接收数据流,并将所述数据流发送至软件层;
控制所述软件层从所述软件层中存储的路由信息,生成所述软件层支持的第一格式的流表,并基于所述第一格式的流表项传输所述数据流;
控制所述软件层将所述第一格式的流表发送至适配层;
控制所述适配层将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域,将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域;
控制所述适配层将所述第二格式的流表发送至所述硬件层;
控制所述硬件层根据所述第二格式的流表传输所述数据流。
结合第一方面,在第一种可能的实现方式中,所述适配层位于软件层和硬件层之间;
所述适配层转换成所述第二匹配域、所述第二动作域之前,还包括:
存储所述硬件层所支持的流表格式;
控制所述适配层将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域,具体包括:
控制所述适配层根据所述硬件层所支持的流表格式,将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域;
控制所述适配层将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域,具体包括:
控制所述适配层根据所述硬件层所支持的流表格式,将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域。
结合第一方面,或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,若所述第一匹配域中的匹配项未存在重复的匹配项,则所述第二匹配域包括所述第一匹配域中的所有匹配项;
若所述第一匹配域中的匹配项存在相同的匹配项,则所述第二匹配域包括所述第一匹配域中不重复的匹配项,及重复匹配项中的指定匹配项;
其中,所述指定匹配项是指所述第一匹配域中的重复匹配项中的第一个匹配项。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二匹配域中还包括所述第一匹配域中不存在的匹配项;
其中,所述第一匹配域中不存在的匹配项的值是所述适配层从所述数据流中获取的。
结合第一方面,或者第一方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,控制所述适配层将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域之前,还包括:
控制所述软件层记录所述数据流在进入所述软件层时的第一数据版本和所述数据流离开所述软件层时的第二数据版本;
将所述第一数据版本和所述第二数据版本发送至所述适配层;
控制适配层将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域,具体包括:
控制适配层将所述第一格式的流表中的第一动作域根据所述第一数据版本和所述第二数据版本比较生成所述第二格式的流表中的第二动作域。
第二方面,提供一种传输设备,包括:
硬件层,用于接收数据流,并将所述数据流发送至所述传输设备的软件层;
所述软件层,用于从所述软件层中存储的路由信息,生成所述软件层支持的第一格式的流表,并基于所述第一格式的流表项传输所述数据流;
所述软件层,还用于将所述第一格式的流表发送至所述传输设备的适配层;
所述适配层,用于将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域,将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域;
所述适配层,用于将所述第二格式的流表发送至所述硬件层;
所述硬件层,用于根据所述第二格式的流表传输所述数据流。
结合第二方面,在第一种可能的实现方式中,所述适配层位于软件层和硬件层之间;
所述适配层还用于:存储所述硬件层所支持的流表格式;
所述适配层将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域时,具体用于:
所述适配层根据所述硬件层所支持的流表格式,将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域;
所述适配层将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域时,具体用于:
所述适配层根据所述硬件层所支持的流表格式,将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域。
结合第二方面,或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,若所述第一匹配域中的匹配项未存在重复的匹配项,则所述第二匹配域包括所述第一匹配域中的所有匹配项;
若所述第一匹配域中的匹配项存在相同的匹配项,则所述第二匹配域包括所述第一匹配域中不重复的匹配项,及重复匹配项中的指定匹配项;
其中,所述指定匹配项是指所述第一匹配域中的重复匹配项中的第一个匹配项。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二匹配域中还包括所述第一匹配域中不存在的匹配项;
其中,所述第一匹配域中不存在的匹配项的值是所述适配层从所述数据流中获取的。
结合第二方面,或者第二方面的第一至第三种可能的实现方式,在第四种可能的实现方式中,所述软件层还用于:
记录所述数据流进入所述软件层时的第一数据版本和所述数据流离开所述软件层时的第二数据版本;将所述第一数据版本和所述第二数据版本发送至所述适配层;
所述适配层将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本比较生成所述第二格式的流表中的第二动作域时,具体用于:
控制适配层将所述第一格式的流表中的第一动作域根据所述第一数据版本和所述第二数据版本比较生成所述第二格式的流表中的第二动作域。
现有技术中,交换机进行数据传输时,适配层要将软件层所支持的流表转换为硬件层所支持的流表,目前的转换方法是在假设除除第一个流表之外的其他流表的表项都要匹配metadata,并且每条流表项都要带write metadata,但是openflow协议并没有这么规定,因此,目前的流表格式的转换存在一定的局限性,灵活性较差,进而传输数据流的方法存在灵活性较差的缺陷,本发明实施例中,在转换时,适配层将所述第一格式的流表中的第一匹配域通过聚合方式转换为所述硬件层支持的第二格式的流表中的第二匹配域,将所述第一格式的流表中的第一动作域根据所述软件层接收所述数据流和发送所述数据流的版本生成所述第二格式的流表中的第二动作域,该方案中,没有限定的前提条件,因此,提高了传输数据流的灵活性。
附图说明
图1为本发明实施例中传输数据流的流程图;
图2为本发明实施例中传输数据流的实施例;
图3为本发明实施例中传输设备的功能结构示意图;
图4为本发明实施例中传输设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字母“/”,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图1所示,本发明实施例中,传输数据流的一种流程如下,包括:
步骤100:控制硬件层接收数据流,并将数据流发送至软件层;
步骤110:控制软件层从软件层中存储的路由信息,生成软件层支持的第一格式的流表,并基于第一格式的流表项传输数据流;
步骤120:控制软件层将第一格式的流表发送至适配层;
步骤130:控制适配层将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域,将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域;
步骤140:控制适配层将第二格式的流表发送至硬件层;
步骤150:控制硬件层根据第二格式的流表传输数据流。
本发明实施例中,可选的,适配层位于软件层和硬件层之间。
本发明实施例中,由于适配层是要将软件层所支持的流表转换为硬件层所支持的流表,因此,适配层转换成第二匹配域、第二动作域之前,还包括如下操作;
存储硬件层所支持的流表格式;
这样,适配层才能将软件层所支持的流表转换为硬件层所支持的流表。
因此,本发明实施例中,控制适配层将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域时,可选的,可以采用如下方式:
控制适配层根据硬件层所支持的流表格式,将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域;
本发明实施例中,控制适配层将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域时,可选的,可以采用如下方式:
控制适配层根据硬件层所支持的流表格式,将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域。
本发明实施中,可选的,若第一匹配域中的匹配项未存在重复的匹配项,则第二匹配域包括第一匹配域中的所有匹配项;
若第一匹配域中的匹配项存在相同的匹配项,则第二匹配域包括第一匹配域中不重复的匹配项,及重复匹配项中的指定匹配项;
其中,指定匹配项是指第一匹配域中的重复匹配项中的第一个匹配项。
本发明实施例中,进一步的,第二匹配域中还包括第一匹配域中不存在的匹配项;
其中,第一匹配域中不存在的匹配项的值是适配层从数据流中获取的。
本发明实施例中,硬件层所支持的流表格式可以如表1所示:
表1硬件层所支持的流表格式
如表1所示,硬件层支持6种流表格式,从上往下数依次为第一种至第六种流表格式,假设第一格式的流表中的第一匹配域中的全部表项包括在第四种流表格式中的匹配域,但是,第四种流表格式中的匹配域中还包括一些表项是第一匹配域中没有的,此时,这些第一匹配域中没有的表项的值是从数据流中获取的。
本发明实施例中,控制适配层将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域之前,还包括:
控制软件层记录数据流在进入软件层时的第一数据版本和数据流离开软件层时的第二数据版本;
将第一数据版本和第二数据版本发送至适配层。
这样,控制适配层将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域时,具体为:
控制适配层将第一格式的流表中的第一动作域根据第一数据版本和第二数据版本比较生成第二格式的流表中的第二动作域。
为了更好地理解本发明实施例,以下给出具体应用场景,针对传输数据流的过程,作出进一步详细描述,如图2所示:
步骤200:交换机控制硬件层层接收到数据流中的首包时,在硬件层中存储的流表中未查找到相匹配的流表项时,发送至软件层;
步骤210:交换机控制软件层根据首包生成,第一格式的流表,并将第一格式的流表发送至适配层;
步骤220:交换机控制适配层将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域,将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域;
步骤230:交换机控制适配层将第二格式的流表发送至硬件层;
步骤240:交换机控制硬件层根据第二格式的流表传输首包所属的数据流。
基于上述相应方法的技术方案,参阅图3所示,本发明实施例提供一种传输设备的功能结构示意图,该传输设备包括软件层30、适配层31及硬件层32,其中:
硬件层32,用于接收数据流,并将数据流发送至传输设备的软件层30;
软件层30,用于从软件层30中存储的路由信息,生成软件层30支持的第一格式的流表,并基于第一格式的流表项传输数据流;
软件层30,还用于将第一格式的流表发送至传输设备的适配层31;
适配层31,用于将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层32支持的第二格式的流表中的第二匹配域,将第一格式的流表中的第一动作域根据软件层30接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域;
适配层31,用于将第二格式的流表发送至硬件层32;
硬件层32,用于根据第二格式的流表传输数据流。
本发明实施例中,可选的,适配层31位于软件层30和硬件层32之间;
适配层31还用于:
存储硬件层32所支持的流表格式;
适配层31将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层32支持的第二格式的流表中的第二匹配域时,具体用于:
适配层31根据硬件层32所支持的流表格式,将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层32支持的第二格式的流表中的第二匹配域;
适配层31将第一格式的流表中的第一动作域根据软件层30接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域时,具体用于:
适配层31根据硬件层32所支持的流表格式,将第一格式的流表中的第一动作域根据软件层30接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域。
本发明实施例中,可选的,若第一匹配域中的匹配项未存在重复的匹配项,则第二匹配域包括第一匹配域中的所有匹配项;
若第一匹配域中的匹配项存在相同的匹配项,则第二匹配域包括第一匹配域中不重复的匹配项,及重复匹配项中的指定匹配项;
其中,指定匹配项是指第一匹配域中的重复匹配项中的第一个匹配项。
本发明实施例中,进一步的,第二匹配域中还包括第一匹配域中不存在的匹配项;
其中,第一匹配域中不存在的匹配项的值是适配层31从数据流中获取的。
本发明实施例中,进一步的,软件层30还用于:
记录数据流在进入软件层时的第一数据版本和数据流在离开软件层时的第二数据版本;将第一数据版本和第二数据版本发送至适配层31;
适配层31将第一格式的流表中的第一动作域根据软件层30接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域时,具体用于:
控制适配层31将第一格式的流表中的第一动作域根据第一数据版本和第二数据版本比较生成第二格式的流表中的第二动作域。
如图4所示,为本发明实施例提供的传输设备的实体装置结构图,传输设备包括至少一个处理器401,通信总线402,存储器403以及至少一个通信接口404。
其中,通信总线402用于实现上述组件之间的连接并通信,通信接口404用于与外部设备连接并通信。
其中,存储器403用于存储有可执行的程序代码,处理器401通过执行这些程序代码,以用于:
控制硬件层接收数据流,并将数据流发送至软件层;
控制软件层从软件层中存储的路由信息,生成软件层支持的第一格式的流表,并基于第一格式的流表项传输数据流;
控制软件层将第一格式的流表发送至适配层;
控制适配层将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域,将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域;
控制适配层将第二格式的流表发送至硬件层;
控制硬件层根据第二格式的流表传输数据流。
综上,本发明实施例中,在转换流表时,适配层将第一格式的流表中的第一匹配域通过聚合方式转换为硬件层支持的第二格式的流表中的第二匹配域,将第一格式的流表中的第一动作域根据软件层接收数据流和发送数据流的版本比较生成第二格式的流表中的第二动作域,该方案中,没有限定的前提条件,因此,提高了传输数据流的灵活性。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。