CN110535771A - 一种数据转发方法、网络设备和计算机可读存储介质 - Google Patents
一种数据转发方法、网络设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110535771A CN110535771A CN201810510645.8A CN201810510645A CN110535771A CN 110535771 A CN110535771 A CN 110535771A CN 201810510645 A CN201810510645 A CN 201810510645A CN 110535771 A CN110535771 A CN 110535771A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- face data
- data
- control
- forwarding table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/33—Flow control; Congestion control using forward notification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Abstract
本发明实施例公开了一种数据转发方法,所述方法包括:管理面装置获取第一转发表生成请求,第一转发表生成请求用于指示生成第一转发表;获取生成第一转发表所需的第一转发面数据的标识;根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表;将第一转发表发送给转发面装置中与所述第一转发表对应的转发芯片,其中,第一转发表用于转发芯片根据第一转发表对待转发数据进行转发控制。本发明实施例同时还公开了一种网络设备和计算机可读存储介质。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据转发方法、网络设备和计算机可读存储介质。
背景技术
在通信领域,为了满足各种转发场景的数据转发需求,一种网络设备可以包括控制面装置和转发面装置。其中,控制面装置可以获取用于生成转发表的业务数据,控制面装置将获取的业务数据整合成转发表项,然后将转发表项发送给转发面装置。转发面装置根据接收到的转发表项生成转发表;然后,转发面装置根据生成的转发表对接收到的待转发的数据进行转发控制。
从以上可以看出,网络设备的架构存在很多问题,例如,对于转发面装置和控制面装置来说,二者都需要长期存储各个转发表项,从而造成存储资源浪费。再如,从开发角度来说,网络设备中控制面装置和转发面装置通常是由不同的开发人员来进行开发,由于目前转发面装置和控制面装置均需要进行生成转发表相关的数据整合加工处理,所以导致控制面装置和转发面装置的开发人员都需要了解转发表相关的数据整合加工处理,从而对开发人员的要求比较高,而且实现控制面装置和转发面装置的代码有重叠,代码实现的复杂度比较高。
发明内容
本发明实施例期望提供一种数据转发方法、服务器和计算机可读存储介质,能够减少网络设备的存储资源消耗以及降低网络设备的代码实现的复杂度。
本发明实施例的技术方案是这样实现的:
第一方面,本发明提供一种数据转发方法,所述方法包括:
管理面装置获取第一转发表生成请求,所述第一转发表生成请求用于指示生成第一转发表;
获取生成所述第一转发表所需的第一转发面数据的标识;
根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表;
将所述第一转发表发送给转发面装置中与所述第一转发表对应的转发芯片,
其中,所述第一转发表用于所述转发芯片根据所述第一转发表对待转发数据进行转发控制。
第二方面,本发明提供一种网络设备,所述网络设备包括控制面装置、转发面装置和管理面装置,其中:
所述控制面装置,配置为提供控制面数据;
所述管理面装置,配置为执行第一方面所述的方法;
所述转发面装置,配置为接收第一转发表,并根据所述第一转发表对待转发数据进行转发控制。
进一步地,所述网络设备为路由器。
第三方面,本发明提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据转发程序,所述数据转发程序被处理器执行时实现如第一方面中任一项所述的数据转发方法的步骤。
本发明的实施例所提供的数据转发方法、网络设备和计算机可读存储介质,通过管理面装置获取第一转发表生成请求,所述第一转发表生成请求用于指示生成第一转发表;获取生成所述第一转发表所需的第一转发面数据的标识;根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表;将所述第一转发表发送给转发面装置中与所述第一转发表对应的转发芯片,其中,所述第一转发表用于所述转发芯片根据所述第一转发表对待转发数据进行转发控制,使得控制面的开发人员不需要了解转发面的转发芯片的转变表项的打包规则,实现了控制面和转发面的代码的解耦,对代码的可维护性以及稳定性都带来了积极影响。
附图说明
图1为本发明实施例提供的一种传输网络的示意图;
图2为网络设备的一种架构示意图;
图3为本发明实施例提供的数据转发方法应用的网络设备的架构示意图;
图4为本发明实施例提供的数据转发方法的流程示意图;
图5为本发明实施例提供的数据转发方法的交互流程图;
图6为本发明实施例提供的表内迭代模型的示意图;
图7为本发明实施例提供的数据转发方法的应用流程示意图;
图8为本发明实施例提供的管理面装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在介绍本发明实施例提供的数据转发方法之前,先对本发明所涉及的系统架构和应用场景进行说明。
本发明实施例涉及一种传输网络,传输网络中可以包括多个网络设备,示例性的,网络设备可以为路由器等网络交换设备。
图1为本发明实施例提供的一种传输网络的示意图。如图1所示,传输网络可以包括网络设备1、网络设备2和网络设备3。
在本发明实施例中,各个网络设备可以包括控制平面和转发平面。控制平面也可以称为控制面装置,转发平面也可以称为转发面装置。以网络设备1为例,网络设备1的控制面装置中的业务模块可以从其他网络设备或者操作维护设备获取,之后,网络设备1的控制面装置可以根据获取到的业务数据、协议数据和配置数据中至少一种数据,对转发面装置进行控制,使得转发面装置可以在控制面装置的控制下对从网络设备3获取的待转发数据进行处理,并在处理之后转发至网络设备2。
举例来说,控制面装置可以控制转发面装置生成转发表,由转发面装置根据转发表生成待转发数据的转发策略,然后由转发面装置按照转发策略控制对待转发数据的处理。其中,转发策略可以包括:丢弃待转发数据、转发待转发数据等。在一示例中,若确定待转发数据的转发策略为转发待转发数据时,转发待转发数据的处理还可以包括:根据转发表,对待转发数据进行解封装、封装或者字段填充等处理中至少一种处理,在进行解封装、封装或者字段填充等处理中至少一种处理后,可以将处理后的数据转出至其他网络设备。
图2为网络设备的一种架构示意图。如图2所示,控制平面可以设置有业务模块和控制面内存,转发面平面可以包括一个或多个转发单板,每个转发单板上设置有转发芯片和适配模块,一个转发芯片对应一个转发表,转发芯片可以按照转发芯片对应的转发表确定待转发数据的转发策略。在本发明其他实施例中,控制平面还可以设置一代理服务端,转发平面上的每个转发单板上可以设置一代理客户端,代理服务端与代理客户端可以提供控制平面和转发平面之间信息交互的通道。
首先,控制面装置中的业务模块可以根据获取的业务数据、协议数据和配置数据中至少一种数据,生成控制面数据,并将生成的控制面数据存入控制面内存中。
其次,每个转发单板可以将对应的转发表所需的转发面数据的标识,发送给控制面装置。
需要说明的是,转发面装置上各个转发芯片对应的转发表需要按照转发面的数据定义方式生成,这种方式可以描述为一种转发表需求。每个转发芯片所需的转发表可以对应一个转发表需求。每个转发表需求可以包括生成转发表所需的转发面数据的标识,以及,生成转发表时各个转发面数据的组合方式,这种组合方式可以称为转发面整合规则。
然后,控制面装置获取转发面数据的标识与转发面数据的标识的对应关系,确定转发面数据的标识对应的控制面数据的标识,之后,从控制面内存中提取转发芯片所需的转发面数据,并将转发面数据组合成转发表项,发送给转发单板。其中,每个转发面数据可以根据一个或多个控制面数据生成。业务模块可以将转发面数据对应的一个或多个控制面数据整合为一个转发表项,发送给转发面装置。
最后,转发单板将接收到的转发面数据存入转发面内存。再由转发面装置中与转发芯片对应的适配模块根据转发表需求中定义的转发面整合规则,对所需的多个转发面数据进行组合,生成转发芯片对应的转发表,并将转发表下发至转发芯片上。
在一些情况下,转发面装置中的转发芯片的数量可以为一个或多个,每个转发芯片可以对应一个适配模块和一个转发面内存。在另一些情况下,多个转发芯片也可以对应同一个转发面内存。
在一些情况下,控制面装置中的业务模块的数量可以为一个或多个,控制面内存的数量可以为一个,即各个业务模块可以将获得的控制面数据存入控制面内存中。在本发明其他实施例中,控制面内存的数量也可以为多个。
在一些情况下,业务模块向控制面内存中写入控制面数据是通过硬编码方式实现的,即业务模块的开发人员在业务模块的代码实现中已将控制面数据在控制面内存中的存储地址编写在业务模块的代码中。这不仅造成业务模块的开发人员需要了解转发面数据的业务概念,即转发面数据与控制面数据的第一对应关系,当转发面数据表项的含义或者转发面数据与业务面数据的第一对应关系发生变化时,均需要业务模块的开发人员修改业务模块的代码实现,导致业务模块的开发人员的开发复杂度较高。不仅如此,由于转发面的适配模块需要对从控制面装置接收的转发表项进行加工,转发面内存需要一直存储这些转发表项,导致对转发面内存的消耗较大。
从以上可以看出,网络设备的架构存在很多问题,例如,对于转发面装置和控制面装置来说,二者都需要长期存储各个转发表项,从而造成存储资源浪费。再如,从开发角度来说,网络设备中控制面装置和转发面装置通常是由不同的开发人员来进行开发,由于目前转发面装置和控制面装置均需要进行生成转发表相关的数据整合加工处理,所以导致控制面装置和转发面装置的开发人员都需要了解转发表相关的数据整合加工处理,从而对开发人员的要求比较高,而且实现控制面装置和转发面装置的代码有重叠,代码实现的复杂度比较高。
为了解决上述问题,本发明实施例提供一种数据转发方法。下面对应用本发明实施例提供的数据转发方法的网络设备的系统架构进行说明。
图3为本发明实施例提供的数据转发方法应用的网络设备的架构示意图。如图3所示,在本发明实施例中,网络设备可以包括控制面装置1、转发面装置2和管理面装置3。其中,控制面装置1中可以设置有一个或多个业务模块、控制面内存,转发面装置上可以设置有一个或多个转发芯片,每个转发芯片对应一个转发表需求,转发表需求可以包括转发表需要的转发面数据的标识和转发面数据的组织方式。在本发明其他实施例中,转发面装置可以包括一个或多个转发单板,每个转发单板上设置一个转发芯片。
在本发明实施例中,控制面装置、管理面装置和转发面装置之间可以通过网络设备中的总线直接进行通信。在本发明其他实施例中,管理面装置与转发面装置之间也可以通过基于C/S架构的代理组件进行通信。代理组件例如可以包括代理服务端和代理客户端,其中,对于转发面装置上的每个的转发芯片可以设置一个代理客户端,管理面装置可以通过代理服务端向转发面装置的多个代理客户端发送数据的方式与转发面装置进行通信。
下面基于上述网络设备的架构,对本发明实施例提供的数据转发方法进行说明。
实施例一
图4为本发明实施例提供的数据转发方法的流程示意图。如图4所示,本发明实施例的步骤可以包括:
S401,管理面装置获取第一转发表生成请求,第一转发表生成请求用于指示生成第一转发表。
在本发明实施例中,管理面装置在获取第一转发表生成请求之前,可以接收控制面装置发送的回调注册请求。
需要说明的是,在控制面装置一侧,控制面装置可以在管理面装置获取第一转发表生成请求之前,执行以下步骤:Step1,控制面装置生成控制面数据。Step2,控制面装置向管理面装置发送回调注册请求。其中,回调注册请求用于指示管理面装置监控业务表中的数据是否发生变化。示例性的,控制面装置中的业务模块在生成控制面数据后,可以将控制面数据存储在控制面内存中的业务表中,并将控制面数据所存入的业务表的标识或者业务表中的控制面数据的标识作为各个控制面数据的存储地址,即访问地址。业务模块所执行的步骤可以通过业务模块的开发人员通过编码实现。对于控制面装置来说,采用这种通过业务表的标识或者业务表中控制面数据的标识来访问控制面内存中的控制面数据的方式,可以使得控制面数据可以被更方便和灵活的访问和提取。
还需要说明的是,在转发面装置一侧,转发面装置在管理面装置获取第一转发表生成请求之前,可以执行以下步骤:Step3,转发面装置向管理面装置发送转发表需求,转发表需求包括生成转发表需要的转发面数据的标识,以及,将转发面数据的标识对应的转发面数据整合生成转发表的转发面整合规则。Step4,转发面装置向管理面装置发送第一对应关系,第一对应关系为转发面数据的标识与控制面数据的标识之间的对应关系。在本发明其他实施例中,转发面装置可以不定期的向管理面装置发送各个转发芯片对应的转发表需求。举例来说,转发面装置在新增转发表需求或者转发表需求需要修改时,可以向管理面装置发送新增的或者修改的转发表需求。
在本发明实施例中,管理面装置在接收到转发表需求、第一对应关系之后,可以执行以下步骤:Step5,管理面装置根据转发表需求中的转发面数据的标识,以及,第一对应关系,确定生成各个转发表需要的控制面数据的标识。
在本发明实施例中,在管理面装置记录了各个转发表需要的控制面数据的标识之后,上述管理面装置获取第一转发表生成请求的步骤,可以包括:Step6,管理面装置在监控到控制面装置的业务表中的控制面数据发生变化时,查询各个转发表需要的控制面数据的标识,若发现发生变化的控制面数据的标识属于第一转发表需要的控制面数据的标识,生成第一转发表生成请求。
S402,获取生成第一转发表所需的第一转发面数据的标识。
在本发明实施例中,在上述获取生成第一转发表所需的第一转发面数据的标识的步骤中,第一转发面数据的标识可以包括生成转发表所需的所有转发面数据的标识。上述获取生成第一转发表所需的第一转发面数据的标识的步骤可以包括:Step7,从第一转发表需求中,获取生成第一转发表所需的第一转发面数据的标识。
S403,根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表。
在本发明实施例中,上述根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表,可以包括:根据第一转发面数据的标识和第一对应关系,从控制面装置中存储的控制面数据集合中获取第一控制面数据,第一对应关系为各个转发面数据的标识与各个控制面数据的标识之间的对应关系;根据第一控制面数据和第一对应关系,生成第一转发表。其中,上述根据第一控制面数据和第一对应关系,生成第一转发表,可以包括:根据第一控制面数据和第一对应关系确定第一转发面数据;根据第一转发面数据和获取的转发面整合规则,生成第一转发表。
需要说明的是,第一对应关系用于表征一个或至少两个第一控制面数据对应有一个第一转发面数据;相应地,上述根据第一控制面数据和第一对应关系,确定第一转发面数据,可以包括:根据一个或至少两个第一控制面数据和第一对应关系,确定第一转发面数据。
举例来说,上述根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表可以采用以下步骤实施:Step8,管理面装置根据生成转发表所需的第一转发面数据的标识,以及,第一对应关系,可以确定生成转发表所需的所有控制面数据的标识,可以称为第一控制面数据的标识。Step9,根据第一控制面数据的标识从控制面装置的各个业务表中提取第一控制面数据。Step10,根据第一对应关系,将各个第一控制面数据映射为各个第一转发面数据。Step11,根据第一转发面数据和转发面整合规则,生成第一转发表。
S404,将第一转发表发送给转发面装置中与第一转发表对应的转发芯片,其中,第一转发表用于转发芯片根据第一转发表对待转发数据进行转发控制。
在本发明实施例中,第一转发表为根据转发芯片对应的第一转发表需求生成的,因此,转发芯片可以根据第一转发表确定待转发数据的转发控制策略。
举例来说,待转发的数据可以为IP报文,转发芯片需要获取路由表和物理层端口表等业务数据生成转发表,根据转发表确定报文的转发策略,转发芯片根据转发表查询到该IP报文的目的IP地址对应的下一跳地址,以及下一跳地址对应的本地物理端口,和本地物理端口对应的媒体访问控制(Media Access Control,MAC)地址,对转发报文进行封装,将本地物理端口对应的MAC地址写入报文头中,将转发报文从本地物理端口发出。即该转发芯片对应的转发表应包括路由表、物理端口表、MAC表中的表项。
本发明实施例提供的数据转发模型,通过从控制单板获取业务表中的表项,使得控制面的开发人员不需要了解转发面的转发芯片的转变表项的打包规则,实现了控制面和转发面的代码的解耦,对代码的可维护性以及稳定性都带来了积极影响。
在本发明实施例中,对于控制面装置来说,控制面装置可以在生成一个业务表时向管理面装置发送注册回调请求,注册回调请求用于注册该业务表对应的业务表回调函数,由管理面装置监测业务表中的控制面数据的变化,并在监测到业务表中的控制面数据发生变化时,根据发生变化的控制面数据的标识和第一对应关系,确定受到影响的转发面数据的标识,并查询各个转发表需求中的转发面数据的标识,确定受到影响的转发面数据涉及的转发表,触发所涉及的转发表的生成或更新流程。举例来说,控制面装置可以在生成业务表、修改业务表等时,向管理面装置注册业务表回调函数,业务回调函数可以用于指示管理面装置监测到业务表中的控制面数据发生变更时,生成或更新与发生变更的控制面数据相关的转发表。在一示例中,对于不同的业务表,控制面装置可以分别向管理面装置发起注册业务表回调函数的步骤。
在一示例中,控制面装置向管理面装置发送的回调注册请求可以包括监测指示,监测指示用于当第一控制面数据发生变化时,指示管理面装置生成第二转发表生成请求,第二转发表生成请求用于指示生成用于更新第一转发表的第二转发表。相应地,在根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表之后,方法还包括:管理面装置在监测到第一控制面数据发生变更时,获取到第二转发表生成请求,第二转发表生成请求包括第一控制面数据中发生变更的第二控制面数据的标识;根据第二控制面数据的标识,从控制面装置中提取第二控制面数据;根据第二控制面数据,生成第二转发表;将第二转发表发送给转发芯片。采用这种方式,可以由控制面装置在更新控制面数据时,触发更新转发面装置的转发表。
下面对本发明实施例中涉及的存储在业务表中的控制面数据、控制面数据的标识与转发面数据的标识之间的第一对应关系、转发表、转发面整合规则进行举例说明。
第一部分:
在控制面装置一侧,控制面装置中可以存储有业务表X、业务表Y、业务表Z。
示例性的,表1为业务表X的一种示意。业务表X中存储的控制面数据可以如表1所示。
表1
X1 | X2 | X3 |
X1_1 | X2_1 | X3_1 |
X1_2 | X2_2 | X3_2 |
X1_3 | X2_3 | X3_3 |
其中,业务表X可以存储标识分别为X1、X2、X3的三类控制面数据,X1类型的控制面数据包括X1_1、X1_2和X1_3,X2类型的控制面数据包括X2_1、X2_2和X2_3,X3类型的控制面数据包括X3_1、X3_2和X3_3。
示例性的,表2为业务表Y的一种示意。业务表Y中存储的控制面数据可以如表2所示。
表2
其中,业务表Y可以存储标识分别为Y1、Y2的两类控制面数据,Y1类型的控制面数据包括Y1_1和Y1_2,Y2类型的控制面数据包括Y2_1和Y2_2。
示例性的,表3为业务表Z的一种示意。业务表Z中存储的控制面数据可以如表3所示。
表3
Z1 |
Z1_1 |
Z1_2 |
Z1_3 |
其中,业务表Z可以存储标识为Z1的控制面数据,Z1类型的控制面数据可以包括Z1_1和Z1_2。
第二部分:
在转发面装置一侧,转发面装置中定义有转发芯片需要的转发表对应的转发表需求,转发表需求包括生成转发表需要的第一转发面数据的标识,以及,将第一转发面数据整合为转发表的数据整合规则。
在本发明实施例中,管理面装置需要获取的第一对应关系为控制面数据的标识和转发面数据的标识之间的对应关系。在本发明实施例中,控制面数据的标识与转发面数据的标识之间的对应关系,与转发面数据的标识与控制面数据的标识之间的对应关系的含义是相同的。也就是说,第一对应关系可以用于表示转发面数据是由哪个控制面数据映射或生成的,第一对应关系也可以表示,当控制面数据发生变化时,会影响那些转发面数据。在本发明其他实施例中,控制面数据的标识和转发面数据的标识之间的对应关系可以由控制面装置和转发面装置预先协商。在本发明其他实施例中,第一对应关系可以从转发面装置获得,也可以从控制面装置获得。
举例来说,转发面装置中的转发芯片1、转发芯片2和转发芯片3需要的转发表分别为转发表T1、转发表T2和转发表T3。
示例性的,表4为转发表T1的一种示意。生成好的转发表T1可以如表4所示。
表4
x1_1 |
x1_2 |
x1_3 |
y1_1 |
y1_2 |
y1_3 |
其中,转发表T1可以由标识为x1和y1的转发面数据连接在一起组成,采用符号记录生成转发表T1的转发面整合规则可以为T1=x1+y1。其中,标识为x1的转发面数据对应的控制面数据的标识为X1,即标识为X1的控制面数据X1_1、X1_2和X1_3可以映射为标识为x1的转发面数据x1_1、x1_2和x1_3。可以采用符号记录转发面数据的标识和控制面数据的标识之间的对应关系为X1->x1或者x1<-X1。类似的,标识为y1的转发面数据对应的控制面数据的标识为Y1,可以采用符号记录转发面数据的标识和控制面数据的标识之间的对应关系为Y1->y1或者y1<-Y1,即标识为Y1的控制面数据Y1_1、Y1_2和Y1_3可以映射为标识为y1的转发面数据y1_1、y1_2和y1_3。
需要说明的是,生成好的转发表中的同一种标识的转发面数据的数量可以为一个或多个,某一标识的转发面数据的数量与映射所源自的控制面数据的数量一致。
示例性的,表5为转发表T2的一种示意。生成好的转发表T2可以如表5所示。
表5
其中,转发表T2可以由标识为x2和y2的转发面数据连接在一起组成,采用符号记录生成转发表T1的转发面整合规则可以为T1=x2+y2。其中,标识为x2的转发面数据对应的控制面数据的标识为X2和Z1,即标识为X2的控制面数据X2_1、X2_2和X2_3和标识为Z1的控制面数据Z1_1、Z1_2和Z1_3可以映射为标识为x2的转发面数据x2_1、x2_2、x2_3、x2_4、x2_5和x2_6,也就是说,标识为x2的转发面数据可以根据标识为X1的控制面数据和标识为Z1的控制面数据生成。可以采用符号记录转发面数据和控制面数据的对应关系为X2+Z1->x1或者x1<-X2+Z1。类似的,标识为y2的转发面数据对应的控制面数据的标识为Y2,可以采用符号记录转发面数据和控制面数据的对应关系,即Y2->y2或者y2<-Y2。
示例性的,表6为转发表T3的一种示意。生成好的转发表T3可以如表6所示。
表6
x3_1 | y1_1 |
x3_2 | y1_2 |
x3_3 | y1_3 |
其中,转发表T3可以由标识为x3和y3的转发面数据按照一一对应的关系组合而成,采用符号记录生成转发表T1的转发面整合规则可以为T1=(x3_1+y1_1)+(x3_2+y1_3)+…+(x3_n+y1_n),n可以为正整数。
标识为x3的转发面数据对应的控制面数据的标识为X3,即标识为X3的控制面数据X3_1、X3_2和X3_3可以映射为标识为x3的转发面数据x3_1、x3_2和x3_3,可以采用符号记录转发面数据和控制面数据的对应关系为X3->x3或者x3<-X3。类似的,标识为y1的转发面数据对应的控制面数据的标识为Y1,即Y1->y1或者y1<-Y1,即标识为Y1的控制面数据Y1_1、Y1_2和Y1_3可以映射为标识为y1的转发面数据y1_1、y1_2和y1_3。在一种转发场景中,标识为x3的转发面数据可以是目的IP地址,标识为y1的转发面数据可以是本地端口号,转发芯片可以根据该转发表,获取待转发数据的目的IP地址对应的端口号,并将该端口号写入待转发数据的“本地端口号”字段,之后将待转发数据通过该端口号对应的传输通道将数据转发至其他网络设备。
需要说明的是,表4和表5为链表型数据结构的转发表的示意,表6为复合型数据结构的转发表的示意,本发明其他实施例中的转发表也可以为其他的复合型数据结构,转发面整合规则还可以采用其他的组合规则。
在本发明其他实施例中,管理面装置也可以在监测到业务表中的控制面数据发生变化后,等待一个时间间隔,再执行转发表的生成或更新流程。示例性的,发生变化的控制面数据可以为标识为X3的控制面数据,控制面数据的标识X3对应的转发面数据的标识为x3,标识x3的转发面数据是根据标识为X3和标识为Z1的控制面数据得到的,管理面装置可以等待标识为Z1的控制面数据也发生变化后,触发所涉及的转发表的生成或更新流程。
本发明的实施例所提供技术方案,通过管理面装置获取第一转发表生成请求,第一转发表生成请求用于指示生成第一转发表;获取生成第一转发表所需的第一转发面数据的标识;根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表;将第一转发表发送给转发面装置中与第一转发表对应的转发芯片,其中,第一转发表用于转发芯片根据第一转发表对待转发数据进行转发控制,使得控制面的开发人员不需要了解转发面的转发芯片的转变表项的打包规则,实现了控制面和转发面的代码的解耦,对代码的可维护性以及稳定性都带来了积极影响。
实施例二
本发明实施例还提供一种数据转发方法。本发明实施例的执行主体包括控制面装置、转发面装置和管理面装置。
图5为本发明实施例提供的数据转发方法的交互流程图。如图5所示,本发明实施例的步骤包括:
S501,控制面装置生成控制面数据,并存入业务表。
其中,该步骤的实施细节可参考步骤S401中与Step1相关的描述。
在本发明其他实施例中,控制面装置中可以设置有应用模块、协议模块等生成业务数据的业务模块,业务模块可以将生成的业务数据存入控制面内存中。举例来说,协议模块可以包括三层协议模块、二层协议模块,如路由协议模块、开放式最短路径优先(OpenShortest Path First,OSPF)协议模块、媒体访问控制(Media Access Control,MAC)协议模块、地址解析协议(Address Resolution Protocol,ARP)模块中至少一种,应用模块可以为来自于OSI网络协议中的应用层的TCP/IP模块、物理层端口管理模块等。相应地,控制面装置提供的多种业务数据可以为路由表、OSPF业务表、MAC业务表、ARP业务表、物理层端口表等业务表中的条目。一个条目是指业务表中的一条数据,也可以称为一个表项。一个控制面数据的标识对应的控制面数据可以为控制面数据的标识相同的一个或多个表项。
S502,控制面装置向管理面装置发送回调注册请求,其中,回调注册请求用于指示管理面装置监控业务表中的数据是否发生变化。
其中,该步骤的实施细节可参考步骤S401中与Step2相关的描述。
S503,转发面装置向管理面装置发送转发表需求,转发表需求包括生成转发表需要的转发面数据的标识,以及,将转发面数据的标识对应的转发面数据整合生成转发表的转发面整合规则。
其中,该步骤的实施细节可参考步骤S401中与Step3相关的描述。
S504,转发面装置向管理面装置发送第一对应关系,第一对应关系为转发面数据的标识与控制面数据的标识之间的对应关系。
其中,该步骤的实施细节可参考步骤S401中与Step4相关的描述。
S505,管理面装置根据转发表需求中的转发面数据的标识,以及,第一对应关系,确定生成各个转发表需要的控制面数据的标识。
其中,该步骤的实施细节可参考步骤S401中与Step5相关的描述。
S506,管理面装置在监控到控制面装置的业务表中的控制面数据发生变化时,查询各个转发表需要的控制面数据的标识,若发现发生变化的控制面数据的标识属于第一转发表需要的控制面数据的标识,生成第一转发表生成请求。
其中,该步骤的实施细节可参考步骤S401中与Step6相关的描述。
S507,管理面装置从第一转发表需求中,获取生成第一转发表所需的第一转发面数据的标识。
其中,该步骤的实施细节可参考步骤S402中与Step5相关的描述。
S508,管理面装置根据生成转发表所需的第一转发面数据的标识,以及,第一对应关系,可以确定生成转发表所需的第一控制面数据的标识。
其中,该步骤的实施细节可参考步骤S403中与Step8相关的描述。
S509,管理面装置根据第一控制面数据的标识从控制面装置的各个业务表中提取第一控制面数据。
其中,该步骤的实施细节可参考步骤S403中与Step9相关的描述。
S510,管理面装置根据第一对应关系,将各个第一控制面数据映射为各个第一转发面数据。
其中,该步骤的实施细节可参考步骤S403中与Step10相关的描述。
S511,管理面装置根据第一转发面数据和转发面整合规则,生成第一转发表。
其中,该步骤的实施细节可参考步骤S403中与Step11相关的描述。
在本发明其他实施例中,上述至少两个控制面数据存储于控制面装置的一个或至少两个业务表中;相应地,上述根据第一对应关系和第一转发面数据的标识,从控制面装置中存储的控制面数据中获取第一控制面数据,可以包括:根据第一对应关系,确定第一转发面数据的标识对应的第一控制面数据的标识;根据第一控制面数据的标识和第二对应关系,分别从控制面装置中存储的一个或至少两个业务表中提取至少两个第一控制面数据;其中,第二对应关系为控制面数据集合中各个控制面数据与所属的业务表之间的对应关系。在一示例中,第二对应关系可以由控制面装置提供。相应地,在管理面装置获取第一转发表生成请求之前,管理面装置接收控制面装置发送的回调注册请求中可以包括第二对应关系。
S512,管理面装置将第一转发表发送给转发面装置中与第一转发表对应的转发芯片。
其中,第一转发表用于转发芯片根据第一转发表对待转发数据进行转发控制。
实施例三
在本发明实施例中,管理面装置可以包括:领域专用语言(Domain SpecificLanguage,DSL)DSL脚本定制模块、DSL编译模块和执行模块。其中,
DSL脚本定制模块,可以用于接收转发面装置发送的转发表需求和第一对应关系,以及,根据转发表需求、第一对应关系生成DSL脚本。
DSL编译模块,可以用于将所述DSL脚本编译为可执行程序。
执行模块,可以用于执行所述可执行程序,执行根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表的步骤。
在本发明其他实施例中,DSL脚本定制模块,还可以用于接收控制面装置发送的第二对应关系,以及,根据转发表需求、第一对应关系、所述第二对应关系生成DSL脚本。
在本发明实施例中,DSL脚本可以用于描述一个转发业务模型。
在本发明实施例中,一个转发业务模型可以对应一个转发场景。每个转发业务模型可以定义一组模型输入数据,以及,根据转发场景的需求,定义在相应的转发场景下将输入数据整合为一个输出表的处理过程。需要说明的是,不同的转发芯片可以对应不同的转发场景,某些转发芯片也可以对应相同的一个转发场景,也即,一个或多个转发芯片可以对应一个转发业务模型。对于转发场景相同的转发芯片,二者需要加工的控制面数据不同,但需要的处理过程是相同的,就可以采用相同的转发业务模型来生成转发芯片对应的转发表。
在本发明其他实施例中,上述根据第一转发面数据的标识对应的第一控制面数据,生成第一转发表的步骤,还可以采用以下步骤:
根据第三对应关系,将所述第一转发面数据对应的第一控制面数据映射为转发业务模型的模型输入数据;所述转发业务模型是根据所述转发表需求、所述第一对应关系、所述第二对应关系生成的;
将所述模型输入数据输入所述转发业务模型,得到所述第一转发表;
其中,所述第一对应关系为各个转发面数据的标识与各个控制面数据的标识之间的对应关系;所述第二对应关系为所述控制面数据集合中各个控制面数据与所属的业务表之间的对应关系;所述转发表需求包括生成所述第一转发表所需的第一转发面数据的标识和转发面整合规则。
举例来说,转发芯片1和转发芯片2对应相同的转发场景,该转发场景对应的转发业务模型为MD1,MD1的模型输入数据可以为Input1和Input2,MD1的模型输出表为Output,若生成转发芯片1所需的转发表T1的第一控制面数据的标识为X1和X2,生成转发芯片2所需的转发表T2的第一控制面数据的标识为X1和Z1。为了生成转发表T1,可以将标识为X1的控制面数据作为Input1,即将标识为X1的控制面数据映射为Input1,将标识为X2的控制面数据作为Input2,输入MD1得到Output,得到的Output就是生成好的转发表T1。类似的,为了生成转发表T2,可以将标识为X1的控制面数据作为Input1,将标识为Z1的控制面数据作为Input2,输入MD1得到Output,此时得到的Output就是生成好的转发表T2。
在本发明其他实施例中,转发业务模型也可以是采用其他机器语言描述的,如C语言、JAVA语言、VB语言等。
在本发明其他实施例中,转发业务模型还可以定义包括根据变更的控制面数据生成增量转发表的处理过程。其中,控制面数据的变更类型可以包括新增控制面数据的表项、修改控制面数据的表项和删除控制面数据的表项中至少一种。管理面装置可以根据发生变更的控制面数据,生成第一转发表中需要更新的部分,即增量转发表。
在本发明实施例中,管理面装置可以在监测到控制面数据的新增、修改和删除等变化时,触发与发生变更的控制面数据的标识存在关系的转发表的更新请求。存在关系的转发表即由发生变更的控制面数据的标识对应的控制面数据生成的转发表。
举例来说,当转发表T1所需的标识为X1的控制面数据中新增表项X1_4,标识为Y1的控制面数据中新增表项Y1_4,则管理面装置可以仅根据发生变更的控制面数据X1_4和X1_4生成增量转发表T1_1,首先将控制面数据X1_4和Y1_4分别映射为x1_4和y1_4。然后将转发面数据x1_4和y1_4整合为增量转发表T1_1。
示例性的,表7为转发表T1_1的一种示意。增量转发表T1_1可以如表7所示。
表7
x1_4 | y1_4 |
转发面装置在接收到增量转发表T1_1时,可以将T1_1与本地存储的转发表T1进行合并,得到新的转发表T1。
示例性的,表8为转发表T1的另一种示意。新的转发表T1可以如表8所示。
表8
x1_1 | y1_1 |
x1_2 | y1_2 |
x1_3 | y1_3 |
x1_4 | y1_4 |
在本发明其他实施例中,当控制面数据的变更类型为修改时,例如,仅标识为Y1的控制面数据中的Y1_1变更为Y1_1’,将Y1_1’映射为y1_1’,生成变更转发表T1_2。
示例性的,表9为转发表T1_2的一种示意。变更转发表T1_2可以如表9所示。
表9
x1_1 | y1_1’ |
相应地,转发面装置接收到变更转发表T1_2时,可以更新本地存储的转发表T1。
示例性的,表10为转发表T1的再一种示意。更新后的转发表T1可以如表10所示。
表10
x1_1 | y1_1’ |
x1_2 | y1_2 |
x1_3 | y1_3 |
x1_4 | y1_4 |
采用这种通过获取变更的表项来生成转发表的方式,能够避免现有技术中,在控制面装置上的业务表发生更新时,需要对每个表项重新整合转发表的处理步骤。此外,控制面装置可以仅向转发面装置发送变更的数据,减少板间通信的数据量。
本发明实施例的其他技术方案细节和技术效果,与图3所示方法类似,具体可以参考前述实施例的相关说明。
实施例四
在本发明实施例中,转发业务模型可以表示多种转发芯片的转发场景,例如有表内迭代转发模型、表间迭代模型、反刷模型、时序依赖引用模型、持续依赖删除更新模型、不保序删除模型、寄生模型、衍生模型等。
在本发明实施例中,基于上述实施例可以看出,转发业务模型可以用于同时指示一下至少一种信息:(1)待提取控制面数据的业务表的标识;(2)待提取控制面数据的业务表的访问方式;(3)待提取控制面数据与多个业务表之间的第二对应关系;(4)新增表项、或者更新表项或者删除表项对应的转发表的数据整合规则。
在本发明实施例中,转发业务模型可以采用DSL进行描述。DSL语言区别于通用目的语言(例如C语言、Java语言等),是专门针对某一特定问题的计算机语言,其基本思想是“求专不求全”。由于计算机的程序模型的单一性(归根结底都是运算和存储),即使是面向对象技术成为主流的今天,一般情况下,计算机程序都不太可能做到与业务领域中的概念保持一致。因此,软件的修改和可维护性并非想象中的那么容易。我们必须不断地将业务领域中的概念转换成相应的软件模型,然后再进行修改。这种间接性直接造成了软件的复杂度。而使用DSL的主要目的就是要消除这样的复杂度,即以构造DSL的复杂度来替代。DSL就是要以贴近业务领域的方式来构造软件。通过DSL我们不用费太多的气力就能理解代码所对应的业务含义。
下面以转发业务模型为表内迭代转发模型为例对以DSL语言描述的转发业务模型进行详细描述。表内迭代模型源自转发表的最终形成需要从控制面表项中的集合属性字段中提取。
图6为本发明实施例提供的表内迭代模型的示意图。如图6所示,业务表A包括a1、a2、a3和包含有集合属性字段head的表项,该head字段的类型可以为V_LIST,表明该表项指示的成员是其他的业务表。则转发业务模型需要体现在业务表A与业务表B具有关联时,在访问业务表A时需要遍历访问业务表B,也就是说,表内迭代模型相当于是将业务表B作为业务表A的子表,则转发业务模型可以定义将业务表A和业务表B的表项按照访问的顺序打包生成控制面数据进而生成转发表。在转发数据需要整合控制面表项A以及所有子表B的数据时,可以采用下面的方式定义DSL:
DSL语言定义的上述转发业务模型划分为两部分,第一部分INCLUDE段,描述需要使用的全局变量以及头文件,第二部分FWD_TABLE段,具体描述如何利用控制面提供的表项去整合得到需要的转发数据。一般包括declare段、control段、execute段、delete段。每个段各司其职,其中declare段用于声明本次整合需要访问的控制面表项;control段用于描述访问控制面表项的控制策略,例子中表示访问A表的每条数据时遍历访问B表的所有数据;execute段用于描述当控制面表项更新或新增表项时如何进行数据整合;而delete段则用于描述控制面表项删除时的处理。
图7为本发明实施例提供的数据转发方法的应用流程示意图。如图7所示,控制面的应用模块和协议模块能够以业务表的方式呈现转发数据的全集,模型驱动表项管理模块,即管理面装置可以在下发代理组件发送消息之前,按照不同的转发需求,将数据整理加工好,以此可以解决转发面二次存储导致的内存消耗的问题。同时考虑到控制面只需要呈现数据的访问方式,与转发面的耦合也能很好的解决。
基于以上想法,在协议模块应用模块和下发代理组件之间,架设一个新的功能层次和控制面的主体业务逻辑作隔离,它的职责单一,就是根据不同的转发需求,从协议和应用提供的数据表中提取数据进行整理加工。
鉴于数据的整理加工(例如进行迭代、反刷、拆分等),存在大量的重复代码逻辑,并且都有一定的模式可以遵循,我们引入代码自动生成技术来替代原来的C硬编码工作。举例来说,反刷加工是指,转发面在生成转发表项时需要在获取业务表A的表项的基础上,再从控制面获取业务表B中的表项。拆分是指,对从控制面获取的表项中的数据进行拆分,如取IP地址的前N个字节。
通过从纷杂的转发需求中所抽象出的几种通用的转发业务模型和关联模型,我们设计了一种DSL语言(包括DSL语言的编译器和解析器)来描述定义它们。开发人员运用这套领域专用语言定制所需要的转发模型,并形成对应的DSL脚本,然后通过DSL编译器和解析器翻译生成相应的C代码。得益于上述DSL脚本定制模型最终驱动完成转发数据整合的方式,将该层命名为“模型驱动转发表项管理”层。
该新的架构和DSL相关技术的运用,可以产生如下技术效果:解决了控制面和转发面重复存储数据的现状、有效的节约转发面的内存消耗,解决了控制面和转发面关于数据下发整合这部分的耦合。相对于C语言,DSL脚本简单、直观,完成相同功能代码比1:10,而且DSL脚本语言逻辑简单,语法上也可以不断完善和扩充,做到向前兼容,也便于评审走查和维护。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述。
本发明实施例还提供一种管理面装置,图8为本发明实施例提供的管理面装置的结构示意图。如图8所示,该装置可以包括处理器801和用于存储能够在处理器上运行的计算机程序的存储器802。其中,处理器801用于运行所述计算机程序时,执行图4所示数据转发方法的步骤。在本发明实施例中,管理面装置800还可以包括接口803和总线804等,其中,接口803可以用于与控制面装置和转发面装置进行信息交互,总线804用于处理器801、存储器802和接口803之间数据交互。在本发明实施例中,管理面装置可以位于网络设备在本发明其他实施例中,网络设备可以是路由器或者路由设备。所述管理面装置可以配置为执行上述任一种管理面装置执行的数据转发方法。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述,此处不再赘述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
本发明实施例还提供一种网络设备,所述网络设备可以配置为执行上述任一所述的数据转发方法。其中,控制面装置可以配置为执行上述任一种控制面装置执行的数据转发方法,转发面装置可以配置为执行上述任一种转发面装置执行的数据转发方法,管理面装置可以配置为执行上述任一种管理面装置执行的数据转发方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据转发程序,所述数据转发程序被处理器执行时实现上述任一管理面装置执行的数据转发方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据转发程序,所述数据转发程序被处理器执行时实现上述任一控制面装置执行的数据转发方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据转发程序,所述数据转发程序被处理器执行时实现上述任一转发面装置执行的数据转发方法的步骤。
在实际应用中,上述各种单板、代理服务端、代理客户端均可由位于网络设备中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(FieldProgrammable Gate Array,FPGA)等实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种数据转发方法,其特征在于,所述方法包括:
管理面装置获取第一转发表生成请求,所述第一转发表生成请求用于指示生成第一转发表;
获取生成所述第一转发表所需的第一转发面数据的标识;
根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表;
将所述第一转发表发送给转发面装置中与所述第一转发表对应的转发芯片,
其中,所述第一转发表用于所述转发芯片根据所述第一转发表对待转发数据进行转发控制。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表,包括:
根据所述第一转发面数据的标识和第一对应关系,从控制面装置中存储的控制面数据集合中获取第一控制面数据,所述第一对应关系为各个转发面数据的标识与各个控制面数据的标识之间的对应关系;
根据所述第一控制面数据和所述第一对应关系,生成所述第一转发表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一控制面数据和所述第一对应关系,生成所述第一转发表,包括:
根据所述第一控制面数据和所述第一对应关系确定所述第一转发面数据;
根据所述第一转发面数据和获取的转发面整合规则,生成第一转发表。
4.根据权利要求3所述的方法,其特征在于,第一对应关系用于表征一个或至少两个所述第一控制面数据对应有一个所述第一转发面数据;
所述根据第一控制面数据和所述第一对应关系,确定所述第一转发面数据,包括:
根据所述一个或至少两个第一控制面数据和所述第一对应关系,确定所述第一转发面数据。
5.根据权利要求4所述的方法,其特征在于,所述至少两个控制面数据存储于所述控制面装置的一个或至少两个业务表中;
所述根据第一对应关系和所述第一转发面数据的标识,从控制面装置中存储的控制面数据中获取第一控制面数据,包括:
根据第一对应关系,确定所述第一转发面数据的标识对应的第一控制面数据的标识;
根据所述第一控制面数据的标识和第二对应关系,分别从所述控制面装置中存储的一个或至少两个业务表中提取所述至少两个第一控制面数据;
其中,所述第二对应关系为所述控制面数据集合中各个控制面数据与所属的业务表之间的对应关系。
6.根据权利要求5所述的方法,其特征在于,在所述管理面装置获取第一转发表生成请求之前,所述方法还包括:
接收控制面装置发送的回调注册请求,所述回调注册请求包括所述第二对应关系;
接收所述转发面装置发送的所述第一转发表对应的转发表需求和所述第一对应关系;所述转发表需求包括生成所述第一转发表所需的第一转发面数据的标识和所述转发面整合规则。
7.根据权利要求6所述的方法,其特征在于,所述回调注册请求还包括监测指示,所述监测指示用于当所述第一控制面数据发生变化时,指示所述管理面装置生成第二转发表生成请求,所述第二转发表生成请求用于指示生成用于更新所述第一转发表的第二转发表;
在根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表之后,所述方法还包括:
在监测到所述第一控制面数据发生变更时,获取到第二转发表生成请求,所述第二转发表生成请求包括所述第一控制面数据中发生变更的第二控制面数据的标识;
根据所述第二控制面数据的标识,从所述控制面装置中提取所述第二控制面数据;
根据所述第二控制面数据,生成所述第二转发表;
将所述第二转发表发送给所述转发芯片。
8.根据权利要求6所述的方法,其特征在于,所述管理面装置包括:DSL脚本定制模块、DSL编译模块和执行模块;
所述DSL脚本定制模块用于,接收转发面装置发送的转发表需求和第一对应关系,以及,接收控制面装置发送的第二对应关系,以及,根据所述转发表需求、所述第一对应关系、所述第二对应关系生成DSL脚本;
所述DSL编译模块用于将所述DSL脚本编译为可执行程序;
所述执行模块用于执行所述可执行程序,执行根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表的步骤。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一转发面数据的标识对应的第一控制面数据,生成第一转发表,包括:
根据第三对应关系,将所述第一转发面数据对应的第一控制面数据映射为转发业务模型的模型输入数据;所述转发业务模型是根据所述转发表需求、所述第一对应关系、所述第二对应关系生成的;
将所述模型输入数据输入所述转发业务模型,得到所述第一转发表;
其中,所述第一对应关系为各个转发面数据的标识与各个控制面数据的标识之间的对应关系;所述第二对应关系为所述控制面数据集合中各个控制面数据与所属的业务表之间的对应关系;所述转发表需求包括生成所述第一转发表所需的第一转发面数据的标识和转发面整合规则。
10.一种网络设备,其特征在于,所述网络设备包括控制面装置、转发面装置和管理面装置,其中:
所述控制面装置,配置为提供控制面数据;
所述管理面装置,配置为执行权利要求1~9任一所述的方法;
所述转发面装置,配置为接收第一转发表,并根据所述第一转发表对待转发数据进行转发控制。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据转发程序,所述数据转发程序被处理器执行时实现如权利要求1~9中任一项所述的数据转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810510645.8A CN110535771A (zh) | 2018-05-24 | 2018-05-24 | 一种数据转发方法、网络设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810510645.8A CN110535771A (zh) | 2018-05-24 | 2018-05-24 | 一种数据转发方法、网络设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110535771A true CN110535771A (zh) | 2019-12-03 |
Family
ID=68656675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810510645.8A Withdrawn CN110535771A (zh) | 2018-05-24 | 2018-05-24 | 一种数据转发方法、网络设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535771A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037879A (zh) * | 2019-12-24 | 2021-06-25 | 中兴通讯股份有限公司 | Arp学习方法和节点设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466340A (zh) * | 2002-06-24 | 2004-01-07 | �人��������������ι�˾ | 以策略流方式转发数据的方法和数据转发设备 |
CN103581018A (zh) * | 2013-07-26 | 2014-02-12 | 北京华为数字技术有限公司 | 报文发送方法、路由器以及业务交换器 |
CN104253770A (zh) * | 2013-06-27 | 2014-12-31 | 杭州华三通信技术有限公司 | 实现分布式虚拟交换机系统的方法及设备 |
CN104283882A (zh) * | 2014-10-11 | 2015-01-14 | 武汉烽火网络有限责任公司 | 一种路由器的智能安全防护方法 |
CN104796344A (zh) * | 2014-01-16 | 2015-07-22 | 中兴通讯股份有限公司 | 基于SDN实现报文转发的方法、系统、Openflow交换机及服务器 |
CN107623584A (zh) * | 2016-07-15 | 2018-01-23 | 中兴通讯股份有限公司 | 多协议交换标签的检测、处理方法、装置及系统 |
US20180069786A1 (en) * | 2016-09-02 | 2018-03-08 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Randomized route hopping in software defined networks |
-
2018
- 2018-05-24 CN CN201810510645.8A patent/CN110535771A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466340A (zh) * | 2002-06-24 | 2004-01-07 | �人��������������ι�˾ | 以策略流方式转发数据的方法和数据转发设备 |
CN104253770A (zh) * | 2013-06-27 | 2014-12-31 | 杭州华三通信技术有限公司 | 实现分布式虚拟交换机系统的方法及设备 |
CN103581018A (zh) * | 2013-07-26 | 2014-02-12 | 北京华为数字技术有限公司 | 报文发送方法、路由器以及业务交换器 |
CN104796344A (zh) * | 2014-01-16 | 2015-07-22 | 中兴通讯股份有限公司 | 基于SDN实现报文转发的方法、系统、Openflow交换机及服务器 |
CN104283882A (zh) * | 2014-10-11 | 2015-01-14 | 武汉烽火网络有限责任公司 | 一种路由器的智能安全防护方法 |
CN107623584A (zh) * | 2016-07-15 | 2018-01-23 | 中兴通讯股份有限公司 | 多协议交换标签的检测、处理方法、装置及系统 |
US20180069786A1 (en) * | 2016-09-02 | 2018-03-08 | Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. | Randomized route hopping in software defined networks |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037879A (zh) * | 2019-12-24 | 2021-06-25 | 中兴通讯股份有限公司 | Arp学习方法和节点设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103346981B (zh) | 虚拟交换方法、相关装置和计算机系统 | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
EP2961109B1 (en) | Method and system for implementing a vxlan control plane | |
CN104780066B (zh) | 针对虚拟网络分组流的物理路径确定 | |
RU2595540C2 (ru) | Базовые контроллеры для преобразования универсальных потоков | |
CN104301451B (zh) | 一种跨网段主机通信方法、装置及系统 | |
JP5984818B2 (ja) | ビークルとリモートアプリケーションサーバとの間で通信する方法及びシステム | |
US20200244486A1 (en) | Dynamic customer vlan identifiers in a telecommunications network | |
CN106209688B (zh) | 云端数据组播方法、装置和系统 | |
WO2017148219A1 (zh) | 虚拟专用网业务实现方法、装置及通信系统 | |
CN106953848B (zh) | 一种基于ForCES的软件定义网络实现方法 | |
CN107925633A (zh) | 数据中心资源跟踪 | |
CN107071087A (zh) | 逻辑l3路由 | |
CN109088820A (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN106549790B (zh) | 一种用于溯源的映射表的更新方法和装置 | |
CN106712988A (zh) | 一种虚拟网络管理方法及装置 | |
EP3682597B1 (en) | Modeling access networks as trees in software-defined network controllers | |
CN109729040A (zh) | 协议的选择的方法、设备以及计算机可读介质 | |
CN107003860A (zh) | 一种软件定义网络控制器及其创建方法 | |
CN109495314B (zh) | 云端机器人的通信方法、装置、介质及电子设备 | |
CN110086640A (zh) | 业务使能的方法和装置 | |
CN108833610A (zh) | 一种信息更新方法、装置及系统 | |
CN110213391A (zh) | 一种网络协议地址的配置方法及装置 | |
CN105591872B (zh) | 一种实现多数据中心互联的方法和装置 | |
CN108989071A (zh) | 虚拟服务提供方法、网关设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191203 |
|
WW01 | Invention patent application withdrawn after publication |