分布式扫描方法及系统与流程

文档序号:16848805发布日期:2019-02-12 22:33阅读:380来源:国知局
分布式扫描方法及系统与流程

本申请涉及网络扫描技术领域,具体而言,涉及一种分布式扫描方法及系统。



背景技术:

目前,很多计算机网络相关工作者都需要使用网络扫描工具对网络设备进行扫描。一般做法是,在本地发起扫描任务,使用本地计算机资源和本地网络资源处理扫描任务。然而当任务量较大时,这种做法就会消耗很多时间,占用很多本地资源。

此外的做法是服务器统一管理调度客户端机器集群,用户在服务器端指定任务,任务分发到各个客户端,客户端集群读取任务进行扫描,并将扫描结果提交给服务器,再由服务器整合扫描结果输出最终结果。但是由于客户端使用的是专门的机器集群,机器成本极高,并且如果没有扫描任务或者扫描任务较少时,会造成较大的计算和网络资源的空闲浪费。此外,服务器与客户端必须要在同一网络环境中,适应范围小。同时,由于客户端机器集群的本身特性,空闲的客户端需要长时间被动等待扫描任务,不能够独立地进行其它的普通任务。



技术实现要素:

为了克服现有技术中的上述不足,本申请的目的在于提供一种分布式扫描方法及系统,以解决或者改善上述问题。

为了实现上述目的,本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供一种分布式扫描方法,应用于分布式扫描系统,所述分布式扫描系统包括多个扫描节点以及与所述多个扫描节点通信连接的索引服务器,所述方法包括:

所述多个扫描节点中任意一个第一扫描节点在接收到任务发布指令后,根据所述索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点;

若当前存在处于空闲状态的其它第二扫描节点,则分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务;

各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点。

可选地,所述多个扫描节点中任意一个第一扫描节点在接收到任务发布指令后,根据所述索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的第二扫描节点的步骤之前,所述方法还包括:

各个扫描节点在启动扫描程序后,分别向所述索引服务器发送各自的索引信息;

所述索引服务器分别接收各个扫描节点发送的索引信息,并将各个扫描节点的节点状态标记为空闲状态;

所述索引服务器针对每个扫描节点,向该扫描节点分别发送其它各个扫描节点的节点状态和索引信息;

每个扫描节点根据接收到的其它各个扫描节点的索引信息与其它各个扫描节点建立通信连接。

可选地,所述分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务的步骤,包括:

根据第二扫描节点的节点数量对当前的待扫描任务集合进行任务分割,得到所述第一扫描节点对应的扫描任务和每个第二扫描节点对应的扫描任务;

分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务。

可选地,所述各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务的步骤之后,所述方法还包括:

各个正在执行对应的扫描任务的第一扫描节点和第二扫描节点分别向所述索引服务器发送繁忙提示信息;

所述索引服务器根据接收到的所述繁忙提示信息将各个正在执行对应的扫描任务的第一扫描节点和第二扫描节点的节点状态标记为繁忙状态。

可选地,所述各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点的步骤之后,所述方法还包括:

所述第一扫描节点将自身的扫描结果和各个第二扫描节点发送的扫描结果和进行整合,生成扫描报告。

可选地,所述各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点的步骤之后,所述方法还包括:

完成扫描任务后的第一扫描节点和各个第二扫描节点分别向所述索引服务器发送空闲提示信息;

所述索引服务器根据接收到的所述空闲提示信息将完成扫描任务后的第一扫描节点和各个第二扫描节点的节点状态标记为空闲状态。

可选地,所述据所述索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点的步骤之后,所述方法还包括:

若当前不存在处于空闲状态的其它第二扫描节点,则所述第一扫描节点在执行对应的扫描任务的同时持续监测所述索引服务器发送的所有扫描节点的节点状态,并在监测到任意一个扫描节点的节点状态为空闲状态时,向该扫描节点发送扫描任务。

可选地,所述各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务的步骤中:

