网络事务控制方法及执行方法及网络控制器及转发设备的制作方法

文档序号:8006072阅读:312来源:国知局
网络事务控制方法及执行方法及网络控制器及转发设备的制作方法
【专利摘要】本发明涉及通信领域,公开了一种网络事务控制方法及执行方法及网络控制器及转发设备。网络事务控制方法包括:向至少两个转发设备发送包含至少一个操作指令的操作集合包;各操作集合包分别包含原子操作标识;接收各转发设备反馈的执行状态消息,执行状态消息包含:原子操作标识、以及各转发设备对各操作指令的操作结果;确定各转发设备对各操作指令的操作结果是否均为:已执行成功,如果是,则:分别向各转发设备发送包含原子操作标识的生效控制指令,以指示各转发设备的操作生效,各操作分别是各转发设备执行原子操作标识对应的各操作指令而实现的操作。应用该技术方案可在网络控制器控制转发设备执行网络事务时,提高网络事务执行的原子性。
【专利说明】网络事务控制方法及执行方法及网络控制器及转发设备
【技术领域】
[0001]本发明涉及通信领域,特别涉及一种网络事务的网络事务控制方法及执行方法及网络控制器及转发设备。
【背景技术】
[0002]传统转发设备将软件功能(控制功能)与硬件功能(转发功能)紧密耦合在一个封闭系统中,使转发设备的功能单一且不利于扩展。随着网络应用的发展,越来越多的业务需要多个转发设备的配合以提高业务效率、满足业务需求。因此出现了新的网络架构:控制转发分离架构。
[0003]控制转发分离架构主要由三层结构构成,分别是应用层、控制层、转发层。应用层包含各种事务的应用程序,用户通过操作该应用程序向控制层下发业务操作命令,以执行相应的事务。控制层主要用于根据下发的业务操作命令,向转发层中单个或多个转发设备下发一系列执行命令。控制层主要由网络控制器实现,网络控制器可以单个设备也可以是由多少设备组成的控制系统。转发层中的单个或多个转发设备在收到执行命令后,根据执行命令执行相应的操作,以实现数据信息的转发。
[0004]现有技术的网络事务控制方法具体如下:网络控制器通过向各转发设备下发Barrier命令,各转发设备根据Barrier命令规定的顺序执行并生效网络事务对应的各操作指令。
[0005]在进行本发明研究过程中,发明人发现现有技术至少存在如下问题:
[0006]按照现有技术的网络事务控制方法无法保证整个网络事务的原子性。事务的原子性为一个网络事务要么完全执行,要么完全不执行。如果某一转发设备中任一命令执行失败,转发设备并无相应的操作,则整个执行过程出现局部缺陷,无法保证事务的原子性。

【发明内容】

