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

网络验证的方法及装置与流程

2022-03-14 04:32:16 来源:中国专利 TAG:


1.本技术涉及网络领域,并且更具体地,涉及一种网络验证的方法及装置。


背景技术:

2.随着互联网的日益发展,网络规模变得越来越庞大,为了满足不断增长的业务需求,工业界提出软件定义网络(software defined networking,sdn)的概念。sdn可以将控制平面从网络设备中解耦出来,形成由控制器组成的控制层,控制器具有全局视角,控制器可以对网络设备进行集中控制。例如,控制器可以通过北向接口获取应用层(例如,应用层可以包括一个或多个应用程序)的意图(intent),并将策略或意图转化为具体的配置信息,通过南向接口下发到对应的网络设备,从而实现对网络设备的控制。
3.目前,基于sdn的网络验证工具仅能检测网络不变量,网络不变量可以包括能够满足网络正常运转的一些基础的性能或基础的参数,例如,网络不变量可以包括网络的可达性、网络的隔离性、网络是否存在环路及网络是否存在路由黑洞等,但是,基于sdn的网络验证工具并不能验证数据包转发行为是否满足应用层的意图。


技术实现要素:

4.本技术提供一种网络验证的方法及装置,能够提高网络故障检测的准确率。
5.第一方面,提供了一种网络验证的方法,所述方法包括:
6.获取意图信息,所述意图信息用于表示目标数据包在网络中传输时应满足的要求;对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息,所述网络配置信息包括在所述目标网络节点传输所述目标数据包时的路由规则;根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
7.在本技术实施例中,所述意图信息用于表示目标数据包在网络中传输时应满足的要求,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
8.可选地,所述路由规则可以用于验证所述网络的网络不变量是否存在故障。例如,网络是否满足可达性要求、网络是否满足隔离性要求、网络是否存在环路或网络是否存在路由黑洞等。
9.其中,所述目标数据包在所述网络中传输时应满足的要求可以包括:在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,也就是说,所述意图信息可以用于指示在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项。
10.结合第一方面,在第一方面的某些实现方式中,所述网络配置信息还包括第一局部意图信息,所述第一局部意图信是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的;其中,所述根据所述意图信息,判断按照
所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
11.在本技术实施例中,所述第一局部意图信息可以用于指示所述目标网络节点的局部意图信息(例如,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的),根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图,从而能够进一步提高网络故障检测的准确率。
12.其中,所述第一局部意图信息可以用于表示在所述目标网络节点传输所述目标数据包时应满足的要求。
13.可选地,所述第一局部意图信息包括在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,或者,所述第一局部意图信息是由在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的多项经过布尔运算(例如,求交集、并集及补集等逻辑运算)后得到的。
14.结合第一方面,在第一方面的某些实现方式中,所述根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
15.在本技术实施例中,根据所述第二局部意图信息,可以更准确地得到所述目标数据包在所述目标网络节点需要完成的意图。
16.进一步地,根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够更直观地、更准确地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
17.结合第一方面,在第一方面的某些实现方式中,所述根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,确定所述目标网络节点不存在网络故障;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图不一致的情况下,确定所述目标网络节点存在网络故障。
18.在本技术实施例中,根据所述需要完成的意图与所述能够完成的意图,能够更直观地、更准确地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
19.结合第一方面,在第一方面的某些实现方式中,在确定所述目标网络节点不存在网络故障的情况下,所述方法还包括:根据所述第一局部意图信息更新所述意图状态表。
20.在本技术实施例中,根据所述第一局部意图信息更新所述意图状态表,有助于提
高所述目标网络节点的下一跳的网络节点进行故障检测的准确率,从而能够进一步提高网络故障检测的准确率。
21.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:在所述目标网络节点的下一跳的网络节点为所述网络中的边缘网络节点的情况下,判断更新后的所述意图状态表中是否存在无法完成的意图;若更新后的所述意图状态表中存在无法完成的意图,确定所述下一跳的网络节点存在网络故障;若更新后的所述意图状态表中不存在无法完成的意图,确定所述下一跳的网络节点不存在网络故障,且网络验证过程结束。
22.结合第一方面,在第一方面的某些实现方式中,在确定所述目标网络节点存在网络故障的情况下,所述方法还包括:根据所述意图状态表及所述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
23.在本技术实施例中,根据所述意图状态表及所述网络的网络拓扑关系,可以在不违背应用层的意图的前提下,快速地修复网络故障。
24.第二方面,提供了一种网络验证的装置,包括:
25.获取模块,用于获取意图信息,所述意图信息用于表示目标数据包在网络中传输时应满足的要求;解析模块,用于对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息,所述网络配置信息包括在所述目标网络节点传输所述目标数据包时的路由规则;判断模块,用于根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
26.在本技术实施例中,所述意图信息用于表示目标数据包在网络中传输时应满足的要求,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
27.可选地,所述路由规则可以用于验证所述网络的网络不变量是否存在故障。例如,网络是否满足可达性要求、网络是否满足隔离性要求、网络是否存在环路或网络是否存在路由黑洞等。
28.其中,所述目标数据包在所述网络中传输时应满足的要求可以包括:在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,也就是说,所述意图信息可以用于指示在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项。
29.结合第二方面,在第二方面的某些实现方式中,所述网络配置信息还包括第一局部意图信息,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的;其中,所述判断模块具体用于:根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
30.在本技术实施例中,所述第一局部意图信息可以用于指示所述目标网络节点的局部意图信息(例如,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的),根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图,从而能够进一
步提高网络故障检测的准确率。
31.其中,所述第一局部意图信息可以用于表示在所述目标网络节点传输所述目标数据包时应满足的要求。
32.可选地,所述第一局部意图信息包括在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,或者,所述第一局部意图信息是由在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的多项经过布尔运算(例如,求交集、并集及补集等逻辑运算)后得到的。
33.结合第二方面,在第二方面的某些实现方式中,所述判断模块具体用于:根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
34.在本技术实施例中,根据所述第二局部意图信息,可以更准确地得到所述目标数据包在所述目标网络节点需要完成的意图。
35.进一步地,根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够更准确地、更直观地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
36.结合第二方面,在第二方面的某些实现方式中,所述判断模块具体用于:根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,确定所述目标网络节点不存在网络故障;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图不一致的情况下,确定所述目标网络节点存在网络故障。
37.在本技术实施例中,根据所述需要完成的意图与所述能够完成的意图,能够更直观地、更准确地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
38.结合第二方面,在第二方面的某些实现方式中,在确定所述目标网络节点不存在网络故障的情况下,所述判断模块还用于:根据所述第一局部意图信息更新所述意图状态表。
39.在本技术实施例中,根据所述第一局部意图信息更新所述意图状态表,有助于提高所述目标网络节点的下一跳的网络节点进行故障检测的准确率,从而能够进一步提高网络故障检测的准确率。
40.结合第二方面,在第二方面的某些实现方式中,所述判断模块还用于:在所述目标网络节点的下一跳的网络节点为所述网络中的边缘网络节点的情况下,判断更新后的所述意图状态表中是否存在无法完成的意图;若更新后的所述意图状态表中存在无法完成的意图,确定所述下一跳的网络节点存在网络故障;若更新后的所述意图状态表中不存在无法完成的意图,确定所述下一跳的网络节点不存在网络故障,且网络验证过程结束。
41.结合第二方面,在第二方面的某些实现方式中,在确定所述目标网络节点存在网络故障的情况下,所述装置还包括修复模块,所述修复模块用于:根据所述意图状态表及所
述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
42.在本技术实施例中,根据所述意图状态表及所述网络的网络拓扑关系,可以在不违背应用层的意图的前提下,快速地修复网络故障。
43.第三方面,提供了一种软件定义网络sdn系统,所述sdn系统包括应用层、控制层、代理层及网络层;其中,所述控制层获取所述应用层的意图信息,所述意图信息用于表示目标数据包在网络中传输时应满足的要求;所述控制层对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息,所述网络配置信息包括在所述目标网络节点传输所述目标数据包时的路由规则;所述代理层接收所述控制层发送的网络配置信息;所述代理层根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
44.在本技术实施例中,所述意图信息用于表示目标数据包在网络中传输时应满足的要求,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
45.可选地,所述路由规则可以用于验证所述网络的网络不变量是否存在故障。例如,网络是否满足可达性要求、网络是否满足隔离性要求、网络是否存在环路或网络是否存在路由黑洞等。
46.其中,所述目标数据包在所述网络中传输时应满足的要求可以包括:在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,也就是说,所述意图信息可以用于指示在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项。
47.结合第三方面,在第三方面的某些实现方式中,所述网络配置信息还包括第一局部意图信息,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的;其中,所述代理层根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:所述代理层根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
48.在本技术实施例中,所述第一局部意图信息可以用于指示所述目标网络节点的局部意图信息(例如,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的),根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图,从而能够进一步提高网络故障检测的准确率。
49.其中,所述第一局部意图信息可以用于表示在所述目标网络节点传输所述目标数据包时应满足的要求。
50.可选地,所述第一局部意图信息包括在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,或者,所述第一局部意图信息是由在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的多项经过布尔运算(例如,求交集、并集及补集等逻辑运算)后得到的。
51.结合第三方面,在第三方面的某些实现方式中,所述代理层根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:所述代理层根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;所述代理层根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
52.在本技术实施例中,根据所述第二局部意图信息,可以更准确地得到所述目标数据包在所述目标网络节点需要完成的意图。
53.进一步地,根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够更直观地、更准确地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
54.结合第三方面,在第三方面的某些实现方式中,所述代理层根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:所述代理层根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,所述代理层确定所述目标网络节点不存在网络故障;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图不一致的情况下,所述代理层确定所述目标网络节点存在网络故障。
55.在本技术实施例中,根据所述需要完成的意图与所述能够完成的意图,能够更直观地、更准确地验证在所述目标网络节点传输所述数据包时的转发行为是否满足应用层的意图。
56.结合第三方面,在第三方面的某些实现方式中,在确定所述目标网络节点不存在网络故障的情况下,所述代理层还会根据所述第一局部意图信息更新所述意图状态表。
57.在本技术实施例中,根据所述第一局部意图信息更新所述意图状态表,有助于提高所述目标网络节点的下一跳的网络节点进行故障检测的准确率,从而能够进一步提高网络故障检测的准确率。
58.结合第三方面,在第三方面的某些实现方式中,在所述目标网络节点的下一跳的网络节点为所述网络中的边缘网络节点的情况下,所述代理层还会判断更新后的所述意图状态表中是否存在无法完成的意图;若更新后的所述意图状态表中存在无法完成的意图,所述代理层确定所述下一跳的网络节点存在网络故障;若更新后的所述意图状态表中不存在无法完成的意图,所述代理层确定所述下一跳的网络节点不存在网络故障且网络验证过程结束,并向所述网络层发送所述网络配置信息。
59.结合第三方面,在第三方面的某些实现方式中,在确定所述目标网络节点存在网络故障的情况下,所述代理层还根据所述意图状态表及所述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
60.在本技术实施例中,根据所述意图状态表及所述网络的网络拓扑关系,可以在不违背应用层的意图的前提下,快速地修复网络故障。
61.第四方面,提供了一种网络验证的装置,所述装置包括存储介质和中央处理器,所
述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现所述第一方面中的任一可能的实现方式中的方法。
62.第五方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面中的任一可能的实现方式中的方法。
63.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面中的任一可能的实现方式中的方法。
64.第六方面,提供一种计算机可读存储介质,所述计算机可读介质存储用于设备执行的程序代码,所述程序代码包括用于执行第一方面中的任一可能的实现方式中的方法的指令。
65.第七方面,提供一种控制器,所述控制器包括上述第二方面中或第四方面中的任一可能的装置。
66.在本技术实施例中,所述意图信息用于表示目标数据包在网络中传输时应满足的要求,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
附图说明
67.图1是本技术实施例适用的网络架构的示意性框图。
68.图2是本技术一个实施例提供的网络验证的方法的示意性框图。
69.图3是本技术另一个实施例提供的网络验证的方法的示意性框图。
70.图4是本技术一个实施例提供的试探验证的方法的示意性流程图。
71.图5是本技术一个实施例提供的网络修复的方法的示意性流程图。
72.图6是本技术一个实施例提供的网络拓扑图的示意性框图。
73.图7是本技术一个实施例中的等价类划分的示意图。
74.图8是本技术一个实施例中的各个意图对应的路由规则及局部意图的示意图。
75.图9是本技术一个实施例中的ec1对应的路由规则及局部意图的示意图。
76.图10是本技术一个实施例中的ec1对应的意图状态表的示意图。
77.图11是本技术一个实施例中的ec2对应的路由规则及意图状态表的示意图。
78.图12是本技术一个实施例提供的网络修复的方法的示意性流程图。
79.图13是本技术一个实施例中的修复后的路由规则的示意图。
80.图14是本技术一个实施例提供的软件定义网络sdn系统的示意性框图。
81.图15是本技术一个实施例提供的网络验证的方法的示意性框图。
82.图16是本技术一个实施例提供的网络验证的装置的示意性框图。
83.图17是本技术另一个实施例提供的网络验证的装置的示意性框图。
具体实施方式
84.下面将结合附图,对本技术中的技术方案进行描述。
85.本技术实施例的技术方案可以应用于各种不同的计算机网络,例如:软件定义网络(software defined networking,sdn),意图驱动网络(intent based network,ibn)或其他计算机网络。
86.其中,sdn是由斯坦福大学和加州伯克利大学的学者提出的一种网络架构,可以实现计算机网络的虚拟化。下面以sdn为例,对图1中的网络架构进行说明。应理解,图1中有关sdn的描述仅为示例而非限定,图1中的网络架构也可以为其他计算机网络,本技术实施例中对此并不限定。
87.图1是本技术实施例适用的网络架构100的示意性框图。如图1所示,该网络架构100可以包括应用层、控制层和网络层。其中,应用层也可以称为应用平面,控制层也可以称为控制平面(control plane),网络层也可以称为数据平面(data plane)或数据层。
88.应用层可以包括一个或多个应用程序(application),应用程序(也可简称为应用)可以是能够用于完成或获取用户意图的各种上层应用程序;控制层可以包括控制器(controller),例如,控制器可以为floodlight控制器、onos控制器、open daylight控制器或其他控制器,控制器主要负责网络的业务部署、配置、管理网络设备以及监测网络状态等;网络层可以包括一个或多个网络设备,例如,网络设备可以为交换机(switch)、路由器或其他网络设备。
89.如图1所示,sdn将网络设备(例如,路由器)的控制层从网络层中分离出来,网络设备将路由规则的控制权交由控制层中的控制器负责,而网络设备仅根据控制层中的控制器下发的规则对数据包进行转发,即由控制层中的控制器对网络进行集中控制。
90.如图1所示,应用层中的应用程序可以通过北向接口与控制层中的控制器进行通信,同时,控制层中的控制器可以通过南向接口与网络层中的网络设备进行通信。
91.例如,应用层中的应用程序可以通过北向接口将用户的意图(intent)发送给控制层中的控制器,相应地,控制器可以对意图信息进行决策、计算和/或解析,得到网络设备的配置信息,并通过南向接口将配置信息发送给网络层中的网络设备,从而实现了对网络设备的灵活控制。
92.另外,如后续图14所示,图1中的网络架构100还可以包括代理层,代理层可以包括故障检测装置及故障修复装置,故障检测装置可以用于检测控制层生成的路由规则是否符合用户意图,以判断是否存在网络故障,故障修复装置可以用于修复那些会导致网络故障的路由规则。
93.如图14所示,代理层可以位于控制层与网络层之间,代理层可以接收(也可以理解为拦截)控制层向网络层下发的配置信息,代理层中的故障检测装置可以基于用户意图检测网络是否存在故障;在网络不存在故障的情况下,代理层可以将配置信息(例如,验证成功的路由规则)下发至网络层,在网络存在故障的情况下,故障修复装置可以对配置信息进行修复,并将修复后的配置信息(例如,修复后的路由规则)发送给应用层,以便于应用层中的应用程序决策是否采纳代理层的修复方案。
94.目前,在进行网络故障检测时,只能检测网络不变量是否存在故障,例如,网络是否满足可达性要求、网络是否满足隔离性要求、网络是否存在环路或网络是否存在路由黑洞等。但是,在网络不变量满足要求的情况下,网络仍然可能出现故障。
95.因此,本技术提出一种网络验证的方法,能够验证数据包转发行为是否满足应用
层的意图,从而可以提高网络故障检测的准确率。
96.图2是本技术实施例提供的网络验证的方法200的示意性流程图。
97.图2所示的方法200可以包括步骤210、步骤220及步骤230。其中,步骤210及步骤220可以由控制层执行,步骤230可以由代理层执行;或者,控制层与代理层也可以为同一个层,此时,方法200可以由控制层执行。
98.应理解,图2所示的方法200仅为示例而非限定,方法200中可以包括更多或更少的步骤,本技术实施例中对此并不限定,下面分别对这几个步骤进行详细的介绍。
99.s210,获取意图信息。
100.其中,所述意图信息可以用于表示目标数据包在网络中传输时应满足的要求。
101.可选地,可以认为所述意图信息就是应用层中的应用程序的意图(intent),或者,也可以认为所述意图信息携带应用层中的应用程序的意图(intent),本技术实施例中对此并不限定。
102.例如,可以由控制器接收应用层中的应用程序通过北向接口发送的意图信息。
103.其中,所述目标数据包在所述网络中传输时应满足的要求可以包括:在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,也就是说,所述意图信息可以用于指示在网络中传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项。
104.s220,对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息。
105.其中,所述网络配置信息可以包括在所述目标网络节点传输所述目标数据包时的路由规则。
106.可选地,所述网络中可以包括多个网络节点,所述目标网络节点是所述多个网络节点中的一个。
107.例如,可以由控制器对所述意图信息进行解析,得到所述网络中的多个网络节点的网络配置信息(其中,所述多个网络节点的网络配置信息包括所述目标网络节点的网络配置信息)。
108.可选地,所述网络配置信息还可以包括第一局部意图信息,所述第一局部意图信息也可以是对所述意图信息进行解析后得到的。
109.其中,所述第一局部意图信息用于表示在所述目标网络节点传输所述目标数据包时应满足的要求。
110.具体地,所述第一局部意图信息可以是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的。
111.例如,所述第一局部意图信息包括在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项,或者,所述第一局部意图信息是由在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的多项经过布尔运算(例如,求交集、并集及补集等逻辑运算)后得到的。
112.例如,可以对控制器中的编译器进行修改,或者,可以设计并在控制器中的编译器中加入编译插件,以使得该控制器能够将所述意图信息转化为所述网络中的多个网络节点的第一局部意图信息(其中,所述多个网络节点的第一局部意图信息包括所述目标网络节
点的第一局部意图信息)。
113.s230,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
114.在本技术实施例中,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
115.可选地,在所述网络配置信息包括第一局部意图信息的情况下,所述根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,还可以包括:
116.根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
117.可选地,所述根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,可以包括:
118.根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;
119.根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
120.例如,所述意图状态表可以指示所述目标数据包需要经过的网络节点、所述目标数据包禁止经过的网络节点、所述目标数据包沿传输路径经过的跳数以及当前网络节点与边缘网络设备的关系(是否为边缘网络设备)中的至少一项。
121.例如,可以对所述目标数据包在所述网络中的各条传输路径进行启发式搜索,根据所述网络中的每个网络节点的网络配置信息及其局部意图信息,验证所述网络中的每个网络节点是否存在网络故障。
122.具体地,可以基于所述目标数据的各条传输路径,依次对各条传输路径中的各个网络节点进行试探验证。
123.需要说明的是,这里所说的试探验证是指按照所述目标数据在传输路径中的传输顺序,依次验证各个网络节点是否存在网络故障,也就是说,仅是试探性地验证各个网络节点,而不是真实地按照传输路径传输一遍所述目标数据包。
124.例如,可以基于所述目标数据的各条传输路径,根据所述网络中的每个网络节点的网络配置信息及其局部意图信息,依次验证所述每个网络节点是否存在网络故障。
125.再例如,在验证所述目标网络节点的上一跳的网络节点时,可以根据所述第二局部意图信息,确定所述目标数据包在所述目标网络节点的上一跳的网络节点需要完成的意图。
126.在所述上一跳的网络节点需要完成的意图与所述上一跳的网络节点能够完成的意图一致的情况下,确定所述上一跳的网络节点不存在网络故障;更新所述意图状态表。
127.需要说明的是,这里所说的更新所述意图状态表可以是指:假设所述目标数据包已经从所述上一跳的网络节点传输到所述目标网络节点,相应地,将所述意图状态表中的内容更新为所述目标数据包传输到所述目标网络节点之后的状态。
128.在所述上一跳的网络节点需要完成的意图与所述上一跳的网络节点能够完成的
意图不一致的情况下,确定所述上一跳的网络节点存在网络故障。
129.进一步地,所述根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,可以包括:
130.根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;
131.在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,确定所述目标网络节点不存在网络故障;
132.在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图不一致的情况下,确定所述目标网络节点存在网络故障。
133.可选地,在确定所述目标网络节点不存在网络故障的情况下,所述方法还可以包括:
134.根据所述第一局部意图信息更新所述意图状态表。
135.可选地,在确定所述目标网络节点存在网络故障的情况下,所述方法还可以包括:
136.根据所述意图状态表及所述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
137.其中,修复后的所述目标数据包在所述上一跳的网络节点的路由规则,能够使得所述目标数据包传输到所述目标网络节点时,所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致。
138.图3是本技术实施例提供的网络验证的方法300的示意性流程图。
139.图3所示的方法300可以包括步骤310、步骤320、步骤330及步骤340。其中,步骤310可以由控制层执行,步骤320、步骤330及步骤340可以由代理层执行;或者,控制层与代理层也可以为同一个层,此时,方法300可以由控制层执行。
140.应理解,图3所示的方法300仅为示例而非限定,方法300中可以包括更多或更少的步骤,本技术实施例中对此并不限定,下面分别对这几个步骤进行详细的介绍。
141.s310,生成带有局部意图的网络配置信息。
142.可选地,网络中可以包括多个网络节点,可以为所述多个网络节点中的每个网络节点生成带有局部意图的网络配置信息。
143.其中,所述局部意图可以认为是上述方法200中的所述局部意图信息,具体的描述可以参照方法200中的实施例,这里不再赘述。
144.可选地,可以设计局部意图注解语法,通过该局部意图注解语法可以对所述网络中的各个网络节点的局部意图进行形式化表达。
145.例如,本技术一个实施例中设计的局部意图注解语法可以如表1所示。需要说明的是,表1中所示的语法仅为示例而非限定,本技术实施例中对具体的语法描述并不限定。
146.表1局部意图注解语法
[0147][0148]
如表1所示,意图(intent)由注解(annotation)经过布尔运算(例如,求交集、并集及补集等逻辑运算)后得到的。
[0149]
其中,逻辑运算可以包括交(“∩”)、并(“∪”)、补(“|”)等逻辑运算,注解可以包括下述各项中的至少一项:
[0150]
1.fix_forward(port):固定往端口port转发。
[0151]
2.towards(sw,weight):数据流需要通往设备sw,并指定流分配的权重weight。
[0152]
3.forbid(sw):禁止经过不安全节点sw或者故障节点sw。
[0153]
4.end-to-end(count|drop):端到端计数count,计数器决定丢弃drop时刻。
[0154]
5.access-level:指定策略的应用的权限等级。
[0155]
6.constraint:网络转发的性能约束条件,约束条件由元数据(metadata)和谓词(pred)组成。其中,pred包括小于(《)、小于或等于(《=)、大于(》)、大于或等于(》=)、等于(=)、不等于(!=),meta包括跳数(hop)、时延(delay)、带宽(bandwidth)。
[0156]
表1中的局部意图注解语法能够覆盖大多数的场景,下述表2为基于表1中的局部意图注解语法设计的局部意图。
[0157]
表2局部意图注解示例
[0158][0159]
可选地,可以基于表1中的局部意图注解语法对控制器中的编译模块进行修改,或者,可以设计并在控制器中的编译器中加入编译插件,以使得该控制器能够为所述多个网络节点中的每个网络节点生成包含局部意图(由局部意图注解经过布尔运算后得到)的网络配置信息。
[0160]
s320,根据所述网络配置信息生成意图状态表。
[0161]
可选地,可以将具有相同目的ip(internet protocol address)前缀的数据包划
分为等价类(equivalence classes,ec)。
[0162]
其中,等价类可以是指具有相同的ip前缀的数据包的集合,对于等价类的具体的定义和等价类的具体的划分方式可以参考现有技术,本技术实施例中不再赘述。
[0163]
可选地,可以将来自多个应用程序(application,app)的数据包划分为等价类,并为每个等价类生成转发图,其中,每个等价类对应一个转发图;为每个等价类生成一个意图状态表,用于表示该每个等价类的意图的完成情况。
[0164]
例如,本技术一个实施例中生成的意图状态表可以如表3所示。需要说明的是,表3中所示的意图状态表仅为示例而非限定,本技术实施例中对具体的意图状态表的内容和形式并不限定。
[0165]
表3意图状态表示例
[0166][0167]
s330,基于所述意图状态表对所述网络进行试探验证。
[0168]
可选地,可以通过在各个网络设备上动态维护各个等价类中所有数据包对应的意图状态表,以实现对所述网络的试探验证。
[0169]
需要说明的是,这里所说的试探验证是指按照所述目标数据在传输路径中的传输顺序,依次验证各个网络节点是否存在网络故障,也就是说,仅是试探性地验证各个网络节点,而不是真实地按照传输路径传输一遍所述目标数据包。
[0170]
如图4所示,所述试探验证过程具体可以包括下述步骤:
[0171]
s410,初始化意图状态表。
[0172]
具体地,可以将意图状态表中的信息(例如,意图状态表中的历史信息)置空。
[0173]
s420,将当前网络节点添加到意图状态表中。
[0174]
具体地,可以将当前网络节点和当前网络节点的局部意图添加到意图状态表中。
[0175]
s430,检查当前网络节点是否满足意图。
[0176]
具体地,检查当前网络节点的路由规则是否满足意图状态表中的意图状态,如果不满足,返回失败(false);否则,执行s440。
[0177]
s440,更新意图状态表。
[0178]
由于当前节点通过了验证,所以需要将意图状态表中的网络节点更新为当前网络节点的下一跳的网络节点,例如,将当前网络节点的下一跳赋值给当前网络节点指针。
[0179]
相应地,意图状态表中的意图状态也更新为该下一跳(的网络节点)对应的意图状态。
[0180]
s450,检查下一跳是否为边缘网络设备。
[0181]
如果是边缘网络设备,进行最后一跳的验证(最后一跳需要特殊处理,具体可以参照现有技术,这里不再赘述),执行s460;否则,执行s430。
[0182]
s460,确认所有意图是否已满足。
[0183]
如果所有意图均已满足,返回成功(true);否则,返回失败(false)。
[0184]
进一步地,在返回成功的情况下,可以基于上述s310中生成的多个网络节点的网络配置信息,分别对所述网络中的多个网络节点,以实现对所述多个网络节点的配置。
[0185]
在返回失败的情况下,说明所述网络存在网络故障,可以继续执行下述s340。
[0186]
s340,在所述网络存在网络故障的情况下,修复所述网络。
[0187]
可选地,在修复所述网络时,以意图状态表中所有意图满足为目标,基于所述网络的网络拓扑关系,在所述多个网络节点中寻找一条新的传输路径。
[0188]
如图5所示,所述网络修复过程具体可以包括下述步骤:
[0189]
s510,初始化修复状态。
[0190]
s520,判断修复是否结束。
[0191]
如果尚未修复成功并且历史记录不为空,执行s530;否则,返回失败(false)。
[0192]
s530,恢复上一跳的历史记录。
[0193]
移除最新一条历史纪录,即当前错误的节点状态,并且取得上一跳状态。
[0194]
s540,遍历上一跳的邻居节点。
[0195]
遍历上一跳的邻居节点,获取一个邻居节点作为当前网络节点。
[0196]
s550,检查当前网络节点是否满足意图。
[0197]
如果当前网络节点满足意图,则执行s560;否则,执行s540。
[0198]
s560,更新意图状态表。
[0199]
更新意图状态表之后,可以执行s570。
[0200]
s570,检查下一跳是否为边缘网络设备。
[0201]
如果是边缘网络设备,进行最后一跳的验证(最后一跳需要特殊处理,具体可以参照现有技术,这里不再赘述),执行s580;否则,执行s540,获取另一个邻居节点作为当前网络节点。
[0202]
s580,确认所有意图是否已满足。
[0203]
如果所有意图均已满足,则修复状态为成功,返回成功(true),按照新的意图状态表修改规则得到修复方案。
[0204]
否则,执行s540,获取另一个邻居节点作为当前网络节点。
[0205]
直到遍历完上一跳的其他邻居还未修复成功,则修复状态为失败,表明无法修复,返回失败(false)。
[0206]
下面结合图6至图13,对上述图2及图3中的网络验证的方法进行详细描述。
[0207]
图6示出了适用本技术实施例的一个网络的拓扑图,所述网络可以是图2或图3的实施例中的所述包括多个网络节点的网络,所述网络可以获取到来自应用层中的应用程序的意图。
[0208]
例如,以所述网络获取到来自两个应用程序(app1与app2)的意图为例,app1的意图1(intent1)及app2的意图2(intent2)可以具体如下:
[0209]
intent1:f1=dst:10.0.*.*,waypoint b,low priority;
[0210]
intent2:f2=dst:10.0.0.1,hop《3,high priority。
[0211]
其中,基于intent1可以生成路由规则f1,app1的意图1(intent1)表示目的ip为10.0.*.*(10.0.*.*为通配符,包括所有前缀为“10.0”的ip)的数据包需经过网络节点b,且具有低优先级,则app1的数据包期望的传输路径可以如图6所示,为a-》b-》d。
[0212]
基于intent2可以生成路由规则f2,app2的意图2(intent2)表示目的ip为10.0.0.1的数据包应小于3跳,且具有高优先级,则对于app2的数据包所期望的传输路径可以如图6所示,为a-》d。
[0213]
可选地,如图7所示,可以根据目的ip的前缀将所有数据包划分为两个等价类(equivalence classes,ec)。
[0214]
其中,ec1可以包含目的ip为10.0.0.1的所有数据包,ec2可以包含目的ip为10.0.*.*且不为10.0.0.1的所有数据包。
[0215]
从图7中可以看出,ec1中存在两种意图:intent1和intent2;而ec2中仅存在一种意图:intent2。
[0216]
随后由控制层中的编译器下发路由规则,如图8所示,为了便于区分,虚线方框和实线方框中的内容分别代表加入局部意图之前app1和app2下发至路由节点的路由规则,而路由规则下面的方框里的内容则为本技术实施例中加入的局部意图。
[0217]
例如,如图8所示,网络节点a左侧的虚线方框中的路由规则“f1,fwd b;prio=1”为app1的意图1(intent1)下发到网络节点a的路由规则,虚线方框中的“twds b{h《16;h 1}”为本技术实施例中的根据intent1确定的网络节点a的局部意图。
[0218]
网络节点a左侧的实线方框中的路由规则“f2,fwd d;prio=2”为app2的意图2(intent2)下发到网络节点a的路由规则,实线方框中的“twds d{h《3;h 1}”为本技术实施例中的根据intent2确定的网络节点a的局部意图。
[0219]
图8中的其余方框中内容的含义及后续各附图中的方框中内容的含义类似,后续实施例中不再赘述。
[0220]
对于ec1,其转发图如图9所示,由于存在两种意图,同时标注两条意图经编译后生成的位于各个网络设备的局部意图。其中,intent1未指定hop,默认hop为16,intent2的hop为3。
[0221]
图10为针对ec1的意图状态表的示例,其中,