若所述各个第二扫描节点检测到所述第一扫描节点断开网络,则停止执行所述对应的扫描任务,并分别向所述索引服务器发送空闲提示信息;

所述索引服务器根据接收到的所述空闲提示信息将完成停止执行任务的各个第二扫描节点的节点状态标记为空闲状态。

可选地,所述各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务的步骤中:

若所述第一扫描节点检测到正在执行对应的扫描任务的任意一个第二扫描节点断开网络,则判断当前是否存在处于空闲状态的其余第二扫描节点;

若当前存在处于空闲状态的其余第二扫描节点,则将该对应的扫描任务发送给其余第二扫描节点;

若当前不存在处于空闲状态的其余第二扫描节点,则持续监测所述索引服务器发送的其余各个扫描节点的节点状态,并在监测到任意一个扫描节点的节点状态为空闲状态时,向该扫描节点发送扫描任务。

第二方面,本申请实施例还提供一种分布式扫描系统,应用于分布式扫描系统,所述分布式扫描系统包括多个扫描节点以及与所述多个扫描节点通信连接的索引服务器;

所述多个扫描节点中任意一个第一扫描节点用于在接收到任务发布指令后,根据所述索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点,若当前存在处于空闲状态的其它第二扫描节点,则分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务;

各个第二扫描节点,用于分别在接收到对应的扫描任务时执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点。

相对于现有技术而言,本申请具有以下有益效果:

本申请实施例提供一种分布式扫描方法及系统,第一扫描节点在接收到任务发布指令后根据索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点,若存在,则分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务,各个第二扫描节点分别在接收到对应的扫描任务时执行对应的扫描任务,并将扫描结果发送给第一扫描节点。如此,本申请可以合理利用分布式扫描系统中的空闲计算资源和网络资源,避免资源浪费。此外,各个扫描节点和索引服务器不必属于同一网络,扩大了适用范围。同时,各个扫描节点不受传统扫描方式中集群的特性限制,可以随时上线进行扫描任务,或者随时下线进行其它普通任务,提高了设备利用率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本申请实施例提供的分布式扫描系统的一种交互场景示意图;

图2为本申请实施例提供的分布式扫描系统的另一种交互场景示意图;

图3为本申请实施例提供的分布式扫描方法的一种流程示意图;

图4为本申请实施例提供的分布式扫描方法的另一种流程示意图。

图标:10-分布式扫描系统;100-索引服务器;200-扫描节点。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参阅图1,为本申请实施例提供的分布式扫描系统10的一种交互场景示意图。本实施例中,分布式扫描系统10包括多个扫描节点200以及与所述多个扫描节点200通信连接的索引服务器100。

一般来说,不同nat(networkaddresstranslation,网络地址转换)类型的内网机器是无法直接通信的,需要借助一台位于公网的服务器作为中继器。在图1所示的场景中,位于公网的索引服务器100就是中继器,该索引服务器100可以获取所有扫描节点200的索引信息,帮助各个扫描节点200进行网络发现。例如,两个不同nat类型的扫描节点a与扫描节点b分别连接到公网的索引服务器s,索引服务器s记录扫描节点a、扫描节点b的索引信息(例如ip地址、端口等路由信息)。此时,扫描节点a向索引服务器s查询可以知道扫描节点b是否在线,扫描节点a如果需要与扫描节点b通信连接,则需要通知索引服务器s自己需要与扫描节点b建立通信连接。此时索引服务器s则把扫描节点b的索引信息发送给扫描节点a,并把扫描节点a的索引信息发送给所述扫描节点b,扫描节点a和扫描节点b都获取到了对应的索引信息就可以完成内网穿透,从而建立通信连接。同理,多个扫描节点200也可以进行网络发现并和其它扫描节点200进行通信连接。

值得说明的是,当扫描节点200的数量过多时,仅一台索引服务器100可能会存在性能压力,在此情况下,请参阅图2,在图2所示的交互场景该分布式扫描系统10可以包括多个索引服务器100,也即在扫描节点200的数量过多时,可以考虑增加索引服务器100的数量,而各个索引服务器100之间同步各自的索引信息,从而分担查询索引信息的负载压力。

