基于状态机的SDN控制器中交换机状态管理方法及系统与流程

文档序号:15700929发布日期:2018-10-19 19:49阅读:254来源:国知局

本发明涉及计算机网络通信领域,特别是涉及一种基于状态机的SDN控制器中交换机状态管理方法及系统。



背景技术:

SDN(软件定义网络)是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,支持集中化的网络状态控制,实现底层网络设施对上层应用的透明。SDN具有灵活的编程能力,使得网络的自动化管理和控制能力获得空前的提升,能够有效地解决当前网络所面临的资源规模扩展受限,组网灵活性差,难以快速满足业务需求等问题。

SDN网络中集中式的控制平面被称为SDN控制器,是一个运行于独立服务器上的软件系统,逻辑上处于数据转发平面和上层网络应用的中间,是整个SDN网络的核心。SDN控制器通过TCP连接和其管理的每一个交换机之间进行通信,这个TCP连接又被称为是管理通道。由于在网络运行时需要一直保持SDN控制器和交换机之间的通信,管理通道的稳定性就会极大的影响到SDN网络工作的稳定性。在实际的SDN网络应用场景中,例如数据中心,SDN管理通道一般是使用的原因的管理网络,相较于业务网络,管理网络的稳定性会大大的降低。SDN网络中交换机正常工作时可能会受到两个因素的影响导致暂时的不可用:一是TCP连接会受到网络的影响而暂时关闭,二是SDN控制器和交换机之间的心跳包会出现丢包导致控制器认为交换机进入不可达状态。然而,当SDN控制器在交换机中下发网络通信规则以后,即使管理通道暂时失效,交换机仍然可以按照已经下发的通信规则进行数据包的转发。因此,如何应对管理通道的非稳定性,提供SDN控制器在此种情况的健壮性就成为了本领域技术人员亟待解决的问题。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于状态机的SDN控制器中交换机状态管理方法及系统,用于解决现有技术中SDN管理通道的稳定性和健壮性差的问题。

为实现上述目的,本发明采用以下方案:一种基于状态机的SDN控制器中交换机状态管理方法,所述方法包括:在交换机正常工作状态下,当SDN控制器发送消息失败或心跳交互失败时,定义交换机状态为不可达状态;其中,在不可达状态下,SDN控制器只向交换机发送心跳包,同时进行掉电检测和尝试恢复连接;当恢复连接成功时,交换机进入正常工作状态;当掉电检测成功时,进入掉电状态;当连接失败或掉电检测失败时,保持不可达状态;SDN控制器接收到交换机TCP连接断开的消息时,定义交换机状态为断开连接状态;其中,在断开连接状态下,SDN控制器进行掉电检测,掉电检测失败时,保持断开连接状态;掉电检测成功时,进入掉电状态。

于本发明的一实施方式中,在SDN控制器与交换机建立TCP连接成功后交换机进入TCP连接成功状态。

于本发明的一实施方式中,在TCP连接成功状态下,SDN控制器与交换机就OpenFlow协议版本进行协商,若协商达成一致,则交换机进入版本协商成功状态;若协商未达成一致,则交换机进入正在下线状态。

于本发明的一实施方式中,在掉电状态下,交换机执行下线动作,并进入正在下线状态;当下线完成,交换机进入关闭状态。

于本发明的一实施方式中,在SDN控制器接收到交换机TCP连接断开的消息时,交换机从当前的TCP连接成功状态、版本协商成功状态、断开连接状态或不可达状态迁移到断开连接状态。

于本发明的一实施方式中,交换机在断开连接状态或不可达状态下尝试与SDN控制器重新建立TCP连接,并在TCP连接成功后进入TCP连接成功状态。

于本发明的一实施方式中,在版本协商成功状态下,交换机和SDN控制器建立OpenFlow消息通道;在SDN控制器收到交换机发送的正确的OFPT_BARRIER_REPLY消息后,交换机进入正常工作状态;在正常工作状态下,SDN控制器可以执行发送消息、下发流表工作。

于本发明的一实施方式中,在SDN控制器对象创建后定义交换机的状态为初始状态。

本发明还提供一种如上述任意一项所述的基于状态机的SDN控制器中交换机状态管理方法的系统,所述系统包括SDN控制器和由所述SDN控制器通过TCP连接的多台交换机,所述SDN控制器用于定义交换机的状态和反映状态改变的事件,以对交换机状态进行管理。

如上所述,本发明的基于状态机的SDN控制器中交换机状态管理方法及系统,具有以下有益效果:

1)、提高了SDN控制器中交换机管理的精确性,加强控制器的可靠性和健壮性;

2)、降低对SDN网络中管理通道可靠性的要求,提高实际环境中的适应能力;

3)、可为上层应用提供交换机状态变化的详细事件。

附图说明

图1显示为本发明基于状态机的SDN控制器中交换机的状态迁移图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,虽图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

实施例1

请参阅图1,本发明提供一种基于状态机的SDN控制器中交换机状态管理方法,所述方法包括:

在交换机正常工作状态下,当SDN控制器发送消息失败或心跳交互失败时,定义交换机状态为不可达状态;其中,在不可达状态下,SDN控制器只向交换机发送心跳包,同时进行掉电检测和尝试恢复连接;当恢复连接成功时,交换机进入正常工作状态;当掉电检测成功时,进入掉电状态;当连接失败或掉电检测失败时,保持不可达状态。

作为示例,心跳交互失败包括心跳交互超时,例如回声重发完后仍未回应的情况。