toward’表示需要经过的网络节点列表,

forbid’表示禁止经过的网络节点列表,

fix’表示是否为边缘网络设备,

hop’表示数据包经过的跳数。
[0222]
对于网络节点a,其对应的ec1的意图状态表如图10上侧所示,ec1存在两条意图,因此,在

toward’中有两个候选项:b和d。其中,b是根据intent1的局部意图确定的,d是根据intent2的局部意图确定的。
[0223]
为了避免出现闭环,

forbid’中为a;网络节点a并不是边缘网络设备,所以

fix’中为空;此时,转发跳数为1,所以

hop’为1。
[0224]
在转发时,由于intent2的优先级高于intent1,因此,优先执行intent2的路由规则,将数据包转发至网络节点d。
[0225]
对于网络节点d,其对应的ec1的意图状态表如图10下侧所示。
[0226]
由于数据包已经到达d,则在

toward’中删掉d,仅剩下b;同样为了避免闭环,在

forbid’中加入d;由于网络节点d为边缘网络设备,因此

fix’中填入host(到达边缘网络设备意味着转发过程结束);转发跳数为2,所以

hop’为2。
[0227]
此时,在到达边缘网络设备的情况下,hop=2满足要求,但是

toward’中不为空,这说明还存在某些意图没有被完成,在本技术实施例中,