值得说明的是,在实际场景中本申请提供的技术方案并不局限于图1或者图2所示的交互场景,例如,在其它实施方式中,本领域技术人员可以根据实际需求增加或者减少扫描节点200以及索引服务器100的数量。

下面基于图1或者图2中所示的分布式扫描系统10的交互场景对本申请实施例提供的分布式扫描方法进行详细阐述,请参阅图3,为本申请实施例提供的分布式扫描方法的一种流程示意图。所应说明的是,本申请实施例提供的分布式扫描方法不以图3及以下的具体顺序为限制。该方法的具体流程如下:

步骤s110,所述多个扫描节点200中任意一个第一扫描节点在接收到任务发布指令后,根据所述索引服务器100发送的所有扫描节点200的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点。

本实施例中,如果所述多个扫描节点200中任意一个扫描节点200需要发布扫描任务时,则该扫描节点200都可以作为本实施例中的第一扫描节点,也即,本实施例并不指定当前场景中的哪一个扫描节点200是第一扫描节点,而是根据实际发布的扫描节点200来自动确定。

可选地,该任务发布指令可以是根据用户操作生成,也可以是自动生成,在此不作任何限制。该第一扫描节点与索引服务器100实时同步所有扫描节点200的节点状态,因此可以在接收到任务发布指令后,根据所述索引服务器100发送的所有扫描节点200的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点。值得说明的是,由于该第一扫描节点当前未执行扫描任务,因此该第一扫描节点当前也处于空闲状态。

可选地,结合图4,在步骤s110之前,所述方法还可以包括如下步骤:

步骤s101,各个扫描节点200在启动扫描程序后,分别向所述索引服务器100发送各自的索引信息。

本实施例中,各个扫描节点200中安装有扫描程序,该扫描程序可以是p2p程序,会预置索引服务器100的地址。当各个扫描节点200运行该扫描程序后,该扫描程序将与所述索引服务器100建立通信连接,并分别向所述索引服务器100发送各自的索引信息,该索引信息可以包括但不限于端口信息、ip地址信息等等。

步骤s102,所述索引服务器100分别接收各个扫描节点200发送的索引信息,并将各个扫描节点200的节点状态标记为空闲状态。

步骤s103,所述索引服务器100针对每个扫描节点200,向该扫描节点200分别发送其它各个扫描节点200的节点状态和索引信息。

步骤s104,每个扫描节点200根据接收到的其它各个扫描节点200的索引信息与其它各个扫描节点200建立通信连接。

本实施例中,所述索引服务器100分别记录各个扫描节点200发送的索引信息,并将各个扫描节点200的节点状态标记为空闲状态,然后向各个扫描节点200分别发送其它各个扫描节点200的节点状态和索引信息。其中,如果扫描节点200的节点状态为空闲状态,表示该扫描节点200空闲,可以接受扫描任务,或者可以发布扫描任务。

如此,每个扫描节点200可以根据接收到的其它各个扫描节点200的索引信息与其它各个扫描节点200建立通信连接,从而便于后续向其它各个扫描节点200中空闲的第二扫描节点发布扫描任务。

步骤s120,若当前存在处于空闲状态的其它第二扫描节点,则分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务。

本实施例中,若当前存在处于空闲状态的其它第二扫描节点,则可以根据第二扫描节点的节点数量对当前的待扫描任务集合进行任务分割,得到所述第一扫描节点对应的扫描任务和每个第二扫描节点对应的扫描任务,接着分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务。

例如,若当前的待扫描任务集合包括7个扫描任务,第二扫描节点的节点数量为5,则从这7个扫描任务中分配5个扫描任务并均分给每个第二扫描节点,接着分别向这5个第二扫描节点发送对应的1个任务,而该第一扫描节点则从这剩余的2个扫描任务选取其中1个扫描任务进行执行。

