买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于云的主动探测方法和探测平台_中国科学院信息工程研究所_201810316947.1 

申请/专利权人:中国科学院信息工程研究所

申请日:2018-04-10

公开(公告)日:2020-10-16

公开(公告)号:CN108833197B

主分类号:H04L12/26(20060101)

分类号:H04L12/26(20060101);H04L29/08(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.10.16#授权;2019.01.08#实质审查的生效;2018.11.16#公开

摘要:本发明涉及一种基于云的主动探测方法和探测平台。该基于云的主动探测方法在探测节点中基于Docker容器构建对网络进行主动探测的探针,将针对特定探测目标的探测程序封装成Docker镜像;然后根据探测任务的配置需求,探测节点利用Docker容器中运行的探测程序对网络层、传输层、应用层进行主动探测。该基于云的主动探测平台包括节点管理模块、镜像管理模块、任务管理模块、容器管理模块、任务调度模块、用户访问界面。本发明能够支持网络层、传输层、应用层的探测,提供了API接口和Web用户界面两种访问方式,支持探测任务方便快捷地部署和维护,适用于网络数据采集、网络拓扑测量等多种应用场景。

主权项:1.一种基于云的主动探测方法,其特征在于,包括以下步骤:1在探测节点中基于Docker容器构建对网络进行主动探测的探针,将针对特定探测目标的探测程序封装成Docker镜像;2根据探测任务的配置需求,探测节点利用Docker容器中运行的探测程序对网络层、传输层、应用层进行主动探测;根据探测任务的多样化配置需求对资源进行统一管理和调度,包括:a在资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于探测任务所申请资源的节点,根据节点的负载和健康值对节点进行打分排序,节点得分越高,则该节点的负载越大;b资源不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度对任务执行时间有特殊需求的任务。

全文数据:一种基于云的主动探测方法和探测平台技术领域[0001]本发明属于网络技术领域,具体涉及一种基于云的主动探测方法和探测平台,支持网络层、传输层、应用层的探测。背景技术[0002]对网络进行主动探测有助于人们了解网络拓扑、性能、基础设施、流量特征,描绘网络用户及其行为特征、网络服务特征、网络资源映射及网络演化。网络探测分为被动探测和主动探测,在被动探测方式中,用于探测网络活动的探针部署至网络中,在大多数情况下探针部署于网络节点之间的连接上,用于记录、汇总该条连接上的网络流量信息;在主动探测方式中,通过向网络中发送数据、观察结果来研究网络的行为。主动探测平台是网络测量平台的一种实现方式。[0003]近年来,国内外研究人员设计并实现了一系列网络测量平台和集成系统,主要包括PlanetLab、CAIDAArk、DragonLab、Gperf等。[0004]PlanetLab是一个全球范围的用于研究和测试新的网络应用的互联网络,也是开发全新互联网技术的开放式全球性测试实验平台,研究内容包括分布式存储、网络映射、P2P系统、查询处理,目前有1353节点和717个站点,主要由加入PlanetLab的研究机构和实验室提供的。每个节点上同时运行大量的虚拟机,每个虚拟机都被分配了相应的节点的资源包括CPU、内存、带宽、硬盘等),使得虚拟机如同物理主机一样可以安装和运行程序。切片是由许多节点的虚拟机组成的一个环境,用户可将试验部署于各自拥有的切片上,相当于部署在由多个节点上的虚拟机组成的一个大规模网络试验环境上。[0005]CAIDAArk是一个全球分布式测量平台,该平台通过分配硬件测量节点构建基础设施,具有地理多样性和拓扑多样性。Ark由位于圣地亚哥超级计算机中心的中央服务器的管理节点和位于40多个国家的专用测量节点组成。Ark的主要测量项目包括欺骗包工程、TCP的行为推断、IPv4和IPv6的稳定性测试、网络拓扑结构发现、拥塞发现等。Ark的网络测量主要是针对网路拓扑、网络拥塞、自治域等网络层的测量,不提供应用层的测量。[0006]DragonLab是一个能支持各类网络技术验证、网络产品测试、应用系统开发和工程方案验证的远程网络实验平台,主要提供的服务包括网络性能测量、网络应用流量分析、网络攻击流量分析、网络用户行为分析。[0007]GPerf是进行大规模、主动和被动测量相结合网络安全测绘平台,提供扫描、蜜罐、助防等服务。GPerf研究计划的宗旨是建立网络空间概念模型和网络空间测绘体系结构模型,突破网络空间测绘关键技术,建成全球网络空间测绘数据库,建成网络空间沙盘平台,全景和可视化展现全球网络空间。[0008]上述国内外网络测量平台在面向网络空间资源探测还存在一些问题,主要表现在以下四个方面:[0009]1.探针构建方面:一些平台的探针是基于虚拟机构建的,灵活性不足、启动时间较长、内存访问效率较低;[0010]2.测量对象方面:主要对网络层、传输层进行测量,对应用层支持不好;[0011]3.系统调度方面:现有调度算法对时间敏感型任务、地域敏感型任务的支持不足;[0012]4.使用方式方面:主要基于API方式,系统开发和使用的灵活性不足。发明内容[0013]为解决上述网络测量平台存在的问题,本发明提供一种基于云的主动探测方法和探测平台,能够为主动探测提供基础设施服务,达到屏蔽底层硬件资源、统一分配资源、提升资源利用率、提升运维效率的目的。[0014]本发明采用的技术方案如下:[0015]—种基于云的主动探测方法,包括以下步骤:[0016]1在探测节点中基于Docker容器构建对网络进行主动探测的探针,将针对特定探测目标的探测程序封装成Docker镜像;[0017]2根据探测任务的配置需求,探测节点利用Docker容器中运行的探测程序对网络层、传输层、应用层进行主动探测。[0018]进一步地,通过定义批量探测任务模板,使用户能够一次部署多个探测任务,并为每个探测任务配置不同的资源需求,以支持探测任务跨网络、跨地域的大规模部署。[0019]进一步地,根据探测任务的多样化配置需求对资源进行统一管理和调度,包括:[0020]a在资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于探测任务所申请资源的节点,根据节点的负载和健康值对节点进行打分排序,节点得分越高,该节点的负载越大;[0021]b资源不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度对任务执行时间有特殊需求的任务。[0022]进一步地,采用Web用户界面和API两种用户访问方式,使用户能够在Web界面上部署探测任务,实现任务的可视化监控和追踪任务的实时状态,并能够通过URL的形式经API接入点调用相应的接口以实现探测。[0023]一种采用上面所述方法的基于云的主动探测平台,其包括:[0024]节点管理模块,负责对集群内的节点进行统一的管理;所述节点包括管理节点和工作节点,管理节点负责分配资源、分发任务、管理集群内的节点、监控任务的运行状态,工作节点负责运行探测任务;[0025]镜像管理模块,负责构建统一的私有镜像仓库,提供基本的增删改查镜像的管理功能,为镜像提供统一的存储和管理功能;[0026]任务管理模块,负责对探测任务进行统一的管理,定义批量任务创建、删除、更新的统一模板,以实现任务创建、更新、删除操作,同时对任务的运行状态实现可视化的监控;[0027]容器管理模块,负责对探测任务运行的容器的实时监控,并对容器进行管理和操作;[0028]任务调度模块,负责对探测任务进行调度;[0029]用户访问界面,负责提供Web用户界面和API两种用户访问方式。[0030]进一步地,所述节点管理模块包括以下子模块:[0031]节点资源监控子模块:负责维护节点的基本信息,并动态收集节点的资源状态;[0032]节点状态监控子模块:负责监控节点的状态,根据节点ID监控节点的角色以及运行状态;[0033]节点标签管理子模块:负责管理节点的标签,包括节点的角色标签、地域标签;[0034]节点状态管理子模块:负责管理节点的状态,包括修改节点的运行状态、将某些节点加入移除集群、修改节点的标签、连接私有镜像仓库。[0035]进一步地,所述镜像管理模块包括以下子模块:[0036]镜像上传子模块:支持从Web界面上传镜像至镜像仓库中;[0037]镜像查看子模块:允许用户查看自己和系统管理员上传的镜像的详细信息;[0038]镜像下载子模块:允许用户下载自己上传的镜像和管理员上传的镜像,同时也允许各个节点在任务部署时下载镜像至本地;[0039]镜像删除子模块:允许用户从界面上删除自己上传的镜像。[0040]进一步地,所述任务管理模块包括以下子模块:[0041]任务提交子模块:接收用户提交的任务配置信息,判断用户所提交的任务描述的合理性、正确性,将任务描述形式化处理,将任务创建请求提交至后台;[0042]任务监控子模块:根据任务名称,监控任务的实时状态,包括该任务的子任务数、任务运行状态、任务部署的节点等信息;[0043]任务管理子模块:对任务进行管理,包括更新探测任务配置需求、删除任务。[0044]进一步地,所述容器管理模块包括以下子模块:[0045]容器监控子模块:负责容器的管理,包括查看容器运行的镜像、10、CPU、内存、运行环境变量、端口映射信息;[0046]容器控制台:提供操作界面供用户使用控制台对容器进行操作,使用命令行的方式对容器进行操作;[0047]容器管理子模块:负责管理容器的运行状态,包括对其进行暂停、停止、重启、销毁操作。[0048]进一步地,所述任务调度模块根据探测任务的多样化配置需求对资源进行统一管理和调度,包括:在资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于探测任务所申请资源的节点,根据节点的负载和健康指标对节点进行打分排序,节点得分越高,则该节点的负载越大;资源不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度对任务执行时间有特殊需求的任务。[0049]本发明了实现了一种可用性、可扩展性良好的、支持地域指定的基于云的主动探测方法和探测平台,该平台能够为主动探测提供基础设施服务,支持网络层、传输层、应用层的探测,提供了API接口和Web用户界面两种访问方式,可为批量探测任务提供基础设施服务,支持探测任务方便快捷地部署和维护,适用于网络数据采集、网络拓扑测量等多种应用场景。[0050]利用本发明提供的基于云的主动探测平台可对网络进行大规模探测,该平台具有以下优点:[0051]1.平台支持网络层、传输层、应用层的探测;[0052]2.平台使用方式简洁易用,可在Web用户界面上对探测任务进行一键自动化大规模部署,实现任务的可视化监控和管理,并将探测结果收集反馈;[0053]3.平台采用基于Docker的方式构建,便于系统开发和使用,便于用户开发探针,实现探针的易移植性;[0054]4.系统资源调度实现对多种资源调度的支持,在平台资源充足的情况下,提出了面向多维度资源需求的任务调度算法,以满足探测任务对于内存、CPU、硬盘、带宽、任务执行地点的需求;在平台不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度周期性任务、定时任务和紧急任务等对任务执行时间有特殊需求的任务,满足此类任务对任务执行时间的特殊需求。附图说明[0055]图1是基于云的主动探测平台的框架图。[0056]图2是管理节点和工作节点的部署示意图。[0057]图3是用户部署探测任务的流程图。[0058]图4是任务部署成功率对比示意图。[0059]图5是任务部署重试次数对比示意图。[0060]图6是任务部署总数对比示意图。具体实施方式[0061]为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步详细说明。[0062]本发明的技术方案包括以下内容:[0063]1采用基于DockerDocker是一个开源的应用容器引擎)的方式构建平台。现有的探测平台是基于虚拟机的方式构建探针,探针的灵活性较差。虚拟机的虚拟化是管理程序虚拟化通过中间层将一台或者多台机器虚拟运行于物理硬件之上,而Docker容器则是直接运行在操作系统内核之上的用户空间,因此Docker有着比虚拟机更少的抽象层。由于Docker不需要虚拟机管理程序实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源,因此Docker在CPU、内存利用率上更有优势;Docker利用的是宿主机的内核,不需要Guest0S。因此,当新建一个容器时,Docker不需要和虚拟机一样重新加载操作系统,启动方式更快。[0064]2采用基于Docker的方式构建探针。每个Docker是一个可灵活配置和管理的独立运行环境,内部运行着一个针对特定探测目标的探测程序。针对探测目标的特点编写特定的探测程序,将其封装成Docker镜像,可实现对网络层、传输层、应用层的探测。[0065]3平台资源的统一管理和调度。平台的资源调度策略满足探测任务对内存、CPU、硬盘、带宽、副本数、端口映射等多样化的需求,在此基础上满足探测任务对于执行时间、地点的特殊需求。平台调度系统可满足所有用户的需求,在此基础上尽可能节约系统资源,提高资源的利用率。[0066]⑷构建Web用户界面和API两种用户访问方式。平台提供了API接入点,以REST—种万维网软件架构风格,目的是便于不同软件程序在网络中互相传递信息风格的服务访问接口,用户或者系统管理员可以用URL的形式调用相应的接口。此外,平台还提供了Web访问界面,使用基于角色的用户访问控制机制,用户或管理员可在界面上查看、上传、删除镜像,一键创建、更新、删除批量任务,对任务的运行状况进行可视化监控,同时可对各个容器进行可视化管理,对其进行停止、删除等操作,并实时获取容器运行日志。[0067]本发明的技术关键点在于:[0068]1.平台采用基于Docker的构建方式,探针易于构建、部署和维护,探针启动时间较短、内存访问效率较高。[0069]2.定义了批量探测任务模板,用户可一次部署多个任务,并为每个任务配置不同的资源需求,支持探测任务跨网络、跨地域大规模部署。批量探测任务模板根据DockerSwarm原生任务创建模板进行扩展,以JSON的方式传输,每一个子任务用一个JSON字符串表示,一个批量任务的多个子任务组成一个JSON数组,批量探测任务模板定义如表1所示。[0070]表1批量探测任务模板[0071][0072]当调度算法接收批量任务的请求后,解析批量任务中每一个子任务的请求,将探测任务名称、任务执行地点填充至Origin中的相应字段,调用DockerAPI将任务部署至集群中。[0073]3.提出面向多维度资源需求的任务调度算法。平台可针对探测任务的多样化需求任务执行地域、内存、10、带宽、硬盘、端口映射进行统一的调度。Swam原生调度算法只考虑节点的CPU和内存资源,而探测任务的资源需求还包括了硬盘、带宽等。当节点的资源不满足容器运行所需资源时,会导致任务执行的质量下降,甚至任务失败,因此原生算法不满足探测任务对于多维度资源的需求,需在原先的调度算法上考虑任务对于硬盘、带宽等资源的需求,增加节点资源监控的维度。该算法首先筛选候选节点,候选节点需满足以下4个条件:(1节点处于正常运行状态;(2节点所属地域满足任务执行地域需求;(3节点正在运行的端口与任务所申请的端口不冲突;(4探测任务中的一个容器所申请的资源小于节点的总资源时,则判定该节点为候选节点。对于所有候选节点,根据节点负载和节点健康指标Swarm中用于评价节点是否正常运行的指标,健康指标的值从0至100,0意味着节点不健康,100表示管理节点与该节点的最后一次连接正常,其他值表明管理节点与该节点的最近的连接有异常情况但该节点仍然可正常连接进行打分、排序,根据调度策略将容器调度至相应的节点上。[0074]4.提出了基于优先级分类的抢占式任务调度算法。Swarm的任务调度过程是基于队列进行的,待调度的任务按照提交时的先后顺序依次进行调度,不支持按优先级调度以及抢占式调度。当系统资源不足时,队列内任务将无法继续正常部署,进入等待状态,这将导致对任务执行时间有特殊需求的定时任务和周期性任务无法在特定的时间内启动任务或紧急任务无法立刻启动,影响探测任务的运行的质量。因此应需要根据任务的特点,对任务进行优先级划分,在系统资源不足的情况下,支持高优先级任务抢占低优先级任务的资源。[0075]5.平台提供了Web用户界面和API两种用户访问方式,用户可在Web界面上部署探测,实现任务的可视化监控,追踪任务的实时状态。[0076]本发明的应用实例:[0077]1基于云的主动探测平台[0078]图1是基于云的主动探测平台的框架图。该平台主要分为6大模块,分别为:节点管理模块、镜像管理模块、任务管理模块、容器管理模块、任务调度模块、用户访问界面Web用户界面和API接口)。[0079]1.1节点管理模块[0080]探测平台中的节点分为管理节点和工作节点,图2是管理节点和工作节点的一种部署方式示意图,管理节点负责管理集群内的节点,负责分配资源、编排服务以及在集群内分发任务,监控任务的运行状态。工作节点负责运行探测任务。集群中的节点部署可实现跨区域、跨主机的通信。节点管理模块主要对集群中的节点进行统一的管理,节点管理模块主要包括以下四个子模块:[0081]1节点资源监控子模块:负责维护节点的基本信息,包括节点的IP地址、节点ID、主机名hostname、节点所处地理位置、该地理位置的经炜度、CPU核数;动态收集节点的资源状态,包括节点的内存、CPU负载率、硬盘大小、IO、带宽等;[0082]2节点状态监控子模块:负责监控节点的状态,根据节点ID监控节点的角色以及运行状态;[0083]3节点标签管理子模块:负责管理节点的标签,包括节点的角色标签、地域标签;[0084]4节点状态管理子模块:负责管理节点的状态,包括修改节点的运行状态、将某些节点加入移除集群、修改节点的标签、连接平台私有镜像仓库。[0085]1.2镜像管理模块[0086]镜像管理模块主要对Docker镜像进行统一的管理,构建平台统一的私有镜像仓库,对镜像实现集中式的统一安全的管理,实现镜像的上传、查看、存储、下载等操作。主要包括以下子模块:[0087]1镜像上传子模块:支持从Web界面上使用http方式上传镜像至镜像仓库中,镜像上传的格式为tar格式。[0088]2镜像查看子模块:允许用户查看自己和系统管理员上传的镜像的详细信息,包括镜像名、创建时间、操作系统、Docker版本等;[0089]3镜像下载子模块:允许用户下载自己和管理员上传的镜像,同时也允许各个节点在任务部署时下载镜像至本地;[0090]4镜像删除子模块:允许用户从界面上删除自己上传的镜像。[0091]1.3任务管理模块[0092]对探测任务进行统一的管理,定义批量任务创建、删除、更新的统一模板,以实现任务创建、更新、删除等操作,同时可对任务的运行状态实现可视化的监控,任务管理模块主要包括以下子模块:[0093]1任务提交子模块:接收用户提交的任务配置信息,判断用户所提交的任务描述的合理性、正确性,将任务描述形式化处理,将任务创建请求提交至后台;[0094]2任务监控子模块:根据任务名称,监控任务的运行状态、任务运行的节点等;[0095]3任务管理子模块:对任务进行管理,包括更新探测任务配置需求、删除任务等。[0096]h4容器管理模块[0097]容器管理模块负责对探测任务运行容器的实时监控,可查看容器的详细信息,例如运行容器的环境变量、端口映射、内存、CPU等信息,可查看容器运行的日志,并使用控制台对容器进行管理和操作。容器管理模块主要包括以下子模块:[0098]1容器监控子模块:负责容器的管理,包括查看容器运行的镜像、I0、CPU、内存、运行环境变量、端口映射等信息;[0099]2容器控制台:提供操作界面供用户使用控制台对容器进行操作,使用命令行的方式对容器进行操作;[0100]3容器管理子模块:负责管理容器的运行状态,包括对其进行暂停、停止、重启、销毁等操作。[0101]1.5任务调度模块[0102]任务调度模块负责对探测任务进行调度。对于平台中待调度的任务,根据任务到达的时间,一次从探测任务队列中读取探测任务的配置信息,解析探测任务信息,尝试将该任务下发至集群,依次类推,直到任务队列读取完毕。[0103]在系统资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于任务所申请资源的节点,根据节点的负载和健康值对节点进行打分排序,节点得分越高,该节点的负载越大。若采用Binpack调度策略,则将任务下发至负载最高的节点上;若采用Spread策略,将任务下发至负载最低的节点上。[0104]在系统资源不足的情况下,根据任务的优先级进行抢占式调度。优先级高的任务可以抢占优先级低的任务的资源,优先抢占系统中最后部署的任务,直到任务部署成功。[0105]1.6用户访问界面[0106]用户可在Web界面上登录平台进行操作,也可以通过URL的形式经API接入点模块调用相应的接口使用平台。API接入点提供REST—种万维网软件架构风格,目的是便于不同软件程序在网络中互相传递信息)风格的服务访问接口,用户或者系统管理员可以用URL的形式调用相应的接口。[0107]2用户使用平台的流程[0108]图3是用户部署批量探测任务的流程图。当前某个用户需要进行某个探测任务,该探测任务需要500M的内存、IG硬盘空间、将容器的3306端口映射至3307端口,任务需在北京、日本、美国3个地域运行,用户可在平台上对任务所需资源进行配置,具体步骤包括:[0109]SI用户登录平台,根据用户的用户名和密码认证用户身份的合法性,同时确认用户的身份;[0110]S2用户查看镜像,查看是否有符合探测需求的镜像,如果没有符合要求的镜像,执行步骤S3;否则,执行步骤S4;[0111]S3用户将所需镜像上传至镜像仓库;[0112]S4用户在界面上配置批量探测任务,包括选择探测任务镜像、输入探测任务的资源需求包括内存大小、硬盘大小、磁盘路径、运行变量参数、端口映射、地域等);[0113]S4解析批量任务,根据地域需求的数量将批量任务分解成3个子任务,每个子任务配置文件中包含了该子任务的地域信息;[0114]S5解析子任务需求参数,并从节点中筛选出满足地域需求、内存空间大于500M、硬盘空间大于5G、端口3307可用的节点,若该地域的节点剩余资源满足需求,则调用面向多维度资源需求的任务调度算法,将任务部署至合适的节点上,任务部署成功;否则,采用基于优先级分类的抢占式调度算法,若该任务的优先级较高,则可抢占低优先级任务的资源,任务部署成功,否则进入待调度队列,流程结束;[0115]S6反馈任务部署结果的相关信息。[0116]下面通过实验说明本发明方法的效果。[0117]1、实验目的[0118]对了验证本发明设计的面向多维度资源的任务调度算法的性能,选取随机策略、Swarm原生任务调度算法、本发明改进的面向多维度资源需求的任务调度算法进行对比,主要对比成功部署任务数M、任务部署成功率Psuccess、任务部署重试次数Ntry、总任务分发数N。由于任务调度的总目标是在平台资源有限的情况下满足探测任务的所有需求,尽可能部署更多的任务,减少任务分配失败的概率和任务部署时间。本实验采取如下三个资源调度的评价指标:[0119]1任务部署成功率:在随机生成任务队列中,一个任务能够成功部署的概率,即:[0120][0121]任务部署成功率越高,表示任务能按资源需求下发的概率越大;[0122]2重试次数:任务中的一个容器在一个节点上不能运行而更换另外一个节点的次数,每次更换节点,重试次数加1;[0123]3任务部署总数:任务部署总数表示平台中可同时运行的探测任务的总数。任务部署总数与任务消耗的资源、平台总资源量有关。在平台资源总量不变的情况下,探测任务所需资源越少,则部署总数越多;探测任务所需资源越多,则部署总数越少。[0124]2、实验数据[0125]本实验选取了主流的服务器配置:4核CPU,内存大小为8G,硬盘大小为1000G,带宽为30Mbps。同时选取了四种典型的探测任务:拓扑探测,用于发现互联网的拓扑状况,需要互联网中的多个节点同时发送ping和traceroute数据包,节点接收到这些数据包后需要实时进行计算,因此拓扑探测任务属于高CHJ消耗型的他任务;资产探测,用于发现特定区域内的设备信息,该探测任务对于内存、硬盘的消耗较大;应用探测,用于采集某个应用的数据,以便对该应用的特性或是使用该应用的用户特性进行分析,由于应用探测采集速度较快,因此应用探测对CPU、内存、带宽的消耗都较大;图片采集,用于采集网站的图片及其信息,对网络带宽有较高的要求。这四类探测任务对资源的需求如表2所示:[0126]表2四类探测任务的资源需求[0127][0129]3、实验过程[0130]一共进行五次对比实验,每次选取50,100,500,1000,2000个节点进行实验,具体实验步骤如下:[0131]1随机在四类探测任务中选取一种探测任务进行部署;[0132]2根据调度算法,尝试在选择的节点上运行该任务的容器,若容器运行不成功,则重试次数加1;[0133]3若该任务能在集群中顺利部署,则集群相应节点的资源量减去任务配置的资源量,成功部署的任务数加1;[0134]⑷当随机生成四类探测任务都无法成功部署时,则认为当前系统资源已满,本次实验结束;[0135]5统计任务下发在某个节点上下发不成功而尝试其他节点的次数、任务下发成功的概率和任务分发的总数。[0136]4、实验结果[0137]对本发明改进的任务算法、Swarm原生任务调度算法、随机任务调度算法的任务部署成功率对比示意图如图4所示,横坐标代表节点的个数,分别为50,100,500,1000,2000。纵坐标表示任务部署成功概率,取值[0,1],图上的a表示本发明的方法,b表示Swarm原生任务调度算法,c表示随机任务调度算法。如图4所示,本发明提出的面向多维度资源需求的任务调度算法的任务部署成功率与原有算法持平,远高于随机算法。这是因为随机算法随机选择节点部署任务,导致系统资源碎片较多,节点剩余的资源无法满足资源消耗较大的任务的部署,而本发明改进的算法与Swarm原生算法在每次选择节点时都对节点的资源负载值进行评分,因此任务能部署至更合理的节点上,减少系统资源碎片。[0138]本发明改进的算法、Swarm原生算法、随机算法的任务部署重试次数如图5所示,图上的a、b、c的含义与图4相同。随着节点规模的增大,随机算法和原生算法的重试次数明显上升,因此任务部署时间也随着增长。而随着节点规模的增大,本发明改进后的算法重试次数基本不变,表明节点规模的大小对改进算法的重试次数影响不大。实验结果显示改进后的算法能够减少96.4%的重试次数,有效提高任务调度的性能。[0139]本发明改进的算法、Swarm原生算法、随机算法的任务部署总数如图6所示,图上的a、b、c的含义与图4相同。由于实验所选的四种调度任务资源消耗不同,有的任务资源消耗较多,有的任务资源消耗较少。根据前面对于三种算法的分析,在平台资源有限的情况下,随机算法在尝试部署资源消耗较大的任务不成功后会部署更多资源消耗较小的任务,因此该算法的任务部署总数高于原生算法和改进算法。而本发明改进后的算法与原生算法相比,在任务部署成功率持平的情况下,任务部署总数更多,重试次数更少。[0140]以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

权利要求:1.一种基于云的主动探测方法,其特征在于,包括以下步骤:1在探测节点中基于Docker容器构建对网络进行主动探测的探针,将针对特定探测目标的探测程序封装成Docker镜像;2根据探测任务的配置需求,探测节点利用Docker容器中运行的探测程序对网络层、传输层、应用层进行主动探测。2.根据权利要求1所述的方法,其特征在于,通过定义批量探测任务模板,使用户能够一次部署多个探测任务,并为每个探测任务配置不同的资源需求,以支持探测任务跨网络、跨地域的大规模部署。3.根据权利要求1所述的方法,其特征在于,根据探测任务的多样化配置需求对资源进行统一管理和调度,包括:a在资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于探测任务所申请资源的节点,根据节点的负载和健康值对节点进行打分排序,节点得分越高,则该节点的负载越大;b资源不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度对任务执行时间有特殊需求的任务。4.根据权利要求1所述的方法,其特征在于,采用Web用户界面和API两种用户访问方式,使用户能够在Web界面上部署探测任务,实现任务的可视化监控和追踪任务的实时状态,并能够通过URL的形式经API接入点调用相应的接口以实现探测。5.—种采用权利要求1所述方法的基于云的主动探测平台,其特征在于,包括:节点管理模块,负责对集群内的节点进行统一的管理;所述节点包括管理节点和工作节点,管理节点负责分配资源、分发任务、管理集群内的节点、监控任务的运行状态,工作节点负责运行探测任务;镜像管理模块,负责构建统一的私有镜像仓库,提供基本的增删改查镜像的管理功能,为镜像提供统一的存储和管理功能;任务管理模块,负责对探测任务进行统一的管理,定义批量任务创建、删除、更新的统一模板,以实现任务创建、更新、删除操作,同时对任务的运行状态实现可视化的监控;容器管理模块,负责对探测任务运行的容器的实时监控,并对容器进行管理和操作;任务调度模块,负责对探测任务进行调度;用户访问界面,负责提供Web用户界面和API两种用户访问方式。6.根据权利要求5所述的主动探测平台,其特征在于,所述节点管理模块包括以下子模块:节点资源监控子模块:负责维护节点的基本信息,并动态收集节点的资源状态;节点状态监控子模块:负责监控节点的状态,根据节点ID监控节点的角色以及运行状态;节点标签管理子模块:负责管理节点的标签,包括节点的角色标签、地域标签;节点状态管理子模块:负责管理节点的状态,包括修改节点的运行状态、将某些节点加入移除集群、修改节点的标签、连接私有镜像仓库。7.根据权利要求5所述的主动探测平台,其特征在于,所述镜像管理模块包括以下子模块:镜像上传子模块:支持从Web界面上传镜像至镜像仓库中;镜像查看子模块:允许用户查看自己和系统管理员上传的镜像的详细信息;镜像下载子模块:允许用户下载自己上传的镜像和管理员上传的镜像,同时也允许各个节点在任务部署时下载镜像至本地;镜像删除子模块:允许用户从界面上删除自己上传的镜像。8.根据权利要求5所述的主动探测平台,其特征在于,所述任务管理模块包括以下子模块:任务提交子模块:接收用户提交的任务配置信息,判断用户所提交的任务描述的合理性、正确性,将任务描述形式化处理,将任务创建请求提交至后台;任务监控子模块:根据任务名称,监控任务的实时状态,包括该任务的子任务数、任务运行状态、任务部署的节点等信息;任务管理子模块:对任务进行管理,包括更新探测任务配置需求、删除任务。9.根据权利要求5所述的主动探测平台,其特征在于,所述容器管理模块包括以下子模块:容器监控子模块:负责容器的管理,包括查看容器运行的镜像、I0、CPU、内存、运行环境变量、端口映射信息;容器控制台:提供操作界面供用户使用控制台对容器进行操作,使用命令行的方式对容器进行操作;容器管理子模块:负责管理容器的运行状态,包括对其进行暂停、停止、重启、销毁操作。10.根据权利要求5所述的主动探测平台,所述任务调度模块根据探测任务的多样化配置需求对资源进行统一管理和调度,包括:在资源充足的情况下,采用面向多维度资源需求的任务调度算法,根据探测任务配置的多维度的需求,筛选系统中剩余资源大于探测任务所申请资源的节点,根据节点的负载和健康值对节点进行打分排序,节点得分越高,则该节点的负载越大;资源不足的情况下,采用基于优先级分类的抢占式调度算法,优先调度对任务执行时间有特殊需求的任务。

百度查询: 中国科学院信息工程研究所 一种基于云的主动探测方法和探测平台

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。