toward’中还包括b,这表示app1
的intent1中的经过网络节点b的这一意图没有被完成,因此,检测出该网络存在网络故障。
[0228]
需要说明的是,现有的veriflow(verifying network-wide invariants in real time)并不能检测出上述网络故障,因为,在上述实施例中,网络状态没有违背任何网络不变量,仅仅是app1中的部分数据包(发往10.0.0.1的数据包)没有满足应用意图。
[0229]
对于ec2,其转发图以及验证过程如图11所示。其中,图11上侧所示为网络节点a对应的ec1的意图状态表,图11中部所示为网络节点b对应的ec1的意图状态表,图11下侧所示为网络节点d对应的ec1的意图状态表。
[0230]
如图11所示,本技术实施例中的ec2上仅存在一个应用意图,在到达边缘网络设备(网络节点d)时,意图状态表中的所有意图都已经被完成了,因此,对于ec2,本技术实施例中的方法验证其网络不存在网络故障。
[0231]
经过上述网络验证过程,确定ec1中存在问题,因此,可以对ec2中的路由规则进行修改以满足所有的应用意图,修复流程具体如图12所示。
[0232]
如图12所示,首先将当前网络节点d回滚到上一跳的网络节点,即网络节点a;遍历网络节点a的其他邻居网络节点,查找一条能够满足意图状态表中所有意图的新的传输路径。
[0233]
如果能够找到一条能够满足意图状态表中所有意图的新的传输路径,则网络修复成功;否则,网络修复失败。
[0234]
在本技术实施例中,可以找到一条满足意图状态表中所有意图的新的传输路径a-》b-》d,因此,网络修复成功。
[0235]
由于图12所示的实施例基于启发式搜索遍历网络节点a的其他邻居网络节点,因此,该网络修复过程能够在多项式时间内完成。
[0236]
通过图12所示的启发式搜索,可以得到同时满足intent1和intent2的网络修复方案,此时,可以通过控制层给各个网络设备下发新的路由规则,使其按照修复后的转发传输数据包。
[0237]
如图13所示,对于上述实施例,可以将网络节点a的路由规则f2中的forward修改为“fwd b”。此时,就完成了网络验证及网络故障的快速修复。
[0238]
在本技术实施例中,根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,能够验证数据包转发行为是否满足应用层的意图,从而能够提高网络故障检测的准确率。
[0239]
图14是本技术实施例提供的软件定义网络sdn系统1400的示意性流程图。图14所示的sdn系统1400可以包括应用层1410、控制层1420、代理层1430及网络层1440。
[0240]
其中,应用层1410可以包括一个或多个应用程序(也可简称为应用),应用程序可以是能够用于完成或获取用户意图的各种上层应用程序;控制层1420可以包括控制器,控制器主要负责网络的业务部署、配置、管理网络设备以及监测网络状态等;代理层1430可以包括故障检测装置及故障修复装置,故障检测装置可以用于检测控制层生成的路由规则是否符合用户意图,以判断是否存在网络故障,故障修复装置可以用于修复那些会导致网络故障的路由规则;网络层1440可以包括一个或多个网络设备,网络设备可以为交换机、路由器或其他网络设备。
[0241]
如图14所示,代理层1430可以位于控制层1420与网络层1440之间,代理层1430可
以接收(也可以理解为拦截)控制层1420向网络层1440下发的配置信息,代理层1430中的故障检测装置可以基于用户意图检测网络是否存在故障;在网络不存在故障的情况下,代理层1430可以将配置信息(例如,验证成功的路由规则)下发至网络层1440,在网络存在故障的情况下,故障修复装置可以对配置信息进行修复,并将修复后的配置信息(例如,修复后的路由规则)发送给应用层1410,以便于应用层1410中的应用程序决策是否采纳代理层1430的修复方案。
[0242]
图14所示的系统1400可以用于执行图15所示的网络验证的方法1500。
[0243]
图15所示的方法1500可以包括步骤1510、步骤1520、步骤1530及步骤1540,应理解,图15所示的方法1500仅为示例而非限定,方法1500中可以包括更多或更少的步骤,本技术实施例中对此并不限定,下面分别对这几个步骤进行详细的介绍。
[0244]
其中,步骤1510及步骤1520可以由控制层执行,步骤1530及步骤1540可以由代理层执行;或者,控制层与代理层也可以为同一个层,此时,方法1500可以由控制层执行。
[0245]
s1510,所述控制层获取所述应用层的意图信息。
[0246]
其中,所述意图信息用于表示目标数据包在网络中传输时应满足的要求。
[0247]
s1520,所述控制层对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息。
[0248]
其中,所述网络配置信息包括在所述目标网络节点传输所述目标数据包时的路由规则。
[0249]
s1530,所述代理层接收所述控制层发送的网络配置信息。
[0250]
s1540,所述代理层根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0251]
可选地,所述网络配置信息还包括第一局部意图信息,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的;其中,所述代理层根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:
[0252]
所述代理层根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0253]
可选地,所述代理层根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:
[0254]
所述代理层根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;所述代理层根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0255]
可选地,所述代理层根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障,包括:
[0256]
所述代理层根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,所述代理层确定所述目标网络节点不存在网络故障;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数
据包在所述目标网络节点能够完成的意图不一致的情况下,所述代理层确定所述目标网络节点存在网络故障。
[0257]
可选地,在确定所述目标网络节点不存在网络故障的情况下,所述代理层还会根据所述第一局部意图信息更新所述意图状态表。
[0258]
可选地,在所述目标网络节点的下一跳的网络节点为所述网络中的边缘网络节点的情况下,所述代理层还会判断更新后的所述意图状态表中是否存在无法完成的意图;若更新后的所述意图状态表中存在无法完成的意图,所述代理层确定所述下一跳的网络节点存在网络故障;若更新后的所述意图状态表中不存在无法完成的意图,所述代理层确定所述下一跳的网络节点不存在网络故障且网络验证过程结束,并向所述网络层发送所述网络配置信息。
[0259]
可选地,在确定所述目标网络节点存在网络故障的情况下,所述代理层还根据所述意图状态表及所述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
[0260]
图16是本技术一个实施例提供的网络验证的装置1400的示意性框图。应理解,图16示出的网络验证的装置1400仅是示例,本技术实施例的装置1400还可包括其他模块或单元。应理解,装置1400能够执行图2及图3的方法中的各个步骤,为了避免重复,此处不再详述。
[0261]
获取模块1410,用于获取意图信息,所述意图信息用于表示目标数据包在网络中传输时应满足的要求;
[0262]
解析模块1420,用于对所述意图信息进行解析,得到所述网络中的目标网络节点的网络配置信息,所述网络配置信息包括在所述目标网络节点传输所述目标数据包时的路由规则;
[0263]
判断模块1430,用于根据所述意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0264]
可选地,所述网络配置信息还包括第一局部意图信息,所述第一局部意图信息是根据在所述目标网络节点传输所述目标数据包时的可达性、安全、性能及路由策略中的至少一项确定的;
[0265]
其中,所述判断模块1430具体用于:
[0266]
根据所述第一局部意图信息,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0267]
可选地,所述判断模块1430具体用于:
[0268]
根据所述目标网络节点的上一跳的网络节点的第二局部意图信息,确定意图状态表,所述意图状态表包括所述目标数据包在所述目标网络节点需要完成的意图;根据所述第一局部意图信息及所述意图状态表,判断按照所述路由规则配置所述目标网络节点时,所述网络是否存在网络故障。
[0269]
可选地,所述判断模块1430具体用于:
[0270]
根据所述第一局部意图信息确定所述目标数据包在所述目标网络节点能够完成的意图;在所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图一致的情况下,确定所述目标网络节点不存在网络故障;在
所述目标数据包在所述目标网络节点需要完成的意图与所述目标数据包在所述目标网络节点能够完成的意图不一致的情况下,确定所述目标网络节点存在网络故障。
[0271]
可选地,在确定所述目标网络节点不存在网络故障的情况下,所述判断模块1430还用于:
[0272]
根据所述第一局部意图信息更新所述意图状态表。
[0273]
可选地,所述判断模块1430还用于:
[0274]
在所述目标网络节点的下一跳的网络节点为所述网络中的边缘网络节点的情况下,判断更新后的所述意图状态表中是否存在无法完成的意图;若更新后的所述意图状态表中存在无法完成的意图,确定所述下一跳的网络节点存在网络故障;若更新后的所述意图状态表中不存在无法完成的意图,确定所述下一跳的网络节点不存在网络故障,且网络验证过程结束。
[0275]
可选地,在确定所述目标网络节点存在网络故障的情况下,所述装置还包括修复模块1440,所述修复模块1440用于:根据所述意图状态表及所述网络的网络拓扑关系,修复所述目标数据包在所述上一跳的网络节点的路由规则。
[0276]
应理解,这里的网络验证的装置1400以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“模块”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specific integrated circuit,asic)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
[0277]
作为一个示例,本技术实施例提供的网络验证的装置1400可以是控制层中的控制器,或者,可以是配置于控制器中的芯片,以用于执行本技术实施例所述的方法。
[0278]
图17是本技术一个实施例的网络验证的装置800的示意性框图。图17所示的装置800包括存储器801、处理器802、通信接口803以及总线804。其中,存储器801、处理器802、通信接口803通过总线804实现彼此之间的通信连接。
[0279]
存储器801可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器801可以存储程序,当存储器801中存储的程序被处理器802执行时,处理器802用于执行本技术实施例的网络验证的方法的各个步骤,例如,可以执行图2至图13所示实施例的各个步骤。
[0280]
处理器802可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本技术方法实施例的网络验证的方法。
[0281]
处理器802还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术实施例的网络验证的方法的各个步骤可以通过处理器802中的硬件的集成逻辑电路或者软件形式的指令完成。
[0282]
上述处理器802还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处
理器或者该处理器也可以是任何常规的处理器等。
[0283]
结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器801,处理器802读取存储器801中的信息,结合其硬件完成本技术实施例中网络验证的装置包括的单元所需执行的功能,或者,执行本技术方法实施例的网络验证的方法,例如,可以执行图2至图13所示实施例的各个步骤/功能。
[0284]
通信接口803可以使用但不限于收发器一类的收发装置,来实现装置800与其他设备或通信网络之间的通信。
[0285]
总线804可以包括在装置800各个部件(例如,存储器801、处理器802、通信接口803)之间传送信息的通路。
[0286]
应理解,本技术实施例所示的装置800可以是控制层中的控制器,或者,也可以是配置于控制器中的芯片。
[0287]
应理解,本技术实施例中的处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0288]
还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0289]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多
个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
[0290]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
[0291]
本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
[0292]
应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0293]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0294]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0295]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0296]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0297]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0298]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0299]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献