[开源工作流系统设计]大规模网络拓扑扫描与终端端口控制技术的结合

大规模网络拓扑扫描与终端端口控制技术的结合


简要设计原理

在一个拓扑结构中,我们以该拓扑结构中任意一个节点作为连接点(一般是防御能力比较差的裸露节点),释放或者植入拓扑扫描器模块

1:启动拓扑扫描器(三次扫描过程)

初次扫描  获取整个拓扑结构的总体轮廓 为次级扫描提供基础参数(节点数  拓扑边界等参数) 将返回数据记录到 初级拓扑数据库中

次级扫描  通过初级扫描的返回参数 对整个拓扑网络进行边界划分  划分子网络 

高级扫描   对各个子网络内的每个节点进行详细扫描  获得每个节点的基本属性(代码,数据,控制 备份  可用端口 )  将扫描结果 记录到 矩阵拓扑数据库中  构建 整个拓扑网络的矩阵数据结构
 

2:启动并行计算系统和光纤宽带系统

同时启动数百个,数千个计算核心(虚拟机,进程) ,每个进程挂接一个端口控制模块(每种机器的端口类型和漏洞库都事先存储在数据库中),并连接端口数据库, 再次启动拓扑扫描器并直接进入高级扫描模式,按照预先存储好的拓扑网络结构,根据扫描存储下来的路径,向每个节点中的不同端口投射控制信号和调整参数
 

3:启动信号探测系统,获取被扫描网络的当前工作状态,并根据当前工作状态对我们的工作进行反馈调整,将反馈参数送入 拓扑扫描器的再次启动周期的初始参数数据库中,再次进行拓扑扫描,然后修正拓扑数据库中的拓扑结构和终端参数,然后 再次进行 并行计算和并行控制


上述的过程仅仅是整个网络信息攻防战的一个初始阶段,后续过程往往更加复杂和动态化,所以请我们广大开源爱好者要做好自己的机器数据备份工作哦

请注意,我这里说的网络是我们工作流的拓扑网络,并不是物理网络或者其它通讯网络,请不要误会,下面附上我最近的一些设计

=====================================================================

*  流程拓扑扫描器设计思路

*  1:基于矩阵存储结构
*  2:基于SQL数据库存储结构
*  3:基于XML数据结构流程存储模型

*  普遍遵守设计原则



