CN105959154A - 一种基于编程工具的协议无关网络的转发管理方法 - Google Patents
一种基于编程工具的协议无关网络的转发管理方法 Download PDFInfo
- Publication number
- CN105959154A CN105959154A CN201610471597.7A CN201610471597A CN105959154A CN 105959154 A CN105959154 A CN 105959154A CN 201610471597 A CN201610471597 A CN 201610471597A CN 105959154 A CN105959154 A CN 105959154A
- Authority
- CN
- China
- Prior art keywords
- field
- path
- api
- protocol
- designated
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- 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/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明公开了一种基于编程工具的协议无关网络的转发管理方法,其特征是网络管理中心根据编程工具编写协议无关网络的传输协议和控制算法,对于协议无关网络中交换机上交的数据包,编程工具根据传输协议和数据包运行网络算法,使用API路径记录网络算法的执行过程,根据API路径生成路径树,最后将路径树转化为转发规则并下发给交换机,交换机根据转发规则进行数据包的转发处理,从而实现了协议无关网络的转发控制。本发明能实现通过算法编程来自动生成交换机的转发规则,从而能自动进行协议解析,并且屏蔽低层细节,降低编程的复杂性。
Description
技术领域
本发明属于协议无关网络控制与管理领域,具体地说是一种基于编程工具的协议无关网络的转发管理方法。
背景技术
在当前的网络中,数据、应用的规模都呈爆炸式的增长,人们对网络中支持的协议类型和设备种类的要求越来越多,而当前基于TCP/IP协议的网络协议的分布式管理的特点导致难以对新设备和新协议进行有效的添加和管理,并且其控制面和数据面高度耦合的特点决定了网络设备难以更改和数据面需要承担越来越多的任务。为了解决对新设备、新协议的支持,人们提出了基于协议无感知转发技术的软件定义网络的概念,以下简称协议无关网络。协议无关网络将控制面和数据面解耦合,使用集中的控制器对由交换机组成的转发网络进行统一的控制和管理。
目前,对协议无关网络中控制器的设计主要有两种技术:一是基于FloodLight的协议无关网络控制器,但是该控制器在进行网络编程时需要用户按照转发规则的格式逐条的进行手动编写,十分繁琐且容易出错;二是基于POX的协议无关网络控制器,该控制器也需要逐条的编写转发规则,同时还要考虑字段的解析问题,这些低层的细节十分繁琐,提高了编程控制的复杂性。
发明内容
本发明为了克服现有技术存在的不足之处,提供一种基于编程工具的协议无关网络的转发管理方法,以期能实现通过算法编程来自动生成交换机的转发规则,从而能自动进行协议解析,并且屏蔽低层细节,降低编程的复杂性。
为达到上述发明目的,本发明采用如下技术方案:
本发明一种基于编程工具的协议无关网络的转发管理方法;所述协议无关网络包含一个控制器、n个交换机和网络管理中心,并由所述n个交换机组成相应的拓扑结构;其特点是:所述编程工具包括:协议解析模块、算法执行模块、算法提取模块、转发规则生成模块;所述转发管理方法是按如下步骤进行:
步骤1、所述网络管理中心根据所述协议解析模块提供的协议报文定义规范,编写所述协议无关网络的传输协议;
步骤2、所述网络管理中心根据所述算法执行模块提供的调用接口API,编写所述协议无关网络的控制算法;
步骤3、所述编程工具根据所述协议无关网络的传输协议和控制算法进行转发处理,得到转发规则并发送给所述控制器;
步骤3.1、所述协议解析模块对所述传输协议进行协议解析,获得协议接口;
步骤3.2、所述算法执行模块接收任一交换机发送的数据包,并为所述数据包分配一段缓存,将所述缓存记为元数据;
根据所述控制算法中的调用接口API利用所述协议接口获取所述数据包中的字段并进行匹配,从而获得所述数据包的转发路径;
步骤3.3、所述网络算法提取模块根据所述算法执行模块中调用接口API的处理过程生成相应的API路径;并根据API路径生成路径树;
步骤3.4、所述转发规则生成模块根据所述路径树生成转发规则;
步骤4、所述控制器将所述转发规则分发给n个交换机,用于实现n个交换机之间的数据传输。
本发明所述的转发管理方法的特点也在于,
所述步骤1中的传输协议是按如下过程编写:
步骤1.1、假设所述传输协议中有n层协议,第k层有nk个协议,k∈[1,n];初始化k=1;
步骤1.2、定义第k层协议包括:协议的名字、协议中每个字段的字段名和长度;
步骤1.3、初始化j=1;j∈[1,nk];
步骤1.4、定义第k+1层协议的第j个协议,包括:协议的名字、协议中每个字段的字段名和长度;并在第k层协议中设置跳转到第k+1层协议中第j个协议的跳转字段值;
步骤1.5、将j+1赋值给j;判断j>nk是否成立,若成立,则执行步骤1.6;否则,返回步骤1.4;
步骤1.6、将k+1赋值给k;判断k>n是否成立,若成立,则表示完成编写;否则,返回步骤1.3。
所述步骤2中的调用接口API包括:数据包操作API、网络拓扑查询API和路径规划API;所述控制算法是按如下步骤进行编写:
步骤2.1、利用所述数据包操作API获取所述数据包的字段值;
步骤2.2、利用所述网络拓扑查询API查询所述字段值在所述协议无关网络中对应的交换机和主机;
步骤2.3、根据所述数据包的字段值所对应的交换机和主机以及拓扑结构,利用所述路径规划API生成所述协议无关网络中到达相应交换机和主机的转发路径。
所述协议解析包括:协议分析模块和数据包解析模块,所述步骤3.1中的协议接口是按如下过程进行协议解析:
步骤3.1.1、所述协议分析模块将所述传输协议翻译成有限状态机;
步骤3.1.2、所述数据包解析模块根据所述有限状态机生成相应的解释器,用于提供给所述调用接口API。
所述步骤3.3中所生成的API路径的类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的API路径:
所述调用接口API中的数据包操作API根据所述传输协议的字段名读取所述数据包相对应的字段值,所述字段名记为field_1,所述字段值记为v1,从而生成一条类型为“读取”的API路径,记为R(field_1,v1);
所述数据包操作API比较相应数据包字段名对应的字段值与被比较值,得到比较结果;所述相应数据包字段名记为field_2,所述被比较值记为v2,所述比较结果记为b,从而生成一条类型为“比较”的API路径,记为T(field_2,v2,b);
所述数据包操作API从所述数据包的当前层协议进入下一层协议时,读取当前层协议的字段名、字段值、跳转流表、偏移量四个值,并将所读取的字段名记为field_3,字段值记为v3、跳转流表记为tid、偏移量记为offset,从而生成一条类型为“读取”的API路径和一条类型为“跳转”的API路径,分别记为R(field_3,v3)和G(tid,offset);
所述数据包操作API根据所述传输协议的字段名将所述数据包的字段值写入所述元数据,并将所述传输协议的字段名记为field_4,所述字段值记为v4,从而生成类型为“写元”的API路径,记为WM(field_4,v4);
所述数据包操作API根据所述传输协议的相关字段名从所述元数据读取相应的字段值,并将所述相关字段名记为field_5,所述字段值记为v5,从而生成类型为“读元”的API路径,记为RM(field_5,v5);
所述调路径规划API将所生成的数据包的转发路径,记为route,从而生成类型为“路径”的API路径,记为L(route)。
所述步骤3.3中的路径树的结点类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的路径树:
根据所述“读取”的API路径R(field_1,v1),生成类型为“读取”的路径树结点,包括字段名、m个字段值和m个子树,记为R′(field_1,{(v1,t1),(v2,t2),...,(vi,ti),...,(vm,tm)}),(vi,ti)表示第i个字段值vi和第i个子树ti;对i∈(1,m),若v1=vi,则将R(field_1,v1)记录第i个子树ti中;
根据所述“比较”的API路径T(field_2,v2,b),生成类型为“比较”的路径树结点,包括字段名、字段值和两个子树,记为T′(field_2,v2,t_true,t_false),t_true,t_false分别表示两个子树,若b=true,则将T(field_2,v2,b)记录在t_true子树中,否则将T(field_2,v2,b)记录在t_false子树中;
根据所述“跳转”的API路径G(tid,offset),生成类型为“跳转”的路径树结点,包括跳转流表、偏移量和一个子树,记为G′(tid,offset,t),t表示所述一个子树;并将G(tid,offset)记录在t子树中;
根据所述“写元”的API路径WM(field_4,v4),生成类型为“写元”的路径树结点,包括字段名和一个子树,记为WM′(field_4,w),w表示所述一个子树;并将WM(field_4,v4)记录在w子树中;
根据所述“读元”的API路径RM(field_5,v5),生成类型为“读元”的路径树结点,包括字段名、q个字段值和q个子树,记为RM′(field_5,{(v′1,t′1),(v′2,t′2),...,(v′p,t′p),...,(v′q,t′q)}),(v′p,t′p)表示第p个字段值v′p和第p个子树t′p,对p∈(1,q),若v5=v′p,则将RM(field_5,v5)记录在第p个子树t′p中;
根据所述“路径”的API路径L(route),生成类型为“路径”的路径树结点,记为L′(route),并直接将L(route)记录在L′(route)路径树结点中。
所述步骤3.4中的转发规则包括:匹配项和指令集;并按如下方式生成:
从根结点开始深度遍历路径树;当遍历到“读取”、“比较”、“读元”类型的路径树结点,则生成所述匹配项;当遍历到“写元”、“跳转”、“路径”类型的路径树结点,则生成所述指令集;直到所有结点都遍历完成。
与已有技术相比,本发明有益效果体现在:
1、本发明设计一种基于编程工具的协议无关网络的转发管理方法,根据编程工具提供的协议报文定义规范和调用接口API分别编写传输协议和控制算法,对于每个交换机发来的数据包,编程工具根据传输协议和数据包执行控制算法,并生成API路径和路径树,最终转化为转发规则,从而实现了通过编程语言来生成转发规则。与基于FloodLight的协议无关网络控制器和基于POX的协议无关网络控制器相比,屏蔽了转发规则的低层细节,有效的降低了编程的复杂性。
2、本发明使用协议报文定义规范描述协议无关网络中运行的传输协议,并使用编程工具的协议解析模块对编写的传输协议进行解析,从而可以方便的支持和添加任意协议,与基于POX的协议无关网络控制器相比,避免了用户手动的协议解析过程,降低了用户的负担,提高了编程效率。
3、本发明使用调用接口API编写协议无关网络中的控制算法,是以数据包为参数运行控制算法,从而生成对应的API路径,再依据API路径生成路径树。通过路径树保存对数据包的处理过程,将历史数据包的执行过程转化为转发规则下发给交换机,从而避免了交换机每次都要上交数据包,提高了协议无关网络中交换机的转发效率。
4、本发明使用路径树产生转发规则,通过路径树结点与转发规则的对应关系来自动的生成转发规则,从而避免了用户对转发规则的直接接触,用户无需考虑转发规则繁琐的组成内容,从而屏蔽了低层细节,提高了编程效率。
附图说明
图1为本发明使用调用接口API编写控制算法的流程图;
图2为本发明生成API路径的实施实例图;
图3为本发明生成路径树的实施实例图。
具体实施方式
本实施例中,一种基于编程工具的协议无关网络的转发管理方法;协议无关网络包含一个控制器、n个交换机和网络管理中心,并由n个交换机组成相应的拓扑结构;编程工具包括:协议解析模块、算法执行模块、算法提取模块、转发规则生成模块;转发管理方法是按如下步骤进行:
步骤1.1、假设所述传输协议中有n层协议,第k层有nk个协议,k∈[1,n];初始化k=1;
步骤1.2、定义第k层协议包括:协议的名字、协议中每个字段的字段名和长度;
步骤1.3、初始化j=1;j∈[1,nk];
步骤1.4、定义第k+1层协议的第j个协议,包括:协议的名字、协议中每个字段的字段名和长度;并在第k层协议中设置跳转到第k+1层协议中第j个协议的跳转字段值;
步骤1.5、将j+1赋值给j;判断j>nk是否成立,若成立,则执行步骤1.6;否则,返回步骤1.4;
步骤1.6、将k+1赋值给k;判断k>n是否成立,若成立,则表示完成编写;否则,返回步骤1.3。
举例说明,对于传统网络的MAC、IP双层协议,使用协议报文定义规范定义如下:
首先定义第一层MAC协议,协议的名字为ethernet,协议中三个字段分别为48位目的地址dl_dst,48位源MAC地址dl_src,16位协议类型dl_type。则定义MAC层协议的代码为:
接着定义第二层协议,第二层只有一个协议:IP协议。使用同样的方法定义协议的名字、每个字段和长度,协议名字为ipv4,长度和字段名为分别为:4位版本号ver,4位首部长度ihl,8位服务类型tos,16位总长度len,16位标识id,3位标志位flag,13位片偏移off,8位生存时间ttl,8位协议类型nw_proto,16位首部校验和sum,32位源IP地址nw_src,32位目的IP地址nw_dst,不定长的可选选项opt。
最后在上一层的MAC协议中加入跳转到当前IP协议的跳转值,规定当dl_type的值为0x0800时表示下一层协议为IP协议,对应代码为:
第二层协议定义完成,传输协议编写完成。
步骤2、网络管理中心根据算法执行模块提供的调用接口API,编写协议无关网络的控制算法,流程图如图1所示;
步骤2.1、利用数据包操作API获取数据包的字段值;
步骤2.2、利用网络拓扑查询API查询字段值在协议无关网络中对应的交换机和主机;
步骤2.3、根据数据包的字段值所对应的交换机和主机以及拓扑结构,利用路径规划API生成协议无关网络中到达相应交换机和主机的转发路径。
步骤3、编程工具根据协议无关网络的传输协议和控制算法进行转发处理,得到转发规则并发送给控制器;
步骤3.1、协议解析模块对传输协议进行协议解析,获得协议接口;
步骤3.1.1、协议分析模块将传输协议翻译成有限状态机;
步骤3.1.2、数据包解析模块根据有限状态机生成相应的解释器,用于提供给调用接口API。
步骤3.2、算法执行模块接收任一交换机发送的数据包,并为数据包分配一段缓存,将缓存记为元数据;
根据控制算法中的调用接口API利用协议接口获取数据包中的字段并进行匹配,从而获得数据包的转发路径;
步骤3.3、网络算法提取模块根据算法执行模块中调用接口API的处理过程生成相应的API路径;并根据API路径生成路径树;
其中,所生成的API路径的类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的API路径:
调用接口API中的数据包操作API根据传输协议的字段名读取数据包相对应的字段值,字段名记为field_1,字段值记为v1,从而生成一条类型为“读取”的API路径,记为R(field_1,v1);
数据包操作API比较相应数据包字段名对应的字段值与被比较值,得到比较结果;相应数据包字段名记为field_2,被比较值记为v2,比较结果记为b,从而生成一条类型为“比较”的API路径,记为T(field_2,v2,b);
数据包操作API从数据包的当前层协议进入下一层协议时,读取当前层协议的字段名、字段值、跳转流表、偏移量四个值,并将所读取的字段名记为field_3,字段值记为v3、跳转流表记为tid、偏移量记为offset,从而生成一条类型为“读取”的API路径和一条类型为“跳转”的API路径,分别记为R(field_3,v3)和G(tid,offset);
数据包操作API根据传输协议的字段名将数据包的字段值写入元数据,并将传输协议的字段名记为field_4,字段值记为v4,从而生成类型为“写元”的API路径,记为WM(field_4,v4);
数据包操作API根据传输协议的相关字段名从元数据读取相应的字段值,并将相关字段名记为field_5,字段值记为v5,从而生成类型为“读元”的API路径,记为RM(field_5,v5);
调路径规划API将所生成的数据包的转发路径,记为route,从而生成类型为“路径”的API路径,记为L(route)。
举例说明,在图2所示的API路径实施例中,根据网络管理中心编写的控制算法,调用接口API首先使用数据包API中的read_packet函数来读取数据包中字段名"smac"对应的字段值smac1,因此对应生成类型为“读取”的API路径R("smac",smac1);接着使用数据包API中的write_metadata函数将字段名"dmac"和其对应的字段值dmac1写入元数据中,因此对应生成类型为“写元”的API路径WM("dmac",dmac1);接着使用数据包操作API中的pull_header函数从数据包的当前层协议进入下一层协议,读取了字段名t、字段值t1、跳转流表tid、偏移量offset四个值,因此对应生成类型为“读取”的API路径R("t",t1)和类型为“跳转”的API路径G("2",10);接着使用数据包API中的read_packet函数来读取数据包中字段名"dip"对应的字段值dip1,因此对应生成类型为“读取”的API路径R("dip",dip1);最后使用数据包API中的read_metadata函数从元数据中读取字段值"dmac"对应的字段值dmac1,因此对应生成类型为“读元”的API路径RM("dmac",dmac1)。
路径树的结点类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的路径树:
根据“读取”的API路径R(field_1,v1),生成类型为“读取”的路径树结点,包括字段名、m个字段值和m个子树,记为R′(field_1,{(v1,t1),(v2,t2),...,(vi,ti),...,(vm,tm)}),(vi,ti)表示第i个字段值vi和第i个子树ti;对i∈(1,m),若v1=vi,则将R(field_1,v1)记录第i个子树ti中;
根据“比较”的API路径T(field_2,v2,b),生成类型为“比较”的路径树结点,包括字段名、字段值和两个子树,记为T′(field_2,v2,t_true,t_false),t_true,t_false分别表示两个子树,若b=true,则将T(field_2,v2,b)记录在t_true子树中,否则将T(field_2,v2,b)记录在t_false子树中;
根据“跳转”的API路径G(tid,offset),生成类型为“跳转”的路径树结点,包括跳转流表、偏移量和一个子树,记为G′(tid,offset,t),t表示一个子树;并将G(tid,offset)记录在t子树中;
根据“写元”的API路径WM(field_4,v4),生成类型为“写元”的路径树结点,包括字段名和一个子树,记为WM′(field_4,w),w表示一个子树;并将WM(field_4,v4)记录在w子树中;
根据“读元”的API路径RM(field_5,v5),生成类型为“读元”的路径树结点,包括字段名、q个字段值和q个子树,记为RM′(field_5,{(v′1,t′1),(v′2,t′2),...,(v′p,t′p),...,(v′q,t′q)}),(v′p,t′p)表示第p个字段值v′p和第p个子树t′p,对p∈(1,q),若v5=v′p,则将RM(field_5,v5)记录在第p个子树t′p中;
根据“路径”的API路径L(route),生成类型为“路径”的路径树结点,记为L′(route),并直接将L(route)记录在L′(route)路径树结点中。
举例说明,在图3所示的路径树实施例中,根据图1中的API路径,首先对于R("smac",smac1),对应生成类型为“读取”的路径树结点R′(smac,{(smac1,t1)}),若在处理以后的数据包时遇到字段名相同但字段值不同的API路径R("smac",smac2),则只需添加一个子树的分支,即R′(smac,{(smac1,t1),(smac2,t2)});接着对于API路径WM("dmac",dmac1),对应生成类型为“写元”的路径树结点WM′(dmac,w),w表示结点唯一的子树;对于G("2",10),对应生成类型为“跳转”的路径树结点G′(2,10,t),t表示结点唯一的子树;最后对于RM("dmac",dmac1),对应生成类型为“读元”的路径树结点WM′(dmac,{(dmac1,t′1)})。
步骤3.4、转发规则生成模块根据路径树生成转发规则;
从根结点开始深度遍历路径树;当遍历到“读取”、“比较”、“读元”类型的路径树结点,则生成匹配项;当遍历到“写元”、“跳转”、“路径”类型的路径树结点,则生成指令集;直到所有结点都遍历完成。
步骤4、控制器将转发规则分发给n个交换机,用于实现n个交换机之间的数据传输。
Claims (7)
1.一种基于编程工具的协议无关网络的转发管理方法;所述协议无关网络包含一个控制器、n个交换机和网络管理中心,并由所述n个交换机组成相应的拓扑结构;其特征是:所述编程工具包括:协议解析模块、算法执行模块、算法提取模块、转发规则生成模块;所述转发管理方法是按如下步骤进行:
步骤1、所述网络管理中心根据所述协议解析模块提供的协议报文定义规范,编写所述协议无关网络的传输协议;
步骤2、所述网络管理中心根据所述算法执行模块提供的调用接口API,编写所述协议无关网络的控制算法;
步骤3、所述编程工具根据所述协议无关网络的传输协议和控制算法进行转发处理,得到转发规则并发送给所述控制器;
步骤3.1、所述协议解析模块对所述传输协议进行协议解析,获得协议接口;
步骤3.2、所述算法执行模块接收任一交换机发送的数据包,并为所述数据包分配一段缓存,将所述缓存记为元数据;
根据所述控制算法中的调用接口API利用所述协议接口获取所述数据包中的字段并进行匹配,从而获得所述数据包的转发路径;
步骤3.3、所述网络算法提取模块根据所述算法执行模块中调用接口API的处理过程生成相应的API路径;并根据API路径生成路径树;
步骤3.4、所述转发规则生成模块根据所述路径树生成转发规则;
步骤4、所述控制器将所述转发规则分发给n个交换机,用于实现n个交换机之间的数据传输。
2.根据权利要求1所述的转发管理方法,其特征是:所述步骤1中的传输协议是按如下过程编写:
步骤1.1、假设所述传输协议中有n层协议,第k层有nk个协议,k∈[1,n];初始化k=1;
步骤1.2、定义第k层协议包括:协议的名字、协议中每个字段的字段名和长度;
步骤1.3、初始化j=1;j∈[1,nk];
步骤1.4、定义第k+1层协议的第j个协议,包括:协议的名字、协议中每个字段的字段名和长度;并在第k层协议中设置跳转到第k+1层协议中第j个协议的跳转字段值;
步骤1.5、将j+1赋值给j;判断j>nk是否成立,若成立,则执行步骤1.6;否则,返回步骤1.4;
步骤1.6、将k+1赋值给k;判断k>n是否成立,若成立,则表示完成编写;否则,返回步骤1.3。
3.根据权利要求1所述的转发管理方法,其特征是:所述步骤2中的调用接口API包括:数据包操作API、网络拓扑查询API和路径规划API;所述控制算法是按如下步骤进行编写:
步骤2.1、利用所述数据包操作API获取所述数据包的字段值;
步骤2.2、利用所述网络拓扑查询API查询所述字段值在所述协议无关网络中对应的交换机和主机;
步骤2.3、根据所述数据包的字段值所对应的交换机和主机以及拓扑结构,利用所述路径规划API生成所述协议无关网络中到达相应交换机和主机的转发路径。
4.根据权利要求1所述的转发管理方法,其特征是:所述协议解析包括:协议分析模块和数据包解析模块,所述步骤3.1中的协议接口是按如下过程进行协议解析:
步骤3.1.1、所述协议分析模块将所述传输协议翻译成有限状态机;
步骤3.1.2、所述数据包解析模块根据所述有限状态机生成相应的解释器,用于提供给所述调用接口API。
5.根据权利要求1所述的转发管理方法,其特征是:所述步骤3.3中所生成的API路径的类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的API路径:
所述调用接口API中的数据包操作API根据所述传输协议的字段名读取所述数据包相对应的字段值,所述字段名记为field_1,所述字段值记为v1,从而生成一条类型为“读取”的API路径,记为R(field_1,v1);
所述数据包操作API比较相应数据包字段名对应的字段值与被比较值,得到比较结果;所述相应数据包字段名记为field_2,所述被比较值记为v2,所述比较结果记为b,从而生成一条类型为“比较”的API路径,记为T(field_2,v2,b);
所述数据包操作API从所述数据包的当前层协议进入下一层协议时,读取当前层协议的字段名、字段值、跳转流表、偏移量四个值,并将所读取的字段名记为field_3,字段值记为v3、跳转流表记为tid、偏移量记为offset,从而生成一条类型为“读取”的API路径和一条类型为“跳转”的API路径,分别记为R(field_3,v3)和G(tid,offset);
所述数据包操作API根据所述传输协议的字段名将所述数据包的字段值写入所述元数据,并将所述传输协议的字段名记为field_4,所述字段值记为v4,从而生成类型为“写元”的API路径,记为WM(field_4,v4);
所述数据包操作API根据所述传输协议的相关字段名从所述元数据读取相应的字段值,并将所述相关字段名记为field_5,所述字段值记为v5,从而生成类型为“读元”的API路径,记为RM(field_5,v5);
所述调路径规划API将所生成的数据包的转发路径,记为route,从而生成类型为“路径”的API路径,记为L(route)。
6.根据权利要求5所述的转发管理方法,其特征是:所述步骤3.3中的路径树的结点类型包括:读取、比较、跳转、写元、读元和路径;并按如下方式生成相应的路径树:
根据所述“读取”的API路径R(field_1,v1),生成类型为“读取”的路径树结点,包括字段名、m个字段值和m个子树,记为R′(field_1,{(v1,t1),(v2,t2),...,(vi,ti),...,(vm,tm)}),(vi,ti)表示第i个字段值vi和第i个子树ti;对i∈(1,m),若v1=vi,则将R(field_1,v1)记录第i个子树ti中;
根据所述“比较”的API路径T(field_2,v2,b),生成类型为“比较”的路径树结点,包括字段名、字段值和两个子树,记为T′(field_2,v2,t_true,t_false),t_true,t_false分别表示两个子树,若b=true,则将T(field_2,v2,b)记录在t_true子树中,否则将T(field_2,v2,b)记录在t_false子树中;
根据所述“跳转”的API路径G(tid,offset),生成类型为“跳转”的路径树结点,包括跳转流表、偏移量和一个子树,记为G′(tid,offset,t),t表示所述一个子树;并将G(tid,offset)记录在t子树中;
根据所述“写元”的API路径WM(field_4,v4),生成类型为“写元”的路径树结点,包括字段名和一个子树,记为WM′(field_4,w),w表示所述一个子树;并将WM(field_4,v4)记录在w子树中;
根据所述“读元”的API路径RM(field_5,v5),生成类型为“读元”的路径树结点,包括字段名、q个字段值和q个子树,记为RM′(field_5,{(v′1,t′1),(v′2,t′2),...,(v′p,t′p),...,(v′q,t′q)}),(v′p,t′p)表示第p个字段值v′p和第p个子树t′p,对p∈(1,q),若v5=v′p,则将RM(field_5,v5)记录在第p个子树t′p中;
根据所述“路径”的API路径L(route),生成类型为“路径”的路径树结点,记为L′(route),并直接将L(route)记录在L′(route)路径树结点中。
7.根据权利要求6所述的转发管理方法,其特征是:所述步骤3.4中的转发规则包括:匹配项和指令集;并按如下方式生成:
从根结点开始深度遍历路径树;当遍历到“读取”、“比较”、“读元”类型的路径树结点,则生成所述匹配项;当遍历到“写元”、“跳转”、“路径”类型的路径树结点,则生成所述指令集;直到所有结点都遍历完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610471597.7A CN105959154B (zh) | 2016-06-22 | 2016-06-22 | 一种基于编程工具的协议无关网络的转发管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610471597.7A CN105959154B (zh) | 2016-06-22 | 2016-06-22 | 一种基于编程工具的协议无关网络的转发管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105959154A true CN105959154A (zh) | 2016-09-21 |
CN105959154B CN105959154B (zh) | 2019-04-05 |
Family
ID=56904626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610471597.7A Active CN105959154B (zh) | 2016-06-22 | 2016-06-22 | 一种基于编程工具的协议无关网络的转发管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105959154B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222353A (zh) * | 2017-07-11 | 2017-09-29 | 中国科学技术大学 | 支持协议无关的软件定义网络虚拟化管理平台 |
CN108989333A (zh) * | 2018-08-16 | 2018-12-11 | 北京邮电大学 | 一种支持内容网络的可编程实验网络方法及装置 |
CN109558183A (zh) * | 2018-11-30 | 2019-04-02 | 北京数聚鑫云信息技术有限公司 | 一种自动实现api应用的方法及装置 |
CN111050339A (zh) * | 2019-12-19 | 2020-04-21 | 中国科学院信息工程研究所 | 一种基于协议无感知转发的高速数据更新系统及方法 |
CN113946141A (zh) * | 2020-07-16 | 2022-01-18 | 青岛海尔工业智能研究院有限公司 | 一种生产示范线的网络系统及控制方法 |
CN114513566A (zh) * | 2022-02-17 | 2022-05-17 | 上海阅维科技股份有限公司 | 自定义网络协议解析方法、系统、介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347013A (zh) * | 2013-06-21 | 2013-10-09 | 北京邮电大学 | 一种增强可编程能力的OpenFlow网络系统和方法 |
CN103856356A (zh) * | 2014-03-19 | 2014-06-11 | 北京工业大学 | 一种基于用户自管控的家庭网络实现方法 |
CN104917697A (zh) * | 2015-06-02 | 2015-09-16 | 西安电子科技大学 | 基于SDN的WiFi无线中继网络及其通信实现方法 |
-
2016
- 2016-06-22 CN CN201610471597.7A patent/CN105959154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103347013A (zh) * | 2013-06-21 | 2013-10-09 | 北京邮电大学 | 一种增强可编程能力的OpenFlow网络系统和方法 |
CN103856356A (zh) * | 2014-03-19 | 2014-06-11 | 北京工业大学 | 一种基于用户自管控的家庭网络实现方法 |
CN104917697A (zh) * | 2015-06-02 | 2015-09-16 | 西安电子科技大学 | 基于SDN的WiFi无线中继网络及其通信实现方法 |
Non-Patent Citations (1)
Title |
---|
谈小冬等: "面向协议无感知转发技术的SDN试验床", 《计算机系统应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222353A (zh) * | 2017-07-11 | 2017-09-29 | 中国科学技术大学 | 支持协议无关的软件定义网络虚拟化管理平台 |
CN107222353B (zh) * | 2017-07-11 | 2019-11-22 | 中国科学技术大学 | 支持协议无关的软件定义网络虚拟化管理平台 |
CN108989333A (zh) * | 2018-08-16 | 2018-12-11 | 北京邮电大学 | 一种支持内容网络的可编程实验网络方法及装置 |
CN109558183A (zh) * | 2018-11-30 | 2019-04-02 | 北京数聚鑫云信息技术有限公司 | 一种自动实现api应用的方法及装置 |
CN109558183B (zh) * | 2018-11-30 | 2019-07-26 | 北京数聚鑫云信息技术有限公司 | 一种自动实现api应用的方法及装置 |
CN111050339A (zh) * | 2019-12-19 | 2020-04-21 | 中国科学院信息工程研究所 | 一种基于协议无感知转发的高速数据更新系统及方法 |
CN111050339B (zh) * | 2019-12-19 | 2021-01-01 | 中国科学院信息工程研究所 | 一种基于协议无感知转发的高速数据更新系统及方法 |
CN113946141A (zh) * | 2020-07-16 | 2022-01-18 | 青岛海尔工业智能研究院有限公司 | 一种生产示范线的网络系统及控制方法 |
CN113946141B (zh) * | 2020-07-16 | 2022-09-06 | 卡奥斯工业智能研究院(青岛)有限公司 | 一种生产示范线的网络系统及控制方法 |
CN114513566A (zh) * | 2022-02-17 | 2022-05-17 | 上海阅维科技股份有限公司 | 自定义网络协议解析方法、系统、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105959154B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105959154A (zh) | 一种基于编程工具的协议无关网络的转发管理方法 | |
CN105706043B (zh) | 推进式链接的列表吞吐量 | |
CN105743793B (zh) | 用于网络设备组件的比特索引显式复制(bier)转发 | |
CN106664261B (zh) | 一种配置流表项的方法、装置和系统 | |
CN104380667B (zh) | 一种数据报文的路由方法和设备 | |
CN103139037B (zh) | 用于实现灵活的虚拟局域网的方法和装置 | |
CN105453492B (zh) | 具有第三层分布式路由器功能的交换机集群 | |
CN106330649B (zh) | 一种跨软件定义网络的数据报文转发方法和装置 | |
CN105245449B (zh) | 通信系统、控制装置、处理规则设置方法、分组传输方法 | |
CN105099913B (zh) | 一种报文转发方法及设备 | |
CN103491006B (zh) | 虚拟网络路由器的数据统一转发方法 | |
CN105338003B (zh) | 一种应用于软件定义网络的防火墙实现方法 | |
CN105812340B (zh) | 一种虚拟网络访问外网的方法和装置 | |
CN105634923B (zh) | 基于sdn控制器的以太网广播优化处理方法 | |
CN104010049A (zh) | 基于sdn的以太网ip报文封装方法及网络隔离和dhcp实现方法 | |
CN104135446B (zh) | 基于SDN实现IPv4向IPv6过渡的系统及方法 | |
CN106209648B (zh) | 跨虚拟可扩展局域网的组播数据报文转发方法和设备 | |
CN106209689A (zh) | 从vxlan至vlan的组播数据报文转发方法和设备 | |
CN106059921A (zh) | 一种基于sdn技术和ccn框架的网络层的内容路由系统及其工作方式 | |
CN106209636A (zh) | 从vlan至vxlan的组播数据报文转发方法和设备 | |
CN104243299A (zh) | 一种隧道处理方法及系统、控制面设备、转发面设备 | |
CN105075197B (zh) | 通信系统、控制装置、通信方法和程序 | |
JP2014158242A (ja) | キャリア網仮想化システム及び方法 | |
CN109428825A (zh) | 一种组播报文转发方法及装置 | |
CN106105098A (zh) | 交换机及业务请求报文的处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |