一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

Hello报文传输方法、装置和可读存储介质与流程

2021-10-27 13:46:00 来源:中国专利 TAG:报文 传输 装置 可读 方法

hello报文传输方法、装置和可读存储介质
技术领域
1.本技术涉及通信领域,尤其涉及一种hello报文传输方法、装置和可读存储介质。


背景技术:

2.软件定义网络(software defined network,sdn)可以将网络控制面以软件方式实现。该网络可使网络管理员在不改动硬件设备的前提下,以中央控制方式用程序重新规划网络,为控制网络流量提供了新方案,也为核心网络和应用创新提供了良好平台。在该网络架构中,被独立出来的设备的控制面,可以称为控制器,设备本身可以作为转发器。一个控制器可控制多达几百个设备,控制器可以对设备进行一些配置。
3.网络配置协议(the network configuration protocol,netconf)是rfc6241中定义的一种提供网络数据设备配置管理的协议,可以采用可扩展标记语言(xml)传递数据以及协议信息。netconf协议可以应用于sdn网络架构中,根据netconf协议规定,在控制器和设备之间建立链接时,需要双方互相向对端发送hello报文。
4.在实际应用中,设备会与控制器之间可能会断开链接,断开链接的原因可能是设备离线,也可能是网络抖动。一种方案中规定,若设备与控制器之间断开链接的时长大于阈值,则确定设备离线,这种情况下控制器会将本地存储的该设备的相关数据删除。若该设备再次与控制器之间建立链接,则需要将设备的数据同步至控制器。另一种情况中,若设备与控制器之间断开链接的时长不大于阈值,则确定断开链接的原因是发生了网络抖动,这种情况下会认为控制器并未对设备失去控制,控制器的本地存储区所存储的设备的相关数据与设备上的数据是一致的,设备与控制器之间通过hello报文重新建立链接即可,无需再进行数据同步。
5.在上述方案中,若将阈值设置的较小,则需要执行数据同步的设备数量较大。为了避免将大量的网络资源浪费在数据同步上,可以将阈值设置的较大,这是这样在网络抖动的情况下,设备与控制器之间数据不一致的风险随之增高。


技术实现要素:

