一种sdn移动自组网的数据处理方法及装置的制造方法

文档序号:10597102阅读:245来源:国知局
一种sdn移动自组网的数据处理方法及装置的制造方法
【专利摘要】本发明实施例提供了一种SDN移动自组网的数据处理方法及装置,可以获得控制器与交换机的最新连接状态;当最新连接状态为断开时,对待处理的数据报文进行自学习并构造第一流表项;判断灾备流表中是否存在与该第一流表项的匹配域相同的流表项,如果是,将与该第一流表项的匹配域相同的流表项删除,将该第一流表项添加到灾备流表中;否则,将该第一流表项添加到灾备流表中;判断待处理的数据报文是否与添加到灾备流表中的第一流表项相匹配,如果是,根据灾备流表中的第一流表项对数据报文进行处理;否则,根据默认流表项对数据报文进行处理。因此,本发明提供的数据处理方法及装置可以缩短控制器失效时的故障恢复时间,提高网络的可靠性和稳定性。
【专利说明】
一种SDN移动自组网的数据处理方法及装置
技术领域
[0001] 本发明涉及无线通信网络设计技术领域,特别是涉及一种SDN移动自组网的数据 处理方法及装置。
【背景技术】
[0002] Ad Hoc网络是一种无中心无线网络,具有自组织和快速部署的优点,因此被广泛 应用于军事、车载网、灾区营救和智慧城市等多领域。但是,Ad Hoc网络是一种分布式网络 结构,其节点由移动中的主机构成,且所有节点处于对等地位,因此缺乏全网视图和集中式 控制,对资源调度的灵活性不足。软件定义网络(Software Defined Networking,SDN)技术 将网络在逻辑上分为控制平面和数据平面,网络的控制转发策略由控制层面的控制器进行 集中部署,转发设备则在控制策略指导下专注于数据处理与转发,大大提高了网络灵活性 和网络效率。因此,基于SDN的Ad Hoc网络应运而生。具体的,基于SDN的Ad Hoc网络选举某 个移动节点作为控制器,将移动节点的控制功能集中在控制器中,控制器通过标准的南向 接口向交换机下发流表,对交换机、数据报文的处理与转发进行集中控制,而其他移动节点 作为交换机,只保留数据转发功能。因此,基于SDN的Ad Hoc网络可以很方便地获取全网视 图,并且集中下发数据转发策略,这样Ad Hoc网络资源可以实现集中控制和资源灵活调度 的功能,提尚了网络运彳丁效率。
[0003] 但是,由于Ad hoc网络具有移动性强,网络动态拓扑变化和无线链路资源紧张等 特点,当具备控制器功能的移动节点离开SDN网络时,导致底层交换机失去控制器控制,无 法处理与转发新的数据报文,即使从其他节点中选举出新的控制器,这段选举切换时间也 会导致通信的暂时性中断,导致基于SDN的Ad Hoc网络故障恢复时间长。该故障恢复时间具 体是指,控制器断开后至交换机能够处理与转发新的数据报文所需要的时间。
[0004] 目前,由开放式网络基金会(Open Network Foundation,0NF)提出的Openflow协 议,以及支持Openflow协议的Open vSwitch(OVS)多层虚拟交换机,被广泛应用于基于SDN 的Ad Hoc网络中以解决上述控制器失效后如何减短故障恢复时间的技术问题。0VS主要通 过"失败独立模式"和"失败安全模式"两种工作模式解决上述问题。0VS既支持数据报文在 Openflow通道的处理转发,又支持数据报文在传统通道的处理与转发,数据报文首先在 Openflow通道进行处理,当Openflow通道无法处理时,转入传统通道进行处理。
[0005] 0VS在"失败独立模式"下,若控制器连接正常,数据报文会正常匹配转发流表项, 并根据匹配到的流表项的动作实现数据报文的转发与处理;若控制器连接断开,根据优先 级的先后,如果数据报文首先匹配到的流表项的动作为转发给控制器,而此时因控制器断 开,交换机无法将数据报文转发给控制器,但该流表项又存在一定的超时时间,在超时结束 后该流表项才会被自动删除,数据报文才会去匹配优先级更低的流表项,例如动作为进入 传统通道进行数据报文的处理与转发的流表项,从而保证控制器断开情况下的通信正常。 可见,0VS在"失败独立模式"下,需要控制器定时维护优先级较高的特定流表项,在控制器 断开后至该特定流表项超时期间,对于新的数据报文无法匹配到优先级更低的流表项而丢 弃,影响正常通信,且该特定流表项的超时时间不能设置太小(一般大于Is),否则控制器下 发该特定流表项的时间间隔过小,容易引起通信链路拥塞,从而影响流表项下发的及时性, 因此故障恢复时间长。
[0006] 0VS在"失败安全模式"下,0VS交换机周期性地向控制器发出echo消息作为探针进 行连接状态探测,当5s内没有接收到控制器的echo消息回复,则从ACTIVE状态进入"IDLE" 状态,然后再次发送echo消息作为探针进行连接状态探测,如果5s内仍未收到echo消息回 复,则认定为连接断开。当控制器连接断开时,数据报文首先根据优先级的高低进行流表项 的匹配,如果匹配不到,则会根据连接状态将没有匹配到流表项的数据报文匹配一条不可 见的默认流表项,根据默认流表项的动作进行转发处理,从而保障控制器断开情况下的通 信正常。但是0VS在"失败安全模式"下,当控制器断开时,获取连接状态的时间需要10s,因 此,故障恢复时间也需要l〇s左右,因此,故障恢复时间长。
[0007] 可见,无论0VS是哪种工作模式,在控制器失效的情况下,通信故障恢复的时间依 然较长,严重影响了网络的可靠性和稳定性。

【发明内容】