[0007]本发明实施例第一目的在于提供一种网络事务控制方法,应用该技术方案可以在网络控制器控制转发设备执行网络事务时,提高网络事务执行的原子性。
[0008]本发明实施例第二目的在于提供一种网络事务执行方法,应用该技术方案可以在网络控制器控制转发设备执行网络事务时,提高网络事务执行的原子性。
[0009]本发明实施例第三目的在于提供一种网络控制器,应用该技术方案可以在网络控制器控制转发设备执行网络事务时,提高网络事务执行的原子性。
[0010]本发明实施例第四目的在于提供一种转发设备,应用该技术方案可以在网络控制器控制转发设备执行网络事务时,提高网络事务执行的原子性。
[0011]第一方面,本发明实施例提供的一种网络事务控制方法,所述方法应用于控制和转发分离的系统中,包括:
[0012]网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包;[0013]各所述操作集合包分别包含:用于唯一标识所述网络事务的原子操作标识;
[0014]所述网络控制器接收各所述转发设备反馈的执行状态消息,所述执行状态消息包含:所述原子操作标识、以及各所述转发设备对各所述操作指令的操作结果;
[0015]所述网络控制器根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果是否均为:已执行成功,如果是,则:
[0016]所述网络控制器分别向各所述转发设备发送包含所述原子操作标识的生效控制指令,以指示各所述转发设备的操作生效,
[0017]各所述操作分别是:各所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作。
[0018]结合第一方面,在第一种实现方式下,还包括:
[0019]如果所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,则:
[0020]所述网络控制器分别向各所述转发设备发送包含所述原子操作标识的回滚控制指令,以指示各所述转发设备:撤销各所述转发设备中的所述操作,使各所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0021]结合第一方面,在第一种实现方式下,在所述网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之前,所述方法还包括:
[0022]所述网络控制器从业务系统接收所述网络事务;
[0023]所述网络控制器将所述网络事务转换为所述操作集合包。
[0024]结合第一方面,在第一种实现方式下,所述操作集合包还包含:执行时长上限,
[0025]以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
[0026]结合第一方面,在第一种实现方式下,在网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之后,还包括:
[0027]启动定时器;
[0028]所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,具体是:
[0029]在所述定时器超时时,如果未收到某一所述转发设备发来的执行状态消息,则确定未反馈执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
[0030]结合第一方面,在第一种实现方式下,还包括
[0031]所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,具体是:
[0032]所述网络控制器根据所述执行状态消息中携带的执行失败状态消息,确定反馈所述执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
[0033]第二方面,本发明实施例提供的一种网络事务执行方法,所述方法应用于控制和转发分离的系统中,包括:
[0034]转发设备接收网络控制器发送的操作集合包,所述操作集合包包含:原子操作标识、以及至少一操作指令,所述原子操作标识用于唯一标识一网络事务,所述网络事务对应至少一所述操作集合包;[0035]所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态消息,所述执行状态消息包含:所述原子操作标识、以及所述转发设备对所述操作指令的操作结果;
[0036]所述转发设备接收所述网络控制器发送的控制指令,所述控制指令包含:所述原子操作标识;
[0037]如果所述控制指令为:生效控制指令,则:
[0038]生效所述转发设备中的操作,所述操作是:所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作。
[0039]结合第二方面,在第一种实现方式下,如果所述控制指令为:回滚控制指令,则:
[0040]撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0041]结合第二方面,在第一种实现方式下,所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态信息,具体包括:
[0042]所述转发设备顺序执行各所述操作指令,如果任一所述操作指令执行失败,则:
[0043]撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态,并向所述网络控制器反馈的执行状态信息包含的所述操作结果为:执行失败。
[0044]结合第二方面,在第一种实现方式下,所述操作集合包还包含:执行时长上限;
[0045]相应地,所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态信息,具体包括:
[0046]所述转发设备执行各所述操作指令,根据所述各所述操作指令的执行结果,在所述执行时长上限内向所述网络控制器反馈所述执行状态消息。
[0047]第三方面,本发明实施例提供的一种网络控制器,所述网络控制器应用于控制和转发分离的系统中,包括:
[0048]收发单元,用于与各应用于所述控制和转发分离系统中的转发设备通信,所述通信包括:
[0049]根据网络事务,向至少两个所述转发设备发送包含至少一个操作指令的操作集合包,各所述操作集合包分别包含:用于唯一标识所述网络事务的原子操作标识,
[0050]以及当操作结果确定单元根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果均为:已执行成功时,还分别向各所述转发设备发送包含所述原子操作标识的生效控制指令,以指示各所述转发设备的操作生效,各所述操作分别是:各所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作,
[0051]以及接收各所述转发设备反馈的执行状态消息,所述执行状态消息包含:所述原子操作标识、以及各所述转发设备对各所述操作指令的操作结果;
[0052]所述操作结果确定单元,用于根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果。
[0053]结合第三方面,在第一种实现方式下,所述收发单元,还用于当所述操作结果确定单元根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败时,还分别向各所述转发设备发送包含所述原子操作标识的回滚控制指令,以指示各所述转发设备:撤销各所述转发设备中的所述操作,使各所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0054]结合第三方面,在第一种实现方式下,还包括:
[0055]定时单元,所述定时单元用于在所述收发单元发送所述操作集合包后启动定时器;
[0056]所述操作结果确定单元具体用于:在所述定时单元启动的定时器超时时,如果所述收发单元未收到某一所述转发设备发来的执行状态消息,则确定未反馈执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
[0057]结合第三方面,在第一种实现方式下,所述操作结果确定单元具体用于:根据所述执行状态消息中携带的执行失败状态消息,确定反馈所述执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
[0058]结合第三方面,在第一种实现方式下,还包括:
[0059]所述操作集合包还包含:执行时长上限,
[0060]以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
[0061]结合第三方面,在第一种实现方式下,还包括:
[0062]事务转换单元,用于在所述收发单元与各转发设备通信之前,从业务系统接收所述网络事务,将所述网络事务转换为所述操作集合包。
[0063]第四方面,本发明实施例提供的一种转发设备,所述转发设备应用于控制和转发分离的系统中,包括:
[0064]收发单元,用于与应用于所述控制和转发分离系统中的网络控制器通信,
[0065]所述通信包括:接收所述网络控制器发送的操作集合包、以及控制指令,以及向所述网络控制器发送执行状态消息,
[0066]其中,所述操作集合包包含:一原子操作标识、以及至少一操作指令,所述原子操作标识用于唯一标识一网络事务,所述网络事务对应至少一所述操作集合包,
[0067]所述控制指令包含:所述原子操作标识,
[0068]所述执行状态消息包含:所述原子操作标识、以及所述转发设备对所述操作指令的操作结果;
[0069]执行单元,用于执行所述操作指令;
[0070]状态消息确定单元,用于根据所述执行单元的执行结果,确定所述执行状态消息,
[0071]操作生效控制单元,用于执行操作生效控制,包括:
[0072]当收到的所述控制指令为:生效控制指令时,用于生效所述转发设备中的设备操作,所述操作是:执行单元执行所述原子操作标识对应的各所述操作指令而实现的操作。
[0073]结合第四方面,在第一种实现方式下,所述操作生效控制单元用于执行操作生效控制,还包括:当收到的所述控制指令为:回滚控制指令时,撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0074]结合第四方面,在第一种实现方式下,所述状态消息确定单元具体用于:在所述执行单元顺序执行各所述操作指令的过程中,如果任一所述操作指令执行失败,则确定所述执行状态消息中的所述操作结果为:执行失败;相应地,所述操作生效控制单元用于执行设备操作生效控制,还包括:[0075]当所述状态消息确定单元确定所述执行状态消息中的操作结果为:执行失败时,撤销所述转发设备中的操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0076]结合第四方面,在第一种实现方式下,还包括:
[0077]所述操作集合包还包含:执行时长上限;
[0078]所述状态消息确定单元具体用于:根据所述执行单元的执行结果,在所述执行时长上限内向所述网络控制器反馈所述执行状态消息。
[0079]由上可见,应用本实施例技术方案,在控制转发分离架构下的系统中,当某一事务需要执行时,网络控制器根据网络事务,向至少两个转发设备发送操作集合包,各操作集合包分别包含:一原子操作标识、以及至少一个操作指令。该原子操作标识用于唯一标识该需执行的网络事务。如果各转发设备分别成功执行该接收的操作集合包中的操作指令,且该操作指令对应的操作均生效,即能完成该需执行的网络事务。在各转发设备执行操作指令时,各转发设备根据该操作指令的操作结果,向网络控制器反馈执行状态消息,该执行状态消息包含该原子操作标识、以及转发设备对该操作指令的操作结果。如果各转发设备反馈的各操作结果均为:已执行成功,则网络控制器向分别各转发设备发送包含所述原子操作标识的生效控制指令,以指示各转发设备生效各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,以保证网络事务执行的原子性,即该网络事务要么执行并生效,要么不生效。
[0080]进一步,如果任一转发设备对任一操作指令的操作结果为:执行失败,则网络控制器分别向各转发设备发送包含所述原子操作标识的回滚控制指令,指示各转发设备:撤销各转发设备中的操作,该操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作,使各转发设备恢复至执行该操作集合包内的各操作指令前的状态,避免设备资源被占用。
[0081]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,网络控制器与各转发设备进行通信,监视该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、或撤销转发设备中的操作,使转发设备恢复至该各操作指令执行前的状态,保证了网络事务的原子性。
【专利附图】