SDN控制器接收到交换机TCP连接断开的消息时,定义交换机状态为断开连接状态;其中,在断开连接状态下,SDN控制器进行掉电检测,掉电检测失败时,保持断开连接状态;掉电检测成功时,进入掉电状态。

作为示例,在SDN控制器与交换机建立TCP连接成功后交换机进入TCP连接成功状态,交换机进入TCP连接成功状态时,SDN控制器可以与交换机进行TCP通信。

作为示例,在TCP连接成功状态下,SDN控制器与交换机就OpenFlow协议版本进行协商,若协商达成一致,则交换机进入版本协商成功状态;若协商未达成一致,则交换机进入正在下线状态。版本协商成功状态,指的是SDN控制器和交换机就OpenFlow协议版本协商达成一致,双方可以进行OpenFlow消息的交互。

作为示例,在掉电状态下,交换机执行下线动作,并进入正在下线状态;当下线完成,交换机进入关闭状态。交换机进入掉电状态之前会首先经历断开连接状态或不可达状态,SDN控制器会通过掉电检测判断此交换机是否已关闭电源。

作为示例,在SDN控制器接收到交换机TCP连接断开的消息时,交换机从当前的TCP连接成功状态、版本协商成功状态、断开连接状态或不可达状态迁移到断开连接状态。无论当前交换机处于TCP连接成功状态、版本协商成功状态、断开连接状态还是不可达状态,当交换机收到TCP连接断开的消息时,便转入断开连接状态。

作为示例,交换机在断开连接状态或不可达状态下尝试与SDN控制器重新建立TCP连接,并在TCP连接成功后进入TCP连接成功状态。在管理通道暂时不可用时候,也即交换机在断开连接状态或不可达状态下,交换机会重新建立TCP连接,重新上线。交换机从连接断开状态或不可达状态进入新连接状态,但由于交换机没有发生掉电,故可以把交换机对象重用。

作为示例,在版本协商成功状态下,交换机和SDN控制器建立OpenFlow消息通道;在SDN控制器收到交换机发送的正确的OFPT_BARRIER_REPLY消息后,交换机进入正常工作状态;在正常工作状态下,SDN控制器可以执行发送消息、下发流表工作。

作为示例,在SDN控制器对象创建后定义交换机的状态为初始状态,在初始状态时,交换机的Socket连接尚没有建立。

实施例2

本发明还提供一种如上述任意一项所述的基于状态机的SDN控制器中交换机状态管理方法的系统,所述系统包括SDN控制器和由所述SDN控制器通过TCP连接的多台交换机,所述SDN控制器用于定义交换机的状态和反映状态改变的事件,以对交换机状态进行管理。

作为示例,所述SDN控制器定义交换机的工作状态至少包括:

1)初始状态,该状态为SDN控制器对象创建后的最初状态,交换机的Socket连接尚没有建立。

2)TCP连接建立成功状态,在该状态下,SDN控制器可以与交换机进行TCP通信。

3)版本协商成功状态,指的是SDN控制器和交换机就OpenFlow协议版本协商达成一致,双方可以进行OpenFlow消息的交互。

4)正常工作状态,正常工作状态下SDN控制器与交换机可以正常的进行OpenFlow消息的通信。当交换机和SDN控制器建立好OpenFlow消息通道之后,SDN控制器收到交换机发送的正确的OFPT_BARRIER_REPLY消息,双方可以进入正常的通信工作状态。在此状态下,SDN控制器可以发送消息、下发流表等。

5)不可达状态,当交换机在正常工作状态下出现消息发送失败或者心跳交互超时(echo重发完后仍未回应)时,SDN控制器认为此交换机进入不可达状态,在此状态下除了心跳包之外不再向交换机发送任何消息,直到收到交换机任何消息后状态改变。

6)断开连接状态,SDN控制器收到交换机TCP连接断开消息。

7)掉电状态,交换机进入掉电状态之前会首先经历断开连接状态或不可达状态,SDN控制器会通过掉电检测判断此交换机是否已关闭电源。

8)正在下线状态,表示交换机正在进行内存清理等工作。

9)关闭状态,表示交换机内存清理等工作已完成,SDN控制器只会保存一些最基本的信息表示该交换机曾经连接过。

根据上述定义的交换机工作状态和状态之间的迁移,所述SDN控制器还定义了交换机状态改变的关键性事件,具体包括:交换机连接进来事件,在交换机上线过程中协商版本失败或者是检测到交换机掉电事件,交换机收到OFPT_BARRIER_REPLY消息后进入正常工作状态,控制器发送消息给交换机失败或心跳交互超时(echo重发完后仍未回应)导致交换机进入不可达状态;SDN控制器收到交换机消息后连接恢复正常,从不可达状态中退出,交换机断开连接,交换机发生掉电,交换机重新连接进来,从连接断开状态或不可达状态进入新连接状态,但由于交换机没有发生掉电,故可以把交换机对象重用。

综上所述,本发明所述的一种基于状态机的SDN控制器中交换机状态管理方法及系统,定义了SDN控制器中交换机的多种状态和相应的交换机状态迁移过程,并定义了多个关键的反映交换机工作状态改变的事件,可以应对交换机管理通道的不确定性,提高SDN控制器中交换机管理的精确性,加强控制器的可靠性和健壮性,降低了对SDN网络中管理通道可靠性的要求,为SDN网络在实际环境中的应用提供了保障。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1