此外,可选地,若当前不存在处于空闲状态的其它第二扫描节点,则所述第一扫描节点在执行对应的扫描任务的同时持续监测所述索引服务器100发送的所有扫描节点200的节点状态,并在监测到任意一个扫描节点200的节点状态为空闲状态时,向该扫描节点200发送扫描任务。

步骤s130,各个第二扫描节点分别在接收到对应的扫描任务时执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点。

本实施例中,由于各个第二扫描节点当前处于空闲状态,故在在接收到对应的扫描任务时则执行所述对应的扫描任务,并将扫描结果发送给所述第一扫描节点。

在一种实施方式中,若所述各个第二扫描节点检测到所述第一扫描节点断开网络,则停止执行所述对应的扫描任务,并分别向所述索引服务器100发送空闲提示信息,所述索引服务器100根据接收到的所述空闲提示信息将完成停止执行任务的各个第二扫描节点的节点状态标记为空闲状态。

在另一种实施方式中,若所述第一扫描节点检测到正在执行对应的扫描任务的任意一个第二扫描节点断开网络,则判断当前是否存在处于空闲状态的其余第二扫描节点,若当前存在处于空闲状态的其余第二扫描节点,则将该对应的扫描任务发送给其余第二扫描节点。若当前不存在处于空闲状态的其余第二扫描节点,则持续监测所述索引服务器100发送的其余各个扫描节点200的节点状态,并在监测到任意一个扫描节点200的节点状态为空闲状态时,向该扫描节点200发送扫描任务。

本实施例中,所述第一扫描节点在接收到各个第二扫描节点发送的扫描结果后,将自身的扫描结果和各个第二扫描节点发送的扫描结果和进行整合,生成扫描报告。

如此,本实施例可以合理利用分布式扫描系统10中的空闲计算资源和网络资源,将扫描任务合理地分发到其他扫描节点200,避免资源浪费。此外,各个扫描节点200和索引服务器100不必属于同一网络,扩大了适用范围。同时,各个扫描节点200不受传统扫描方式中集群的特性限制,可以随时上线进行扫描任务,或者随时下线进行其它普通任务,提高了设备利用率。

可选地,大概第一扫描节点和各个第二扫描节点正在执行对应的扫描任务时,各个正在执行对应的扫描任务的第一扫描节点和第二扫描节点分别向所述索引服务器100发送繁忙提示信息,所述索引服务器100根据接收到的所述繁忙提示信息将各个正在执行对应的扫描任务的第一扫描节点和第二扫描节点的节点状态标记为繁忙状态。当第一扫描节点和第二扫描节点的节点状态标记为繁忙状态时,表示该扫描节点200当前正在执行扫描任务,暂时无法接收新的扫描任务,或者发布任务。

可选地,在上述基础上,当第一扫描节点和各个第二扫描节点完成对应的扫描任务之后,分别向所述索引服务器100发送空闲提示信息,所述索引服务器100根据接收到的所述空闲提示信息将完成扫描任务后的第一扫描节点和各个第二扫描节点的节点状态标记为空闲状态。如此,完成扫描任务之后的扫描节点200可以继续接收新的扫描任务或者发布扫描任务。

综上所述,本申请实施例提供一种分布式扫描方法及系统,第一扫描节点在接收到任务发布指令后根据索引服务器发送的所有扫描节点的节点状态判断当前是否存在处于空闲状态的其它第二扫描节点,若存在,则分别向各个第二扫描节点发送对应的扫描任务,并执行自身对应的扫描任务,各个第二扫描节点分别在接收到对应的扫描任务时执行对应的扫描任务,并将扫描结果发送给第一扫描节点。如此,本申请可以合理利用分布式扫描系统中的空闲计算资源和网络资源,避免资源浪费。此外,各个扫描节点和索引服务器不必属于同一网络,扩大了适用范围。同时,各个扫描节点不受传统扫描方式中集群的特性限制,可以随时上线进行扫描任务,或者随时下线进行其它普通任务,提高了设备利用率。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1