【附图说明】
[0082]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0083]图1为本发明实施例1提供的一种网络事务控制方法的流程示意图;
[0084]图2为本发明实施例2提供的网络事务控制方法的另一种可选流程示意图;
[0085]图3为本发明实施例2提供的该控制方法应用场景的场景示意图;
[0086]图4为本发明实施例3提供的一种网络事务执行方法的流程示意图;[0087]图5为本发明实施例4提供的网络事务执行方法的另一种可选流程示意图;
[0088]图6为本发明实施例5提供的网络事务执行方法的另一种可选流程示意图;
[0089]图7为本发明实施例6提供的一种网络控制器的结构示意图;
[0090]图8为本发明实施例6提供的网络控制器的另一种可选结构示意图;
[0091]图9为本发明实施例7提供的一种转发设备的结构示意图;
[0092]图10为本发明实施例7提供的转发设备的另一种可选结构示意图;
[0093]图11为本发明实施例8提供的一种网络控制器的结构示意图;
[0094]图12为本发明实施例9提供的一种转发设备的结构示意图。
【具体实施方式】
[0095]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0096]实施例1:
[0097]参见图1,本实施例提供了一种网络事务控制方法,应用于控制转发分离架构下的系统,该架构下的系统可以为SDN(sortware defined network,软件定义网络)或者NFV(network function virtualization,网络功能虚拟化)架构下的系统。该网络控制器可以是一个网络控制器或由多个控制设备组成的控制器系统。该网络控制器可以控制至少两个转发设备。
[0098]该方法主要步骤如下:
[0099]步骤101:向至少两个转发设备发送操作集合包。
[0100]在本实施例中,网络控制器根据需执行的网络事务,向至少两个转发设备发送操作集合包。该操作集合包包含:一原子操作标识、以及至少一条操作指令。该原子操作标识用于唯一标识该网络事务,以确保该网络事务执行的原子性。
[0101]举例来说,网络控制器在向至少两个转发设备发送操作集合包之前,可以从上层业务系统接收网络事务,并将该网络事务转换为该操作集合包。如,网络控制器在业务系统中接收一网络事务,该网络事务为创建虚拟网络,则网络控制器根据设备资源信息、该网络事务的实施流程、该网络事务的事务信息等信息,自动生成一个或多个该操作集合包,以供一个或多个转发设备执行。
[0102]网络事务可以由一个或多个转发设备配合完成。网络控制器根据网络事务的需要或自身对该事务的配置,确定该事务所需要的各转发设备、以及各转发设备需要执行的各操作指令。在确定各转发设备及相应的各操作指令后,网络控制器将该原子操作标识与操作指令封装成操作集合包。由于网络事务可以由多个转发设备配合完成,故一个网络事务对应有至少一个操作集合包,所有的操作集合包均包含用于唯一标识该网络事务的原子操作标识。网络事务的原子性表现为各转发设备执行该网络事务对应的操作指令时,要么各转发设备对各操作指令均执行成功,要么各转发设备均不执行。
[0103]各转发设备收到操作集合包之后,执行相应的各操作指令。转发设备对已执行成功的各操作指令对应的操作设置为等待状态,待转发设备收到生效控制指令时,转发设备才使该已执行成功的各操作指令对应的操作生效。
[0104]在本实施例中,该原子操作标识可以为序列号或编号。
[0105]在本实施例中,该转发设备可以为路由器、交换机、或具有转发功能的网络设备
坐寸ο
[0106]进一步的,举例来说,在本实施例中,转发设备还可以在下发的操作集合包中进一步包含:执行时长上限,以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。这样,在转发设备暂时无法执行原子操作的时候,只要在执行时长上限的时间允许范围内,它可以通过多次执行的方式执行操作指令,以提高执行成功的几率。如果在执行时长上限的时间内,转发设备一次或者通过多次执行的方式对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行成功的执行状态消息。如果在执行时长上限的时间内,转发设备仍然无法对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行失败的执行状态消息。
[0107]步骤102:接收各转发设备反馈的执行状态消息。
[0108]在本实施例中,转发设备根据各操作指令的操作结果,向网络控制器反馈执行状态消息。该执行状态消息包含:该原子操作标识、以及各转发设备对各操作指令集合的操作结果。
[0109]步骤103:判定各执行状态消息中各转发设备对各操作指令的操作结果是否均为:已执行成功,如果是,则执行步骤104。
[0110]举例来说,在本步骤中,如果任一转发设备对任一操作指令的操作结果为:执行失败,则可以结束或者按照实施例的示意处理。而不执行步骤104,即不使各转发设备中的操作生效,从而确保只有全部转发设备对全部操作指令的操作结果均为成功才使各转发设备的操作生效。
[0111]举例来说,在本步骤中,网络控制器还可以采用以下的技术方案确定任一所述转发设备对任一所述操作指令的操作结果是否为:执行失败:具体如下:
[0112]在网络控制器根据网络事务,向转发设备发送操作集合包之后,网络控制器启动定时器;网络控制器在定时器超时时,如果未收到某一转发设备发来的执行状态消息,则确定该未反馈执行状态消息的所述转发设备对操作指令的操作结果为:执行失败。这样即使由于转发设备发送故障而未能发出执行状态消息的情况下,网络控制器仍然能确定该网络设备对操作指令的操作结果,增加对网络控制的鲁棒性以及可控性。
[0113]此处的定时器的定时时长可以用用户根据网络情况设定,也可以由系统根据网络当前自适应设定。
[0114]再举例来说,在本步骤中,网络控制器还可以采用以下的技术方案确定任一所述转发设备对任一所述操作指令的操作结果是否为:执行失败:具体如下:
[0115]操作结果确定单元根据执行状态消息中携带的执行失败状态消息,确定反馈执行状态消息的转发设备对操作指令的操作结果为:执行失败。
[0116]步骤104:分别向各转发设备发送生效控制指令。
[0117]在本实施例中,如果各转发设备对各操作指令的操作结果均为:已执行成功,则向各转发设备发送包含该原子操作标识的生效控制指令,以指示各转发设备:生效各转发设备中的操作。[0118]该操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作。仅当网络事务对应的各操作集合包被各转发设备成功执行,并且各转发设备的操作生效时,该网络事务才得以被执行,保证了网络事务的原子性。
[0119]由上可见,应用本实施例技术方案,在控制转发分离架构下的系统中,当某一事务需要执行时,网络控制器根据网络事务,向至少两个转发设备发送操作集合包,各操作集合包分别包含:一原子操作标识、以及至少一个操作指令。该原子操作标识用于唯一标识该需执行的网络事务。如果各转发设备分别成功执行该接收的操作集合包中的操作指令,且该操作指令对应的操作均生效,即能完成该需执行的网络事务。网络控制器接收转发设备反馈执行状态消息,该执行状态消息包含该原子操作标识、以及转发设备对该操作指令的操作结果。如果各转发设备反馈的各操作结果均为:已执行成功,则网络控制器向分别各转发设备发送包含该原子操作标识的生效控制指令,以指示各转发设备生效各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,以保证网络事务执行的原子性,即该网络事务要么被完整执行并生效,要么完全不生效。
[0120]实施例2:
[0121]图2为本发明的另一种可选流程示意图,参见图2,该方法与实施例1所不同之处主要在于:当在步骤103中,如果判定结果为否,则说明任一转发设备对任一操作指令的操作结果为:执行失败,则还可以执行步骤201。
[0122]步骤201:分别向各转发设备发送回滚控制指令。
[0123]网络控制器还可以向各转发设备发送包含该原子操作标识的回滚控制指令,以指示各转发设备:撤销各转发设备中的操作,各操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作,使各转发设备恢复至执行该操作包内的各操作指令前的状态。
[0124]举例来说,在本实施例中,如果任一转发设备对操作指令的操作结果为:执行失败,可以立刻撤销该转发设备中的操作,也可以不立刻撤销该转发设备中的操作,而是在预定的次数内对该执行失败的操作指令进行再次执行,直到该操作指令成功执行。
[0125]为便于理解,下面以一个应用场景进行说明。参见图3,图3的系统由一个网络控制器Cl以及两个转发设备S1、S2组成的应用场景图,S1、S2分别为交换机。当需要执行的网络事务为:创建两条流表,该网络事务需要S1、S2配合执行,则网络控制器Cl根据该网络事务为S1、S2分别创建操作集合包。在本场景下,该操作集合包为流表创建信息,该流表创建信息包括:至少一条操作指令,该操作集合包包含的原子操作标识为:一串序列号。
[0126]转发设备S1、S2分别在收到流表创建信息后,执行相应的操作指令,该操作指令对应的操作为:创建流表。流表创建成功后,并不使用,而是将包含操作结果的执行状态消息反馈给网络控制器Cl。当网络控制器Cl确认S1、S2均创建成功流表后,即向S1、S2发送生效控制指令,以指示S1、S2使用该创建成功的流表,即生效各转发设备的操作。
[0127]如果在流表创建过程中,SI或S2中的一个创建流表失败,则创建流表失败的交换机(假设是Si)向网络控制器Cl反馈包含执行失败的执行状态消息,该消息携带该序列号。网络控制器根据反馈的消息以及序列号,确定该序列号对应的网络事务,向S1、S2发送回滚控制指令,以指示S1、S2将回滚控制指令中序列号对应的流表信息全部删除,即S1、S2恢复到创建流表前的状态。[0128]由上可见,本实施例除了可以产生实施例的有益效果外,还进一步可以取得以下有益效果:
[0129]如果任一转发设备对任一操作指令的操作结果为:执行失败,则网络控制器分别向各转发设备发送包含所述原子操作标识的回滚控制指令,指示各转发设备:撤销各转发设备中的操作,该操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作,使各转发设备恢复至执行该操作集合包内的各操作指令前的状态,避免设备资源被占用
[0130]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,网络控制器与各转发设备进行通信,监视该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、或撤销转发设备中的操作,使转发设备恢复至该各操作指令执行前的状态,保证了网络事务的原子性。
[0131]实施例3
[0132]参见图4,本实施例提供了一种网络事务执行方法,应用于控制转发分离架构系统中的路由器、交换机、或具有转发功能的网络设备等转发设备。该架构下的系统可以为SDN或者NFV架构下的系统。
[0133]该方法主要步骤如下:
[0134]步骤401:接收网络控制器发送的操作集合包。
[0135]在本实施例中,网络控制器根据需执行的事务,向至少两个转发设备发送操作集合包。该操作集合包包含:一原子操作标识、至少一操作指令,该原子操作标识用于唯一标识一网络事务,该网络事务对应至少一操作集合包。
[0136]该网络事务可以由一个或多个转发设备配合完成。网络控制器根据网络事务的需要或自身对该事务的配置,确定该网络事务需要的各转发设备、以及各转发设备需要执行的各操作指令。
[0137]在本实施例中,该原子操作标识可以为序列号或自定义编号。
[0138]步骤402:执行操作集合包内的各操作指令。
[0139]步骤403:根据对操作指令的操作结果,向网络控制器反馈执行状态消息。
[0140]在本实施例中,反馈的执行状态消息包包含该原子操作标识、以及转发设备对操作指令的操作结果。
[0141]在本实施例中,该执行状态信息可以包含每一条操作指令的操作结果、或者为该操作集合包的总操作结果。如果在执行过程中有任一操作指令执行失败,则确定执行状态信息中的总操作结果为:执行失败;如果所有的操作指令都执行成功,则确定执行状态信息中的总操作结果为:执行成功。
[0142]举例来说,在本实施中,还可以在操作集合包含:执行时长上限。这样,当转发设备接收到操作集合包后,转发设备执行操作集合包内的各操作指令,根据所述各操作指令的执行结果,在执行时长上限内向网络控制器反馈执行状态消息。这样,在网络设备暂时无法执行原子操作的时候,只要在执行时长上限的时间允许范围内,它可以通过多次执行的方式执行操作指令,以提高执行成功的几率。[0143]如果在执行时长上限的时间内,转发设备一次或者通过多次执行的方式对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行成功的执行状态消息。如果在执行时长上限的时间内,转发设备仍然无法对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行失败的执行状态消息。
[0144]步骤404:接收网络控制器发送的控制指令。
[0145]在本实施例中,网络控制器根据原子操作标识确定该网络事务、以及需反馈执行状态消息的各转发设备,根据各转发设备反馈的执行状态消息,分别发送包含该原子操作标识的控制指令。当各转发设备反馈的执行状态消息中操作结果均为:已执行成功,则发送生效控制指令。
[0146]步骤405:判定接收的控制指令是否为:生效控制指令,如果是,则执行步骤406。
[0147]在本步骤中,如果接收的控制指令不为:生效控制指令,则可以按照现有技术执行,或者按照实施例4示意的实施方式执行。
[0148]步骤406:生效该转发设备中的操作。
[0149]在本实施例中,生效控制指令用于指示各转发设备:生效转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作。在转发设备的操作指令执行成功后,转发设备可以将该操作指令对应的操作设置为等待状态,待收到生效控制指令后,再令该操作生效,使各转发设备能在同一时间相互配合完成该网络事务。
[0150]举例来说,在本实施例中,该生效控制指令可以设置一生效时间,以规定各转发设备在该生效时间到达时,生效转发设备中的操作。
[0151]由上可见,应用本实施例技术方案,在控制转发分离架构下的系统中,当某一事务需要执行时,转发设备接收由网络控制器发送操作集合包,该操作集合包分别包含:一原子操作标识、以及至少一个操作指令。该原子操作标识用于唯一标识该需执行的网络事务。该网络事务可由至少两个转发设备完成,如果各转发设备均能成功执行该接收的操作集合包中的操作指令,且该操作指令对应的操作均生效,即能完成该网络事务。在转发设备执行操作指令时,转发设备根据该操作指令的操作结果,向网络控制器反馈执行状态消息,该执行状态消息包含该原子操作标识、以及转发设备对该操作指令的操作结果。转发设备接收网络控制器发送的包含该原子操作标识的生效控制指令,根据该生效控制指令,生效各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,以保证网络事务执行的原子性,即该网络事务要么执行并生效,要么不生效。
[0152]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,转发设备与网络控制器进行通信,转发设备即时向网络控制器反馈该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、
[0153]实施例4
[0154]图5为网络事务执行方法的另一种可选流程示意图,举例来说,参见图5,本实施例与实施例3所不同之处主要在于:在本实施例中在步骤405中,如果接收的控制指令不为:生效控制指令,还可以进一步执行步骤501。[0155]步骤501:判定接收的控制指令是否为:回滚控制指令,如果是,则执行步骤502。
[0156]在本步骤中,如果接收的控制指令不为:回滚控制指令,则还可以根据该控制指令的具体内容可以按照现有技术执行。
[0157]步骤502:撤销该转发设备中的操作。
[0158]在本实施例中,转发设备顺序执行各操作指令,如果任一操作指令执行失败,则向网络控制器反馈操作结果为:执行失败的执行状态消息。网络控制器根据该执行状态消息,发送包含该原子操作标识的回滚控制指令或者结束,进入下一次的操作。该回滚控制指令用于指示转发设备撤销转发设备中的操作,该设备操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,使转发设备恢复至执行操作集合包内的各操作指令前的状态。对于一网络事务,如果执行该事务的其中一个转发设备执行任一操作指令失败,则必对网络事务产生影响,为进一步确保网络事务的操作原子性,各转发设备可以撤销转发设备中的操作,使各转发设备同时恢复至执行该操作指令前的状态,从而避免无用信息占用转发设备,释放设备资源。
[0159]由上可见,应用本实施例技术方案除了能够取得实施例3所示的有益效果外,还可以进一步地取得以下有益效果:
[0160]如果转发设备对任一操作指令的操作结果为:执行失败,则转发设备接收网络控制器发送包含该原子操作标识的回滚控制指令,根据该回滚控制指令,撤销各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,使转发设备恢复至执行该操作集合包内的各操作指令前的状态,避免设备资源被占用。
[0161]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,转发设备与网络控制器进行通信,转发设备即时向网络控制器反馈该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、或撤销转发设备中的操作,使转发设备恢复至该各操作指令执行前的状态,保证了网络事务的原子性。
[0162]实施例5
[0163]图6为事务执行方法的另一种可选流程示意图。举例来说,参见图6,该方法主要步骤如下:
[0164]步骤601:接收网络控制器发送的操作集合包。
[0165]在本实施例中,网络控制器发送的操作集合包包含:一原子操作标识、以及至少一条操作指令。该原子操作标识用于唯一标识该需执行的网络事务。
[0166]本步骤更详细的工作原理及内容可以参见实施例3中步骤401的相应记载
[0167]步骤602:执行操作集合包内的各操作指令。
[0168]步骤603:判定是否有任一操作指令执行失败,如果是,则执行步骤604,否则,执行步骤606。
[0169]步骤604:撤销转发设备中的操作。
[0170]在本实施例中,转发设备撤销转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的,使转发设备恢复至执行该操作指令集合包内各操作指令前的状态。
[0171]作为本发明的一种举例,转发设备可以在操作指令执行失败时,在预设的执行次数内重新执行该执行失败的操作指令,直至各操作指令均执行成功,返回步骤603的判定。
[0172]本步骤更详细的工作原理及内容可以参见实施例4中步骤502相应的记载。
[0173]步骤605:向网络控制器反馈操作结果为执行失败的执行状态消息。
[0174]在本实施例中,反馈的执行状态消息包包含该原子操作标识,以及该操作指令的操作结果。
[0175]步骤606:反馈操作结果为执行成功的执行状态消息。
[0176]步骤607:接收网络控制器发送的控制指令,判定控制指令是否为:生效控制指令,如果是,则执行步骤608。
[0177]本步骤更详细的内容与工作原理可以参见例3中步骤404-405相应的记载。
[0178]步骤608:生效该转发设备中的操作。
[0179]本步骤更详细的内容与工作原理可以参见例3中步骤406相应的记载。
[0180]本实施例与实施例4的区别在于,在转发设备执行相应的操作指令时,如果有任一操作指令执行失败,则撤销转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,并向网络控制器反馈操作结果:执行失败,否则,向网络控制器反馈操作结果为:执行成功。采用该技术方案能使转发设备在指令执行失败时能迅速恢复到执行该操作指令前的状态,无需在收到回滚控制指令后再才撤销该操作指令,能提高转发设备清除占用设备资源的效率。
[0181]实施例6
[0182]参见图7,本实施例提供了一种应用于控制和转发分离系统下的网络控制器,图7为该网络控制器的一种连接结构示意图,其主要包括:收发单元701、操作结果确定单元702。该网络控制器可以为SDN或NFV架构系统中的网络控制器,控制至少两个转发设备。
[0183]各部件的主要连接结构及工作原理如下:
[0184]收发单元701,用于各转发设备通信。
[0185]该通信包括:根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包,各操作集合包分别包含:一用于标识所述网络事务的原子操作标识;以及当操作结果确定单元702根据各执行状态消息确定各转发设备对各操作指令的操作结果均为:已执行成功时,还分别向各转发设备发送包含该原子操作标识的生效控制指令,以指示各转发设备的操作生效,各操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作;以及接收各转发设备反馈的执行状态消息。该执行状态消息包含:该原子操作标识,以及各转发设备对各操作指令的操作结果。
[0186]本单元更详细的工作原理可以参见实施例1的相应记载。
[0187]操作结果确定单元702,与收发单元701电连接,用于根据各执行状态消息确定各转发设备对各操作指令的操作结果。
[0188]可选地,当操作结果确定单元702确定任一转发设备对任一操作指令的操作结果为:执行失败时,收发单元701分别向各转发设备发送包含该原子操作标识的回滚控制指令,以指示各转发设备:撤销各转发设备中的操作,各操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作,使各转发设备恢复至执行该操作集合包内的各操作指令前的状态。
[0189]可选地,所述操作集合包还包含:执行时长上限,以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
[0190]本单元更详细的工作原理可以参见实施例1的相应记载。
[0191]举例来说,参见图8,图8为网络控制器的另一种连接结构,与图7的区别在于,该网络控制器还包括:事务转换单元803,与收发单元701电连接,用于在收发单元701与各转发设备通信之前,从业务系统接收网络事务,将述网络事务装换为操作集合包。
[0192]本单元更详细的工作原理可以参见例I中步骤101的相应记载。
[0193]由上可见,应用本实施例技术方案,在控制转发分离架构下的系统中,当某一事务需要执行时,网络控制器的收发单元701根据网络事务,向至少两个转发设备发送操作集合包,各操作集合包分别包含:一原子操作标识、以及至少一个操作指令。该原子操作标识用于唯一标识该需执行的网络事务。如果各转发设备分别成功执行该接收的操作集合包中的操作指令,且该操作指令对应的操作均生效,即能完成该需执行的网络事务。收发单元701接收转发设备反馈执行状态消息,该执行状态消息包含该原子操作标识、以及转发设备对该操作指令的操作结果。如果操作结果确定单元702确定各转发设备反馈的各操作结果均为:已执行成功,则收发单元701向分别各转发设备发送包含该原子操作标识的生效控制指令,以指示各转发设备生效各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,以保证网络事务执行的原子性,即该网络事务要么执行并生效,要么不生效。
[0194]进一步,如果操作结果确定单元702确定任一转发设备对任一操作指令的操作结果为:执行失败,则收发单元701分别向各转发设备发送包含所述原子操作标识的回滚控制指令,指示各转发设备:撤销各转发设备中的操作,该操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作,使各转发设备恢复至执行该操作集合包内的各操作指令前的状态,避免设备资源被占用。
[0195]可选地,参见图8,该网络控制器还可以包括定时单元804,该定时单元804用于在收发单元发送所述操作集合包后启动定时器;这样,该所述操作结果确定单元可以用于:在定时单元804启动的定时器超时时,如果收发单元701未收到某一转发设备发来的执行状态消息,则确定未反馈执行状态消息的转发设备对操作指令的操作结果为:执行失败。这样即使由于转发设备发送故障未能发出执行状态消息的情况下,网络控制器的操作结果确定单元702仍然能确定该网络设备对操作指令的操作结果,增加对网络控制的鲁棒性以及可控性。
[0196]可选地,操作结果确定单元702还可以用于根据执行状态消息中携带的执行失败状态消息,确定反馈执行状态消息的转发设备对操作指令的操作结果为:执行失败。
[0197]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,网络控制器与各转发设备进行通信,监视该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、或撤销转发设备中的操作,使转发设备恢复至该各操作指令执行前的状态,保证了网络事务的原子性。[0198]实施例7
[0199]参见图9,本实施例提供了一种应用于控制转发分离架构系统中的转发设备,图9为该转发设备的一种连接结构示意图,其主要包括:收发单元901、执行单元902、状态消息确定单元903、操作生效控制单元904。该转发设备可以为SDN或NFV架构系统中的转发设备。
[0200]各单元的连接结构及工作原理如下:
[0201]收发单元901,用于与该控制转发分离架构系统中的网络控制器通信。
[0202]在实施例中,该通信包括:接收网络控制器发送的操作集合包、控制指令,以及向网络控制器发送执行状态消息。
[0203]其中,该操作集合包包含:一原子操作标识、以及至少一操作指令。该原子操作标识用于唯一标识一网络事务。该网络事务对应至少一所述操作集合包。
[0204]该控制指令包含:该原子操作标识。
[0205]该执行状态消息包含:该原子操作标识,以及执行单元902对各操作指令的操作结果。
[0206]本单元更详细的工作原理可以参见例3中步骤401的相应记载。
[0207]执行单元902,与收发单元901电连接,用于执行操作集合包中的操作指令。
[0208]状态消息确定单元903,与执行单元902电连接,用于根据该操作指令的操作结果,确定执行状态信息。
[0209]在本实施例中,该执行状态信息可以包含每一条操作指令的操作结果、或者该操作集合包的总操作结果。如果在执行过程中有任一操作指令执行失败,则确定执行状态信息中的总操作结果为:执行失败;如果所有的操作指令都执行成功,则确定执行状态信息中的总操作结果为:执行成功。
[0210]操作生效控制单元904,与收发单元901电连接,用于在收发单元901接收的控制指令为生效控制指令时,将转发设备中的操作生效,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作。
[0211 ] 在本实施例中,该生效控制指令包含该原子操作标识,用于指示转发设备将转发设备中的操作生效。在执行单元903的操作指令执行成功后,可以将各操作指令对应的操作设置为等待状态,待收发单元901收到生效控制指令后,操作生效控制单元904令该操作生效,确保各转发设备可以在同一时间相互配合完成某一事务。
[0212]举例来说,该操作生效控制单元904还用于在收发单元901收到的控制指令为回滚控制指令时,撤销转发设备的操作,使转发设备恢复至执行该操作集合包内的各操作指令前的状态。该回滚控制指令包含该原子操作标识,用于指示转发设备将转发设备中的操作撤销,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作。本举例可以参见实施例4中步骤501-502的相应记载。
[0213]举例来说,参见图10,图10为转发设备的另一种结构示意图,该转发设备的操作生效控制单元1004,与执行单元902连接,用于在执行单元902顺序执行该操作指令时,如果任一操作指令执行失败,则操作生效控制单元1004撤销转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,使转发设备恢复至执行操作集合包内的各操作指令前的状态。相应地,状态消息确定单元903确定所述执行状态消息中的所述操作结果为:执行失败。采用该技术方案能使转发设备在指令执行失败时能迅速恢复到执行该操作指令前的状态,无需在收到回滚控制指令后再才撤销该操作指令,能提高转发设备的执行效率。本举例可以参见实施例5的相应记载。
[0214]由上可见,应用本实施例技术方案,在控制转发分离架构下的系统中,当某一事务需要执行时,转发设备的收发单元901接收由网络控制器发送操作集合包,该操作集合包分别包含:一原子操作标识、以及至少一个操作指令。该原子操作标识用于唯一标识该需执行的网络事务。该网络事务可由至少两个转发设备完成,如果各转发设备均能成功执行该接收的操作集合包中的操作指令,且该操作指令对应的操作均生效,即能完成该网络事务。在执行单元902执行操作指令后,状态消息确定单元903根据该操作指令的操作结果,确定执行状态消息,收发单元901向网络控制器反馈执行状态消息,该执行状态消息包含该原子操作标识、以及转发设备对该操作指令的操作结果。收发单元901接收网络控制器发送的包含该原子操作标识的生效控制指令,操作生效控制单元904根据该生效控制指令,生效各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,以保证网络事务执行的原子性,即该网络事务要么执行并生效,要么不生效。
[0215]进一步,转发设备的状态消息确定单元903根据任一操作指令的操作结果为:执行失败,收发单元901向网络控制器反馈执行状态消息后,收发单元901接收网络控制器发送包含该原子操作标识的回滚控制指令,操作生效控制单元904根据该回滚控制指令,撤销各转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作,使转发设备恢复至执行该操作集合包内的各操作指令前的状态,避免设备资源被占用。
[0216]由上可见,相比与现有技术仅能用Barrier命令以保证转发设备按顺序执行操作指令,却无法保障需执行网络事务的操作原子性。本发明技术方案对需执行的网络事务进行标识,转发设备与网络控制器进行通信,转发设备即时向网络控制器反馈该操作集合包内操作指令的操作结果。对应任一需执行的网络事务,要么该网络事务需要的所有转发设备均能成功执行并生效各操作指令,使得该网络事务成功执行,要么所有转发设备不生效各操作指令、或撤销转发设备中的操作,使转发设备恢复至该各操作指令执行前的状态,保证了网络事务的原子性。
[0217]举例来说,在本实施例中操作集合包还包含:执行时长上限。相应的,状态消息确定单元903具体用于:根据执行单元902的执行结果,在执行时长上限内向网络控制器反馈执行状态消息。这样,只要在执行时长上限内,执行单元902可以在执行失败后通过再次执行的方式直到执行成功为止,从而提高在执行成功的几率。
[0218]如果在执行时长上限的时间内,转发设备一次或者通过多次执行的方式对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行成功的执行状态消息。如果在执行时长上限的时间内,转发设备仍然无法对各操作指令全部执行成功,则向网络控制器反馈对操作指令的执行结果为执行失败的执行状态消息。
[0219]实施例8
[0220]参见图11,本发明实施例还提供了一种应用于控制与转发分离架构系统下的网络控制器1100,如图11所示,该网络控制器1100包括:总线1140 ;以及连接到总线1140的处理器1110、存储器1120和接口 1130,其中该接口 1130用于与至少两个转发设备进行通信;该存储器1120用于存储指令,该处理器1110用于执行该指令用于根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包。各操作集合包分别包含:用于唯一标识该网络事务的原子操作标识。该处理器1110执行该指令还用于接收各转发设备反馈的执行状态消息,该执行状态消息包含:该原子操作标识、以及各转发设备对各操作指令的操作结果。该处理器1110执行该指令还用于根据各执行状态消息确定各转发设备对各操作指令的操作结果是否均为:已执行成功,如果是,则:分别向各转发设备发送包含该原子操作标识的生效控制指令,以指示各转发设备的操作生效,该操作分别是:各转发设备执行该原子操作标识对应的各操作指令而实现的操作。
[0221]在本发明实施例中,可选地,该处理器1110执行该指令还用于:在根据各该执行状态消息确定各转发设备对各操作指令的操作结果是否均为:已执行成功之后,还包括:如果任一所述转发设备对任一所述操作指令的操作结果为:执行失败,则:分别向各所述转发设备发送包含所述原子操作标识的回滚控制指令,以指示各所述转发设备:撤销各所述转发设备中的所述操作,使各所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
[0222]在本发明实施例中,可选地,该处理器1110执行该指令还用于在根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之前,还包括:从业务系统接收所述网络事务,将网络事务转换为操作集合包。
[0223]在本发明实施例中,可选地,所述操作集合包还包含:执行时长上限,以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
[0224]在本发明实施例中,可选地,该处理器1110执行该指令还用于在接口 1130根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之后,启动定时器。处理器1110执行指令根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,具体是:在该定时器超时时,如果未收到某一所述转发设备发来的执行状态消息,则确定未反馈执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
[0225]在本发明实施例中,可选地,所述操作集合包还包含:执行时长上限,以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
[0226]因此,本发明实施例的网络控制器,通过向至少两个转发设备发送包含原子操作标识的操作集合包,根据各转发设备反馈的对操作集合包中操作指令的操作结果,控制转发设备的操作是否生效,从而能够保证网络事务的原子性,即该网络事务要么执行成功并生效,要么不生效。
[0227]进一步的,本发明实施例的网络控制器,通过向至少两个转发设备发送包含原子操作标识的操作集合包,根据各转发设备反馈的对操作集合包中操作指令的操作结果,控制转发设备的操作是否生效,如果不生效则撤销转发设备的操作,从而能够避免设备资源被占用。
[0228]实施例9
[0229]参见图12,本实施例提供了一种应用于控制转发分离架构系统下的转发设备1200,如图12所示,该转发设备1200包括:总线1240 ;以及连接到总线1240的处理器1210、存储器1220和接口 1230,其中该接口 1230用于与该系统中的网络控制器通信;该存储器1220用于存储指令,该处理器1210用于执行该指令用于接收网络控制器发送的操作集合包,该操作集合包包含:原子操作标识、以及至少一操作指令,该原子操作标识用于唯一标识一网络事务,该网络事务对应至少一该操作集合包。该处理器1210执行该指令还用于执行各操作指令,向网络控制器反馈执行状态信息,该执行状态消息包含:该原子操作标识、以及转发设备对操作指令的操作结果。该处理器1210执行该指令还用于接收网络控制器发送的控制指令,该控制指令包含:该原子操作标识。如果该控制指令为:生效控制指令,则该处理器1210执行该指令还用于生效转发设备中的操作,该操作是:转发设备执行该原子操作标识对应的各操作指令而实现的操作。
[0230]在本发明实施例中,可选地,如果该控制指令为:回滚控制指令,则该处理器1210执行该指令还用于撤销转发设备中的操作,使转发设备恢复至执行该操作集合包内的各操作指令前的状态。
[0231]在本发明实施例中,可选地,该处理器1210执行该指令用于执行各操作指令,向网络控制器反馈执行状态信息,包括:顺序执行各操作指令,如果任一操作指令执行失败,则撤销转发设备中的操作,使转发设备恢复至执行该操作集合包内的各操作指令前的状态,并向网络控制器反馈的执行状态信息包含的操作结果为:执行失败。
[0232]在本发明实施例中,可选地,所述操作集合包还包含:执行时长上限。相应地,所述理器1210执行该指令用于执行各所述操作指令,向所述网络控制器反馈执行状态信息,具体包括:执行各所述操作指令,根据所述各所述操作指令的执行结果,在所述执行时长上限内向所述网络控制器反馈所述执行状态消息。
[0233]因此,本发明实施例的转发设备,通过接收网络控制器发送包含原子操作标识的操作集合包,根据操作集合包中操作指令的操作结果,向网络控制器反馈执行状态消息,以供网络控制器根据该执行状态消息,控制转发设备的操作是否生效,从而能够保证网络事务的原子性,即该网络事务要么执行成功并生效,要么不生效。
[0234]进一步的,本发明实施例的转发设备,通过接收网络控制器发送包含原子操作标识的操作集合包,根据操作集合包中操作指令的操作结果,向网络控制器反馈执行状态消息,以供网络控制器根据该执行状态消息,控制转发设备的操作是否生效,如果不生效则撤销转发设备的操作,从而避免设备资源被占用。
[0235]以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0236]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0237]以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
【权利要求】
1.一种网络事务控制方法,所述方法应用于控制和转发分离的系统中,其特征在于,包括: 网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包; 各所述操作集合包分别包含:用于唯一标识所述网络事务的原子操作标识; 所述网络控制器接收各所述转发设备反馈的执行状态消息,所述执行状态消息包含:所述原子操作标识、以及各所述转发设备对各所述操作指令的操作结果; 所述网络控制器根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果是否均为:已执行成功,如果是,则: 所述网络控制器分别向各所述转发设备发送包含所述原子操作标识的生效控制指令,以指示各所述转发设备的操作生效, 各所述操作分别是:各所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作。
2.根据权利要求1所述的网络事务控制方法,其特征在于,还包括: 如果所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,则: 所述网络控制器分别向各所述转发设备发送包含所述原子操作标识的回滚控制指令,以指示各所述转发设备:撤销各所述转发设备中的所述操作,使各所述转发设备恢复至执行所述操作集合包内的各所述操`作指令前的状态。
3.根据权利要求1或2所述的方法,其特征在于, 在所述网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之前,所述方法还包括: 所述网络控制器从业务系统接收所述网络事务; 所述网络控制器将所述网络事务转换为所述操作集合包。
4.根据权利要求1或2所述的方法,其特征在于, 所述操作集合包还包含:执行时长上限, 以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
5.根据权利要求1或2所述的方法,其特征在于, 在网络控制器根据网络事务,向至少两个转发设备发送包含至少一个操作指令的操作集合包之后,还包括: 启动定时器; 所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,具体是: 在所述定时器超时时,如果未收到某一所述转发设备发来的执行状态消息,则确定未反馈执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
6.根据权利要求1或2所述的方法,其特征在于,还包括 所述网络控制器根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败,具体是:所述网络控制器根据所述执行状态消息中携带的执行失败状态消息,确定反馈所述执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
7.—种网络事务执行方法,所述方法应用于控制和转发分离的系统中,其特征在于,包括: 转发设备接收网络控制器发送的操作集合包,所述操作集合包包含:原子操作标识、以及至少一操作指令,所述原子操作标识用于唯一标识一网络事务,所述网络事务对应至少一所述操作集合包; 所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态消息,所述执行状态消息包含:所述原子操作标识、以及所述转发设备对所述操作指令的操作结果; 所述转发设备接收所述网络控制器发送的控制指令,所述控制指令包含:所述原子操作标识; 如果所述控制指令为:生效控制指令,则: 生效所述转发设备中的操作,所述操作是:所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作。
8.根据权利要求7所述的网络事务执行方法,其特征在于, 如果所述控制指令为:回滚控制指令,则: 撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
9.根据权利要求7或8所述的网络事务执行方法,其特征在于, 所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态信息,具体包括: 所述转发设备顺序执行各所述操作指令,如果任一所述操作指令执行失败,则: 撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态,并向所述网络控制器反馈的执行状态信息包含的所述操作结果为:执行失败。
10.根据权利要求7或8所述的方法,其特征在于, 所述操作集合包还包含:执行时长上限; 相应地,所述转发设备执行各所述操作指令,向所述网络控制器反馈执行状态信息,具体包括: 所述转发设备执行各所述操作指令,根据所述各所述操作指令的执行结果,在所述执行时长上限内向所述网络控制器反馈所述执行状态消息。
11.一种网络控制器,所述网络控制器应用于控制和转发分离的系统中,其特征在于,包括: 收发单元,用于与各应用于所述控制和转发分离系统中的转发设备通信,所述通信包括: 根据网络事务,向至少两个所述转发设备发送包含至少一个操作指令的操作集合包,各所述操作集合包分别包含:用于唯一标识所述网络事务的原子操作标识, 以及当操作结果确定单元根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果均为:已执行成功时,还分别向各所述转发设备发送包含所述原子操作标识的生效控制指令,以指示各所述转发设备的操作生效,各所述操作分别是:各所述转发设备执行所述原子操作标识对应的各所述操作指令而实现的操作, 以及接收各所述转发设备反馈的执行状态消息,所述执行状态消息包含:所述原子操作标识、以及各所述转发设备对各所述操作指令的操作结果; 所述操作结果确定单元,用于根据各所述执行状态消息确定各所述转发设备对各所述操作指令的操作结果。
12.根据权利要求11所述的网络控制器,其特征在于, 所述收发单元,还用于当所述操作结果确定单元根据各所述执行状态消息确定任一所述转发设备对任一所述操作指令的操作结果为:执行失败时,还分别向各所述转发设备发送包含所述原子操作标识的回滚控制指令,以指示各所述转发设备:撤销各所述转发设备中的所述操作,使各所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
13.根据权利要求11或12所述的网络控制器,其特征在于,还包括: 定时单元,所述定时单 元用于在所述收发单元发送所述操作集合包后启动定时器;所述操作结果确定单元具体用于:在所述定时单元启动的定时器超时时,如果所述收发单元未收到某一所述转发设备发来的执行状态消息,则确定未反馈执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
14.根据权利要求11或12所述的网络控制器,其特征在于, 所述操作结果确定单元具体用于:根据所述执行状态消息中携带的执行失败状态消息,确定反馈所述执行状态消息的所述转发设备对所述操作指令的操作结果为:执行失败。
15.根据权利要求11或12所述的网络控制器,其特征在于,还包括: 所述操作集合包还包含:执行时长上限, 以供各所述转发设备在收到所述操作集合包后,在所述执行时长上限内反馈所述执行状态消息。
16.根据权利要求11或12所述的网络控制器,其特征在于,还包括: 事务转换单元,用于在所述收发单元与各转发设备通信之前,从业务系统接收所述网络事务,将所述网络事务转换为所述操作集合包。
17.一种转发设备,所述转发设备应用于控制和转发分离的系统中,其特征在于,包括: 收发单元,用于与应用于所述控制和转发分离系统中的网络控制器通信, 所述通信包括:接收所述网络控制器发送的操作集合包、以及控制指令,以及向所述网络控制器发送执行状态消息, 其中,所述操作集合包包含:一原子操作标识、以及至少一操作指令,所述原子操作标识用于唯一标识一网络事务,所述网络事务对应至少一所述操作集合包, 所述控制指令包含:所述原子操作标识, 所述执行状态消息包含:所述原子操作标识、以及所述转发设备对所述操作指令的操作结果; 执行单元,用于执行所述操作指令; 状态消息确定单元,用于根据所述执行单元的执行结果,确定所述执行状态消息,操作生效控制单元,用于执行操作生效控制,包括: 当收到的所述控制指令为:生效控制指令时,用于生效所述转发设备中的设备操作,所述操作是:执行单元执行所述原子操作标识对应的各所述操作指令而实现的操作。
18.根据权利要求17所述的转发设备,其特征在于, 所述操作生效控制单元用于执行操作生效控制,还包括:当收到的所述控制指令为:回滚控制指令时,撤销所述转发设备中的所述操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
19.根据权利要求17或18所述的转发设备,其特征在于, 所述状态消息确定单元具体用于:在所述执行单元顺序执行各所述操作指令的过程中,如果任一所述操作指令执行失败,则确定所述执行状态消息中的所述操作结果为:执行失败;相应地,所述操作生效控制单元用于执行设备操作生效控制,还包括: 当所述状态消息确定单元确定所述执行状态消息中的操作结果为:执行失败时,撤销所述转发设备中的操作,使所述转发设备恢复至执行所述操作集合包内的各所述操作指令前的状态。
20.根据权利要求17或18所述的转发设备,其特征在于,还包括: 所述操作集合包还包含:执行时长上限; 所述状态消息确定单元具体用于:根据所述执行单元的执行结果,在所述执行时长上限内向所述网络控制器反馈所述执行状`态消息。
【文档编号】H04L12/24GK103457770SQ201310389324
【公开日】2013年12月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】张大成, 夏寅贲 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1