本文基于分片的网络状态查询方法、装置及存储介质已是申请的专利。本人为第一发明人,这里给出来是提供一种写专利的范本,仅供参考。
专利申请号:CN202110346967.5
正文部分:
技术领域
本申请涉及但不限于计算机网络数据传输一致性领域,尤其是涉及一种基于队列的高性能跨域事务处理方法、装置及存储介质。
背景技术
在计算机网络状态监控领域中,对计算机网络状态进行监控是等于软件高可靠运行的保证,但当前的网络状态查询技术面临着延时性、无效性和不稳定的问题,当前的网络状态的查询方法的查询效率较低。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种基于分片的网络状态查询方法,能够解决网络状态查询效率低的问题。
根据本申请第一方面实施例的基于分片的网络状态查询方法,所述方法包括:获取待查询网络的拓扑类型和网络复杂度;根据所述拓扑类型和所述网络复杂度对所述待查询网络进行分片处理,得到至少一个网络片区,每一所述网络片区至少包括一个网络节点,所述网络节点包括父节点;对所述每一网络片区进行遍历,得到每一所述网络片区中每一所述网络节点的节点信息;根据每一所述节点信息获取每一所述网络片区的临时状态报告,所述网络片区的临时报告汇总于所述父节点;根据每一所述网络片区的临时状态报告得到所述待查询网络的状态信息报告。
根据本申请实施例的基于分片的网络状态查询方法,至少具有如下技术效果:基于分片的网络状态查询方法对待查询网络进行分片处理和异步遍历,将复杂网络划分成多个简单的网络片区,减少了网络状态查询过程的延迟,在分片中由子节点向父节点汇总网络节点信息,增强了网络节点状态查询的实时性,进而整体上提升了网络状态查询的效率。
根据本申请的一些实施例,所述根据所述拓扑类型和所述网络复杂度对所述待查询网络进行分片处理,得到至少一个网络片区,包括:根据所述拓扑类型和所述网络复杂度构建识别算法和分片算法;根据所述识别算法和所述分片算法对所述待查询网络进行分片处理。
根据本申请的一些实施例,所述网络节点还包括子节点,所述对所述每一网络片区进行遍历,得到每一所述网络片区中每一所述网络节点的节点信息,包括:获取预设频率;获取所述父节点的节点信息;根据所述预设频率获取所述网络片区中所述子节点的节点信息。
根据本申请的一些实施例,所述对所述每一网络片区进行遍历,得到每一所述网络片区中每一所述网络节点的节点信息,还包括:若所述子节点的节点信息发生变化,则发送变化后的所述节点信息给所述父节点。
根据本申请的一些实施例,所述网络节点还包括子节点,所述根据每一所述节点信息获取每一所述网络片区的临时状态报告,包括:根据所述子节点的节点信息、所述父节点的节点信息得到所述网络片区的临时状态报告;将所述网络片区的临时状态报告存储于所述父节点。
根据本申请的一些实施例,所述根据每一所述网络片区的临时状态报告得到所述待查询网络的状态信息报告,包括:发送所述临时状态报告给所述网络片区的相邻片区;将所有网络片区的临时状态报告进行汇总融合,得到所述待查询网络的状态信息报告。
根据本申请第二方面实施例的基于分片的网络状态查询装置,包括:拓扑类型和网络复杂度获取模块,用于获取待查询网络的拓扑类型和网络复杂度;分片处理模块,用于根据所述拓扑类型和所述网络复杂度对所述待查询网络进行分片处理,得到至少一个网络片区,每一所述网络片区至少包括一个网络节点,所述网络节点包括父节点;网络节点遍历模块,用于对所述每一网络片区进行遍历,得到每一所述网络片区中每一所述网络节点的节点信息;临时报告汇总模块,用于根据每一所述节点信息获取每一所述网络片区的临时状态报告,所述网络片区的临时报告汇总于所述父节点;状态信息报告生成模块,用于根据每一所述网络片区的临时状态报告得到所述待查询网络的状态信息报告。
根据本申请第三方面实施例的基于分片的网络状态查询装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现:本申请上述第一方面实施例的基于分片的网络状态查询方法。
根据本申请第四方面实施例的存储介质,存储有计算机可执行指令,所述计算机可执行指令用于:执行上述第一方面实施例的所述的基于分片的网络状态查询方法。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过申请的实践了解到。
附图说明
下面结合附图和实施例对本申请做进一步的说明,其中:
图1是本申请一个实施例提供的基于分片的网络状态查询方法的流程图;
图2是本申请另一个实施例提供的基于分片的网络状态查询方法的流程图;
图3是本申请另一个实施例提供的基于分片的网络状态查询方法的流程图;
图4是本申请另一个实施例提供的基于分片的网络状态查询方法的流程图;
图5是本申请另一个实施例提供的基于分片的网络状态查询方法的流程图;
图6是本申请另一个实施例提供的基于分片的网络状态查询方法的流程图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
在计算机软件研发和网络部署的过程中,必不可少地要对计算机网络状态进行监控,以及时更新网络状态、及时排查网络节点的状态,以保证软件的可靠性运行。
要实现对网络状态的实时监控,就必须要了解计算机的网络架构。计算机网络架构的复杂度不一,对于较为简单的网络架构,如主机台数在100台以内的总线型、星型、环形拓扑架构模式,其监控网络状态的方式并不复杂;但对于大规模(100台主机以上)、多层次、深嵌套的混合型网络拓扑架构,要完成对整个网络中网络节点的状态监控就比较困难。对于这种复杂的混合型网络拓扑结构,如果选用任意一种简单的方式进行遍历,无论使用优先广度遍历方法,还是优先深度遍历方法,都会存在延迟的问题,即获取到的网络拓扑数据必然存在后遍历的主机落后于先遍历的主机的问题。
由于当前网络状态查询方法存在的缺陷,导致了以下问题:
(1)延时性问题,随着网络拓扑的复杂度增高,延时性呈指数增加;(2)无效性问题,网络状态瞬息万变,若在获取网络节点状态的过程中耗时较大,则先经查询的主机网络状态可能已经变化,从而导致节点的状态信息的不准确,不能反映实时的网络情况;(3)不稳定问题,对于复杂度较高的网络拓扑,其查询算法较复杂,对计算资源的使用较高,等待时长较长,容易造成拥堵。
当前的网络查询技术主要有以下几种:
Dijkstra(迪科斯彻)算法的步骤包括:(1)每个节点用从源节点沿已知最佳路径到该节点的距离来标注,标注分为临时性标注和永久性标注;(2)初始时,所有节点都为临时性标注,标注为无穷大。将源节点标注为0,且为永久性标注,并令其为工作节点;(3)检查与工作节点相邻的临时性节点,若该节点到工作节点的距离与工作节点的标注之和小于该节点的标注,则用新计算得到的和重新标注该节点;(4)在整个图中查找具有最小值的临时性标注节点,将其变为永久性节点,并成为下一轮检查的工作节点;(5)重复(3)(4)步骤,直到目的节点成为工作节点,完成拓扑遍历。Dijkstra算法存在的问题为计算资源消耗大,延时性较高。
泛洪算法是一种将数据包发送到所有网络节点的简单方法,每个节点通过将其发送到所有其他链接之外来泛洪在传入链接上接收到的新数据包,它属于静态算法。泛洪算法存在的问题:重复的数据包较多,容易造成网络拥堵和网络瘫痪,节点需要跟踪已泛洪的数据包以阻止洪泛,即使在跳数上使用限制也会成倍爆炸。
链路状态路由算法的计算思想为:每个节点都在LSP(链路状态数据包)中泛洪有关其邻居的信息,所有节点都学习完整的网络图,每个节点都运行Dijkstra的算法来计算到达其他目的地的路径。其算法步骤包括:(1)发现邻居节点,并知道其网络地址,路由器启动后,通过发送HELLO数据包发现邻居节点;(2)测量到每个邻居节点的延迟或开销;(3)创建链路状态数据包;(4)将这个数据包发送给所有其他路由器。链路状态路由算法存在的问题有:序号回转可能产生混淆;路由器崩溃后,如果它再从零开始,则下一个数据包被作为重复数据包而丢弃。
综上所述,当前的网络状态查询方法都没有很好解决查询网络拓扑状态的实时性和稳定性的问题。
鉴于此,本申请提出了一种基于分片的网络状态查询方法,对待查询网络进行分片处理和异步遍历,将复杂网络划分成多个简单的网络片区,减少了网络状态查询过程的延迟,在分片中由子节点向父节点汇总网络节点信息,增强了网络节点状态查询的实时性,进而整体上提升了网络状态查询的效率。
根据本申请实施例的基于分片的网络状态查询方法,方法包括:获取待查询网络的拓扑类型和网络复杂度;根据拓扑类型和网络复杂度对待查询网络进行分片处理,得到至少一个网络片区,每一网络片区至少包括一个网络节点,网络节点包括父节点;对每一网络片区进行遍历,得到每一网络片区中每一网络节点的节点信息;根据每一节点信息获取每一网络片区的临时状态报告,网络片区的临时报告汇总于父节点;根据每一网络片区的临时状态报告得到待查询网络的状态信息报告。
如图1所示,在一些实施例中,基于分片的网络状态查询方法包括:
S110,获取待查询网络的拓扑类型和网络复杂度;
S120,根据拓扑类型和网络复杂度对待查询网络进行分片处理,得到至少一个网络片区;
S130,对每一网络片区进行遍历,得到每一网络片区中每一网络节点的节点信息;
S140,根据每一节点信息获取每一网络片区的临时状态报告;
S150,根据每一网络片区的临时状态报告得到待查询网络的状态信息报告。
在步骤S110至S120中,每一网络片区至少包括一个网络节点,网络节点包括父节点和子节点,将网络片区中的网络节点进行区分,便于后续对节点信息的汇总和临时状态报告的汇总,从而提高了网络状态的查询效率。
在步骤S130中,遍历包括异步遍历,即分别对每个片区进行查询,当某个片区或节点的查询受阻时,可将查询进入挂起状态,待受阻条件满足后继续查询,因此提高了网络状态的查询效率。
在步骤S140中,网络片区的临时报告由子节点汇总于父节点,便于后续对节点信息的汇总和临时状态报告的汇总,从而提高了网络状态的查询效率。
在步骤S150中,通过对每个网络片区的临时状态报告进行拼接,得到整个网络的状态信息报告。
基于分片的网络状态查询方法对待查询网络进行分片处理和异步遍历,将复杂网络划分成多个简单的网络片区,减少了网络状态查询过程的延迟,在分片中由子节点向父节点汇总网络节点信息,增强了网络节点状态查询的实时性,进而整体上提升了网络状态查询的效率。
根据本申请的一些实施例,根据拓扑类型和网络复杂度对待查询网络进行分片处理,得到至少一个网络片区,包括:根据拓扑类型和网络复杂度构建识别算法和分片算法;根据识别算法和分片算法对待查询网络进行分片处理。
如图2所示,在一些实施例中,基于分片的网络状态查询方法包括:
S210,根据拓扑类型和网络复杂度构建识别算法和分片算法;
S220,根据识别算法和分片算法对待查询网络进行分片处理。
在步骤S210中,拓扑类型包括但不限于总线型、星型、环形、树形、混合型;网络复杂度为根据网络节点数量等因素评估出的量化值;识别算法用于对网络拓扑类型进行识别;分片算法用于对网络进行分片处理;根据不同的拓扑类型和网络复杂度为待查询网络构建与之匹配的识别算法和分片算法,能够有针对性地制定与待查询网络相适应的算法,从而提高分片处理的效率。
在具体的实施例中,分片算法包括最优分片算法,最优分片算法的核心思想是找出一个深度最浅,广度最窄的最优分片结构,深度最浅是指在对待查询网络进行分片时,尽量使得查询网络的深度最小,以树型网络为例,即尽量使得网络的分级较小;同理,广度最窄指的是网络的分支尽量最少。深度最浅为同一级拓扑节点划分依据,广度最窄即为拥有公共的父连接点节点划分依据。
具体地,最优分片算法为:(1)自上而下获取拓扑连接关系,先寻找一级拓扑连接图,划分为一个网络片区;(2)对一级网络片区的网络节点进行查找操作,查找其是否有子节点连接关系,若有,则把所有子节点划成一个网络片区;(3)将有多个层次节点连接关系的同一级节点划为一个片区。
根据本申请的一些实施例,网络节点还包括子节点,对每一网络片区进行遍历,得到每一网络片区中每一网络节点的节点信息,包括:获取预设频率;获取父节点的节点信息;根据预设频率获取网络片区中子节点的节点信息。
根据本申请的一些实施例,对每一网络片区进行遍历,得到每一网络片区中每一网络节点的节点信息,还包括:若子节点的节点信息发生变化,则发送变化后的节点信息给父节点。
在具体的实施例中,在将待查询网络片区处理后,对每一网络片区进行遍历,遍历的方式为异步遍历,遍历过程主要包括两种方式,第一种方式为自上而下的方式,即顶层管理节点定时从顶层节点递归其所有子节点,分层分级获取网络节点的节点信息;第二种方式为自下而上的方式,即某一片区节点信息发生变化时,异步推送节点信息到各自己父节点(管理节点),各自的父节点再把节点信息推向其上层管理节点,最后状态数据汇总到顶层节点。
如图3所示,在一些实施例中,自上而下的遍历步骤包括:
S310,获取预设频率;
S320,获取父节点的节点信息;
S330,根据预设频率获取网络片区中子节点的节点信息。
在步骤S310中,预设频率为上层节点(父节点)获取下层节点(子节点)的节点信息的获取频率,如每秒10次等,为网络的查询设置频率能够保证网络状态查询的效率。
在步骤S320至步骤S330中,按照预设频率,针对一个具体的网路片区而言,先获取父节点自身的节点信息,再将子节点的节点信息汇总至父节点处,即得到本网络片区内所有节点的节点信息。
自上而下的异步遍历方式的异步体现在,多个网络片区可同时进行子节点的节点信息的上报,从而提升了网络状态查询的效率。
在具体的实施例中,在对网络拓扑节点进行分片的过程中,本申请的最优分片方法,使计算能够快速异步执行,互不干扰,每个网络片区计算消耗资源相当,减少后续的计算等待;除此之外,对网络拓扑状态进行查询和数据交互也应支持异步计算和无阻塞式的数据获取,这样才能实现无需等待过长时间就能获取到分片的计算结果,减少后续数据集拼接汇总的等待时延。
如图4所示,在一些实施例中,自下而上的步骤包括:
S410,获取子节点的节点信息;
S420,判断子节点的节点信息是否变化;若判断结果为是,则执行步骤S430;若判断结果为否,则执行步骤S410。
S430,发送变化后的节点信息给父节点。
在步骤S410至步骤S430中,当子节点的节点信息发生变化后,会及时将变化的信息上传,以更新网络节点状态,通过自下而上的节点信息上传,极大地提高了网络的实时性,使得网络状态报告能够准确地反映真实的网络状态。
根据本申请的一些实施例,网络节点还包括子节点,根据每一节点信息获取每一网络片区的临时状态报告,包括:根据子节点的节点信息、父节点的节点信息得到网络片区的临时状态报告;将网络片区的临时状态报告存储于父节点。
如图5所示,在一些实施例中,基于分片的网络状态查询方法包括:
S510,根据子节点的节点信息、父节点的节点信息得到网络片区的临时状态报告;
S520,将网络片区的临时状态报告存储于父节点。
在步骤S510中,首先找到每一个网络片区(又称拼图)的入口节点,将该网络片区的入口节点设置为父节点(又称为父管理节点或标志节点),将该网络片区的其他节点设置为子节点(又称子管理节点),而节点信息由子节点汇聚父节点,进而,将父节点和子节点的节点信息汇聚得到该网络片区的临时状态报告。
在步骤S520中,临时状态报告存储于父节点,便于父节点与其他网络片区的父节点交换各自的临时状态报告,从而将多个临时状态报告进行拼接,得到整个网络的网络状态。
根据本申请的一些实施例,根据每一网络片区的临时状态报告得到待查询网络的状态信息报告,包括:发送临时状态报告给网络片区的相邻片区;将所有网络片区的临时状态报告进行汇总融合,得到待查询网络的状态信息报告。
如图6所示,在一些实施例中,基于分片的网络状态查询方法包括:
S610,发送临时状态报告给网络片区的相邻片区;
S620,将所有网络片区的临时状态报告进行汇总融合,得到待查询网络的状态信息报告。
在步骤S610中,每一个网络片区的临时状态报告生成之后,各自的父节点立即向相邻的网络片区和汇总整个拓扑的管理节点发送临时状态报告。
在步骤S620中,整个拓扑的管理节点对所有临时状态报告进行一致性计算,得到整个待查询网络的状态信息报告,从而实现了对整个待查询网络的网络状态的查询。
其中,汇总整个拓扑的管理节点为网络查询时查找到的第一个拓扑总入口。
其中,一致性计算指的是:由于网络片区的原理,分区的依据有两个,一个是同一等级的节点划分为一个网络片区,一个是同一父节点的子节点划分为一个网络片区,则必然存在网络片区的交叉,即某个节点的信息被重复采集,因此在汇总时需要采用一致性算法对这类网络节点的节点信息进行一致性计算,以保证数据的一致性,具体地,一致性算法包括但不限于raft算法、hash算法等。
根据本申请实施例的基于分片的网络状态查询装置,包括:拓扑类型和网络复杂度获取模块,用于获取待查询网络的拓扑类型和网络复杂度;分片处理模块,用于根据拓扑类型和网络复杂度对待查询网络进行分片处理,得到至少一个网络片区,每一网络片区至少包括一个网络节点,网络节点包括父节点;网络节点遍历模块,用于对每一网络片区进行遍历,得到每一网络片区中每一网络节点的节点信息;临时报告汇总模块,用于根据每一节点信息获取每一网络片区的临时状态报告,网络片区的临时报告汇总于父节点;状态信息报告生成模块,用于根据每一网络片区的临时状态报告得到待查询网络的状态信息报告。
基于分片的网络状态查询装置实现了基于分片的网络状态查询方法,对待查询网络进行分片处理和异步遍历,将复杂网络划分成多个简单的网络片区,减少了网络状态查询过程的延迟,在分片中由子节点向父节点汇总网络节点信息,增强了网络节点状态查询的实时性,进而整体上提升了网络状态查询的效率。
根据本申请实施例的基于分片的网络状态查询装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现:本申请上述任一实施例的基于分片的网络状态查询方法。
基于分片的网络状态查询装置实现了基于分片的网络状态查询方法,对待查询网络进行分片处理和异步遍历,将复杂网络划分成多个简单的网络片区,减少了网络状态查询过程的延迟,在分片中由子节点向父节点汇总网络节点信息,增强了网络节点状态查询的实时性,进而整体上提升了网络状态查询的效率。
根据本申请实施例的存储介质,存储有计算机可执行指令,计算机可执行指令用于:执行上述任一实施例的基于分片的网络状态查询方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下作出各种变化。此外,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。