CN105791160B - 软件定义网络中事务的处理方法、设备及系统 - Google Patents
软件定义网络中事务的处理方法、设备及系统 Download PDFInfo
- Publication number
- CN105791160B CN105791160B CN201410822202.4A CN201410822202A CN105791160B CN 105791160 B CN105791160 B CN 105791160B CN 201410822202 A CN201410822202 A CN 201410822202A CN 105791160 B CN105791160 B CN 105791160B
- Authority
- CN
- China
- Prior art keywords
- order
- timestamp
- time
- network device
- successively
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种软件定义网络(SDN)中事务的处理方法,包括:收到上层应用程序(APP)或上层控制器的多个命令时,下层控制器为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备;所述转发层网络设备收到多个命令后,根据各命令对应的时间戳依次执行各命令。本发明同时还公开一种控制器、转发层网络设备及SDN中事务的处理系统。
Description
技术领域
本发明涉及软件定义网络(SDN,Software Defined Network),尤其涉及一种SDN中事务的处理方法、设备及系统。
背景技术
面对未来业务的发展需求以及现网运维的压力,网络有进一步演进的诉求,由此提出了SDN。SDN实现了网络进一步的软件化、通用化以及集中化,原有网络中控制和管理等功能都是利用网管来实现的,而在SDN中,如图1所示,这些功能需要控制层(Controller)集中化实现。当一个Controller需要同时响应来自多个应用程序(APP,Application)的调用请求时,需要多个下层Controller共同配合才能完成整个操作,而下层Controller也需要多个网元共同配合才能完成,这种分布式事务场景,需要一种机制妥善解决。
现有技术中,当应用层多个APP或控制层多个上层Controller向多个下层Controller同时递交请求时,有些下层Controller能够成功执行请求,有些则不能,这将可能导致Controller之间的数据不一致。为了保证操作在上下层Controller间的成功递交,现有技术引入回滚机制。其中,一种回滚机制包括两个阶段:第一阶段,上层Controller请求各个下层Controller做好提交准备,若下层Controller已做好准备,则返回一个同意提交的应答;此时下层Controller并不是真正执行了请求的操作,只是为操作做好了准备;第二阶段,上层Controller检查各个下层Controller的返回结果,若所有下层Controller都返回同意,则正式提交操作请求;若有任一下层Controller返回不同意,则撤销该操作请求。这种机制需要在上下层Controller接口中体现交互过程。
此外,另一种简单的做法是:下层Controller不感知事务的存在,由发起请求调用的上层Controller单方面保证,当有下层Controller返回失败时,通过对成功的下层Controller执行反向操作来进行回滚。比如:创建跨域隧道(Tunnel)过程中有下层Controller返回失败时,则可以针对成功的下层Controller发起删除操作,删除刚刚完成创建的Tunnel片段。
从上面的描述中可以看出,无论哪一种做法,上层Controller递交的操作请求仅在下层所有有效Controller都返回同意时才能成功执行;这样,大大降低了网络处理事务的效率。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种SDN中事务的处理方法、设备及系统。
本发明实施例提供了一种SDN中事务的处理方法,包括:
收到上层APP或上层控制器的多个命令时,下层控制器为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备;
所述转发层网络设备收到多个命令后,根据各命令对应的时间戳依次执行各命令。
上述方案中,所述为所述多个命令依次申请对应的时间戳,为:
所述下层控制器通过时间服务器为所述多个命令依次申请对应的时间戳。
上述方案中,所述根据各命令对应的时间戳依次执行各命令,包括:
所述转发层网络设备根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
根据各有效命令对应的时间戳依次执行各有效命令。
上述方案中,所述根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效,包括:
当前时刻执行的命令所对应的时间戳为第一时间戳;
当前时刻收到的命令所对应的时间戳为第二时间戳;
所述转发层网络设备确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效。
上述方案中,所述根据各有效命令对应的时间戳依次执行各有效命令,包括:
将各有效命令放入等待队列中;
将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;
根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
上述方案中,所述方法还包括:
所述转发层网络设备将各命令的执行情况实时反馈给所述下层控制器。
本发明实施例还提供了一种控制器,包括:第一接收单元及申请单元及第一发送单元;其中,
所述第一接收单元,用于接收上层APP或上层控制器的多个命令;
所述申请单元,用于为所述多个命令依次申请对应的时间戳;
所述第一发送单元,用于将对应的时间戳及所述多个命令发送给相应的转发层网络设备。
上述方案中,所述申请单元,具体用于:通过时间服务器为所述多个命令依次申请对应的时间戳。
上述方案中,所述第一接收单元,还用于接收所述转发层网络设备实时反馈的各命令的执行情况。
本发明实施例又提供了一种转发层网络设备,包括:第二接收单元及执行单元;其中,
所述第二接收单元,用于接收下层控制器发送的多个命令;
所述执行单元,用于根据各命令对应的时间戳依次执行各命令。
上述方案中,所述执行单元还包括:确定模块及执行模块;其中,
所述确定模块,用于根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
所述执行模块,用于根据各有效命令对应的时间戳依次执行各有效命令。
上述方案中,所述确定模块具体用于:确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效;所述第一时间戳为当前时刻执行的命令所对应的时间戳;所述第二时间戳为当前时刻收到的命令所对应的时间戳。
上述方案中,所述执行模块,具体用于:将各有效命令放入等待队列中;将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;并根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
上述方案中,所述转发层网络设备还包括:第二发送单元,用于将各命令的执行情况实时反馈给所述下层控制器。
本发明实施例还提供了一种SDN中事务的处理系统,其特征在于,所述系统包括:下层控制器及多个转发层网络设备;其中,
所述下层控制器,用于收到上层APP或上层控制器的多个命令时,为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备;
所述转发层网络设备,用于收到多个命令后,根据各命令对应的时间戳依次执行各命令。
上述方案中,所述转发层网络设备,具体用于:根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;并根据各有效命令对应的时间戳依次执行各有效命令。
本发明实施例提供的SDN中事务的处理方法、设备及系统,收到上层APP或上层controller的多个命令时,下层controller为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE;转发层NE收到多个命令后,根据各命令对应的时间戳依次执行各命令,这样,无需为单条命令占用或冻结相关网元资源,如此,有效地提高了网络处理事务的效率,提高了网络资源的利用率,从而有效地降低了业务处理的时延。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为相关技术中的SDN架构示意图;
图2为相关技术中的回滚机制处理流程示意图;
图3为相关技术中上层向下层Controller同时递交两条命令时所需时间示意图;
图4为本发明实施例一SDN中事务的处理方法流程示意图;
图5为本发明实施例二中controller的结构示意图;
图6为本发明实施例二中转发层NE的结构示意图;
图7为本发明实施例二中SDN中事务的处理系统结构示意图;
图8为本发明实施例三中SDN中实现分布式事务处理的设备交互图;
图9为本发明实施例三中SDN中事务处理的过程示意图;
图10为本发明实施例三中UUID结构示意图;
图11为本发明实施例三中申请UUID的时间与NE收到报文的时刻之间存在映射关系示意图;
图12a-b为本发明实施例三中一种UUID时间戳与转发层NE接收报文时刻的映射关系示意图;
图13为本发明实施例三中一种UUID时间戳与转发层NE接收报文时刻的双时间轴映射关系示意图;
图14a-c为本发明实施例三中UUID时间戳与转发层NE接收报文时刻的双时间轴映射关系示意图。
具体实施方式
下面结合附图及实施例对本发明再作进一步详细地描述。
图2为回滚机制中的处理流程示意图。如图2所示,该流程主要包括以下步骤:
步骤201:下层Controller接收到上层Controller发来的请求后,需要确定转发层与请求命令相关的网元,即有效网元;
步骤202:进一步确定有效网元是否被使用或冻结,以做好命令下发的准备工作,可以把准备工作所使用的时间计为TR;
步骤203:仅当全部有效网元都未被占用时,返回给上层Controller的结果才为成功,随后上层Controller向下层下发报文,为有效网元分配标签,建立LSP,这段时间计为TC。
原有网络中分布式事务处理都是由网管来实现的,而在SDN网络中多事务处理由控制面Controller协同实现,对于有效网元,由于在同一时刻仅能被一条命令占用,在同时执行多条命令时,按照请求提交的先后顺序依次占用有效网元资源,仅当先占用有效网元的Controller释放冻结资源后,下一条命令才能使用该资源。
因此,一个事件成功执行所需的时间包含:命令下发的准备时间TR、下发命令+分配标签+建立LSP的时间TC。图3所示为上层向下层Controller同时递交两条命令时所需时间示意图,从图3中可以看出,两条命令同时递交给下层controller时,两条命令执行成功所需的时间T=T1+T2,从而看出回滚机制的弊端,这种机制大大降低了网络处理事务的效率,降低了网络资源利用率,且增大了业务处理的时延。
在本发明的各种实施例中:收到上层APP或上层controller的多个命令时,下层controller为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备(NE,Network Equipment);转发层NE收到多个命令后,根据各命令对应的时间戳依次执行各命令。
实施例一
本实施例提供一种SDN中事务的处理方法,应用于下层controller,包括:
接收上层APP或上层controller的多个命令;
为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE。
这里,可以通过时间服务器为所述多个命令依次申请对应的时间戳;所述时间服务器可以为能提供唯一标识符的时间服务器;所述时间戳可以包含在通用唯一标识符(UUID,Universally Unique Identifier)中;相应地,下层controller通过UUID服务器(Server)为所述多个命令依次申请对应的UUID,所述UUID能够反应下层controller申请UUID的顺序,所述时间戳包含在所述UUID的时间字符中。
实际应用时,下层controller还可以通过其他时间服务器为所述多个命令申请对应的时间戳,比如:1588v2时间服务器、网络时间协议(NTP,Network Time Protocol)时间服务器等。
该方法还可以包括:
接收转发层NE实时反馈的各命令的执行情况。
这里,所述各命令包括:所述转发层NE丢弃的命令、放入等待队列的命令、以及成功执行的命令。
本实施例还提供一种SDN中事务的处理方法,应用于转发层NE,包括:
接收下层controller发送的多个命令;
根据各命令对应的时间戳依次执行各命令。
具体地,所述转发层NE根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
根据各有效命令对应的时间戳依次执行各有效命令。
这里,所述根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效,具体包括:
当前时刻执行的命令所对应的时间戳为第一时间戳;
当前时刻收到的命令所对应的时间戳为第二时间戳;
所述转发层NE确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效。
相应地,所述根据各有效命令对应的时间戳依次执行各有效命令,具体包括:
将各有效命令放入等待队列中;
将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;
根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
其中,当所述第二时间戳小于所述第一时间戳时,说明命令抵达的时延过大,所以所述转发层NE会丢弃当前接收的命令。
该方法还可以包括:
所述转发层NE将各命令的执行情况实时反馈给所述下层controller。
这里,所述各命令包括:所述转发层NE丢弃的命令、放入等待队列的命令、以及成功执行的命令。
本实施例还提供了一种SDN中事务的处理方法,如图4所示,包括以下步骤:
步骤401:收到上层APP或上层controller的多个命令时,下层controller为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE;
这里,可以通过时间服务器为所述多个命令依次申请对应的时间戳;所述时间服务器可以为能提供唯一标识符的时间服务器;所述时间戳可以包含在UUID中;相应地,下层controller通过UUID Server为所述多个命令依次申请对应的UUID,所述UUID能够反应下层controller申请UUID的顺序,所述时间戳包含在所述UUID的时间字符中。
实际应用时,下层controller还可以通过其他时间服务器为所述多个命令申请对应的时间戳,比如:1588v2时间服务器、NTP时间服务器等。
步骤402:转发层NE收到多个命令后,根据各命令对应的时间戳依次执行各命令。
具体地,所述转发层NE根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
根据各有效命令对应的时间戳依次执行各有效命令。
这里,所述根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效,具体包括:
当前时刻执行的命令所对应的时间戳为第一时间戳;
当前时刻收到的命令所对应的时间戳为第二时间戳;
所述转发层NE确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效。
相应地,所述根据各有效命令对应的时间戳依次执行各有效命令,具体包括:
将各有效命令放入等待队列中;
将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;
根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
其中,当所述第二时间戳小于所述第一时间戳时,说明命令抵达的时延过大,所以所述转发层NE会丢弃当前接收的命令。
该方法还可以包括:
所述转发层NE将各命令的执行情况实时反馈给所述下层controller。
这里,所述各命令包括:所述转发层NE丢弃的命令、放入等待队列的命令、以及成功执行的命令。
本实施例提供的SDN中事务的处理方法,收到上层APP或上层controller的多个命令时,下层controller为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE;转发层NE收到多个命令后,根据各命令对应的时间戳依次执行各命令,这样,无需为单条命令占用或冻结相关网元资源,如此,有效地提高了网络处理事务的效率,提高了网络资源的利用率,从而有效地降低了业务处理的时延。
另外,将各有效命令放入等待队列中;将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令,如此,能有效地实现命令的有序执行,从而避免命令丢失或时延过大存在的长时间徒劳等待。
实施例二
为实现实施例一的方法,本实施例提供一种controller,如图5所示,该controller包括:第一接收单元51及申请单元52及第一发送单元53;其中,
所述第一接收单元51,用于接收上层APP或上层controller的多个命令;
所述申请单元52,用于为所述多个命令依次申请对应的时间戳;
所述第一发送单元53,用于将对应的时间戳及所述多个命令发送给相应的转发层NE。
其中,所述申请单元52可以通过时间服务器为所述多个命令依次申请对应的时间戳;所述时间服务器可以为能提供唯一标识符的时间服务器;所述时间戳可以包含在UUID中;相应地,所述申请单元52通过UUID Server为所述多个命令依次申请对应的UUID,所述UUID能够反应所述申请单元52申请UUID的顺序,所述时间戳包含在所述UUID的时间字符中。
实际应用时,所述申请单元52还可以通过其他时间服务器为所述多个命令申请对应的时间戳,比如:1588v2时间服务器、NTP时间服务器等。
所述第一接收单元51,还用于接收所述转发层NE实时反馈的各命令的执行情况。
实际应用时,所述第一接收单元51可由下层controller中的接收机实现;所述申请单元52可由下层controller中的中央处理器(CPU,Central Processing Unit)、微处理器(MCU,Micro Control Unit)、数字信号处理器(DSP,Digital Signal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)结合收发机实现;所述第一发送单元53可由下层controller中的发射机实现。
为实现实施例一的方法,本实施例提供一种转发层NE,如图6所示,该转发层NE包括:第二接收单元61及执行单元62;其中,
所述第二接收单元61,用于接收下层controller发送的多个命令;
所述执行单元62,用于根据各命令对应的时间戳依次执行各命令。
其中,所述执行单元62还可以包括:确定模块及执行模块;其中,
所述确定模块,用于根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
所述执行模块,用于根据各有效命令对应的时间戳依次执行各有效命令。
这里,所述确定模块具体用于:确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效;所述第一时间戳为当前时刻执行的命令所对应的时间戳;所述第二时间戳为当前时刻收到的命令所对应的时间戳。
相应地,所述执行模块,具体用于:将各有效命令放入等待队列中;将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;并根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
其中,当所述第二时间戳小于所述第一时间戳时,说明命令抵达的时延过大,所以所述确定模块会丢弃当前接收的命令。
该转发层NE还可以包括:第二发送单元,用于将各命令的执行情况实时反馈给所述下层controller。
这里,所述各命令包括:所述确定模块丢弃的命令、放入等待队列的命令、以及成功执行的命令。
实际应用时,所述第二接收单元61可由转发层NE中的接收机实现;所述执行单元62、确定模块及执行模块可由转发层NE中的CPU、MCU、DSP或FPGA实现;所述第二发送单元可由转发层NE中的发射机实现。
为实现实施例一的方法,本实施例还提供一种SDN中事务的处理系统,如图7所示,该系统包括:下层controller 71及多个转发层NE 72;其中,
所述下层controller 71,用于收到上层APP或上层controller的多个命令时,为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE 72;
所述转发层NE 72,用于收到多个命令后,根据各命令对应的时间戳依次执行各命令。
其中,所述下层controller71可以通过时间服务器为所述多个命令依次申请对应的时间戳;所述时间服务器可以为能提供唯一标识符的时间服务器;所述时间戳可以包含在UUID中;相应地,所述下层controller 71通过UUID Server为所述多个命令依次申请对应的UUID,所述UUID能够反应下层controller申请UUID的顺序,所述时间戳包含在所述UUID的时间字符中。
实际应用时,所述下层controller 71还可以通过其他时间服务器为所述多个命令申请对应的时间戳,比如:1588v2时间服务器、NTP时间服务器等。
所述转发层NE 72,具体用于:根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;并根据各有效命令对应的时间戳依次执行各有效命令。
这里,所述根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效,具体包括:
当前时刻执行的命令所对应的时间戳为第一时间戳;
当前时刻收到的命令所对应的时间戳为第二时间戳;
所述转发层NE确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效。
相应地,所述根据各有效命令对应的时间戳依次执行各有效命令,具体包括:
将各有效命令放入等待队列中;
将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;
根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
其中,当所述第二时间戳小于所述第一时间戳时,说明命令抵达的时延过大,所以所述转发层NE 72会丢弃当前接收的命令。
所述转发层NE 72,还用于将各命令的执行情况实时反馈给所述下层controller71;
相应地,所述controller 71,还用于接收所述转发层NE 72实时反馈的各命令的执行情况。
这里,所述各命令包括:所述转发层NE 72丢弃的命令、放入等待队列的命令、以及成功执行的命令。
本实施例提供的SDN中事务的处理方法,收到上层APP或上层controller的多个命令时,所述下层controller 71为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层NE;所述转发层NE 72收到多个命令后,根据各命令对应的时间戳依次执行各命令,这样,无需为单条命令占用或冻结相关网元资源,如此,有效地提高了网络处理事务的效率,提高了网络资源的利用率,从而有效地降低了业务处理的时延。
另外,所述转发层NE 72将各有效命令放入等待队列中;将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令,如此,能有效地实现命令的有序执行,从而避免命令丢失或时延过大存在的长时间徒劳等待。
实施例三
本实施例在实施例一的基础上,以UUID为例,来详细说明SDN中事务处理的过程。
图8为本实施例提供的SDN中实现分布式事务处理的设备交互图。结合图8,本实施例提供的SDN中事务处理的过程,如图9所示,包括以下步骤:
步骤901:下层controller收到应用层APP或上层controller递交的多条命令请求后,依次为收到的多条命令申请UUID;
具体地,针对收到的多条命令,依次向UUID Server申请;UUID Server为每条命令配置下发UUID,从而得到UUID;UUID申请的先后顺序将会体现在UUID所打的时间戳上。
这里,UUID主要应用于分布式计算环境,这种通用唯一识别码能够让分布式系统中的所有元素都能有唯一的辨识资讯,而无需通过中央控制端来作辨识资讯的指定。这样一来,每个元素都可以建立不与其它元素冲突的UUID,很好地解决了数据库建立时的名称重复问题。
RFC4122对于UUID的生成方法和表示方法做了标准的定义。在RFC4122的定义中,UUID是一个128位的二进数;如图10所示,UUID的标准形式包含32个16进位数字,以连字号分为五段,形式为8-4-4-4-12的32个字符。
具体地,UUID由以下几部分组合而成:
(1)当前日期和时间;
UUID的第一个部分与时间有关,如果在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余部分相同。
(2)时钟序列;
(3)全局唯一的IEEE机器识别号;
这里,如果有网卡,从网卡MAC地址获得IEEE机器识别号;如果没有网卡,则以其他方式获得IEEE机器识别号。
SDN中有很多对象需要由全网唯一的ID来标识,而这些ID由不同Controller的生成,为了保证唯一性,一般采用UUID来表示。
步骤902:下层controller将收到的多条命令及每条命令对应的UUID以报文的形式发送至多个转发层NE;
这里,需要说明的是:当上层APP或Controller向下层Controller递交多条命令,下层Controller向UUID Server申请到UUID后,向多个网元发出命令时,每条命令使用相同的UUID;换句话说,每个UUID对应一条命令,即每个UUID代表了一个事务。
步骤903:转发层NE收到多个报文后,根据报文中UUID时间字段的时间戳对应的顺序依次执行多条命令。
这里,由于各命令从申请UUID至抵达转发层NE的传输时延不同,所以可能会造成先到达转发层NE的包含各命令的报文,所申请UUID的次序晚于后到达转发层NE的报文所申请的UUID次序,但转发层NE执行命令的顺序完全取决于申请UUID的顺序,申请UUID的时间与NE收到报文的时刻之间存在映射关系,这种映射关系可以如图11所示;所以这里就引入了双时间轴映射关系,利用这种映射关系实现命令动态有序地执行。
同时,为了避免报文丢失而存在的长时间徒劳等待,定义结点前最后一个执行的报文对应的UUID时间字段中的时间戳(在以下的描述中,将UUID时间字段中的时间戳简称为UUID时间戳)为TL以及最大容忍时长区间[t,t+Δt]。当抵达报文对应的UUID时间戳在[t,t+Δt]内时,若当前报文UUID时间戳小于TL,则将该报文丢弃;若当前报文UUID时间戳大于TL,则将该报文放入等待队列中。仅当抵达报文时刻t滑动至最大容忍时长区间的右边界,或者,最大容忍时长区间向右平移时,等待队列中的报文才会被顺次执行(即执行顺序依据报文对应的时间戳)。
具体地,以当前时刻t0为结点,设结点前最后一个执行的报文所对应的UUID时间戳为TL。在t0时刻后,转发层NE又到达一报文,设该报文的到达时刻为t1。这里分情况讨论基于UUID时间戳的分布式事务处理过程(设该报文UUID时间戳为TM):
第一种情况,如图12a和b所示,TM<TL,则说明报文抵达太迟,下层Controller在向UUID Server申请UUID到报文抵达至转发层NE的时延过大,超出队列的最大等待时间,所以应该丢弃该报文。
第二种情况,TM>TL,将该报文放入等待队列中;同时,如图13所示,为了避免报文丢失或时延过大而存在的超时等待,设置最大容忍时长Δt;实际应用时,可以根据网络的时延进行设置,比如:可以设置为网络的最大时延等,也可以根据网络需求状况进行设置等;如果在[t1,t1+Δt]区间内无其它报文抵达,则将等待队列中对应UUID时间戳为TM的报文放入执行队列中,将UUID时间戳为TM的报文放入执行队列中后,此时当前时刻结点前最后一个执行的报文则为UUID时间戳为TM的报文;如果在[t1,t1+Δt]区间内有其它报文到达,设置到达的其它报文所对应的UUID时间戳为TN,到达时刻为t2,则分以下三种情况分别讨论:
第一种情况,如图14a所示,TN∈[-∞,TL],则说明报文抵达太迟,下层Controller在向UUID Server申请UUID到报文抵达至转发层NE的时延过大,超出队列的最大等待时间,所以应该丢弃该报文。
第二种情况,如图14b所示,TN∈[TL,TM],则将该报文放入等待队列中;这里需要说明的是:如果此时报文抵达时间已滑到[t1,t1+Δt]的右边界点,则应按照等待队列中报文所对应的UUID时间戳的先后顺序依次执行报文命令。
第三种情况,如图14c所示,TN∈[TM,+∞],则更新最大容忍时间的区间范围为[t2,t2+Δt],并将等待队列中且在[t2,t2+Δt]外的报文依据时间戳的先后顺序依次放入执行队列中,并根据各报文对应的UUID时间戳依次处理放入执行队列中的报文。
实际应用时,还需说明的几点是:
(1)如果报文抵达时间到达时刻t已滑到最大容忍时长区间的右边界点,且等待队列中的报文已全部成功执行,则最大容忍时长区间清空(无左右边界点);一旦有新报文抵达时,会再产生新的最大容忍时长区间。
(2)对丢弃的报文、放到等待队列中的报文、以及已成功执行的报文,NE转发层都需要反馈至下层Controller。
从上面的描述中可以看出,本实施例提供的方案,下层Controller在执行多条命令时,无需为单条命令占用/冻结相关网元资源,命令可依次执行,提高了分布式事务处理效率。
另外,上层APP或Controller向下层Controller递交的每条命令都将会申请到一个UUID,该ID标识具有唯一性;UUID时间戳能够反映申请UUID的顺次,转发层NE可以根据报文中UUID时间戳依次执行队列中报文所对应的命令。
除此以外,为了避免报文丢失或时延过大而存在的队列超时等待,引入了最大容忍时长区间的概念;当报文抵达时刻t滑动至区间右边界,且无新报文抵达时,则依据UUID时间戳依次执行等待队列中的报文。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (16)
1.一种软件定义网络SDN中事务的处理方法,其特征在于,所述方法包括:
收到上层应用程序APP或上层控制器的多个命令时,下层控制器为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备;
所述转发层网络设备收到多个命令后,利用所述转发层网络设备收到各命令的时刻与各命令申请时间戳的时间之间的映射关系,根据各命令对应的时间戳依次执行各命令。
2.根据权利要求1所述的方法,其特征在于,所述为所述多个命令依次申请对应的时间戳,为:
所述下层控制器通过时间服务器为所述多个命令依次申请对应的时间戳。
3.根据权利要求1所述的方法,其特征在于,所述根据各命令对应的时间戳依次执行各命令,包括:
所述转发层网络设备根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
根据各有效命令对应的时间戳依次执行各有效命令。
4.根据权利要求3所述的方法,其特征在于,所述根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效,包括:
当前时刻执行的命令所对应的时间戳为第一时间戳;
当前时刻收到的命令所对应的时间戳为第二时间戳;
所述转发层网络设备确定所述第二时间戳大于所述第一时间戳时,确定当前时刻收到的命令有效。
5.根据权利要求3所述的方法,其特征在于,所述根据各有效命令对应的时间戳依次执行各有效命令,包括:
将各有效命令放入等待队列中;
将所述等待队列中抵达时长超过最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;
根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述转发层网络设备将各命令的执行情况实时反馈给所述下层控制器。
7.一种转发层网络设备,其特征在于,所述转发层网络设备包括:第二接收单元及执行单元;其中,
所述第二接收单元,用于接收下层控制器发送的多个命令;
所述执行单元,用于利用所述转发层网络设备收到各命令的时刻与各命令申请时间戳的时间之间的映射关系,根据各命令对应的时间戳依次执行各命令。
8.根据权利要求7所述的转发层网络设备,其特征在于,所述执行单元还包括:确定模块及执行模块;其中,
所述确定模块,用于根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;
所述执行模块,用于根据各有效命令对应的时间戳依次执行各有效命令。
9.根据权利要求8所述的转发层网络设备,其特征在于,所述确定模块具体用于:确定第二时间戳大于第一时间戳时,确定当前时刻收到的命令有效;所述第一时间戳为当前时刻执行的命令所对应的时间戳;所述第二时间戳为当前时刻收到的命令所对应的时间戳。
10.根据权利要求8所述的转发层网络设备,其特征在于,所述执行模块,具体用于:将各有效命令放入等待队列中;将所述等待队列中抵达时长超过的最大容忍时长的命令依据时间戳的顺序依次放入执行队列中;并根据所述执行队列中命令的排放顺序,依次执行所述执行队列中的各命令。
11.根据权利要求7所述的转发层网络设备,其特征在于,所述转发层网络设备还包括:第二发送单元,用于将各命令的执行情况实时反馈给所述下层控制器。
12.一种SDN中事务的处理设备,其特征在于,所述设备包括权利要求7-11中任意一项所述的转发层网络设备,还包括控制器;所述控制器包括:第一接收单元及申请单元及第一发送单元;其中,
所述第一接收单元,用于接收上层APP或上层控制器的多个命令;
所述申请单元,用于为所述多个命令依次申请对应的时间戳;
所述第一发送单元,用于将对应的时间戳及所述多个命令发送给相应的转发层网络设备。
13.根据权利要求12所述的设备,其特征在于,所述申请单元,具体用于:通过时间服务器为所述多个命令依次申请对应的时间戳。
14.根据权利要求12所述的设备,其特征在于,所述第一接收单元,还用于接收所述转发层网络设备实时反馈的各命令的执行情况。
15.一种SDN中事务的处理系统,其特征在于,所述系统包括:下层控制器及多个转发层网络设备;其中,
所述下层控制器,用于收到上层APP或上层控制器的多个命令时,为所述多个命令依次申请对应的时间戳;并将对应的时间戳及所述多个命令发送给相应的转发层网络设备;
所述转发层网络设备,用于收到多个命令后,利用所述转发层网络设备收到各命令的时刻与各命令申请时间戳的时间之间的映射关系,根据各命令对应的时间戳依次执行各命令。
16.根据权利要求15所述的系统,其特征在于,所述转发层网络设备,具体用于:根据各命令对应的时间戳及接收各命令时刻正在执行的命令对应的时间戳,确定接收的各命令是否有效;并根据各有效命令对应的时间戳依次执行各有效命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410822202.4A CN105791160B (zh) | 2014-12-25 | 2014-12-25 | 软件定义网络中事务的处理方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410822202.4A CN105791160B (zh) | 2014-12-25 | 2014-12-25 | 软件定义网络中事务的处理方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105791160A CN105791160A (zh) | 2016-07-20 |
CN105791160B true CN105791160B (zh) | 2019-03-05 |
Family
ID=56377897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410822202.4A Active CN105791160B (zh) | 2014-12-25 | 2014-12-25 | 软件定义网络中事务的处理方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105791160B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110032176A (zh) * | 2019-05-16 | 2019-07-19 | 广州文远知行科技有限公司 | 无人驾驶汽车的远程接管方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103457770A (zh) * | 2013-08-30 | 2013-12-18 | 华为技术有限公司 | 网络事务控制方法及执行方法及网络控制器及转发设备 |
CN104052687A (zh) * | 2014-06-23 | 2014-09-17 | 杭州华三通信技术有限公司 | 一种sdn交换机控制方法和装置 |
WO2014187369A1 (zh) * | 2013-07-23 | 2014-11-27 | 中兴通讯股份有限公司 | 时间同步处理方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9071529B2 (en) * | 2012-10-08 | 2015-06-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for accelerating forwarding in software-defined networks |
US9160650B2 (en) * | 2013-06-17 | 2015-10-13 | Futurewei Technologies, Inc. | Enhanced flow entry table cache replacement in a software-defined networking switch |
-
2014
- 2014-12-25 CN CN201410822202.4A patent/CN105791160B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014187369A1 (zh) * | 2013-07-23 | 2014-11-27 | 中兴通讯股份有限公司 | 时间同步处理方法及装置 |
CN103457770A (zh) * | 2013-08-30 | 2013-12-18 | 华为技术有限公司 | 网络事务控制方法及执行方法及网络控制器及转发设备 |
CN104052687A (zh) * | 2014-06-23 | 2014-09-17 | 杭州华三通信技术有限公司 | 一种sdn交换机控制方法和装置 |
Non-Patent Citations (1)
Title |
---|
网络控制系统的状态估计研究综述;张礼莉;《万方数据库》;20140411;正文第1页右列第7行-第2页左列第4行 |
Also Published As
Publication number | Publication date |
---|---|
CN105791160A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190228303A1 (en) | Method and apparatus for scheduling resource for deep learning framework | |
US11327945B2 (en) | Method and device for storing high-concurrency data | |
CN106815066B (zh) | 一种定时任务调度方法、装置及系统 | |
US11416313B2 (en) | Equipment control method, cluster system , electronic device and readable storage medium | |
CN108304260B (zh) | 一种基于高性能云计算的虚拟化作业调度系统及其实现方法 | |
JP2019102064A (ja) | スマート装置のタスク処理方法および装置 | |
US9852220B1 (en) | Distributed workflow management system | |
EP4300323A1 (en) | Data processing method and apparatus for blockchain network, computer device, computer readable storage medium, and computer program product | |
CN110888858B (zh) | 数据库的操作方法和装置、存储介质、电子装置 | |
CN102904961A (zh) | 一种云计算资源调度方法及系统 | |
CN109766201A (zh) | 任务分发方法、服务器、客户端和系统 | |
CN108702370A (zh) | 用于网络技术的多流交织 | |
CN103281356A (zh) | 一种分发文件的方法及系统 | |
CN104881485A (zh) | 一种数据同步方法及系统 | |
CN115576684A (zh) | 任务处理方法、装置、电子设备及存储介质 | |
CN111163140A (zh) | 资源获取和分配的方法、装置和计算机可读存储介质 | |
CN103299298B (zh) | 处理业务的方法和系统 | |
CN105791160B (zh) | 软件定义网络中事务的处理方法、设备及系统 | |
CN116304390B (zh) | 时序数据处理方法、装置、存储介质及电子设备 | |
CN105117401A (zh) | 一种并行传输图片的方法、装置及系统 | |
CN103761106A (zh) | 流程的控制方法及流程引擎 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理系统以及处理装置 | |
US9887928B2 (en) | System and method for identifying performance characteristics in asynchronous networks | |
CN111245909B (zh) | 分布式动态调度方法、装置、电子设备及存储介质 | |
CN103686224A (zh) | 基于分布式锁的转码任务获取的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |