一种应用于sdn的图形化编程方法_2

文档序号:9711359阅读:来源:国知局
、逻辑或控件和逻辑非控件等。
[0070]实施例二
[0071]本发明实施例还提供了一种应用于SDN的图形化编程系统,用于实现如实施例一中所述的方法,其中,所述系统包括:可视化编辑界面、可编译后台、资源库,具体的:
[0072]所述可视化编辑界面,用于呈现一个或者多个图形控制组件,其中,所述控制组件根据交换机特性分类,每个组件对应一族实现其功能的程序代码;
[0073]所述资源库,用于存储交换机的相关功能与所述图形控制组件的映射关系,用于根据所述交换机的相关功能参数生成网络逻辑结构;还用于存储所述一个或者多个图形控制组件和对应程序代码;
[0074]可编译后台,用于编译网络逻辑结构所包含的程序代码。
[0075]本发明实施例所提出的图形控制组件,具体是基于Openflow协议标准生成的,包括:flow控件、meter控件、group控件、act 1n类控件、band类控件、bucket控件、port控件、flow table控件、meter table控件、group table控件、packet统计控件、byte统计控件、逻辑与控件、逻辑或控件和逻辑非控件等。
[0076]结合本发明实施例,所述系统的可视化编辑界面,在优选的实现方式中包括两级编辑:
[0077]第一级编辑为表的编辑,具体的展不表与表、表与端口之间的关联;
[0078]第二级编辑为转发流程的编辑,具体为表与表之间关联关系编辑。
[0079]实施例三
[0080]在实施例一所公开的一种应用于SDN的图形化编程方法以及实施二所公开的一种应用于SDN的图形化编程系统的基础上,本实施例通过细化的步骤以及结合具体图形控制组件方式阐述如何完成SDN的网络编程,如图2所示,包括以下步骤:
[0081 ] 步骤101:开始SDN网络图形化编程。
[0082]步骤102:获取网络中各个交换机的信息,通过multipart类报文读取交换机各类参数,并通过交换机的packet-1n消息获知网络的拓扑结构。
[0083]步骤103:通过真实网络拓扑结构,生成逻辑网络结构。该过程实际上一个建立数据库的过程。
[0084]步骤104:双击需要编程的交换机节点,打开编程界面,对交换机进行编程。
[0085]图3为一个编程界面的实施例,其包含了Openflow交换机的三大组成要素,S卩flowtable、group table和meter table,该界面为一个编程实施例的一级界面,概要的显示了flow、group和meter之间的关联,同时通过这几类控件和port控件的连接,揭示流的转发过程;
[0086]一个交换机控件包含一个或多个图10所不flow table控件,多个flow table控件可组成Openflow的多级流水线程序,当flow table控件隶属于一个多级流水线时,grade管脚指向上一级流表,一个f 1 ow tab 1 e控件包含若干f 1 ow控件,具体数量由交换机能力所限;
[0087]一个交换机控件包含一个图11所示group table控件,group table控件中包含若干group控件,具体数量由交换机能力所限;
[0088]一个交换机控件包含一个图12所不meter table控件,meter table控件中包含若干meter控件,具体数量由交换机能力所限;
[0089]当需要编写具体flow、group和meter时,双击任意一张表,对具体流程进行编程。
[0090]步骤105:选择所需要控件,根据流程编写网络程序,该窗口为一个二级窗口 ;
[0091 ] 图4为flow控件,其包括定义一个flow所需要的match参数,和instruct1n参数,在一个flow控件中,match参数的种类是可裁剪的,即不需要匹配的字段可不在控件中显示;
[0092]对于可以进行mask的字段,在需要进行mask时,字段的参数可填写为“A/Μ”的形式,其中Μ可以是以十进制表示的掩码长度,也可以是十六进制表示的掩码的具体值;
[0093]meter管脚连接该flow绑定的meter;goto table管脚连接该流水线的下一级表;
[0094]与instruct1n的管脚相连接的是act1n控件,图7a_图7f^/f示的六个act1n控件包含了所有流操作过程;
[0095]图5为group控件,flow管脚连接act 1n为group的act 1n , bucket管脚连接该group绑定的bucket控件;
[0096]bucket控件如图8所示,act1n管脚连接该bucket相关的所有act1n控件;
[0097]图6为meter控件,band drop管脚连接一个或多个band drop控件;band dscpremark管脚连接一个或者多个band dscp remark控件;
[0098]同时,为了便于对当前网络程序进行调试,直观的了解当前网络的流分类情况,本发明还提供了统计信息组件,图13为一个packet统计组件,用于显示该线路中包的统计数;图14为一个byte统计组件,用于显示该线路字节数的统计;
[0099]根据网络所期望实现的转发流程,选择以上几种组件构建当前的网络程序。
[0100]步骤106:根据步骤105中所选择的控件,结合网络所需功能,在控件中设置相关参数,让网络能够完成转发。
[0101]步骤107:将逻辑相关联控件的管脚相连,连线实际代表了网络中流的逻辑走向;[0?02] 完成绘制后返回一级编程窗口,对于添加的flow、group和meter,会自动添加到相应的表中,并在表直接自动生成逻辑连接;
[0103]一个程序流程的终点始终在窗口的port栏。
[0104]步骤108:编写完一个交换机节点的程序后,可继续执行步骤104编写另一个交换机节点的程序,或者点击编译按钮,执行步骤109。
[0105]步骤109:编译器对源代码进行转换,并进行词法分析、语法分析和语义分析,将其转换成控制器平台支持的编程代码。
[0106]步骤110:执行编译获得的代码,调用控制器层控制接口,向交换机下发控制协议报文。
[0107]步骤111:编程结束。
[0108]实施例四
[0109]下面给出多个实施例,本发明的各项实施例涉及网络转发,网络转发可以是2层转发、3层转发、4层转发或者多协议标签交换(mult1-protocol label switch,简写为:MPLS)转发;本发明的各项实施例还涉及网络功能,网络功能可以是组播/广播、路由聚合、快速故障恢复、流量工程;
[0110]图15出示运用本发明编写一个交换机L2线速转发的网络程序的实施例。
[0111]该实施例的目的是:将在端口 1501上输入的源MAC地址为01-02-03-04-05-06、目的MAC为00-04-67-90-00-01、且打上VLAN标签100的数据流转发到1504的端口4;
[0112]根据转发逻辑编写网络程序:在组件1502中,指定了用于L2转发的匹配字段,包括源MAC,目的MAC,以太网类型和VLAN ID,以及匹配流的输入端口,此外还指定了流的闲置超时时间和硬超时时间、优先级等相关参数;
[0113]对从端口 1501中输入的数据流,与flow 1的匹配字段相匹配后,执行组件1503,组件1503执行output操作将流转发至1504的端口 4。
[0114]图16出示运用本发明编写一个交换机L3线速转发的网络程序的实施例。
[0115]该实施例的目的是:将在端口1601上输入的源IP地址为1.1.1.1、目的IP为2.2.2.2,以太网类型为IP数据流转发到1605的端口 4;同时将数据流的源IP地址更改为3.3.3.3;
[0116]根据转发逻辑编写网络程序:在组件1602中,指定了用于L3转发的匹配字段,包括源IP,目的IP,以太网类型,以及匹配流的输入端口,此外还指定了流的闲置超时时间和硬超时时间、优先级等相关参数;
[0117]在组件1603中,执行将数据流源IP地址更改为3.3.3.3的act1n;
[0118]对从端口 1601中输入的数据流,与flow 1的匹配字段相匹配后,执行组件1603,发生了更改的数据流继续执行组件1604,组件1604执行output操作将流转发至1605的端口 4。
[0119]图17出示运用本发明编写一个交换机L4线速转发的网络程序的实施例。
[0120]该实施例的目的是:将在端口1701上输入的源端口号为1000、目的端口号为2000、以太网类型为IP的TCP数据流转发到1705的端口4;同时将数据流的TTL更改为128;
[0121]根据转发逻辑编写网络程序:在组件1702中,指定了用于L4转发的匹配字段,包括源端口号,目的端口号,IP协议号,以太网类型,以及匹配流的输入端口,此外还指定了流的闲置超时时间和硬超时时间、优先级等相关参数;
[0122]在组件1703中,执行将数据流的TTL设置为128的act1n;
[0123]对从端口 1701中输入的数据流,与flow 1的匹配字段相匹配后,执行组件1703,发生了更改的数据流继续执行组件1704,组件1704执行output操作将流转发至1705的端口4。
[0124]图18a-图18b出示运用本发明中一个典型的多级流水线的程序图的实施例。
[0125]多级流水线的处理流程涉及多个flowtable中的多个flow,其将匹配一条流的一个flow拆分为多个flow,分层次完成流的查找和分类,从而提高表项的灵活度。在本实施例中,将一个从端口 1需要精确匹配L2和L3关键字的流进行二级流水线查找,同时为了提高查找的精确度,在多级流
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1