一种sdn流表管理方法及系统、交换机的制作方法

文档序号:9435954阅读:865来源:国知局
一种sdn流表管理方法及系统、交换机的制作方法
【技术领域】
[0001]本发明涉及一种网络技术,特别是涉及一种SDN流表管理方法及系统、交换机。
【背景技术】
[0002]软件定义网络(Software Defined Network, SDN),是Emulex网络一种新型网络创新架构,是网络虚拟化的一种实现方式,其核心技术OpenFlow通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。在SDN网络中,控制功能与转发功能进行分离,进而将控制功能全部集中到远程的SDN控制器上完成,而SDN交换机只负责在本地做简单高速的数据转发。在SDN交换机的运行过程中,其数据转发的依据就是流表。交换机可以支持OpenFlow协议,通过OpenFlow协议接收SDN控制器下发的流表,SDN控制器经过计算得到大量的流表下发到交换机上。当SDN交换机收到一个报文,先进行流表匹配,如果匹配不到流表,则需要通过OpenFlow协议告知控制器,SDN控制器下发流表给SDN交换机,SDN交换机收到OpenFlow协议包后下发流表到转发层。后续的报文就可以根据下发的流表进行转发。由于交换机的转发芯片的表项空间有限,交换机中所能存储的流表项也有限,容易发生匹配不到流表的情况,当SDN交换机收到未匹配流表的报文后才去SDN控制器取,直到流表下发才能进行转发,这中间有一个流表交互的过程,在这过程中报文不能进行转发。
[0003]鉴于此,如何提高流表下发的效率进而提高交换机的转发效率就成了本领域技术人员亟待解决的问题。

【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种SDN流表管理方法及系统、交换机,用于解决现有技术中流表下发的效率不高的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种SDN流表管理方法,所述SDN流表管理方法包括:SDN控制器定期计算流表,并主动下发给所述SDN控制器所连接的SDN交换机;所述SDN交换机接收到所述流表,并保存在本地流表数据库中;SDN交换机接收到报文并在转发层进行流表匹配;当转发层流表匹配不成功时,查询本地流表数据库;如果在本地流表数据库中找到匹配的流表,则将找到的流表下发到转发层。
[0006]可选地,所述SDN流表管理方法还包括:当转发层的流表空间已满时,则按照预定策略删除一条流表。
[0007]可选地,所述预设策略包括:选择与上一次报文成功匹配时间最老的流表进行删除。
[0008]可选地,所述SDN流表管理方法还包括:如果在本地流表数据库中也未找到匹配的流表,则利用OpenFlow协议通知SDN控制器,向SDN控制器索取流表。
[0009]可选地,所述本地流表数据库采用SQLite数据库。
[0010]可选地,所述SDN流表管理方法还包括:当转发层流表匹配成功时,根据匹配成功的流表进行转发。
[0011 ] 本发明提供一种SDN流表管理系统,所述SDN流表管理系统包括流表管理模块,所述流表管理模块位于SDN交换机上,用于接收从SDN控制器下发的流表,并将所述流表保存在本地流表数据库中;数据转发模块,所述数据转发模块位于SDN交换机上,用于在所述SDN交换机接收到报文时,在转发层进行流表匹配;当转发层流表匹配不成功时,查询本地流表数据库;如果在本地流表数据库中找到匹配的流表,则将找到的流表下发到转发层。
[0012]可选地,所述数据转发模块还用于:当转发层的流表空间已满时,则按照预定策略删除一条流表。
[0013]可选地,所述预设策略包括:选择与上一次报文成功匹配时间最老的流表进行删除。
[0014]可选地,所述数据转发模块还用于:如果在本地流表数据库中也未找到匹配的流表,则利用OpenFlow协议通知SDN控制器,向SDN控制器索取流表。
[0015]可选地,所述本地流表数据库采用SQLite数据库。
[0016]可选地,所述数据转发模块还包括:当转发层流表匹配成功时,根据匹配成功的流表进行转发。
[0017]本发明还提供一种SDN交换机,所述SDN交换机具备有如上所述的SDN流表管理系统。
[0018]如上所述,本发明的一种SDN流表管理方法及系统、交换机,具有以下有益效果:解决了流表快速下发以及流表管理的问题,缩短流表的下发时间,进而提高了交换机的转发效率,提高了 SDN系统的性能。
【附图说明】
[0019]图1显示为本发明的SDN流表管理方法的一实施例的流程示意图。
[0020]图2显示为本发明的SDN流表管理方法的另一实施例的流程示意图。
[0021]图3显示为本发明的SDN流表管理系统的一实施例的模块示意图。
[0022]元件标号说明
[0023]ISDN流表管理系统
[0024]11流表管理模块
[0025]12数据转发模块
[0026]SI ?S3 步骤
【具体实施方式】
[0027]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0028]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0029]本发明提供一种SDN流表管理方法。所述SDN流表管理方法应用于SDN网络系统中。在一个实施例中,所述SDN流表管理方法包括:
[0030]SDN控制器定期计算流表,并主动下发给所述SDN控制器所连接的SDN交换机。[0031 ] 所述SDN交换机接收到所述流表,并保存在本地流表数据库中。
[0032]SDN交换机接收到报文并在转发层进行流表匹配。
[0033]当转发层流表匹配不成功时,查询本地流表数据库。
[0034]如果在本地流表数据库中找到匹配的流表,则将找到的流表下发到转发层。
[0035]在一个实施例中,如图1所示,所述SDN流表管理方法包括:
[0036]步骤SI,SDN控制器定期计算流表,并主动下发给所述SDN控制器所连接的SDN交换机;所述SDN交换机接收到所述流表,并保存在本地流表数据库中。具体地,SDN控制器根据网络计算得出流表数据,定期主动下发给所述SDN控制器所连接的SDN交换机;所述SDN交换机接收到所述流表,并保存在本地流表数据库中。所述本地流表数据库采用SQLite数据库。SQLite是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。本地流表数据库也可以采用其他数据库。
[0037]步骤S2,SDN交换机接收到报文并在转发层进行流表匹配;当转发层流表匹配不成功时,查询本地流表数据库。所述SDN流表管理方法还包括:当转发层流表匹配成功时,根据匹配成功的流表进行转发。
[0038]步骤S3,如果在本地流表数据库中找到匹配的流表,则将找到的流表下发到转发层。在一个实施例中,所述SDN流表管理方法还包括:当转发层的流表空间已满时,则按照预定策略删除一条流表。所述预设策略包括:选择与上一次报文成功匹配时间最老的流表进行删除。所述SDN流表管理方法还包括:如果在本地流表数据库中也未找到匹配的流表,
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1