* 1:起始节点和终止节点(扫描起始点,扫描终止点,或者是任意节点)
  
   2: 扫描的拓扑空间范围(至少要划定一个有限的拓扑网络的几何空间范围)
  
   3:确定拓扑扫描的2维方向(向拓扑空间的哪个方向进行扫描,目前的工作流拓扑肯定是2维图,但是以后的发展肯定要向3维拓扑发展,甚至是4维拓扑)(扫描信号的脉冲频率和精度,虽然工作流系统里面不用,但是其它系统设计肯定要用)
  
   4:(调用JWFDV0.94的ARC算法,但是要改进)(如果是有向连接拓扑,那么一次扫描应该就够了,如果是无向连接拓扑,那么问题还要复杂一些,工作流图肯定是有向连接,但是神经网络和星体网络就不是有向连接,那么该怎么办?) 确定存储结构(SQL数据库或者矩阵数据库)如果是大规模快速拓扑扫描-那么应该建立扫描过程的缓存结构,100个节点存储在缓存中,建立2级缓存机制,对于超大规模拓扑结构的扫描是必须的

   5:拓扑扫描的关键问题还是要找到这个拓扑网络的关键点-和关键区(关键节点的含义有下面的几个方面:


    输出拓扑连接线和输入拓扑连接线都比较多的节点,是一个关键节点
     输出拓扑连接线和输出拓扑连接线都很少的节点,是一个关键节点
     输出信息量和输入信息量比较多的节点,是一个关键(计算,数据存储)节点
     输出信息量和输入信息量比较少的节点,是一个可抛弃(冗余)节点
    
     输入拓扑连接于输出拓扑连接的数量比例比较独特的节点,是一个关键节点
    
     输入信息量远远大于输出信息量的节点 是一个吸收-寄生-客户端节点
     输出信息量远远大于输入信息量的节点,是一个释放-宿主-服务器-信息中心节点
    
*
*
*  算法设计过程

*  当系统中存在一个复杂拓扑结构(限定为二维平面拓扑,3维立体拓扑不属于我们这些山寨开源的工作范围) 而这个结构的细节,我们无法得到的时候,就可以使用拓扑扫描器对全域拓扑结构进行多层次扫描

具体的代码和扫描的拓扑基础结构有关,根据拓扑扫描器设计思路中的三种不同类型来设计三种不同的扫描器代码


*  =========================================================================

*  通过第一次初级扫描,获得全域拓扑结构的整体范围,包括有多少个节点,拓扑结构的边界限定在哪里?

*  输入参数:初始节点ID(该初始节点可以不是拓扑结构的第一个节点,可以是任意拓扑节点)

*  算法设计过程:

*  获得第一个节点的ID号之后,通过读取当前流程底层数据结构的类型(如下,有三种),分别获得与这个节点进行连接的全部连接线段的LINEID,然后把与这些连接线段连接的另外一个节点的ID号读取出来,该轮扫描就结束 

*  一轮扫描只延伸一个节点连接线段,但是是360度的延伸,用圆周方式对环绕该节点的周围全部直线连接点进行扫描(这样设计,是为今后流程拓扑结构进化到3维立体结构作准备,一圈一圈的递归下去,用圆周模式向外扩张扫描(我称为-圆周扩张扫描法)

*  如果采用多节点同步扫描的方法,在拓扑网络的不同位置,同时启动几个扫描过程,用圆周扩张扫描,可以在迅速在平面网络上面完成一次初级扫描,但是是否高效,还需要我们的实践

*  再复杂的拓扑网络都需要一个中心区域,就好像再复杂和庞大的星系都存在核心一样,否则进化和生命将无法产生只不过,这个核心,我们并不一定能够发现


*  基于矩阵存储结构的设计:


*  需要将矩阵数据库的第二层API操作函数库建立起来之后,才能够具体实现


*  基于SQL数据库存储结构的设计:


*  无论如何设计,总会让流程数据结构变得更加复杂,这个扫描器的实现就必须在流程节点表或者线段表中增加一个或者多个标志字段,又要修改数据字典和数据库结构,又要发布新的文档。。。。 所以,必须在发布代码之前,把文档写完整,避免新的代码包发布之后,用户无法在短时间内将其应用在实际工程中,耽误工作




*  基于XML数据结构流程存储模型的设计:

*  如果XML文件比较大,扫描该文件,并确定XML的结构也比较费时间,但是这个工作现在看来是所有流程后续工程的初始工作,所以XML解析器是必须有的,至少要了解XML文件的解析模型,HTTP文件其实就是一种XML结构,会做浏览器的朋友应该都懂如何解析XML文档


*  输出结果:未完待续

*   
*  通过第二次次级扫描,获得 未完待续


*  输入参数: 未完待续

*  算法设计过程: 未完待续


*  基于矩阵存储结构的设计:未完待续


*  基于SQL数据库存储结构的设计:未完待续


*  基于XML数据结构流程存储模型的设计:未完待续


*  输出结果:未完待续





*  通过第三次高级扫描,获得  未完待续

*  输入参数:未完待续

*  算法设计过程:未完待续


*  基于矩阵存储结构的设计:未完待续


*  基于SQL数据库存储结构的设计:未完待续


*  基于XML数据结构流程存储模型的设计:未完待续



*  输出结果:未完待续





*  通过多次扫描,获得全域拓扑结构信息,并根据这个信息集合,构建拓扑网络基本信息表

*  将拓扑网络基本信息表作为一个数据信息包,传递到下一个处理单元中,工作完成

*  ================================================================

你可能感兴趣的:([开源工作流系统设计]大规模网络拓扑扫描与终端端口控制技术的结合)