6.本技术实施例提供一种hello报文传输方法、装置和可读存储介质,用于在设备与控制器重连的情况下,降低设备与控制器之间数据不一致的概率。
7.第一方面,本技术实施例提供一种hello报文传输方法,该方法中控制器向目标设备发送第一hello报文;控制器接收目标设备发送的第二hello报文,其中,第二hello报文是目标设备在接收到第一hello报文后发送的,第二hello报文中携带m项参数项中每项参数项的第二参数值,m项参数项中每项参数项的第二参数值是基于目标设备存储的第二数据的第二属性信息得到的,m为正整数。控制器根据本地存储的目标设备对应的第一数据的第一属性信息,确定出m项参数项中每项参数项的第一参数值,根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性,在确定第一数据和第二数据一致的情况下,与目标设备建立链接。如此,可以在hello报文的交互过程
中,完成对第一数据和第二数据一致性的确认,从而可以降低目标设备与控制器之间数据不一致的概率。在一种可能地实施方式中,m项参数项可以包括以下内容中的一项或多项:目标设备已传输消息中最后一条消息的序列号;目标设备已传输消息中最后一条消息的时间戳;目标设备存储的第一配置参数对应的第一校验码;其中,第一校验码是根据预设第一校验算法对第一配置参数进行校验计算得到的;目标设备的数据库中存储的第二配置参数对应的第二校验码;其中,第二校验码是根据预设第二校验算法对第二配置参数进行校验计算得到的;目标设备最近一次修改数据库的时间戳。如此,根据该m项参数项可以提高确定第一数据和第二数据一致的正确率。
8.在一种可能地实施方式中,第二hello报文中可以携带n项参数项的参数值,(n-m)项参数项为n项参数项中除m项参数项之外的参数项,n为不小于m的正整数。(n-m)项参数项的参数值用于使控制器指示目标设备是否将最近一次收到的配置参数存储至数据库。在一种可能地实施方式中,(n-m)项参数项可以包括以下内容中的一项或多项:目标设备是否将最近一次收到的配置参数存储至数据库;目标设备最近一次重启的时间戳;目标设备在收到最近一条配置消息之后是否重启过;目标设备在最近一次重启后是否收到过配置消息。如此,在该n-m项参数项的辅助下,可以进一步提高确定第一数据和第二数据一致的正确率。
9.在一种可能地实施方式中,第一hello报文中还可以包括第一指示信息,第一指示信息用于指示n个参数项。如此,可以由控制器来指定n个参数项的具体内容,从而可以提高方案的灵活性。
10.在一种可能地实施方式中,当n项参数项仅包括m项参数项,且m项参数项的第二参数值与m项参数项的第一参数值分别相同时,控制器可以确定第一数据和第二数据一致。在另一种可能地实施方式中,当n项参数项除包括m项参数项之外还包括其它参数项,且m项参数项的第二参数值与m项参数项的第一参数值分别相同,以及(n-m)项参数项的参数值指示目标设备将最近一次收到的配置参数存储至数据库,控制器可以确定第一数据和第二数据一致。
11.在一种可能地实施方式中,第一hello报文中还可以包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;第一hello报文中还可以包括:第三指示信息;第三指示信息用于指示:在s个yang模型为目标设备支持的k个yang模型的子集或全集的情况下,目标设备将第三能力指示信息携带于第二hello报文;k为正整数;其中,第三能力指示信息用于指示目标设备支持的s个yang模型。如此,可以提高控制器与目标设备建立链接的成功率。
12.在一种可能地实施方式中,第三指示信息还用于指示:在s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集的情况下,目标设备将第二能力指示信息携带于第二hello报文;其中,第二能力指示信息用于指示目标设备支持的k个yang模型。如此,可以兼容现有技术。
13.在一种可能地实施方式中,第三指示信息还用于指示:在s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集的情况下,目标设备可以不需要再反馈第二hello报文。如此,可以提高方案的灵活性。
14.第二方面,本技术实施例提供一种hello报文传输方法,该方法中目标设备接收控
制器发送的第一hello报文;目标设备根据目标设备存储的第二数据的第二属性信息,确定出m项参数项中每项参数项的第二参数值,m为正整数;目标设备向控制器发送第二hello报文,第二hello报文中携带m项参数项中每项参数项的第二参数值;其中,m项参数项的第二参数值用于使控制器根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性,并在第一数据和第二数据一致的情况下,与目标设备建立链接;其中,m项参数项中每项参数项的第一参数值是基于控制器本地存储的目标设备对应的第一数据的第一属性信息得到的。如此,可以在hello报文的交互过程中,完成对第一数据和第二数据一致性的确认,从而可以降低目标设备与控制器之间数据不一致的概率。在一种可能地实施方式中,m项参数项可以包括以下内容中的一项或多项:目标设备已传输消息中最后一条消息的序列号;目标设备已传输消息中最后一条消息的时间戳;目标设备存储的第一配置参数对应的第一校验码;其中,第一校验码是根据预设第一校验算法对第一配置参数进行校验计算得到的;目标设备的数据库中存储的第二配置参数对应的第二校验码;其中,第二校验码是根据预设第二校验算法对第二配置参数进行校验计算得到的;目标设备最近一次修改数据库的时间戳。如此,可以根据该m项参数项可以提高确定第一数据和第二数据一致的正确率。
15.在一种可能地实施方式中,第二hello报文中可以携带n项参数项的参数值,(n-m)项参数项为n项参数项中除m项参数项之外的参数项,n为不小于m的正整数;(n-m)项参数项的参数值用于使控制器指示目标设备是否将最近一次收到的配置参数存储至数据库。在一种可能地实施方式中,(n-m)项参数项可以包括以下内容中的一项或多项:目标设备是否将最近一次收到的配置参数存储至数据库;目标设备最近一次重启的时间戳;目标设备在收到最近一条配置消息之后是否重启过;目标设备在最近一次重启后是否收到过配置消息。如此,在该n-m项参数项的辅助下,可以进一步提高确定第一数据和第二数据一致的正确率。
16.在一种可能地实施方式中,第一hello报文中还可以包括第一指示信息,第一指示信息用于指示n个参数项。如此,可以由控制器来指定n个参数项的具体内容,从而可以提高方案的灵活性。
17.在一种可能地实施方式中,第一hello报文中还可以包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;第一hello报文中还可以包括第三指示信息;第三指示信息用于指示:在s个yang模型为目标设备支持的k个yang模型的子集或全集的情况下,目标设备将第三能力指示信息携带于第二hello报文;k为正整数;其中,第三能力指示信息用于指示目标设备支持的s个yang模型。如此,可以提高控制器与目标设备建立链接的成功率。
18.在一种可能地实施方式中,第一hello报文中还可以包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;目标设备接收第一hello报文之后,发送第二hello报文之前,目标设备还可以确定出目标设备支持的k个yang模型;目标设备若确定s个yang模型为k个yang模型的子集或全集,则在第二hello报文中携带第三能力指示信息;其中,第三能力指示信息用于指示目标设备支持的k个yang模型中的s个yang模型。如此,可以兼容现有技术。
19.在一种可能地实施方式中,目标设备接收第一hello报文之后,发送第二hello报
文之前,还可以在确定s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集时,在第二hello报文中携带第二能力指示信息;其中,第二能力指示信息用于指示目标设备支持的k个yang模型。如此,可以提高方案的灵活性。
20.相应于第一方面至第二方面任一种方法,本技术还提供了一种通信装置。该通信装置可以是以无线方式进行数据传输的任意一种发送端的目标设备或接收端的目标设备。例如,通信芯片、上述内容中提到的控制器或者目标设备等。在通信过程中,发送端的目标设备和接收端的目标设备是相对的。在某些通信过程中,通信装置可以作为上述控制器或可用于控制器的通信芯片;在某些通信过程中,通信装置可以作为上述目标设备或可用于目标设备的通信芯片。
21.第三方面,提供了一种通信装置,包括通信单元和处理单元,以执行上述第一方面至第二方面任一种方法中的任一种实施方式。通信单元用于执行与发送和接收相关的功能。可选地,通信单元可以包括接收单元和发送单元。在一种设计中,通信装置可以为通信芯片,通信单元可以为通信芯片的输入输出电路或者端口。在另一种设计中,通信单元还可以为发射器和接收器,或者为发射机和接收机。
22.可选的,通信装置还可以包括可用于执行上述第一方面至第二方面任一种方法中的任一种实施方式的各个模块。
23.第四方面,提供了一种通信装置,该通信装置可以为上述目标设备或控制器。包括处理器和存储器。可选的,还包括通信接口,该存储器用于存储计算机程序或指令,该处理器用于从存储器中调用并运行该计算机程序或指令,当处理器执行存储器中的计算机程序或指令时,使得该通信装置可以通过通信接口执行上述第一方面至第二方面任一种方法中的任一种实施方式。
24.可选的,处理器可以为一个或多个,存储器可以为一个或多个。
25.可选的,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
26.可选的,通信接口可以为输入输出电路或者端口,还可以为发射器和接收器,或者为发射机和接收机。
27.第五方面,提供了一种通信装置,包括处理器。该处理器与存储器耦合,可用于执行第一方面至第二方面任一方面,以及第一方面至第二方面中任一种可能实现方式中的方法。可选地,该通信装置还包括存储器。可选地,该通信装置还包括通信接口,处理器与通信接口耦合。
28.在一种实现方式中,该通信装置可以为用于执行上述第二方面任一种方法的目标设备。当该通信装置为目标设备时,通信接口可以是收发器,或为输入/输出接口。可选地,收发器可以为收发电路。可选地,输入/输出接口可以为输入/输出电路。
29.在另一种实现方式中,该通信装置可以为用于执行上述第一方面任一种方法的控制器。当该通信装置为控制器时,通信接口可以是收发器,或为输入/输出接口。可选地,收发器可以为收发电路。可选地,输入/输出接口可以为输入/输出电路。
30.在又一种实现方式中,该通信装置还可以为芯片或芯片系统。当该通信装置为芯片或芯片系统时,通信接口可以是该芯片或芯片系统上的输入/输出接口、接口电路、输出电路、输入电路、管脚或相关电路等。处理器也可以体现为处理电路或逻辑电路。
31.第六方面,提供了一种系统,该系统包括用于执行上述第二方面任一种方法的目
标设备和用于执行上述第一方面任一种方法的控制器。
32.第七方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法,或者使得计算机执行上述第二方面任一种实现方式中的方法。
33.第八方面,提供了一种计算机可读存储介质,计算机可读介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法,或者使得计算机执行上述第二方面任一种实现方式中的方法。
34.第九方面,提供了一种处理装置,包括:输入电路、输出电路和处理电路。处理电路用于通过输入电路接收信号,并通过输出电路发射信号,使得第一方面至第二方面任一方面,以及第一方面至第二方面中任一种可能实现方式中的方法被实现。
35.在具体实现过程中,上述处理装置可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入信号可以是由接收器接收并输入的,输出电路所输出的信号可以是输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本技术实施例对处理器及各种电路的具体实现方式不做限定。
附图说明
36.图1为本技术实施例适用的一种系统架构示意图;
37.图2为一种基于netconf协议的hello报文的传输方法;
38.图3为另一种基于netconf协议的hello报文的传输方法;
39.图4为一种通信装置的结构示意图;
40.图5为另一种通信装置的结构示意图;
41.图6为另一种通信装置的结构示意图。
具体实施方式
42.图1为本技术实施例适用的一种可能的sdn系统架构示意图。如图1所示的sdn系统架构包括一个控制器101和一个或多个设备,例如图1中所示的设备102、设备103和设备104。本技术实施例中控制器101也可以称为客户端sdn控制器,英文可以写为client sdn controller。设备也可以称为服务器端设备,服务器端设备也可以称为服务端光线路终端(optical line terminal,olt)/分散处理单元(distributed processing unit,dpu)设备,英文可以写为server olt/dpu devices。本技术实施例中的控制器与设备之间可以通过有线方式或无线方式连接。
43.基于上述内容,图2示例性示出了一种基于netconf协议的hello报文的传输方法,如图2所示,包括:
44.步骤201,控制器确定将要与之建立连接的目标设备,并查询控制器上之前是否添加过该目标设备。
45.为了更加清楚的介绍本技术实施例提供的方案,本技术实施例中有些地方将需要与控制器建立连接的设备称为目标设备。
46.经查询,若控制器之前未添加过该目标设备,即控制器之前没有与该目标设备建立过链接,则执行步骤202,流程结束;经查询,若控制器之前已添加过该目标设备,即控制器之前与该目标设备建立过链接,则执行步骤203。
47.在步骤201中,该目标设备可以是之前从未建立过连接的目标设备,由管理人员人为新添加的。也可以是之前与控制器建立链接的一个目标设备,由于一些原因该目标设备与控制器之间的链路中断了,当确定目标设备满足重连条件时,控制器确定将要与该目标设备之间建立连接。
48.其中,重连条件的判断过程可以如:控制器与目标设备之间因断链导致断开,断链原因可以为物理通信线路中断或目标设备电源被关闭等,当物理通信线路重新连接,或目标设备重新上电,控制器与目标设备之间可以重新尝试建立链接。
49.在本技术实施例中,与控制器建立过链接的目标设备,控制器上会存储有与控制器建立过链接的目标设备的标识,例如可以将目标设备的标识存储至控制器的数据库中。在步骤201中可以通过查询这些历史数据以确认控制器与该目标设备之前是否建立过链接。
50.本技术实施例中,可以设定一个时长阈值,当控制器与目标设备之间断开链接的时长大于时长阈值,则可以从控制器上将该目标设备的相关数据删除,这种情况下,若该目标设备要重新与控制器之间建立连接,则通过上述步骤201就查询不到该目标设备的标识,进而需要执行步骤202。该时长阈值也可以称为老化时间。
51.本技术实施例中上述步骤中时长阈值可以设置的较长,如此,若一个目标设备与控制器之间断开链接的时长大于时长阈值,则控制器将控制器本地存储的该目标设备对应的数据删除,从而可以释放控制器上的存储空间。且由于时长阈值设置的较长,因此可以减少因网络抖动而删除控制器中目标设备相关数据的可能性,从而可以减少目标设备离线后删除数据的次数,降低平均恢复时间。且由于本技术实施例中可以通过hello报文携带的信息进行一致性判断,因此,即使时长阈值设置的较长,也可以降低目标设备与控制器之间数据不一致的概率。
52.本技术实施例图2提供的方案适用于网络抖动情况下目标设备的重选连接,若在步骤201中,经查询,控制器之前添加过该目标设备,则需要进一步确定该目标设备与控制器之间断开链接的原因是否是因为网络抖动。若经查询,控制器之前并未添加该目标设备,则结束流程,即无需再执行本技术实施例提供的防抖流程,直接结束流程,后续可以对该目标设备不做任何处理,也可以通过与一个目标设备第一次建立链接的流程与该目标设备之间建立链接,本技术实施例不做限制。
53.步骤203,控制器向目标设备发送第一hello报文。相对应地,目标设备接收控制器发送的第一hello报文。
54.本技术实施例中,控制器和目标设备之间互发hello报文,可以基于多种协议,例如基于netconf协议。本技术实施例中以基于netconf协议互发hello报文为例进行介绍。为了区别,本技术实施例中将控制器向目标设备发送的hello报文称为第一hello报文,将目标设备向控制器发送的hello报文称为第二hello报文。
55.本技术实施例中可以是基于netconf协议进行hello报文互发的。下表1示例性示出了一种netconf协议规定的hello报文的结构形式,如表1所示,hello报文的净荷区域可
以包括两个字段:能力集(capabilities)字段和会话(sessions)字段。
56.其中,能力集(capabilities)字段用于承载能够指示yang模型的指示信息。在本实施例中,本方法以模型为中心,支持使用不同配置模型的目标设备接入同一个控制器,有利于控制器管理跨厂商目标设备。在本实施例中,以yang(yet another next generation)模型为例进行说明。会话(sessions)字段用于承载会话信息,本技术实施例中会话信息是指会话标识(identification,id),用于指示承载该会话信息的hello报文对应的传输通道的标识。本技术实施例中为了描述方便,将控制器发出的hello报文称为第一hello报文,将目标设备发出的hello报文称为第二hello报文。
57.表1:基于netconf协议的hello报文的形式
[0058][0059]
本技术实施例中可以提供两种第一hello报文的结构形式,其中,下表2中提供了一种第一hello报文的结构形式,如表2所示,基于netconf协议,第一hello报文中包括第一能力集(capabilities)字段和第一会话(sessions)字段。第一能力集(capabilities)字段用于承载第一能力指示信息,第一会话(sessions)字段用于承载第一会话信息。第一能力指示信息中用于指示控制器支持的一个或多个yang模型。第一会话信息用于指示控制器发送第一hello报文所使用的传输通道的标识。
[0060]
表2:一种第一hello报文的形式
[0061][0062]
表3中提供了另一种第一hello报文的结构形式,如下表3所示,第一hello报文中除了包括第一能力集(capabilities)字段和第一会话(sessions)字段之外。还可以包括第一扩展字段,第一扩展字段可以承载第一指示信息,第一指示信息用于指示n个参数项。
[0063]
表3:另一种第一hello报文的形式
[0064][0065]
上述表2和表3分别展示了两种第一hello报文的形式,也就是说,第一hello报文中可以携带第一指示信息,第一指示信息指示n个参数项,也可以不携带。一种可能地实施方式中,若n个参数项是控制器和目标设备提前协商的,则第一hello报文中无须携带第一指示信息,目标设备也知道n个参数项具体是什么,这种情况下,第一hello报文中可以携带也可以不携带第一指示信息。另一种可能地实施方式中,若之前目标设备与控制器之间并
未协商该n个参数项,或者之前协商参数项与该n个参数项并不完全相同(例如之前协商的参数项中的至少一项与该n个参数项中的每项不同),则可以在第一hello报文中携带第一指示信息,以使目标设备返回的第二hello报文中携带第一指示信息指示的n个参数项分别对应的参数值。
[0066]
步骤204,目标设备生成第二hello报文。其中,目标设备查询n项参数项的参数值,并将其携带至第二hello报文。n项参数项中的m项参数项的参数值用于指示目标设备存储的第二数据对应的第二属性信息。n为正整数,m为不大于n的正整数。
[0067]
一种方式中,如果第一hello报文携带第一指示信息,则目标设备可以根据第一指示信息指示的n个参数项,查询n个参数项分别对应的参数值,具体地,可以根据目标设备当前存储的第二数据的第二属性信息确定n个参数项分别对应的参数值。另一种方式中,若n个参数项是控制器和目标设备提前协商好的,则目标设备接收到第一hello报文之后,可以直接查询n个参数项分别对应的参数值。
[0068]
为了后续内容容易区别,本技术实施例中将基于目标设备存储的第二数据对应的第二属性信息得到的m项参数项中每项参数项的参数值称为该项参数项的第二参数值,即第二hello报文中携带的是m项参数项中每项参数项的第二参数值。而将后续内容涉及到的根据控制器本地存储的目标设备对应的第一数据的第一属性信息得到的m项参数项中每项参数项的参数值称为第一参数值。需要说明的是,本技术实施例中m项参数项中每项参数项均对应一个第一参数值和一个第二参数值,该一个参数项的第一参数值和第二参数值可能相同,也可能不同。而针对m项参数项中的两项不同的参数项,该两项不同的参数项对应的两个第一参数值并不是指同一个值,仅仅是将基于第一数据的第一属性信息得到的该两项参数项的参数值称为该两项参数项对应的两个第一参数值而已。类似的,而针对m项参数项中的两项不同的参数项,该两项不同的参数项对应的两个第二参数值并不是指同一个值,仅仅是将基于第二数据的第二属性信息得到的该两项参数项的参数值称为该两项参数项对应的两个第二参数值而已。
[0069]
举个例子,m项参数项包括:目标设备已传输消息中最后一条消息的序列号。目标设备从目标设备的本地存储区可以找到已传输消息中最后一条消息的序列号为参数项“目标设备已传输消息中最后一条消息的序列号”的第一参数值。而控制器从控制器本地存储区可以找到的设备已传输消息中最后一条消息的序列号为参数项“目标设备已传输消息中最后一条消息的序列号”的第二参数值。可以看出,目标设备所存储的最后一条消息与控制器的本地存储区所存储的设备对应的最后一条消息可能并不是同一条消息,也可能是同一条消息,因此,参数项“目标设备已传输消息中最后一条消息的序列号”对应的第一参数值和第二参数值可能不同,也可能相同。
[0070]
再举个例子,m项参数项包括:目标设备已传输消息中最后一条消息的序列号;以及目标设备已传输消息中最后一条消息的时间戳这两个参数项。目标设备从目标设备的本地存储区可以找到已传输消息中最后一条消息的序列号为参数项“目标设备已传输消息中最后一条消息的序列号”的第一参数值。目标设备从目标设备的本地存储区可以找到已传输消息中最后一条消息的时间戳为参数项“目标设备已传输消息中最后一条消息的时间戳”的第一参数值。可以看出,针对该示例中两个参数项分别对应的两个第一参数值,其中一个参数项的第一参数值是序列号,另一个参数项的第一参数值是时间戳,也就是说,本申
请实施例中,将目标设备基于目标设备本地存储的第一数据的第一属性信息得到的参数值都称为第一参数值,而两个参数项对应的两个参数值是可以不同的。
[0071]
基于上述内容,下表4中提供了一种第二hello报文的结构形式,如表4所示,基于netconf协议,第二hello报文中包括第二能力集(capabilities)字段和第二会话(sessions)字段。第二能力集(capabilities)字段用于承载第二能力指示信息,第二会话(sessions)字段用于承载第二会话信息。第二能力指示信息中用于指示目标设备支持的一个或多个yang模型。第二会话信息用于指示目标设备发送第二hello报文所使用的传输通道的标识。
[0072]
进一步,本技术实施例中可以在第二hello报文中增加一个字段,为了描述方便,本技术实施例中将该字段称为第二扩展字段,该第二扩展字段用于承载n项参数的参数值。也可以将第二扩展字段称为防抖字段。
[0073]
表4:一种第二hello报文的形式
[0074][0075]
为了描述方便,本技术实施例中将目标设备上存储的数据称为第二数据,将控制器上存储的该目标设备对应的数据称为第一数据,本技术实施例中将第二数据对应的属性信息称为第二属性信息,将第一数据对应的属性信息称为第一属性信息。其中,一个数据的属性信息包括能够反映该数据的特征的一些信息,具体可以包括哪几项内容将在后续详细介绍,在此不再赘述。由于n项参数项中m项参数项的参数值可以用于指示目标设备存储的第二数据对应的第二属性信息,因此,控制器可以基于n项参数项的参数值确定第一数据和第二数据的一致性。
[0076]
步骤205,目标设备向控制器发送第二hello报文。相对应地,控制器接收目标设备发送的第二hello报文。
[0077]
步骤206,控制器根据本地存储的目标设备对应的第一数据的第一属性信息,以及第二hello报文中携带的n个参数项的参数值,确定第一数据和第二数据的一致性,若确定第一数据与第二数据一致,则进入步骤207;若无法确定第一数据和第二数据一致,则进入步骤208。具体的确定第一数据和第二数据的一致性,下述内容将进行详细描述。
[0078]
步骤207,控制器判定第一数据与第二数据一致。
[0079]
基于步骤207可以看出,本技术实施例中可以在hello报文的交互过程中确认数据的一致性,若第一数据与第二数据一致,则控制器可以确定此次目标设备与控制器之间断开链接的原因是发生了网络抖动,控制器可以与目标设备之间重新建立链接。
[0080]
步骤208,控制器不能确定第一数据和第二数据一致。步骤208也可以描述为控制器无法确定第一数据与第二数据是否一致。
[0081]
基于步骤208可以看出,本技术实施例中可以在hello报文的交互过程中确认数据的一致性,若无法确定第一数据与第二数据一致,则控制器不能将此次断链原因归为网络抖动,这种情况下,若后续控制器和目标设备之间还想建立链接,则可以通过与一个目标设
备第一次建立链接的流程与该目标设备之间建立链接,也可以与该目标设备之间执行数据同步等流程,本技术实施例不做限制。
[0082]
通过上述内容可以看出,第一方面,本技术实施例中由于目标设备向控制器发送的第二hello报文中携带n项参数项的参数值,n项参数项中的m项参数项的参数值用于指示目标设备存储的第二数据对应的第二属性信息,如此,控制器可以根据本地存储的目标设备对应的第一数据的第一属性信息,以及n个参数项的参数值,对第一数据和第二数据进行数据一致性的判断。可以看出,本技术实施例中通过hello报文携带的信息可以进行数据一致性判断,从而可以降低目标设备与控制器之间数据不一致的概率。
[0083]
第二方面,基于一种对比方案来说明书本技术实施的有益效果,其中,对比方案如下:
[0084]
控制器与目标设备之间互发hello报文(hello报文的格式与上述表1所示的协议中规定格式相同,并未新增字段);控制器对收到的hello报文进行处理后,若确定与目标设备之间成功建立链接,则继续向目标设备发起请求,以从目标设备上获取目标设备上存储的数据;控制器根据获取到的数据执行数据一致性的判断,若控制器上存储的目标设备对应的数据与目标设备上存储的数据不一致,则再次确定之前通过hello报文建立的链接建链失败。
[0085]
针对该对比方案来说,由于现有的协议中规定,控制器接收到目标设备返回的hello报文,并对hello报文进行处理后,确定控制器与目标设备之间建立链接成功或是失败。而提到的这种方案中,先是根据hello报文判断建立链接成功了,后面在数据不一致的情况下,又判断建立链接失败了,该对比方案改变了双方互发<hello>且协商成功后,认为链接建立成功的常识认知。这种方案并不能完全切合现有协议制定的业务逻辑,这种方案可能会导致如下问题:
[0086]
当控制器与目标设备之间互发hello报文,且建立链接成功,此时已完成防抖判断,且会话已经可用,控制器可以向该目标设备发送了配置消息,但是随后控制器又在执行数据一致性判断的过程中,确定之前与目标设备之间建立的链接是失败的。
[0087]
可见,上述对比方案会导致控制器和目标设备上的事务处理的逻辑混乱。若想要上述对比方案不引起控制器和目标设备上事务处理的逻辑混乱,则需要修改协议,以使控制器和目标设备均遵循上述流程,即统一在控制器收到hello报文之后,并且在又从目标设备获取目标设备存储的数据之后,且对数据进行一致性判断之后,再确定控制器与目标设备之间建立链接是否成功。如此,对协议的改动太大。
[0088]
而本技术实施例中,是将n项参数项的参照值携带于第二hello报文中,数据一致性的判断也是在对第二hello报文的处理流程中进行的。因此,并未对现有协议的处理逻辑进行修改,仅仅是对第二hello报文中增加了一个字段,当控制器第二hello报文完成处理之后,即可以确定此次建立链接是否成功,符合双方互发<hello>且协商成功后,认为链接建立成功的常识认知,可以大大加强系统的可靠性与兼容性。
[0089]
在上述步骤204中,n项参数项中分为两种类型:第一种类型的参数项和第二种类型的参数项。其中,第一种类型的参数项为上述内容提到的m项参数项,该m项参数项中的各项参数项分别对应的参数值用于指示目标设备存储的第二数据对应的第二属性信息。第二种类型的参数项可以为n项参数项中除m项参数项之外的其他参数项,第二种类型的参数项
用于指示目标设备工作状态的相关参数。(n-m)项参数项的参数值可以用于使控制器指示目标设备是否将最近一次收到的配置参数存储至数据库。
[0090]
示例性的,第一种类型的参数项可以但不限于包括如下参数项a3、参数项a1、参数项a2和参数项a4中的至少一项。
[0091]
参数项a1:目标设备存储的第一配置参数对应的第一校验码。
[0092]
其中,第一校验码是根据预设第一校验算法对第一配置参数进行校验计算得到的。具体来说,参数项a1的第一参数值是目标设备根据第一校验算法对目标设备存储的配置参数进行校验计算得到的第一校验码。参数项a1的第二参数值是控制器根据第一校验算法对控制器上存储的目标设备的配置参数进行校验计算得到的第一校验码。
[0093]
在一种可能地实施方式中,当参数a1的第一参数值与第二参数值相同,则可以确定参数项a1的第一参数值和第二参数值匹配,否则,则认为不匹配。
[0094]
在具体实施中,目标设备接收配置消息,并根据配置消息中的配置参数进行配置。目标设备可能会将配置参数保存至数据库中,也可能会将配置参数保存至其他存储区,例如缓存区中等。在上述参数项a1中,第一配置参数可以包括目标设备的数据库以及其它存储区(例如缓存区)存储的所有配置参数。
[0095]
参数项a2,目标设备的数据库中存储的第二配置参数对应的第二校验码。其中,第二校验码是根据预设第二校验算法对第二配置参数进行校验计算得到的。具体来说,参数项a2的第一参数值是目标设备根据第二校验算法对目标设备存储的配置参数进行校验计算得到的第二校验码。参数项a2的第二参数值是控制器根据第二校验算法对控制器上存储的目标设备的配置参数进行校验计算得到的第二校验码。
[0096]
在一种可能地实施方式中,目标设备在计算参数项a1和参数项a2的参数值时,虽然针对的对象都是目标设备本地存储的配置参数,但是,可以是目标设备不同区域存储的配置参数。比如,在参数项a1中,目标设备计算参数项a1所采用的是目标设备的数据库以及其它存储区(例如缓存区)存储的所有配置参数。在参数项a2中,目标设备计算参数项a2所采用的是目标设备的数据库存储的配置参数。本技术实施例中为了区分参数项a1和参数项a2中配置参数的不同,将参数项a1中目标设备采用的配置参数称为第一配置参数,将参数项a2中目标设备采用的配置参数称为第二配置参数。需要说明的是,针对控制器侧,控制器在计算参数项a1和参数项a2的第二参数值时,所采用的都是控制器本地存储的目标设备的配置参数。
[0097]
在一种可能地实施方式中,当参数a2的第一参数值与第二参数值相同,则可以确定参数项a3的第一参数值和第二参数值匹配,否则,则认为不匹配。
[0098]
在参数项a1和参数项a2中,第一校验算法和第二校验算法可以相同,也可以不同。第一校验算法或第二校验算法可以包括如下内容中的一项或多项:消息摘要算法第五版(message digest algorithm5,md5)、安全散列算法(secure hash algorithm,sha)等散列(hash)算法、循环冗余校验(cyclic redundancy check,crc)等,第一校验算法或第二校验算法也可以包括其它校验码算法,本发明实施例对此不作具体限定。
[0099]
本技术实施例中,控制器或其他目标设备会向目标设备发送配置消息,配置消息中可以携带一些配置参数,用于使目标设备根据配置参数进行配置。在参数项a1和参数项a2中,本技术实施例中提到的第一配置参数和第二配置参数包括但不限于以下内容:路由
配置参数、防火墙配置参数、负载均衡配置参数、组网配置参数、虚拟局域网配置参数(virtual local area network,vlan)和/或网际协议(internet protocol,ip)地址等参数。
[0100]
参数项a3:目标设备已传输消息中最后一条消息的序列号和/或时间戳。
[0101]
具体来说,目标设备可以从目标设备的本地存储区找到当前所存储的所有消息中的最后一条消息,该最后一条消息的序列号和/或时间戳即为参数项a3的第一参数值。控制器可以从控制器的本地存储区找到当前所存储的目标设备对应的所有消息中的最后一条消息,该最后一条消息的序列号和/或时间戳即为参数项a3的第二参数值。
[0102]
其中,在参数项a3中,目标设备可能与控制器或其他目标设备之间传输消息,通过参数项a3的内容可以判断出目标设备上存储的最后一条消息与控制器上存储的该目标设备对应的数据中的最后一条消息是否是同一条消息。
[0103]
在一种可能地实施方式中,当参数项a3为目标设备已传输消息中最后一条消息的序列号,则当参数a3的第一参数值与第二参数值相同,则可以确定参数项a3的第一参数值和第二参数值匹配,否则,则认为不匹配。
[0104]
在另一种可能地实施方式中,当参数项a3为目标设备已传输消息中最后一条消息的时间戳,则当参数a3的第一参数值与第二参数值的差值的绝对值在一定的时长范围内,则可以确定参数项a4的第一参数值和第二参数值匹配,否则,则认为不匹配。
[0105]
参数项a4:目标设备最近一次修改数据库的时间戳。
[0106]
在具体实施中,目标设备接收配置消息,并根据配置消息中的配置参数进行配置。目标设备可能会将配置参数保存至数据库中,当目标设备将数据保存至数据库中时,会对数据库进行修改,参数项a4可以是指目标设备最近一次修改数据库(向数据库中存储数据,或者修改数据库中的数据)的时间戳,该时间戳的值即为参数项a4的第一参数值。
[0107]
相对应地,控制器从控制器的本地存储区找到设备对应的所有配置消息中的最后一条配置消息,该配置消息的时间戳的值即为参数项a4的第二参数值。
[0108]
在一种可能地实施方式中,当参数a4的第一参数值与第二参数值的差值的绝对值在一定的时长范围内,则可以确定参数项a4的第一参数值和第二参数值匹配,否则,则认为不匹配。
[0109]
其中,第二种类型的参数项可以包括如下参数项b1和参数项b2。
[0110]
参数项b1:目标设备是否将最近一次收到的配置参数存储至数据库。
[0111]
举个例子,目标设备可以根据系统设置的参数来确定参数项b1的第一参数值,例如,若系统设置的参数规定“目标设备将每次收到的配置参数均存储至数据库”,则参数项b1的第一参数值为:“目标设备将最近一次收到的配置参数存储至数据库”。否则,则参数项b1的第一参数值为:“目标设备未将最近一次收到的配置参数存储至数据库”。
[0112]
再举个例子,目标设备可以根据历史记录确定参数项b1的第一参数值,比如,若历史记录中显示“目标设备将最近一次收到的配置参数存储至数据库”,则参数项b1的第一参数值为:“目标设备将最近一次收到的配置参数存储至数据库”。否则,则参数项b1的第一参数值为:“目标设备未将最近一次收到的配置参数存储至数据库”。
[0113]
参数项b2:目标设备最近一次重启的相关参数项;
[0114]
在参数项b2中,目标设备最近一次重启的相关参数项包括以下内容中的一项或多
项:
[0115]
目标设备最近一次重启的时间戳;
[0116]
目标设备在收到最近一条配置消息之后是否重启过;
[0117]
目标设备在最近一次重启后是否收到过配置消息。
[0118]
具体来说,参数项b2的第一参数值可以根据目标设备上的历史数据来确定,比如,目标设备最近一次重启的相关参数项会记录下来,目标设备可以根据历史记录确定最近一次重启的时间戳,或者根据历史记录查询在收到最近一条配置消息之后是否重启过,或者根据历史记录中目标设备的重启时间和配置消息的接收时间来查询在最近一次重启后是否收到过配置消息。
[0119]
本技术实施例中,n项参数项可以仅包括上述参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项,这种方案中,可以说n项参数项仅包括上述m项参数项中的一项或多项。另外一种可选地实施方式中,n项参数项除可以包括上述参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项之外,还可以包括参数项b1和参数项b2中的一项或多项。可以看出,为了确定第一数据和第二数据是否一致,本技术实施例中可以提高较多的n项参数项的组合方式。
[0120]
本技术实施例中,控制器可以根据n项参数项的参数值,可以得到两种结论:
[0121]
第一种结论“确定第一数据与第二数据一致”;
[0122]
第二种结论“无法确定第一数据与第二数据是否一致”。第二种结论也可以描述为:“不能确定第一数据和第二数据一致”。
[0123]
这两种结论可以是本技术实施例中控制器根据n项参数项做出的推断。
[0124]
其中,控制器在确定满足以下条件时,可以确定第一数据和第二数据一致:当n项参数项仅包括m项参数项,且m项参数项的第二参数值与m项参数项的第一参数值分别相同;或者当n项参数项除包括m项参数项之外还包括其它参数项,且m项参数项的第二参数值与m项参数项的第一参数值分别相同;以及,(n-m)项参数项的参数值指示目标设备将最近一次收到的配置参数存储至数据库。
[0125]
另一方面,当控制器根据n项参数项推断“不能确定第一数据与第二数据一致”时,在实际情况中,第一数据可能与第二数据一致,也可能与第二数据不一致,而控制器无法较为准确判断出第一数据和第二数据是否一致。
[0126]
当控制器根据n项参数项推断“第一数据与第二数据一致”时,这与实际情况中“第一数据与第二数据确实一致”符合的程度,可以用概率来表示,可以称为推论与实际情况的符合程度(本技术实施例中提到推论与实际情况符合是指:推论为第一数据与第二数据一致,且实际情况中第一数据与第二数据也一致),该推论与实际情况的符合程度可以达到较高值,当选择适当的参数项时,该推论与实际情况的符合程度可能可以达到100%。
[0127]
下面提供几种示例,用于示例几种可能地n项参数项的组合方式,当n项参数项为如下几种组合方式时,控制器根据n项参数项推断“第一数据与第二数据一致”时,这与实际情况中“第一数据与第二数据确实一致”符合的程度较高:
[0128]
示例一,n项参数项至少包括第一中类型的参数项中的参数项a1;
[0129]
示例二,n项参数项至少包括第一中类型的参数项中的参数项a1,以及:参数项b1和/或参数项b2;
[0130]
示例三,n项参数项至少包括第一中类型的参数项中的参数项a2,以及:参数项b1和/或参数项b2;
[0131]
示例四,n项参数项至少包括第一中类型的参数项中的参数项a3,以及:参数项b1和/或参数项b2;
[0132]
示例五,n项参数项至少包括第一中类型的参数项中的参数项a4,以及:参数项b1。
[0133]
上述示例一至示例五提供了几种可能地实现方式,当然,在上述示例一至示例五中仅仅以n项参数项包括的第一种类型的参数项仅一项举例,在实际实施中,在上述示例一至示例五中,可选地,还可以在n项参数项中增加一个或多个第一种类型的参数项,例如,在示例一中,n项参数项除了包括有参数项a1之外,还可以包括参数项a2。
[0134]
下面提供几种可能地实现方式,用于示例性说明控制器如何根据n项参数项得到上述两种结论的。
[0135]
方式一,n项参数项仅包括上述m项参数项(m项参数项包括参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项)。
[0136]
在该方式一中,当确定第二hello报文中携带的m项参数项的第二参数值,与基于第一数据得到的m个参数项的第一参数值的比较结果为匹配,则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0137]
举个例子,当第二hello报文中包括的n项参数项包括:目标设备存储的第一配置参数对应的第一校验码;则控制器将根据第一校验算法对第一数据中的配置参数进行计算,将得到的校验码与第二hello报文中承载的第一校验码进行比较,若比较结果为匹配,则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;若比较结果为不匹配,则无法确定第一数据与第二数据是否一致。
[0138]
在该示例中,可以在第二hello报文中增加名称为类似configuration-check-code(校验码)的标签项,在发送第二hello报文时在该两个标签项中填入对应的值,此示例中,标签项的名称仅仅是举例。也可以是相近信息的其它词汇。第二hello报文的格式的一种示例如下所示,可以看出,第二hello报文中除了configuration-check-code之外,还包括capabilities(第二能力集字段)和session-id(第二会话字段)的标签项:
[0139][0140]
再举个例子,当第二hello报文中包括的n项参数项包括:目标设备的数据库中存
储的第二配置参数对应的第二校验码。这种情况下,可能在一些系统中规定,目标设备收到配置消息之后,均将配置消息对应的配置参数存储至数据库,如此,第二配置参数即为目标设备收到的所有配置参数,这种情况下,第一配置参数和第二配置参数是相同的。基于该条件,在该示例中,若控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,并且根据第二校验算法对第一数据中的配置参数进行计算,将得到的校验码与第二hello报文中承载的第二校验码进行比较;若两个比较结果均是匹配,则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0141]
再举个例子,当第二hello报文中包括的n项参数项包括:目标设备已传输消息中最后一条消息的序列号,以及目标设备的数据库中存储的第一配置参数对应的第一校验码;则控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,并且根据第一校验算法对第一数据中的配置参数进行计算,将得到的校验码与第二hello报文中承载的第一校验码进行比较;若两个比较结果均是匹配,则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0142]
再举个例子,当第二hello报文中包括的n项参数项包括:目标设备已传输消息中最后一条消息的序列号;则控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,若比较结果为匹配,则可以确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;若比较结果为不匹配,则无法确定第一数据与第二数据是否一致。
[0143]
方式二,n项参数项除了包括m项参数项(m项参数项包括参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项)之外,还可以包括上述参数项b1。
[0144]
在该方式二中,当确定第二hello报文中携带的m项参数项的第二参数值,与基于第一数据得到的m个参数项的第一参数值的比较结果为匹配,且确定第二hello报文中携带的参数项b1的参数值指示:目标设备将最近一次收到的配置参数存储至数据库。则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0145]
在方式二中,由于增加了参数项b1,用于进行辅助判断,因此当控制器根据n项参数项推断“第一数据与第二数据一致”时,这与实际情况中“第一数据与第二数据确实一致”符合的程度相比方式一来说,可以更高。
[0146]
举个例子,当第二hello报文中包括的n项参数项包括:目标设备已传输消息中最后一条消息的序列号、目标设备是否将最近一次收到的配置参数存储至数据库;则控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,若比较结果为匹配,且第二hello报文中的参数值指示:目标设备将最近一次收到的配置参数存储至数据库。其中“目标设备将最近一次收到的配置参数存储至数据库”说明目标设备已经将最近一次收到的配置参数存储至数据库,即使目标设备在收到最近一次配置消息之后发生了重启,该最近一次配置消息对应的配置参数已经存储至数据库,并不会因为重启而丢失,这种情况下,当控制器根据n项参数项推断“第一数据与第二数据一致”时,这与实际情况中“第一数据与第二数据确实一致”是比较符合的。
[0147]
而:若控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,若比较结果为匹配,且第二hello报文中的参数值指示:目标设备未将最近一次收到的配置参数存储至数据库。则,由于“目标设备未将最近一次收到的配置参数存储至数据库”,则无法确定目标设备是否已经将最近一次配置消息对应的配置参数存储至数据库,目标设备有可能将最近一次配置消息对应的配置参数都存储至数据库。当然也有可能还未将最近一次配置消息对应的配置参数存储至数据库,若在这种情况下,目标设备在收到最近一次配置消息之后进行了重启,则重启之后,可能会将未存储至数据库的配置参数删除,这就会导致第一数据和第二数据不一致。可以看出,当控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配,且“目标设备未将最近一次收到的配置参数存储至数据库”时,有一定的可能是会发生第一数据和第二数据不一致的情况,因此,在该示例中,只有当“控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配,且目标设备将最近一次收到的配置参数存储至数据库”时,控制器才做出“第一数据与第二数据一致”的推论,且该推论相比与仅仅依据“控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配”做出的“第一数据与第二数据一致”的推论来说,可以提高推论与实际情况的符合程度。
[0148]
在该示例中,可以在第二hello报文中增加名称为类似last-message-id(目标设备已传输消息中最后一条消息的序列号)和last-configuration-saved(目标设备是否将最近一次收到的配置参数存储至数据库)的标签项,在发送第二hello报文时在该两个标签项中填入对应的值。此示例中,标签项的名称仅仅是举例,也可以是相近信息的其它词汇,第二hello报文的格式的一种示例如下所示,可以看出,第二hello报文中除了last-message-id、last-configuration-saved之外,还包括capabilities(第二能力集字段)和session-id(第二会话字段)的标签项:
[0149][0150]
再举个例子,当第二hello报文中包括的n项参数项包括:目标设备最近一次修改数据库的时间戳、目标设备是否将最近一次收到的配置参数存储至数据库。该示例中,若第二hello报文中的参数值指示:目标设备将最近一次收到的配置参数存储至数据库。且控制
器确定出第一数据中最后一次下发的配置消息的时间戳1(因为目标设备接收到配置消息,会将配置消息中的配置参数存储至数据库,从而引起数据库的修改),以及控制器最近一次收到的配置响应对应的时间戳2(当目标设备根据收到的配置消息进行配置,且配置成功时,会向控制器返回配置响应),将得到的时间戳1和时间戳2与第二hello报文中携带的时间戳进行比较,若第二hello报文中携带的时间戳位于时间戳1和时间戳2所限定的时间段内(也可以说第二hello报文中携带的时间戳位于时间戳1之后,位于时间戳2之前),则确定比较结果为匹配(因为控制器发送最后一条配置消息的时间戳可能会早于目标设备收到配置消息并依据配置消息修改数据库的时间戳),继而推断出第一数据与第二数据是一致的;否则,则无法做出“第一数据与第二数据是一致的”这种推断。
[0151]
方式三,n项参数项除了包括m项参数项(m项参数项包括参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项)之外,还可以包括上述参数项b2。
[0152]
在该方式三中,当确定第二hello报文中携带的m项参数项的第二参数值,与基于第一数据得到的m个参数项的第一参数值的比较结果为匹配,且确定第二hello报文中携带的参数项b2的参数值指示:在收到最近一条配置消息之后并未重启过。则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0153]
其中,确定第二hello报文中携带的参数项b2的参数值指示:在收到最近一条配置消息之后并未重启过,可以通过目标设备最近一次重启的时间戳以及第一数据中的最后一条配置消息的时间戳来确定,若目标设备最近一次重启的时间戳早于第一数据中的最后一条配置消息的时间戳,则说明在收到最近一条配置消息之后并未重启过;若目标设备最近一次重启的时间戳不早于第一数据中的最后一条配置消息的时间戳,则说明在收到最近一条配置消息之后重启过。确定第二hello报文中携带的参数项b2的参数值指示:在收到最近一条配置消息之后并未重启过还可以通过:目标设备在收到最近一条配置消息之后并未重启过,或者,目标设备在最近一次重启后收到过配置消息来指示。
[0154]
举个例子,当第二hello报文中包括的n项参数项包括:目标设备已传输消息中最后一条消息的序列号、目标设备在收到最近一条配置消息之后是否重启过;则控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,若比较结果为匹配,且第二hello报文中的参数值指示:目标设备在收到最近一条配置消息之后并未重启过。如此,确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。
[0155]
再举个例子,若控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号进行比较,若比较结果为匹配,且第二hello报文中的参数值指示:目标设备在收到最近一条配置消息之后重启过。由于控制器无法确定目标设备是否已经将最近一次配置消息对应的配置参数存储至数据库,目标设备有可能将最近一次配置消息对应的配置参数都存储至数据库。当然也有可能还未将最近一次配置消息对应的配置参数存储至数据库,若在这种情况下,目标设备在收到最近一次配置消息之后进行了重启,则重启之后,可能会将未存储至数据库的配置参数删除,这就会导致第一数据和第二数据不一致。可以看出,当控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配,且“目标设备在收到最近一条配置消息之后重启过”时,有一定的可能是会发生第一
数据和第二数据不一致的情况,因此,在该示例中,只有当“控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配,且目标设备在收到最近一条配置消息之后未重启过”时,控制器才做出“第一数据与第二数据一致”的推论,且该推论相比与仅仅依据“控制器将第一数据中的最后一条消息的序列号与第二hello报文中承载的序列号匹配”做出的“第一数据与第二数据一致”的推论来说,可以提高推论与实际情况的符合程度。
[0156]
方式四,n项参数项除了包括m项参数项(m项参数项包括参数项a1、参数项a2、参数项a3和参数项a4中的一项或多项)之外,还包括上述参数项b1和参数项b2。
[0157]
在该方式四中,当确定第二hello报文中携带的m项参数项的第二参数值,与基于第一数据得到的m个参数项的第一参数值的比较结果为匹配,且确定第二hello报文中携带的参数项b1的参数值指示:目标设备将最近一次收到的配置参数存储至数据库,以及确定第二hello报文中携带的参数项b2的参数值指示:在收到最近一条配置消息之后并未重启过。则确定控制器上存储的目标设备对应的第一数据与第二数据是一致的,没有差异;否则,则无法确定第一数据与第二数据是否一致。相关示例与前述内容类似,在此不再赘述。
[0158]
通过上述n项参数项的具体示例可以看出,本技术实施例中n项参数项的参数值内容较少,因此不会占用hello报文中的太长的字段,如此,本技术实施例中控制器通过获取简短的信息(并非整体第二数据)达到检验数据一致性的目的,不仅可以提高数据传输效率,且也可以提高数据一致性判断的速度。
[0159]
图3示例性示出了本技术实施例提供的另外一种基于netconf协议的hello报文的传输方法,如图3所示,包括:
[0160]
步骤301,控制器基于netconf协议向目标设备发送第一hello报文。
[0161]
步骤301中的第一hello报文可以与前述步骤203中的第一hello报文相同,第一hello报文可以如上述表2和表3所示。可选地,第一hello报文中还可以增加一个扩展字段,为介绍方便,称为第三扩展字段。第三扩展字段用于承载第三指示信息。第三指示信息用于指示:在s个yang模型为目标设备支持的k个yang模型的子集或全集的情况下,目标设备将第二能力指示信息携带于第二hello报文;k为正整数,s为正整数。
[0162]
如表5所示,基于netconf协议,第一hello报文中包括第一能力集(capabilities)字段、第一会话(sessions)字段和第三扩展字段。第一能力集(capabilities)字段用于承载第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型。
[0163]
表5一种第一hello报文的形式
[0164][0165]
一种可能地实施方式中,第三扩展字段可以写为verification flag标签项,表5所示的hello报文的一种可能地形式如下:
[0166][0167][0168]
表6中提供了另一种第一hello报文的结构形式,如表3所示,第一hello报文中除了包括第一能力集(capabilities)字段和第一会话(sessions)字段之外。还可以包括第一扩展字段和第三扩展字段,第一扩展字段与前述表3中的第一扩展字段内容相同,不再赘述。
[0169]
表6另一种第一hello报文的形式
[0170][0171]
步骤302,目标设备判断第一hello报文中是否携带第三指示信息;若携带,则执行步骤303;若未携带,则执行步骤305。
[0172]
步骤303,目标设备判断s个yang模型是否为k个yang模型的子集或全集;若是,则执行步骤304;若不是,则可以不再向控制器返回第二hello报文,或者可以执行步骤305。
[0173]
步骤304,目标设备在第二hello报文中携带第三能力指示信息并发送第二hello报文给控制器,且第三能力指示信息用于指示目标设备支持的k个yang模型中的s个yang模型。
[0174]
步骤305,目标设备在第二hello报文中携带第二能力指示信息并发送第二hello报文给控制器;且第二能力指示信息用于指示目标设备支持的k个yang模型。
[0175]
步骤306,控制器根据第二hello报文中携带的yang模型,以及控制器支持的s个yang模型,与目标设备之间建立控制关系。
[0176]
在上述步骤306中,控制器与目标设备之间建立控制关系的策略有多种,比如一种较为常用的策略是:控制器若确定第二hello报文中携带的yang模型,以及控制器支持的s个yang模型一致(即第二hello报文中携带的yang模型为s个yang模型),则成功与目标设备之间建立控制关系,控制器可以向目标设备发送配置信息,以实现对目标设备的配置。在这种策略中,本技术实施例中,若目标设备支持的yang模型与控制器支持的s个yang模型有差
异(比如控制器支持的s个yang模型为目标设备支持的k个yang模型的子集),若目标设备通过第二hello报文反馈k个yang模型,则由于控制器在步骤305中判断第二hello报文中携带的yang模型与控制器自身支持的yang模型之间有差异,则会造成控制关系建立失败。但是,若采用本技术实施例图3中提供的方案,则目标设备会通过第二hello报文返回s个yang模型,如此,控制器在步骤305中判断第二hello报文中携带的yang模型与控制器自身支持的yang模型之间没有差异,控制关系建立成功。可以看出,通过目标设备对本地支持的yang模型的剪裁,从而可以提高控制器与目标设备之间控制关系成功建立的概率,进而在sdn等组网中提升控制器的兼容性。
[0177]
图3所示的方案可以应用到控制器与目标设备初次建立链接的过程中。可选地,当后续当目标设备与控制器之间发生抖动而重连,则也可以适用本技术实施例图3提供的方案,即将图3的方案应用于上述图2所示的实施例中,相比于上述图2的方案,区别仅仅是:在上述步骤203的第一hello报文中可以携带上述第三指示信息,目标设备在生成第二hello报文时会判断应该在第二hello报文中携带第二指示信息还是第三指示信息,这种情况下,当控制器收到目标设备返回的第二hello报文时,因为是抖动状态下与目标设备之间的重连,因此控制器可以沿用之前与该目标设备之间建立的控制关系,可选地,也可以基于此次重连过程中第二hello报文中返回的yang模型重新建立控制器与目标设备之间的控制关系,本技术实施例不做限制。
[0178]
本技术上述实施例中的术语“系统”和“网络”可被互换使用。“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0179]
以及,除非有特别说明,本技术上述实施例提及“第一”、“第二”等序数词是用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。例如,第一pdcch mo和第二pdcch mo,只是为了区分不同的pdcch mo,而并不是表示这两个pdcch mo的优先级或者重要程度等的不同。
[0180]
需要说明的是,上述各个消息的名称仅仅是作为示例,随着通信技术的演变,上述任意消息均可能改变其名称,但不管其名称如何发生变化,只要其含义与本技术上述消息的含义相同,则均落入本技术的保护范围之内。
[0181]
根据前述方法,图4为本技术实施例提供的通信装置的结构示意图,如图4所示,该通信装置可以为目标设备或控制器,也可以为芯片或电路,比如可设置于目标设备的芯片或电路,再比如可设置于控制器内的芯片或电路。
[0182]
进一步的,该通信装置1301还可以进一步包括总线系统,其中,处理器1302、存储器1304、通信单元1303可以通过总线系统相连。
[0183]
应理解,上述处理器1302可以是一个芯片。例如,该处理器1302可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以
是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro controller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
[0184]
在实现过程中,上述方法的各步骤可以通过处理器1302中的硬件的集成逻辑电路或者软件形式的指令完成。结合本技术实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器1302中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1304,处理器1302读取存储器1304中的信息,结合其硬件完成上述方法的步骤。
[0185]
应注意,本技术实施例中的处理器1302可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
[0186]
可以理解,本技术实施例中的存储器1304可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
[0187]
该通信装置1301对应上述方法中的控制器的情况下,该通信装置可以包括处理器1302、通信单元1303和存储器1304。该存储器1304用于存储指令,该处理器1302用于执行该存储器1304存储的指令,以实现如上图1至图3中所示的任一项或任多项对应的方法中控制器的相关方案。
[0188]
当通信装置1301为上述控制器,通信装置1301可以用于执行上述任一方案中控制器所执行的方法。
[0189]
通信装置1301为上述控制器时,通信单元1303,用于向目标设备发送第一hello报
文;接收目标设备发送的第二hello报文,其中,第二hello报文是目标设备在接收到第一hello报文后发送的,第二hello报文中携带m项参数项中每项参数项的第二参数值,m项参数项中每项参数项的第二参数值是基于目标设备存储的第二数据的第二属性信息得到的,m为正整数。处理器1302,用于根据本地存储的目标设备对应的第一数据的第一属性信息,确定出m项参数项中每项参数项的第一参数值;根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性;在确定第一数据和第二数据一致的情况下,与目标设备建立链接。
[0190]
关于m项参数项以及n项参数项的内容可参见前述方法实施例部分,在此不再赘述。
[0191]
在一种可能地实施方式中,第一hello报文中还包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;第一hello报文中还包括:第三指示信息;第三指示信息用于指示:在s个yang模型为目标设备支持的k个yang模型的子集或全集的情况下,目标设备将第三能力指示信息携带于第二hello报文;k为正整数;其中,第三能力指示信息用于指示目标设备支持的s个yang模型。如此,可以提高控制器与目标设备建立链接的成功率。
[0192]
在一种可能地实施方式中,第三指示信息还用于指示:在s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集的情况下,目标设备将第二能力指示信息携带于第二hello报文;其中,第二能力指示信息用于指示目标设备支持的k个yang模型。如此,可以兼容现有技术。
[0193]
在一种可能地实施方式中,第三指示信息还用于指示:在s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集的情况下,目标设备不再反馈第二hello报文。如此,可以提高方案的灵活性。
[0194]
该通信装置1301对应上述方法中的目标设备的情况下,该通信装置可以包括处理器1302、通信单元1303和存储器1304。该存储器1304用于存储指令,该处理器1302用于执行该存储器1304存储的指令,以实现如上图1至图3中所示的任一项或任多项对应的方法中目标设备的相关方案。
[0195]
当通信装置1301为上述目标设备,通信装置1301可以用于执行上述任一方案中目标设备所执行的方法。通信装置1301为上述目标设备时,通信单元1303,用于接收控制器发送的第一hello报文;向控制器发送第二hello报文,第二hello报文中携带m项参数项中每项参数项的第二参数值;处理器1302,用于根据目标设备存储的第二数据的第二属性信息,确定出m项参数项中每项参数项的第二参数值,m为正整数;其中,m项参数项的第二参数值用于:使控制器根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性,并在第一数据和第二数据一致的情况下,与目标设备建立链接;m项参数项中每项参数项的第一参数值是基于控制器本地存储的目标设备对应的第一数据的第一属性信息得到的。
[0196]
关于m项参数项以及n项参数项的内容可参见前述方法实施例部分,在此不再赘述。
[0197]
在一种可能地实施方式中,第一hello报文中还包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;第一hello报文中还包括:第三
指示信息;第三指示信息用于指示:在s个yang模型为目标设备支持的k个yang模型的子集或全集的情况下,目标设备将第三能力指示信息携带于第二hello报文;k为正整数;其中,第三能力指示信息用于指示目标设备支持的s个yang模型。如此,可以提高控制器与目标设备建立链接的成功率。
[0198]
在一种可能地实施方式中,第一hello报文中还包括第一能力指示信息,第一能力指示信息用于指示控制器支持的s个yang模型;s为正整数;还包括处理器1302,用于:在通过通信单元1303接收第一hello报文之后,发送第二hello报文之前,确定出目标设备支持的k个yang模型;若确定s个yang模型为k个yang模型的子集或全集,则在第二hello报文中携带第三能力指示信息;其中,第三能力指示信息用于指示目标设备支持的k个yang模型中的s个yang模型。
[0199]
在一种可能地实施方式中,处理器1302,在通过通信单元1303接收第一hello报文之后,发送第二hello报文之前,还用于:若确定s个yang模型并非k个yang模型的子集,且s个yang模型并非k个yang模型的全集,则在第二hello报文中携带第二能力指示信息;其中,第二能力指示信息用于指示目标设备支持的k个yang模型。
[0200]
该通信装置所涉及的与本技术实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
[0201]
根据前述方法,图5为本技术实施例提供的通信装置的结构示意图,如图5所示,通信装置1401可以包括通信接口1403、处理器1402和存储器1404。通信接口1403,用于输入和/或输出信息;处理器1402,用于执行计算机程序或指令,使得通信装置1401实现上述图1至图3的相关方案中目标设备侧的方法,或使得通信装置1401实现上述图1至图3的相关方案中控制器侧的方法。本技术实施例中,通信接口1403可以实现上述图4的通信单元1303所实现的方案,处理器1402可以实现上述图4的处理器1302所实现的方案,存储器1404可以实现上述图4的存储器1304所实现的方案,在此不再赘述。
[0202]
基于以上实施例以及相同构思,图6为本技术实施例提供的通信装置的示意图,如图6所示,该通信装置1501可以为目标设备或控制器,也可以为芯片或电路,比如可设置于目标设备或控制器的芯片或电路。
[0203]
该通信装置可以对应上述方法中的控制器。该通信装置可以实现如上图1至图3中所示的任一项或任多项对应的方法中控制器所执行的步骤。该通信装置可以包括处理单元1502和通信单元1503。
[0204]
通信装置1501为上述控制器,通信单元1503,用于向目标设备发送第一hello报文;接收目标设备发送的第二hello报文,其中,第二hello报文是目标设备在接收到第一hello报文后发送的,第二hello报文中携带m项参数项中每项参数项的第二参数值,m项参数项中每项参数项的第二参数值是基于目标设备存储的第二数据的第二属性信息得到的,m为正整数。处理单元1502,用于根据本地存储的目标设备对应的第一数据的第一属性信息,确定出m项参数项中每项参数项的第一参数值;根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性;在确定第一数据和第二数据一致的情况下,与目标设备建立链接。
[0205]
该通信装置可以对应上述方法中的目标设备。该通信装置可以实现如上图1至图3中所示的任一项或任多项对应的方法中目标设备所执行的步骤。该通信装置可以包括处理
单元1502和通信单元1503。
[0206]
通信装置1501为上述目标设备,通信单元1503,用于接收控制器发送的第一hello报文;向控制器发送第二hello报文,第二hello报文中携带m项参数项中每项参数项的第二参数值;处理单元1502,用于根据目标设备存储的第二数据的第二属性信息,确定出m项参数项中每项参数项的第二参数值,m为正整数;其中,m项参数项的第二参数值用于:使控制器根据m项参数项中每项参数项的第一参数值和第二参数值是否匹配,确定第一数据和第二数据的一致性,并在第一数据和第二数据一致的情况下,与目标设备建立链接;m项参数项中每项参数项的第一参数值是基于控制器本地存储的目标设备对应的第一数据的第一属性信息得到的。
[0207]
该通信装置所涉及的与本技术实施例提供的技术方案相关的概念,解释和详细说明及其他步骤请参见前述方法或其他实施例中关于这些内容的描述,此处不做赘述。
[0208]
可以理解的是,上述通信装置1501中各个单元的功能可以参考相应方法实施例的实现,此处不再赘述。
[0209]
应理解,以上通信装置的单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。本技术实施例中,通信单元1503可以由上述图4的通信单元1303实现,处理单元1502可以由上述图4的处理器1302实现。
[0210]
根据本技术实施例提供的方法,本技术还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行图1至图3所示实施例中任意一个实施例的方法。
[0211]
根据本技术实施例提供的方法,本技术还提供一种计算机可读存储介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行图1至图3所示实施例中任意一个实施例的方法。
[0212]
根据本技术实施例提供的方法,本技术还提供一种系统,其包括前述的控制器,以及一个或多个目标设备。
[0213]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disc,ssd))等。
[0214]
上述各个装置实施例中网络设备与终端设备和方法实施例中的网络设备或终端设备对应,由相应的模块或单元执行相应的步骤,例如通信单元(收发器)执行方法实施例中接收或发送的步骤,除发送、接收外的其它步骤可以由处理单元(处理器)执行。具体单元
的功能可以参考相应的方法实施例。其中,处理器可以为一个或多个。
[0215]
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
[0216]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各种说明性逻辑块(illustrative logical block)和步骤(step),能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0217]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0218]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0219]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0220]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0221]
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0222]
以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