[0008] 本发明实施例的目的在于提供一种SDN移动自组网的数据处理方法及装置,以缩 短控制器失效时的故障恢复时间,从而提高网络的可靠性和稳定性。
[0009] 为达到上述目的,本发明实施例公开了一种SDN移动自组网的数据处理方法,应用 于交换机,该方法包括如下步骤:
[0010] 按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状态; [0011]当所述最新连接状态为断开时,对待处理的数据报文进行自学习,根据自学习结 果构造第一流表项;
[0012] 判断所述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项,如果 是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加到所 述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中;其中,所述第一流表项的 优先级高于所述灾备流表中的默认流表项;
[0013] 判断所述待处理的数据报文是否与添加到所述灾备流表中的所述第一流表项相 匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进行处理;否则,根 据所述默认流表项对所述数据报文进行处理。
[0014] 优选的,所述交换机中还预先存储有控制器下发的正常转发流表,所述方法还包 括:
[0015] 当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行匹配, 获得相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。
[0016] 优选的,所述灾备流表还包括:安全限流流表项,且所述安全限流流表项的优先级 最尚;
[0017] 所述安全限流流表项的匹配域中包含对数据报文进行限流的目的接收设备的地 址信息。
[0018] 优选的,所述对待处理的数据报文进行自学习,根据自学习结果构造第一流表项 包括:
[0019] 对待处理的数据报文的包头进行解析,提取数据报文包头中的信息;
[0020] 根据提取的数据报文包头中的信息构造第一流表项。
[0021] 优选的,所述按照预设规则检测所述控制器与所述交换机的连接状态包括:
[0022] 向所述控制器发送第一 Echo请求消息;
[0023] 判断所述交换机是否在设定的超时时间长度内接收到所述控制器发送的消息,其 中从所述交换机接收所述控制器发送的最后一条消息的时间开始对所述设定的超时时间 长度进行计时;
[0024] 如果否,确定所述控制器与所述交换机的最新连接状态为断开状态,如果是,确定 所述控制器与所述交换机的最新连接状态为正常状态。
[0025] 优选的,所述确定所述控制器与所述交换机的最新连接状态为正常状态包括:
[0026] 当在设定的第一超时时间长度内未接收到所述控制器发送的消息时,确定所述控 制器与所述交换机的最新连接状态为正常状态中的空闲状态;其中从所述交换机接收所述 控制器发送的最后一条消息的时间开始对所述设定的第一超时时间长度进行计时;
[0027]当确定最新连接状态为空闲状态时,向所述控制器发送第二Echo请求消息;
[0028] 当在设定的第二超时时间长度内接收到所述控制器发送的消息时,确定所述控制 器与所述交换机的最新连接状态为正常状态中的活跃状态,其中所述设定的第一超时时间 长度和设定的第二超时时间长度的和为所述设定的超时时间长度。
[0029] 优选的,当确定所述控制器与所述交换机的最新连接状态为正常状态时,所述方 法还包括:
[0030] 当所述连接状态为活跃状态时,根据最近一次发送第一Echo请求消息的时间,及 接收所述控制器针对该第一Echo请求消息发送的第一Echo响应消息的时间,对发送第一 Echo请求消息的时间间隔、设定的第一超时时间长度和设定的第二超时时间长度进行调 整;
[0031] 当所述连接状态为空闲状态时,根据发送第二Echo请求消息的时间,及接收所述 控制器针对该第二Echo请求消息发送的第二Echo响应消息的时间,对发送第一Echo请求消 息的时间间隔、设定的第一超时时间长度进行调整。
[0032]本发明实施例还公开了 SDN移动自组网的数据处理装置,应用于交换机,所述交换 机中预先存储有控制器下发的灾备流表,所述灾备流表中预先存储有默认流表项,所述装 置包括:连接状态检测模块、自学习模块、第一处理模块和第二处理模块,所述连接状态检 测模块,用于按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状态; [0033]所述自学习模块,用于当所述最新连接状态为断开时,对待处理的数据报文进行 自学习,根据自学习结果构造第一流表项;
[0034]所述第一处理模块,用于判断所述灾备流表中是否存在与所述第一流表项的匹配 域相同的流表项,如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述 第一流表项添加到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中;其 中,所述第一流表项的优先级高于所述灾备流表中的默认流表项;
[0035]所述第二处理模块,用于判断所述待处理的数据报文是否与添加到所述灾备流表 中的所述第一流表项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据 报文进行处理;否则,根据所述默认流表项对所述数据报文进行处理。
[0036]优选的,所述装置还包括:正常处理模块,
[0037]所述正常处理模块,用于在所述交换机中还预先存储有控制器下发的正常转发流 表的情况下,当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行匹 配,获得相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。
[0038] 优选的,所述灾备流表还包括:安全限流流表项,且所述安全限流流表项的优先级 最尚;
[0039] 所述安全限流流表项的匹配域中包含对数据报文进行限流的目的接收设备的地 址信息。
[0040] 本发明实施例提供的一种SDN移动自组网的数据处理方法及装置,应用于交换机, 可以检测并获得控制器与交换机最新连接状态;当最新连接状态为断开时,对待处理的数 据报文进行自学习,根据自学习结果构造第一流表项;判断灾备流表中是否存在与该第一 流表项的匹配域相同的流表项,如果是,将与该第一流表项的匹配域相同的流表项删除,并 将该第一流表项添加到灾备流表中;否则,将该第一流表项添加到灾备流表中;判断待处理 的数据报文是否与添加到灾备流表中的第一流表项相匹配,如果是,根据灾备流表中的第 一流表项对数据报文进行处理;否则,根据默认流表项对数据报文进行处理。因此,本发明 提供的SDN移动自组网的数据处理方法及装置可以快速感知交换机与控制器连接故障的发 生,当控制器断开时,新来的数据报文可以不用盲目地发送给控制器处理而是直接与连接 状态断开时的灾备流表进行匹配,获得相应的处理策略,这缩短了故障恢复时间,提高了交 换机的数据处理能力和效率,从而提高了网络的可靠性和稳定性;此外,在移动自组网络拓 扑结构变化导致控制器失效时,本发明还可以根据连接状态的变化及时进行流表项的学习 老化,防止网络拓扑结构变化后交换机仍使用旧的流表项,进一步提高了网络的可靠性。当 然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
【附图说明】
[0041] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。
[0042]图1为本发明实施例提供的一种SDN移动自组网的数据处理方法流程图;
[0043]图2为本发明实施例提供的另一种SDN移动自组网的数据处理方法流程图;
[0044] 图3为本发明实施例提供的控制器与交换机的一种连接状态检测原理示意图;
[0045] 图4为本发明实施例提供的控制器与交换机连接状态转化关系示意图;
[0046]图5为本发明实施例提供的另一种SDN移动自组网的数据处理方法流程图;
[0047]图6为本发明实施例提供的另一种SDN移动自组网的数据处理方法流程图;
[0048]图7为本发明实施例提供的实际应用中的一种SDN移动自组网的数据处理方法流 程图;
[0049]图8为本发明实施例提供的一种SDN移动自组网的数据处理装置结构图;
[0050]图9为本发明实施例提供的另一种SDN移动自组网的数据处理装置结构图;
[0051]图10为本发明实施例提供的另一种SDN移动自组网的数据处理装置结构图;
[0052]图11为本发明实施例提供的另一种SDN移动自组网的数据处理装置结构图;
[0053]图12为本发明实施例提供的实际应用中的一种SDN移动自组网的数据处理装置结 构图。
【具体实施方式】
[0054]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0055] 本发明实施例提供了一种SDN移动自组网的数据处理方法及一种SDN移动自组网 的数据处理装置,应用于交换机,下面分别进行说明。
[0056] 首先对一种SDN移动自组网的数据处理方法进行说明。
[0057]如图1所示,本发明实施例提供的一种SDN移动自组网的数据处理方法,应用于交 换机,所述交换机中预先存储有控制器下发的灾备流表,所述灾备流表中预先存储有默认 流表项,该方法可以包括:
[0058] S100、按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状 态;
[0059 ]首先,需要说明的是,本发明实施例中所说的交换机可以是支持0 p e n f 1 〇 w协议的 Open vSwitch(OVS)虚拟交换机,也可以是其他交换机,且本发明实施例中所说的交换机主 要应用于基于SDN的Ad Hoc网络中,当然也可以应用于其他网络中。但为了方便说明,在本 发明下述的实施方式中都是以应用于基于SDN的Ad Hoc网络中,并且支持Openflow协议的 0VS交换机为例进行说明。
[0060] 控制器连接状态检测机制主要基于有限状态机制实现。控制器与交换机的连接状 态可以包括:正常状态和断开(DIS⑶丽ECTI0N)状态,其中正常状态又可以包括活跃 (ACTIVE)状态和空闲(IDLE)状态。
[0061] S200、当所述最新连接状态为断开时,对待处理的数据报文进行自学习,根据自学 习结果构造第一流表项;
[0062]其中,对待处理的的数据报文进行自学习,根据自学习结果构造第一流表项可以 包括:
[0063] 步骤一、对待处理的数据报文的包头进行解析,提取数据报文包头中的信息;
[0064] 步骤二、根据提取的数据报文包头中的信息构造第一流表项。
[0065]具体的,第一流表项的目的地址匹配字段可以是数据报文的源mac地址,行为的转 发出口就是数据报文的入端口,即进行自学习的数据报文可以为反向数据报文。
[0066]在本发明提供的实施例中,可以使0VS交换机在数据处理层面直接调用自学习功 能,这样,一方面,在控制器断开的这种情况下,数据报文可以不用盲目地发送给控制器处 理而直接在交换机中匹配连接状态断开时的灾备流表,并执行相应的处理策略,提高了交 换机的数据处理能力和效率;在控制器连接正常的情况下,可以减少上交控制器的数据报 文的数量,有效避免控制器处理延时,减轻控制器负担;另一方面,这更符合SDN网络将控制 和转发分离的思想且增加了灵活性;此外,自学习产生的第一流表项和交换机中存储的灾 备流表中的默认流表项的规则相同,即自学习产生的第一流表项也包括匹配域、计数器和 动作,可以无差异的添加到原有的灾备流表中,保持了OpenFlow和SDN的原有的特性,从而 也保证了网络的稳定性。另外,在移动自组网络拓扑结构变化导致控制器失效时,本发明可 以根据连接状态的变化及时进行流表项的学习老化,防止网络拓扑结构变化后交换机仍使 用旧的流表项,进一步提高了网络的可靠性。
[0067] S300、判断所述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项, 如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加 到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中,其中所述第一流表项 的优先级高于所述灾备流表中的默认流表项;
[0068] 具体的,灾备流表可以为控制器预先下发给交换机的流表之一,流表中一般包含 多个流表项,流表项包括:匹配域、计数器、动作。OpenFlow的匹配域(OpenFlow vl. 3.1)用 于对数据报文的包头等字段进行匹配,动作则指导匹配到流表项的数据报文的处理与转 发。在实际应用中,待处理的数据报文先与优先级较高的流表项进行匹配,匹配不到时再与 优先级较低的流表项进行匹配。灾备流表中预先存储有默认流表项,默认流表项的优先级 最低。
[0069] 具体的,如表1所示,灾备流表中的默认流表项的匹配域可以为与任意数据报文的 包头等字段匹配,默认流表项的动作可以为泛洪(flood),即将数据报文从除该数据报文入 端口外的所有端口转发出去。
[0070] 表1灾备流表
[0072]具体的,表2为在表1的基础上插入一条自学习获得的第一流表项后的灾备流表, 其优先级高于默认流表项。
[0073]表2插入一条第一流表项后的灾备流表
[0075] S400、判断所述待处理的数据报文是否与添加到所述灾备流表中的所述第一流表 项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进行处理;否 贝1J,根据所述默认流表项对所述数据报文进行处理。
[0076]具体的,当前待处理的数据报文首先与添加到灾备流表(如表2)中的第一流表项 相匹配,如果匹配,根据第一流表项的动作对当前待处理的数据报文进行处理;否则,根据 默认流表项的动作,对当前待处理的数据报文进行处理。
[0077]图2显示了步骤S100中"按照预设规则检测所述控制器与所述交换机的连接状态" 的过程,该过程可以包括:
[0078] S101、向所述控制器发送第一 Echo请求消息;
[0079]具体的,当交换机和控制器建立起OpenFlow连接后,进入活跃状态。然后,交换机 向控制器发送第一个第一Echo请求消息(Echo request)作为探针进行连接状态跟踪检测。
[0080] S102、判断所述交换机是否在设定的超时时间长度内接收到所述控制器发送的消 息,其中从所述交换机接收所述控制器发送的最后一条消息的时间开始对所述设定的超时 时间长度进行计时;
[0081] 具体的,判断交换机是否在设定的超时时间长度内接收到控制器发送的Openf low 消息;其中,从交换机接收到控制器发送的最后一条Openflow消息的时间开始对所述设定 的超时时间长度进行计时,即从Openflow消息的最后活跃时间开始对所述设定的超时时间 长度进行计时;该Openflow消息可以是控制器发送给交换机的任何Openflow消息,包括针 对第一个第一Echo请求消息的第一Echo响应消息(Echo reply)。
[0082] S103、如果否,确定所述控制器与所述交换机的最新连接状态为断开状态,如果 是,确定所述控制器与所述交换机的最新连接状态为正常状态。
[0083]具体的,如果交换机在设定的超时时间长度内未收到控制器发送的Openf low消 息,则确定所述控制器与所述交换机的最新连接状态为断开状态;如果交换机在设定的时 间长度内收到了控制器发送的Openflow消息,则说明连接状态正常,并在一定的时间间隔 后发送第二个第一 Echo请求消息作为探针继续进行交换机与控制器的连接状态的跟踪检 测。
[0084] 具体的,如图3所示,前述设定的超时时间长度为设定的第一超时时间长度tl和设 定的第二超时时间长度t2的和。步骤S103中确定所述控制器与所述交换机的最新连接状态 为正常状态可以包括:
[0085] 步骤一、当交换机在设定的第一超时时间长度tl内未接收到控制器发送的 Openf low消息时,确定所述控制器与所述交换机的最新连接状态为正常状态中的空闲状 态;同样的,从交换机接收到所述控制器发送的最后一条Openf low消息的时间开始对设定 的第一超时时间长度tl进行计时,即从Openflow消息的最后活跃时间开始对设定的第一超 时时间长度tl进行计时;
[0086] 步骤二、当确定最新连接状态为空闲状态时,向所述控制器发送第二Echo请求消 息;
[0087] 步骤三、当在设定的第二超时时间长度t2内接收到所述控制器发送的消息时,确 定所述控制器与所述交换机的最新连接状态为正常状态中的活跃状态,其中所述设定的第 一超时时间长度和设定的第二超时时间长度的和为所述设定的超时时间长度。
[0088]在上述步骤三中,当在设定的第二超时时间长度t2内未接收到所述控制器发送的 Openf low消息时,则控制器与交换机由空闲状态进入断开状态,即从Openf low消息的最后 活跃时间开始至tl+t2的时间长度到期后,交换机一直未收到控制器发送的Openf low消息, 说明控制器已失效,交换机陷入故障状态中。
[0089]当然,可以理解的是,还有另外一种情况,即当交换机收到控制器发送的即将主动 断开连接的消息后,控制器直接由活跃状态进入断开状态。
[0090] 图4显示了活跃、空闲和断开这三种状态的具体转化关系。
[0091] 优选的,当所述连接状态为活跃状态时,交换机还可以根据最近一次发送第一 Echo请求消息的时间,及接收所述控制器针对该第一Echo请求消息发送的第一Echo响应消 息的时间,对发送第一Echo请求消息的时间间隔、设定的第一超时时间长度和设定的第二 超时时间长度进行调整;当所述连接状态为空闲状态时,根据发送第二Echo请求消息的时 间,及接收所述控制器针对该第二Echo请求消息发送的第二Echo响应消息的时间,对发送 第一 Echo请求消息的时间间隔、设定的第一超时时间长度进行调整。
[0092] 具体的,如图3所示,当连接状态为活跃状态时,可以将交换机发送第一个第一 Echo请求消息至接收到控制器发送的针对第一个第一 Echo请求消息的第一 Echo响应消息 的时间长度计为T1,将接收到第一 Echo响应消息至发送第二个第一 Echo请求消息的时间长 度计为T2,T1与T2的和即为交换机在活跃状态下发送第一 Echo请求消息的时间间隔。交换 机可以通过检测最近一次第一 Echo请求消息的往返时延T1,动态调整第一 Echo请求消息的 发送间隔Tx、设定的第一超时时间长度tl和设定的第二超时时间长度t2;
[0093] 具体的,当所述连接状态为空闲状态时,如果交换机在设定的第二超时时间内收 到Openf low消息(可以是第二Echo响应消息),连接状态由空闲状态跳入活跃状态,可以根 据发送第二Echo请求消息的时间,及接收所述控制器针对该第二Echo请求消息发送的第二 Echo响应消息的时间,对发送第一Echo请求消息的时间间隔、设定的第一超时时间长度进 行调整。
[0094]这样一方面可以实现Echo消息的智能管理,从而节省通信链路的资源,另一方面 有助于缩短控制器失效后的故障恢复时间。
[0095] 在传统解决方案中,交换机通过周期性地发送Echo消息进行连接状态检测,该周 期较长(一般为5s)且固定不变,因此,不能根据链路状况(如链路拥塞影响echo消息的往返 时间)动态调整echo消息的发送间隔,也不能及时检测到控制器连接失效的情况。而本发明 提供的实施例对连接状态进行动态、实时的检测,可以快速感知交换机与控制器连接故障 的发生,为缩短控制器失效时的故障恢复时间提供了有力帮助,提高了网络的可靠性。
[0096] 如图5所示,在图1所示的实施例的基础上,本发明还提供了另一种SDN移动自组网 的数据处理方法,所述交换机中还预先存储有控制器下发的正常转发流表,所述方法还可 以包括:
[0097] S500、当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行 匹配,获得相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。
[0098]即具体的,交换机中还预先存储有正常转发流表,当最新连接状态为正常时,将所 述数据报文与所述正常转发流表进行匹配,获得相匹配的第二流表项,根据所述第二流表 项对所述数据报文进行处理。
[0099]另外,由于本发明提供的数据处理方法可以实现所有数据报文在Openf low通道中 的处理,而无需进入传统通道,因此,本发明提供的数据处理方法兼容性好,且更符合SDN网 络中控制与转发分离的核心思想。
[0100]较佳的,如图6所示,在控制器与交换机的断开时,为了保证数据报文的安全性,本 发明实施例还提供了另一种SDN移动自组网的数据处理方法,应用于交换机,所述交换机中 预先存储有控制器下发的灾备流表,所述灾备流表中预先存储有默认流表项和安全限流流 表项,其中,该安全限流流表项的优先级最高,该方法可以包括:
[0101] S010、按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状 态;
[0102] 具体的,连接状态检测方法与图1所示的实施例中的方法一致,此处不再赘述。
[0103] S020、当所述最新连接状态为断开时,在存储的所述灾备流表中查找是否存在与 当前待处理的数据报文匹配的安全限流流表项;如果是,根据该安全限流流表项对所述数 据报文进行处理;否则,对待处理的数据报文进行自学习,根据自学习结果构造第一流表 项;
[0104] 具体的,灾备流表中可以预先存储有至少一条安全限流流表项;由于安全限流流 表项在灾备流表中的优先级最高,因此,首先在灾备流表中查找是否存在与当前待处理的 数据报文匹配的安全限流流表项,当找到与当前待处理的数据报文匹配的安全限流流表项 时,根据该安全限流流表项对待处理的数据报文进行处理;当找不到与当前待处理的数据 报文匹配的安全限流流表项时,再对待处理的数据报文进行自学习,根据自学习结果构造 第一流表项。
[0105] 具体的,如表3所示,安全限流流表项的匹配域中可以包含对数据报文进行限流的 目的接收设备的地址信息,动作为丢弃或者发往目的接收设备,即交换机可以选择将当前 待处理的数据报文进行丢弃,也可以选择将当前待处理的数据报文发往目的接收设备,还 可以在将当前待处理的数据报文发往目的接收设备不成功时将待处理的数据报文丢弃。
[0106] 表3含有安全限流流表项的灾备流表
[0108] S030、判断所述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项, 如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加 到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中,其中所述第一流表项 的优先级高于所述灾备流表中的默认流表项;
[0109] 其中,构造第一流表项的方法与图1所示的实施例中的方法一致,此处不再赘述。
[0110] S040、判断所述待处理的数据报文是否与添加到所述灾备流表中的所述第一流表 项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进行处理;否 贝1J,根据所述默认流表项对所述数据报文进行处理。
[0111] 本发明图6所示的实施例提供的数据处理方法,可以保证具有安全要求的特定数 据报文的安全性,解决了现有技术中,当控制器和交换机的连接断开后,对所有的数据报文 都按默认流表项进行处理时,即将数据报文从除该数据报文入端口外的所有端口转发出 去,导致对有安全要求的特定数据报文失去控制,从而降低通信安全的问题。
[0112] 由于在实际应用中,当数据报文进入交换机时,首先在交换机的内核层中查找匹 配的流表项,如果查找到相匹配的流表项,则根据该流表项对数据报文进行处理;如果没有 查找到相匹配的流表项,则将数据报文发送给用户层,并在用户层中查找匹配的流表项,并 根据查找到的相匹配的流表项对数据报文进行处理,同时将该相匹配的流表项发给内核层 进行缓存,以使交换机下次接收到与本次处理的数据报文相同的数据报文时,直接在内核 层进行处理,提高数据报文处理效率。因此,如图7所示,本发明实施例还提供了在实际应用 中的一种SDN移动自组网的数据处理方法,应用于交换机,交换机中预先存储有状态控制流 表、正常转发流表和灾备流表,所述灾备流表中预先存储有默认流表项,该方法可以包括:
[0113] S001、按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状 态;
[0114] 具体的,连接状态的检测方法与步骤S100中的方法一致,此处不再赘述。
[0115] S002、在交换机的内核层中,利用交换机与控制器的最新连接状态作为待处理的 数据报文的元数据,构造带有连接状态的第一查找Key;
[0116] 具体的,当交换机接收到数据报文后,交换机内核层会调用Key值提取函数解析数 据报文包头各个字段,然后合并最新连接状态构造第一查找Key。
[0117] S003、将该第一查找key与内核层中缓存的流表进行匹配;当在内核层中缓存的流 表中没有查找到与该第一查找key相匹配的的流表项时,将待处理的数据报文及第一查找 key发送至交换机的用户层;
[0118] S004、在交换机的用户层中,将第一查找key更新为带有当前最新连接状态的第二 查找key;
[0119] 经过步骤S003和步骤S004的处理,实现了连接状态在内核层与用户层中与查找 key的双同步与封装,即第一查找key和第二查找key中均封装有最新的连接状态,可以提高 交换机对连接状态感知的实时性与准确性,从而尽可能地减小了连接状态转换对网络通信 的影响。
[0120] S005、将该第二查找key与状态控制流表进行匹配;当第二查找key与所述状态控 制流表中的匹配域为连接状态为断开的流表项匹配时,跳转到灾备流表;
[0121] 具体的,该灾备流表可以包括安全限流流表项(如表3),也可以不包括安全限流流 表项(如表2);
[0122] 具体的,状态控制流表可以包括匹配域分别为连接状态为正常和连接状态为断开 的两条流表项,如表4。当第二查找key中封装的最新连接状态为正常时,与表4中的第二条 流表项相匹配,然后执行该第二条流表项的动作,即跳转到表5,表5为正常转发流表;
[0123] 具体的,当第二查找key中封装的最新连接状态为断开时,与表4中的第一条流表 项相匹配,然后执行该第一条流表项的动作,即跳转到上文中的灾备流表2,或者,优选的, 跳转到上文中的灾备流表3。当跳转到表3时,首先在表3中查找是否存在与当前待处理的数 据报文匹配的安全限流流表项;如果是,根据该安全限流流表项对所述数据报文进行处理; 否则,执行步骤S006。
[0124] 表4为本发明实施例在实际应用时采用的状态控制流表。
[0125] 表4状态控制流表
[0126] 优先级流表_ 0 匹配域:连接状态=断开,动作:自学习、跳转到表3或表2 J_匹配域:连接状态=正常,动作:跳转到表5_
[0127] 表5正常转发流表
[0128] 优先流表_ 0 匹配域:无(即匹配任何数据报文),动作.?数据报文发给控制器 1Q 控制器连接时下发的用于通信交互的表项_
[0129] S006、对待处理的数据报文进行自学习,根据自学习结果构造第一流表项;判断所 述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项,如果是,将所述与所述 第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加到所述灾备流表中;否 贝1J,将所述第一流表项添加到所述灾备流表中,其中所述第一流表项的优先级高于所述灾 备流表中的默认流表项;
[0130] 具体的,对数据报文进行自学习的过程与图1所示的方法实施例中的过程一致,此 处不再赘述。
[0131] 具体的,将根据自学习结果构造的第一流表项添加到表2中;或者,判断表3中已经 存在的第一流表项的匹配域是否相同,如果是,将表3中已经存在的第一流表项删除,将当 前自学习获得的第一流表项添加到表3中,否则,直接将当前自学习获得的第一流表项添加 到表3中,此时表3中存在两条自学习获得的第一流表项。
[0132] S007、判断第二查找key是否与添加到所述灾备流表中的所述第一流表项相匹配, 如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进行处理;否则,根据所述 默认流表项对所述数据报文进行处理。
[0133] 本发明实施例提供的一种SDN移动自组网的数据处理方法,应用于交换机,可以检 测并获得控制器与交换机最新连接状态;当最新连接状态为断开时,对待处理的数据报文 进行自学习,根据自学习结果构造第一流表项;判断灾备流表中是否存在与该第一流表项 的匹配域相同的流表项,如果是,将与该第一流表项的匹配域相同的流表项删除,并将该第 一流表项添加到灾备流表中;否则,将该第一流表项添加到灾备流表中;判断待处理的数据 报文是否与添加到灾备流表中的第一流表项相匹配,如果是,根据灾备流表中的第一流表 项对数据报文进行处理;否则,根据默认流表项对数据报文进行处理。因此,本发明提供的 SDN移动自组网的数据处理方法可以快速感知交换机与控制器连接故障的发生,当控制器 断开时,新来的数据报文可以不用盲目地发送给控制器处理而是直接与连接状态断开时的 灾备流表进行匹配,获得相应的处理策略,这缩短了故障恢复时间,提高了交换机的数据处 理能力和效率,从而提高了网络的可靠性和稳定性;此外,在移动自组网络拓扑结构变化导 致控制器失效时,本发明可以根据连接状态的变化及时进行流表项的学习老化,防止网络 拓扑结构变化后交换机仍使用旧的流表项,进一步提高了网络的可靠性。
[0134] 相应于图1所示的方法实施例,如图8所示,本发明还提供了一种SDN移动自组网的 数据处理装置,应用于交换机,所述交换机中预先存储有控制器下发的灾备流表,所述灾备 流表中预先存储有默认流表项,该装置可以包括:连接状态检测模块1〇〇、自学习模块200、 第一处理模块300和第二处理模块400,
[0135] 连接状态检测模块100,用于按照预设规则检测所述控制器与所述交换机的连接 状态,获得最新连接状态;
[0136] 同样需要说明的是,本发明实施例中所说的交换机可以是支持Openf low协议的 Open vSwitch(OVS)虚拟交换机,也可以是其他交换机,且本发明实施例中所说的交换机主 要应用于基于SDN的Ad Hoc网络中,当然也可以应用于其他网络中。
[0137] 具体的,控制器连接状态的类型与图1所示的方法实施例中一致,此处不再赘述。
[0138] 自学习模块200,用于当所述最新连接状态为断开时,对待处理的数据报文进行自 学习,根据自学习结果构造第一流表项;
[0139] 具体的,灾备流表为控制器预先下发给交换机的流表之一,流表中一般包含多个 流表项,流表项主要由三部分组成:匹配域、计数器、动作。OpenFlow的匹配域(OpenFlow vl.3.1)用于对数据报文的包头等字段进行匹配,动作则指导匹配到流表项的数据报文的 处理与转发。在实际应用中,待处理的数据报文先与优先级较高的流表项进行匹配,匹配不 到时再与优先级较低的流表项进行匹配。灾备流表中预先存储有默认流表项,默认流表项 的优先级最低。
[0140]第一处理模块300,用于判断所述灾备流表中是否存在与所述第一流表项的匹配 域相同的流表项,如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述 第一流表项添加到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中,其中 所述第一流表项的优先级高于所述灾备流表中的默认流表项;
[0141]第二处理模块400,用于判断所述待处理的数据报文是否与添加到所述灾备流表 中的所述第一流表项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据 报文进行处理;否则,根据所述默认流表项对所述数据报文进行处理。
[0142] 具体的,如图9所示,连接状态检测模块100可以包括:第一请求子模块101、第一判 断子模块102和状态确定子模块103,
[0143] 第一请求子模块101,用于向所述控制器发送第一 Echo请求消息;
[0144] 第一判断子模块102,用于判断是否在设定的超时时间长度内接收到所述控制器 发送的信息,其中从所述交换机接收所述控制器发送的最后一条信息的时间开始对所述设 定的超时时间长度进行计时;
[0145] 具体的,从交换机接收到控制器发送的最后一条Openflow消息的时间开始对所述 设定的超时时间长度进行计时,即从Openflow消息的最后活跃时间开始对所述设定的时间 长度进行计时;该Openflow消息可以是控制器发送给交换机的任何Openflow消息,包括针 对第一个第一Echo请求消息的第一Echo响应消息(Echo reply)。
[0146] 状态确定子模块103,用于在所述第一判断模子块获得的判断结果为否时,确定所 述控制器与所述交换机的最新连接状态为断开状态;用于在所述第一判断模子块获得的判 断结果为是时,确定所述控制器与所述交换机的最新连接状态为正常状态。
[0147] 其中,状态确定模块子103可以包括:第一状态确定子模块、第二请求子模块和第 二状态确定子模块,
[0148] 第一状态确定子模块,用于当在设定的第一超时时间长度内未接收到所述控制器 发送的消息时,确定所述控制器与所述交换机的最新连接状态为正常状态中的空闲状态; 其中从所述交换机接收所述控制器发送的最后一条消息的时间开始对所述设定的第一超 时时间长度进行计时;
[0149] 第二请求子模块,用于当确定最新连接状态为空闲状态时,向所述控制器发送第 二Echo请求消息;
[0150] 第二状态确定子模块,用于当在设定的第二超时时间长度内接收到所述控制器发 送的消息时,确定所述控制器与所述交换机的最新连接状态为正常状态中的活跃状态,其 中所述设定的第一超时时间长度和设定的第二超时时间长度的和为所述设定的超时时间 长度。
[0151] 具体的,确定设定的超时时间长度、设定的第一超时时间长度和设定的第二超时 时间长度的过程,以及确定活跃、空闲和断开这三种状态的相互转化时的条件的过程,与图 1所示的方法实施例中描述的一致,此处不再赘述。
[0152] 同样较佳的,在图9所示的数据处理装置的基础上,该装置还可以包括:第一调整 模块和第二调整模块,
[0153] 第一调整模块,用于当所述连接状态为活跃状态时,根据最近一次发送第一Echo 请求消息的时间,及接收所述控制器针对该第一Echo请求消息发送的第一Echo响应消息的 时间,对下一次发送第一Echo请求消息的时间间隔、设定的第一超时时间长度和设定的第 二超时时间长度进行调整;
[0154] 第二调整模块,用于当所述连接状态为空闲状态时,根据发送第二Echo请求消息 的时间,及接收所述控制器针对该第二Echo请求消息发送的第二Echo响应消息的时间,对 发送第一 Echo请求消息的时间间隔、设定的第一超时时间长度进行调整。
[0155] 在传统解决方案中,交换机通过周期性地发送Echo消息进行连接状态检测,该周 期较长(一般为5s)且固定不变,因此,不能根据链路状况(如链路拥塞影响echo消息的往返 时间)动态调整echo消息的发送间隔,也不能及时检测到控制器连接失效的情况。而本发明 提供的实施例对连接状态进行动态、实时的检测,可以快速感知交换机与控制器连接故障 的发生,为缩短控制器失效时的故障恢复时间提供了有力帮助,提高了网络的可靠性。 [0156]具体的,第一处理模块300可以包括:解析子模块和流表项构造子模块,
[0157] 解析子模块,用于对待处理的数据报文的包头进行解析,提取数据报文包头中的 信息;
[0158] 流表项构造子模块,用于根据提取的数据报文包头中的信息构造第一流表项。
[0159] 具体的,第一流表项的目的地址匹配字段可以是数据报文的源mac地址,行为的转 发出口就是数据报文的入端口,即进行自学习的数据报文可以为反向数据报文。
[0160]如图10所示,在图8所示的数据处理装置的基础上,本发明还提供了另一种SDN移 动自组网的数据处理装置,所述交换机中还预先存储有控制器下发的正常转发流表,该装 置还可以包括:正常处理模块500,
[0161]正常处理模块500,用于在所述交换机中还预先存储有控制器下发的正常转发流 表的情况下,当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行匹 配,获得相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。
[0162] 相应于图6所示的方法实施例,如图11所示,本发明实施例还提供了另一种SDN移 动自组网的数据处理装置,应用于交换机,所述交换机中预先存储有控制器下发的灾备流 表,所述灾备流表中预先存储有默认流表项和安全限流流表项,其中,该安全限流流表项的 优先级最高,该装置可以包括:第一连接状态检测模块〇1〇、第一查找模块020、第三处理模 块030和第四处理模块040,
[0163] 第一连接状态检测模块010,用于按照预设规则检测所述控制器与所述交换机的 连接状态,获得最新连接状态;
[0164] 具体的,连接状态检测方法与图1所示的实施例中的方法一致,此处不再赘述。
[0165] 第一查找模块020,用于当所述最新连接状态为断开时,在存储的所述灾备流表中 查找是否存在与当前待处理的数据报文匹配的安全限流流表项;如果是,根据该安全限流 流表项对所述数据报文进行处理;否则,对待处理的数据报文进行自学习,根据自学习结果 构造第一流表项;
[0166] 具体的,灾备流表中可以预先存储有至少一条安全限流流表项;由于安全限流流 表项在灾备流表中的优先级最高,因此,首先在灾备流表中查找是否存在与当前待处理的 数据报文匹配的安全限流流表项,当找到与当前待处理的数据报文匹配的安全限流流表项 时,根据该安全限流流表项对待处理的数据报文进行处理;当找不到与当前待处理的数据 报文匹配的安全限流流表项时,再对待处理的数据报文进行自学习,根据自学习结果构造 第一流表项。
[0167] 第三处理模块030,用于判断所述灾备流表中是否存在与所述第一流表项的匹配 域相同的流表项,如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述 第一流表项添加到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中,其中 所述第一流表项的优先级高于所述灾备流表中的默认流表项;
[0168] 其中,构造第一流表项的方法与图1所示的实施例中的方法一致,此处不再赘述。
[0169] 第四处理模块040,用于判断所述待处理的数据报文是否与添加到所述灾备流表 中的所述第一流表项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据 报文进行处理;否则,根据所述默认流表项对所述数据报文进行处理。
[0170]本发明图11提供的数据处理装置,可以保证具有安全要求的特定数据报文的安全 性,解决了现有技术中,当控制器和交换机的连接断开后,对所有的数据报文都按默认流表 项进行处理时,即将数据报文从除该数据报文入端口外的所有端口转发出去,导致对有安 全要求的特定数据报文失去控制,从而降低通信安全的问题。
[0171]相应于图7所示的实际应用中的一种SDN移动自组网的数据处理方法,如图12所 示,本发明实施例还提供了一种实际应用中的一种SDN移动自组网的数据处理装置,应用于 交换机,交换机中预先存储有状态控制流表、正常转发流表和灾备流表,所述灾备流表中预 先存储有默认流表项,该装置可以包括:状态处理模块001、第一查找key构造模块002、第一 流表匹配模块003、第二查找key构造模块004、第二流表匹配模块005、第一数据处理模块 006和第二数据处理模块007,
[0172]状态处理模块001,用于按照预设规则检测所述控制器与所述交换机的连接状态, 获得最新连接状态;
[0173] 第一查找key构造模块002,用于在交换机的内核层中,利用交换机与控制器的最 新连接状态作为待处理的数据报文的元数据,构造带有连接状态的第一查找Key;
[0174] 第一流表匹配模块003,用于将该第一查找key与内核层中缓存的流表进行匹配; 当在内核层中缓存的流表中没有查找到与该第一查找key相匹配的的流表项时,将待处理 的数据报文及第一查找key发送至交换机的用户层;
[0175] 第二查找key构造模块004,用于在交换机的用户层中,将第一查找key更新为带有 当前最新连接状态的第二查找key;
[0176] 第二流表匹配模块005,用于将该第二查找key与状态控制流表进行匹配;当第二 查找key与所述状态控制流表中的匹配域为连接状态为断开的流表项匹配时,跳转到灾备 流表;
[0177] 具体的,该灾备流表可以包括安全限流流表项,也可以不包括安全限流流表项。 [0178]第一数据处理模块006,用于对待处理的数据报文进行自学习,根据自学习结果构 造第一流表项;判断所述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项, 如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加 到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中,其中所述第一流表项 的优先级高于所述灾备流表中的默认流表项;
[0179]第二数据处理模块007,用于判断第二查找key是否与添加到所述灾备流表中的所 述第一流表项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进 行处理;否则,根据所述默认流表项对所述数据报文进行处理。
[0180]本发明实施例提供的一种SDN移动自组网的数据处理装置,应用于交换机,可以检 测并获得控制器与交换机最新连接状态;当最新连接状态为断开时,对待处理的数据报文 进行自学习,根据自学习结果构造第一流表项;判断灾备流表中是否存在与该第一流表项 的匹配域相同的流表项,如果是,将与该第一流表项的匹配域相同的流表项删除,并将该第 一流表项添加到灾备流表中;否则,将该第一流表项添加到灾备流表中;判断待处理的数据 报文是否与添加到灾备流表中的第一流表项相匹配,如果是,根据灾备流表中的第一流表 项对数据报文进行处理;否则,根据默认流表项对数据报文进行处理。因此,本发明提供的 SDN移动自组网的数据处理装置可以快速感知交换机与控制器连接故障的发生,当控制器 断开时,新来的数据报文可以不用盲目地发送给控制器处理而是直接与连接状态断开时的 灾备流表进行匹配,获得相应的处理策略,这缩短了故障恢复时间,提高了交换机的数据处 理能力和效率,从而提高了网络的可靠性和稳定性;此外,在移动自组网络拓扑结构变化导 致控制器失效时,本发明可以根据连接状态的变化及时进行流表项的学习老化,防止网络 拓扑结构变化后交换机仍使用旧的流表项,进一步提高了网络的可靠性。
[0181] 对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关 之处参见方法实施例的部分说明即可。
[0182] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵盖 非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要 素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在 包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0183] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实 施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例 的部分说明即可。
[0184] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
【主权项】
1. 一种SDN移动自组网的数据处理方法,其特征在于,应用于交换机,所述交换机中预 先存储有控制器下发的灾备流表,所述灾备流表中预先存储有默认流表项,所述方法包括 如下步骤: 按照预设规则检测所述控制器与所述交换机的连接状态,获得最新连接状态; 当所述最新连接状态为断开时,对待处理的数据报文进行自学习,根据自学习结果构 造第一流表项; 判断所述灾备流表中是否存在与所述第一流表项的匹配域相同的流表项,如果是,将 所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一流表项添加到所述灾备 流表中;否则,将所述第一流表项添加到所述灾备流表中;其中,所述第一流表项的优先级 高于所述灾备流表中的默认流表项; 判断所述待处理的数据报文是否与添加到所述灾备流表中的所述第一流表项相匹配, 如果是,根据所述灾备流表中的所述第一流表项对所述数据报文进行处理;否则,根据所述 默认流表项对所述数据报文进行处理。2. 根据权利要求1所述的方法,其特征在于,所述交换机中还预先存储有控制器下发的 正常转发流表,所述方法还包括: 当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行匹配,获得 相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。3. 根据权利要求1所述的方法,其特征在于,所述灾备流表还包括:安全限流流表项,且 所述安全限流流表项的优先级最高; 所述安全限流流表项的匹配域中包含对数据报文进行限流的目的接收设备的地址信 息。4. 根据权利要求1-3任一项所述的方法,其特征在于,所述对待处理的数据报文进行自 学习,根据自学习结果构造第一流表项包括: 对待处理的数据报文的包头进行解析,提取数据报文包头中的信息; 根据提取的数据报文包头中的信息构造第一流表项。5. 根据权利要求1所述的方法,其特征在于,所述按照预设规则检测所述控制器与所述 交换机的连接状态包括: 向所述控制器发送第一 Echo请求消息; 判断所述交换机是否在设定的超时时间长度内接收到所述控制器发送的消息,其中从 所述交换机接收所述控制器发送的最后一条消息的时间开始对所述设定的超时时间长度 进行计时; 如果否,确定所述控制器与所述交换机的最新连接状态为断开状态,如果是,确定所述 控制器与所述交换机的最新连接状态为正常状态。6. 根据权利要求5所述的方法,其特征在于,所述确定所述控制器与所述交换机的最新 连接状态为正常状态包括: 当在设定的第一超时时间长度内未接收到所述控制器发送的消息时,确定所述控制器 与所述交换机的最新连接状态为正常状态中的空闲状态;其中从所述交换机接收所述控制 器发送的最后一条消息的时间开始对所述设定的第一超时时间长度进行计时; 当确定最新连接状态为空闲状态时,向所述控制器发送第二Echo请求消息; 当在设定的第二超时时间长度内接收到所述控制器发送的消息时,确定所述控制器与 所述交换机的最新连接状态为正常状态中的活跃状态,其中所述设定的第一超时时间长度 和设定的第二超时时间长度的和为所述设定的超时时间长度。7. 根据权利要求6所述的方法,其特征在于,当确定所述控制器与所述交换机的最新连 接状态为正常状态时,所述方法还包括: 当所述连接状态为活跃状态时,根据最近一次发送第一Echo请求消息的时间,及接收 所述控制器针对该第一Echo请求消息发送的第一Echo响应消息的时间,对发送第一Echo请 求消息的时间间隔、设定的第一超时时间长度和设定的第二超时时间长度进行调整; 当所述连接状态为空闲状态时,根据发送第二Echo请求消息的时间,及接收所述控制 器针对该第二Echo请求消息发送的第二Echo响应消息的时间,对发送第一Echo请求消息的 时间间隔、设定的第一超时时间长度进行调整。8. -种SDN移动自组网的数据处理装置,其特征在于,应用于交换机,所述交换机中预 先存储有控制器下发的灾备流表,所述灾备流表中预先存储有默认流表项,所述装置包括: 连接状态检测模块、自学习模块、第一处理模块和第二处理模块, 所述连接状态检测模块,用于按照预设规则检测所述控制器与所述交换机的连接状 态,获得最新连接状态; 所述自学习模块,用于当所述最新连接状态为断开时,对待处理的数据报文进行自学 习,根据自学习结果构造第一流表项; 所述第一处理模块,用于判断所述灾备流表中是否存在与所述第一流表项的匹配域相 同的流表项,如果是,将所述与所述第一流表项的匹配域相同的流表项删除,并将所述第一 流表项添加到所述灾备流表中;否则,将所述第一流表项添加到所述灾备流表中;其中,所 述第一流表项的优先级高于所述灾备流表中的默认流表项; 所述第二处理模块,用于判断所述待处理的数据报文是否与添加到所述灾备流表中的 所述第一流表项相匹配,如果是,根据所述灾备流表中的所述第一流表项对所述数据报文 进行处理;否则,根据所述默认流表项对所述数据报文进行处理。9. 根据权利要求8所述的装置,其特征在于,还包括:正常处理模块, 所述正常处理模块,用于在所述交换机中还预先存储有控制器下发的正常转发流表的 情况下,当所述最新连接状态为正常时,将所述数据报文与所述正常转发流表进行匹配,获 得相匹配的第二流表项,根据所述第二流表项对所述数据报文进行处理。10. 根据权利要求8所述的装置,其特征在于,所述灾备流表还包括:安全限流流表项, 且所述安全限流流表项的优先级最高; 所述安全限流流表项的匹配域中包含对数据报文进行限流的目的接收设备的地址信 息。
【文档编号】H04L12/721GK105959217SQ201610390634
【公开日】2016年9月21日
【申请日】2016年6月6日
【发明人】黄韬, 杨帆, 刘江, 晏思宇, 妥艳君, 李吉良, 刘玉贞, 张学敏, 张文志, 候乐, 刘韵洁
【申请人】北京邮电大学, 中国电子科技集团公司第五十四研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1