CN110876155B - 无线网格网络的模拟系统和方法 - Google Patents

无线网格网络的模拟系统和方法 Download PDF

Info

Publication number
CN110876155B
CN110876155B CN201811012102.XA CN201811012102A CN110876155B CN 110876155 B CN110876155 B CN 110876155B CN 201811012102 A CN201811012102 A CN 201811012102A CN 110876155 B CN110876155 B CN 110876155B
Authority
CN
China
Prior art keywords
node
message
network
central
mesh network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811012102.XA
Other languages
English (en)
Other versions
CN110876155A (zh
Inventor
杨骁�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201811012102.XA priority Critical patent/CN110876155B/zh
Publication of CN110876155A publication Critical patent/CN110876155A/zh
Application granted granted Critical
Publication of CN110876155B publication Critical patent/CN110876155B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/06Testing, supervising or monitoring using simulated traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种无线网格网络的模拟系统和方法。其中,该系统包括:节点进程,运行在用于对无线网格网络进行模拟的目标设备上,用于模拟无线网格网络中的网络节点设备;中心进程,运行在目标设备上,用于交换多个节点进程之间的报文,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。本发明解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。

Description

无线网格网络的模拟系统和方法
技术领域
本发明涉及网络测试领域,具体而言,涉及一种无线网格网络的模拟系统和方法。
背景技术
Mesh网络(无线网格网络)能力需要多台嵌入式设备存在相互邻近并信号可达的空间中,组织成有效的网络之后,在其上进行网络报文传输,才能够体现出来的能力,需要能够达到省电、高效、准确,以及健壮等多方面的技术指标。因此,目前在研发Mesh网络能力的过程中,经常需要观察和调试多台设备(通常需要10至50台设备)在各自都部署了操作系统的情况下,能否按照预期自发连接成网络,并在网络中转发报文。
现有技术所使用的测试方法不仅需要将新编译的操作系统软件部署至多台嵌入式设备上,工作量较大,而且对于无形的网络报文在实际的网络中是如何流动和转发的,难以进行有效的进行监控。如果通过收集和分析几十台网络设备的日志文本来获取报文的流转信息,则其工作量较大且效率较低,从而难以保证有效的开发效率。
针对现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种无线网格网络的模拟系统和方法,以至少解决现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
根据本发明实施例的一个方面,提供了一种无线网格网络的模拟系统,包括:节点进程,运行在用于对无线网格网络进行模拟的目标设备上,用于模拟无线网格网络中的网络节点设备;中心进程,运行在目标设备上,用于交换多个节点进程之间的报文,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
根据本发明实施例的另一方面,还提供了一种无线网格网络的模拟方法,包括:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
根据本发明实施例的另一方面,还提供了一种无线网格网络的模拟方法,包括:节点进程生成报文,其中,节点进程运行在用于对无线网格网络进行模拟的目标设备上,节点进程用于模拟无线网格网络的网络节点设备;节点进程将报文传输至中心进程,由中心进程将报文转发至下一个节点进程,并由中心进程记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程,中心进程运行在目标设备上。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行如下步骤:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行如下步骤:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
在本发明实施例中,由于报文在任意两个节点进程模拟的网络节点设备之间流转时,都会经过中心进程,从而使得中心进程能够得到报文每次的流转信息,并对流转信息进行记录。采用这样的方案,在一台计算机(及目标设备)上就能够快速动态的创建出虚拟Mesh网络,并对快速的在虚拟的网络节点设备上部署新开发的OS软件,从而模拟出待测试的网络节点设备。再结合通过中心进程交换报文并记录报文流传信息的机制,使得测试者能够轻松的在中心进程处观察到报文在这张虚拟网络中的转发记录和虚拟网络设备的运行状态,并基于此来验证开发的OS软件是否符合预期,极大的提高了研发和测试效率。
由此,本申请上述方案解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例1的一种无线网格网络的模拟系统;
图2是根据本申请实施例1的一种可选的无线网格网络的模拟系统的示意图;
图3示出了一种用于实现无线网格网络的模拟方法的计算机终端(或移动设备)的硬件结构框图;
图4是根据本发明实施例2的无线网格网络的模拟方法的流程图;
图5是根据本申请实施例3的一种无线网格网络的模拟系统;
图6是根据本申请实施例4的一种无线网格网络的装置的示意图;
图7是根据本申请实施例5的一种无线网格网络的装置的示意图;以及
图8根据本发明实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
Mesh网络:即无线网格网络,是一种新无线局域网类型,与传统的WLAN不同的是,Mesh网络中的节点可以采用无线连接的方式进行互连,并且节点间可以建立多跳的无线链路。也即,Mesh网络中的每个节点都可以接收和转发最终目的接收方不是自己的数据报文,并可以参与组网管理和传输控制,而不是像传统网络中那样,这些数据转发和网络管理的智能都集中和依赖中心位置的节点设备。
HAL层:即Hardware Abstract Layer,硬件抽象层是位于操作系统,内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。在本申请中,HAL层抽象了网络接口硬件和上层软件之间的软件接口层。
IPC通信:即Inter-Process Communicat ion,进程间通信。进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,而进程间通信则是一组编程接口,让计算机程序逻辑能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递和交换信息。
Mesh Simulator:本申请提出的无线网格网络模拟器。该模拟器通过一定的软件架构和软件对象实现,包括agent部分和master部分,应用这种软件架构,可以用独立的进程来模拟Mesh网络设备,并且触发和记录它们之间的通信情况,在master部分集中的展现运行状况和结果,以及集中的分发控制指令给Mesh网络中的各个节点设备。
实施例1
根据本发明实施例,还提供了一种无线网格网络的模拟系统,图1是根据本申请实施例1的一种无线网格网络的模拟系统,如图1所示,该系统包括:
节点进程10,运行在用于对无线网格网络进行模拟的目标设备上,用于模拟无线网格网络中的网络节点设备。
具体的,上述节点进程可以为一个或多个,用于模拟Mesh网络中的网络节点设备,其中,一个节点进程用于模拟一个网络节点设备。目标设备即为用于进行Mesh网络测试的设备,目标设备上的操作系统可以是Linux系统,也可以是其他能够支持节点进程的系统。
在一种可选的实施例中,每个节点进程还需要包括待测试的Mesh网络模块,以及TCP/IP协议栈,以使得在节点进程运行时,能够模拟待测试的Mesh网络模块对报文进行处理。
中心进程20,运行在目标设备上,用于交换多个节点进程之间的报文,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
在多个节点进程传输报文时,由中心进程进行交换,也即,报文在多个节点之间流转,来模拟报文在网络节点设备之间流转的过程,在每次报文由一个节点进程流传至另一个节点进程时,都要经由中心进程转发,从而使得中心进程能够知晓报文每次流转的路径并进行记录。
中心进程记录的流转信息用于表示报文在传输过程中经过的节点进程,在一种可选的实施例中,中心进程可以记录报文每次流传时进过的节点进程的进程地址,从而能够确定报文的流转信息。
上述中心进程实际可以为一个主控软件,并能够在目标设备上提供一个人机交互界面,将记录的报文流转信息展示出来。中心进程记录的内容除了报文流转信息之外,还可以包括节点进程的信息(例如节点进程运行的软件的版本等)等,便于用户了解对测试过程。
图2是根据本申请实施例1的一种可选的无线网格网络的模拟系统的示意图,如图2所示,node用于表示节点进程,在该示例中,节点进程包括Al ice、Bob以及Carl,这三个节点进程用于模拟Mesh网络中的网络节点设备,在进行报文转发时,仅由中心进程node-master进行进程间通信,从而实现报文的转发。例如,当Al ice需要将生成的报文转发至Bob时,Al ice生成的报文会先流转至node-master,node-master接收报文后记录报文来源的地址,即Al ice的进程地址,再记录报文的目的地址,即Bob的进程地址,最后再将报文转发给Bob。从而实现了通过中心进程记录各个节点进程间的报文转发的目的。
本方案和传统的物理Mesh网络测试的结构相比,传统方案在部署阶段,需要把组成实验网络的数十台设备都用USB转串口线物理连接到开发主机上烧录新开发的软件,整个部署的过程非常的漫长又容易出错,还可能会出现不同的设备上软件版本不同的问题,如果使用本申请上述方案提供的Mesh Simulator,在部署阶段,由于所有的节点不再是实际设备,而是软件的进程,因此只需要对一个节点进程克隆多次,就能产生多个内部执行逻辑完全一样的节点进程,并可以确定所有节点的内部行为一定是同一个版本的,进程的克隆所消耗的时间相对部署到物理硬件的时间来说,几乎可以忽略不计。
在运行阶段,传统方案由于开发和测试Mesh网络就是要调整和观察每个节点在网络中面对不同网络数据报文的处理方式是否符合预期,而要观察节点的内部行为只能通过设备运行的同时打印设备的行为到终端串口上,但把这些日志收集起来要花费很大的人力和时间,分析起来更加花费人力和时间。使用本申请提出的Mesh Simulator,由于设置了一个中心进程(node-master),不仅扮演了空气,起到模拟物理介质的效果,还使用网络中流转的报文都要经过中心节点转发这一机制,只需要在node-master软件中集中的将它所接收和转发的报文展示出来,就可以直观的将Mesh网络的内部行为显现,进一步地,还可以从网络节点的维度,或者从报文序号的维度,或者从更多不同的维度对报文转发进行筛选和过滤,能够得到更加清晰的展示效果。
在上述方案中,由于报文在任意两个节点进程模拟的网络节点设备之间流转时,都会经过中心进程,从而使得中心进程能够得到报文每次的流转信息,并对流转信息进行记录。采用这样的方案,在一台计算机(及目标设备)上就能够快速动态的创建出虚拟Mesh网络,并对快速的在虚拟的网络节点设备上部署新开发的OS软件,从而模拟出待测试的网络节点设备。再结合通过中心进程交换报文并记录报文流传信息的机制,使得测试者能够轻松的在中心进程处观察到报文在这张虚拟网络中的转发记录和虚拟网络设备的运行状态,并基于此来验证开发的OS软件是否符合预期,极大的提高了研发和测试效率。
由此,本申请上述方案解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
作为一种可选的实施例,节点进程包括:操作系统和运行在操作系统上的应用软件;硬件抽象层,用于提供操作系统和目标设备之间的抽象层接口。
具体的,节点进程,即用于模拟网络节点的进程,可以如下几个部分:操作系统及其上层应用软件,其中,操作系统可以是Al iOS Things操作系统,应用软件可以利用模拟的Mesh网络进行网络业务通信。硬件抽象层隔离和抽象了具体的硬件网络接口卡和不同的协议栈接口,使得无论通过何种网卡驱动发送和接收报文,节点进程中的上层代码都不需要改动。
在一种可选的实施例中,仍结合图2所示,以节点进程Al ice为例,该进程包括AliOS Things操作系统,应用软件运行在Al iOS Things操作系统之上,例如,TFTP文件传输的客户端和服务端等。Al ice还包括hal layer,即硬件抽象层,hal layer将硬件抽象化,隐藏了特定平台的硬件接口细节,为操作系统提供了虚拟硬件平台。
作为一种可选的实施例,节点进程还包括:节点代理模块,用于获取应用软件发送的报文,并对报文进行传输。
具体的,Mesh Simulator通过节点代理模块嵌入至节点进程模拟的网络节点设备。节点代理模块可以设置在目标设备的操作系统的硬件抽象层内部,因此可以获取到上层应用软件准备发送至空气中的报文,从而对报文进行传输。
在一种可选的实施例中,仍结合图2所示,node-agent即为上述节点代理模块,目标设备的操作系统为Linux,node-agent@l inux hal用于表示node-agent在目标设备的操作系统内部。
作为一种可选的实施例,其中,节点代理模块还用于获取应用软件使用操作系统的协议栈接口发送的报文,对报文进行封装处理,并使用进程间的通信方式将封装后的报文发送至中心进程。
协议栈是指网络中各层协议的总和,反应了网络中报文的传输过程,在发出报文时,报文由底层协议到上层协议,不断增加各层协议对应的数据包,在接收报文时由上层协议到底层协议,不断去掉个协议对应的数据包。
在上述方案中,应用软件是运行在操作系统上层的应用软件,因此应用软件需要传输报文时,需要通过协议栈接口发出。
节点代理模块在接收到应用软件需要发送的报文后,需要将报文进行封装,并将封装后的报文发送至中心进程,由中心进程进行转发。
再以图2所示的示例进行说明,node进程上的Al iOS Things操作系统启动,上层应用软件使用Al iOS Things的协议栈接口发送报文,报文经过Al iOS Things操作系统的协议栈部分处理,到达HAL层。与实体的物理网络下不同的是,如果是实际的网络节点设备,此时HAL层是将准备向空气中发送的报文交给网络接口卡的设备驱动程序,而在上述方案中,报文是被交给了node-agent,node-agent获取向外发送的报文的内容和长度,模仿网卡驱动程序对报文进行加工,即对报文进行封装。
作为一种可选的实施例,节点代理模块还用于在报文的首字节前增加报文的接口信息、报文的来源节点进程的通信地址,报文的目标节点进程的通信地址和目标设备的通信标识,在报文的尾字节后增加报文校验和,以对报文进行封装。
具体的,上述报文的接口信息用于表示该报文所属会话的路径,可以由一系列文件名构成,报文的来源节点进程指的是发出报文的应用软件所属的节点进程,报文的目标节点进程是指来源节点进程所指示的接收报文的节点进程,校验和用于中心节点对报文进行校验。
在该方案中,节点进程对报文封装后需要发送至中心进程,需要使用进程间通信(IPC,Interprocess Communicat ion)的方式进行报文的传输,因此需要在报文首部加入来源节点进程的通信地址和目标节点进程的通信地址,该通信地址均为进程间通信地址。而报文的接口信息和目标设备的标识用于在分析时对报文进行追溯。进一步地,在封装过程中,除了上述内容,还可以在报文首部加入其它字段,例如:报文序号等,在实际应用中,可以根据对报文分析的实际需求来设定封装时需要在报文首部增加的字段内容。
在一种可选的实施例中,node-agent在报文之前附加一个Mesh Simulator的首部字段,具体可以包括:报文的接口信息、报文来源节点进程的进程间通信地址、报文的目标节点进程的进程间通信地址以及目标设备的标识符,并在末尾字节后增加报文校验和等。
node-agent对报文的封装,实际是使用Mesh Simulator协议对报文的封装,node-agent本质上是Linux用户空间的一段程序,因此它在完成了报文的封装之后,可以用Linux标准的进程间通信方式,将封装后的报文从node进程发送给node-master。
作为一种可选的实施例,中心进程还用于监听任意节点代理模块发送的封装后的报文,并将封装后的报文转发至与来源节点进程最近的下一个节点进程,其中,中心进程通过解析网络拓扑配置文件,获取多个节点进程所模拟的网络节点设备之间的距离。
具体的,节点代理模块可以通过广播的方式传输封装后的报文,由于所有节点进程的报文传输都需要中心进程进行交换传输,因此,中心进程监听所有节点进程发出的报文。
在实际的Mesh网络中,每个网络节点设备都能够接收和转发最终目的接收方不是自己的报文,网络节点设备将报文发送到空气中,距离发送报文的来源网络节点设备最近的其他网络节点设备接收到报文后,再将其发送到空气中,以此类推,直至目的接收方的网络节点设备接收到报文。
上述方案用于模拟实际的Mesh网络中网络节点设备的报文传输方式,中心进程将报文传输至下一个节点进程,下一个节点进程指的是距离来源节点进程最近的节点进程。
和实际的Mesh网络不同的是,节点之间的距离关系并不是实际存在着的,也即网络的拓扑结构也需要转换成软件虚拟的形式,在上述方案中,通过配置文件的方式对虚拟的网络节点设备之间的距离关系进行描述。
在一种可选的实施例中,仍结合图2所示,node-master本质也是Linux用户空间的一个独立进程,与node不同的是,node-master是一个服务进程,它在固定的端口侦听数据包,监听node-agent按照Mesh Simulator协议封装的报文。首先通过进程间通信的方式到达node-master的接收逻辑。node-master在Mesh Simulator中的作用就相当于空气在实际的Mesh网络中的作用,所以它接收到数据包之后,需要模拟空气在实际Mesh网络中的作用,也即将报文广播给和报文的上一跳发送者足够邻近的其它节点进程。
node-master启动的时候会读取和解析网络拓扑配置文件,从而知晓虚拟的各个节点进程之间的邻近关系,上述配置文件也记录了每个节点的进程间通信地址,所以在广播报文的时候,node-master筛选出和报文的上一跳发送者(即来源节点进程)足够近的节点进程,找到这些节点对应的进程间通信地址,并将报文处理后逐个发送给它们,从而完成了对空气的广播作用的模拟。
作为一种可选的实施例,中心进程还用于对封装后的报文进行重新封装,并记录来源节点进程的地址和下一个节点进程的地址。
具体的,中心进程记录来源节点进程的地址和下一个节点进程的地址,从而达到了记录报文的流转信息的作用。需要说明的是,上述来源节点进程,对于第一个接收到报文的节点进程来说,是报文的初始来源,对于其他节点进程来说,指的是上一个节点进程。
上述方案可以集中的统计报文的转发过程,无需传统方式中对物理设备的文本日志收集和分析,就能够集中展示报文在网络中的流转情况,提高了测试效率。
作为一种可选的实施例,中心进程还用于使用中心进程的地址和下一个节点进程的地址对报文的首部重新进行组装。
仍结合图2中的结构,为了保证这个node-master对报文的传播过程可以达到模拟空气的效果,node-master在传输前需要进行一些必要的处理,包括:根据node-agent封装的报文尾部的校验和对报文进行校验,以及对报文的首部进行重新组装等。
在上述方案中,对报文的首部重新进行组装的目的是,将节点代理模块对报文进行封装时对报文首部增加的字段进行更改。中心进程会将自身的进程间地址加入到报文的首部,并将下一个节点进程,即距离上一个节点进程最近的节点进程的进程间地址也加入到报文的首部,从而达到了模拟实际Mesh网络中的网络节点设备对报文的传输功能。
作为一种可选的实施例,节点代理模块还用于接收中心进程发送的重新封装的报文,对重新封装的报文进行解封,并将解封得到的报文通过节点进程中的操作系统的协议栈发送至节点进程中的应用软件。
由于节点代理模块处在硬件抽象层的最下方,因此会最先接收到中心进程发送的报文。节点代理模块接收到报文会,会对报文进行解封,从而将报文恢复至原始状态,再将恢复的报文上交给上层的应用软件。
仍结合图2所示的结构,node-agent层还用于还原报文,解封由Mesh Simulator协议附加的首部和尾部,报文的内容恢复成原始的Mesh报文,然后交给上层的HAL逻辑,HAL层再将报文交给更上层的Al iOS Things操作系统的协议栈。如果最终达到了应用层的用户程序,那么报文的内容等同于最初被发出时的状态。由此,完成了报文在虚拟Mesh网络中的发送-接收链路。
基于这样的收发机制,如果再有多个节点上的多个应用程序,发出了多条网络报文交给Mesh Simulator网络进行模拟传输的时候,会使用同样的机制,按照上述的过程叠加到多个通信对端之间相继运行,从而模拟出和实际的Mesh网络一致的运行效果。
实施例2
根据本发明实施例,还提供了一种无线网格网络的模拟方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图3示出了一种用于实现无线网格网络的模拟方法的计算机终端(或移动设备)的硬件结构框图。如图3所示,计算机终端30(或移动设备30)可以包括一个或多个(图中采用302a、302b,……,302n来示出)处理器302(处理器302可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器304、以及用于通信功能的传输模块。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端30还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
应当注意到的是上述一个或多个处理器302和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端30(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器304可用于存储应用软件的软件程序以及模块,如本发明实施例中的无线网格网络的模拟方法对应的程序指令/数据存储装置,处理器302通过运行存储在存储器304内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器304可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器304可进一步包括相对于处理器302远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端30。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端30的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Control ler,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端30(或移动设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图3所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图3仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。
在上述运行环境下,本申请提供了如图4所示的无线网格网络的模拟方法。图4是根据本发明实施例2的无线网格网络的模拟方法的流程图。
步骤S41,中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备。
具体的,上述节点进程为用于模拟Mesh网络中的网络节点设备的进程,其中,一个节点进程用于模拟一个网络节点设备。目标设备即为用于进行Mesh网络测试的设备,目标设备上的操作系统可以是Linux系统,也可以是其他能够支持节点进程的系统。
在一种可选的实施例中,每个节点进程还需要包括待测试的Mesh网络模块,以及TCP/IP协议栈,以使得在节点进程运行时,能够模拟待测试的Mesh网络模块对报文进行处理。
上述中心进程实际可以为一个主控软件,并能够在目标设备上提供一个人机交互界面,将记录的报文流转信息展示出来。中心进程记录的内容除了报文流转信息之外,还可以包括节点进程的信息(例如节点进程运行的软件的版本等)等,便于用户了解对测试过程。
步骤S43,中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
在多个节点进程传输报文时,由中心进程进行交换,也即,报文在多个节点之间流转,来模拟报文在网络节点设备之间流转的过程,在每次报文由一个节点进程流传至另一个节点进程时,都要经由中心进程转发,从而使得中心进程能够知晓报文每次流转的路径并进行记录。
中心进程记录的流转信息用于表示报文在传输过程中经过的节点进程,在一种可选的实施例中,中心进程可以记录报文每次流传时进过的节点进程的进程地址,从而能够确定报文的流转信息。
图2是根据本申请实施例1的一种可选的无线网格网络的模拟系统的示意图,如图2所示,node用于表示节点进程,在该示例中,节点进程包括Al ice、Bob以及Carl,这三个节点进程用于模拟Mesh网络中的网络节点设备,在进行报文转发时,仅由中心进程node-master进行进程间通信,从而实现报文的转发。例如,当Al ice需要将生成的报文转发至Bob时,Al ice生成的报文会先流转至node-master,node-master接收报文后记录报文来源的地址,即Al ice的进程地址,再记录报文的目的地址,即Bob的进程地址,最后再将报文转发给Bob。从而实现了通过中心进程记录各个节点进程间的报文转发的目的。
本方案和传统的物理Mesh网络测试的结构相比,传统方案在部署阶段,需要把组成实验网络的数十台设备都用USB转串口线物理连接到开发主机上烧录新开发的软件,整个部署的过程非常的漫长又容易出错,还可能会出现不同的设备上软件版本不同的问题,如果使用本申请上述方案提供的Mesh Simulator,在部署阶段,由于所有的节点不再是实际设备,而是软件的进程,因此只需要对一个节点进程克隆多次,就能产生多个内部执行逻辑完全一样的节点进程,并可以确定所有节点的内部行为一定是同一个版本的,进程的克隆所消耗的时间相对部署到物理硬件的时间来说,几乎可以忽略不计。
在运行阶段,传统方案由于开发和测试Mesh网络就是要调整和观察每个节点在网络中面对不同网络数据报文的处理方式是否符合预期,而要观察节点的内部行为只能通过设备运行的同时打印设备的行为到终端串口上,但把这些日志收集起来要花费很大的人力和时间,分析起来更加花费人力和时间。使用本申请提出的Mesh Simulator,由于设置了一个中心进程(node-master),不仅扮演了空气,起到模拟物理介质的效果,还使用网络中流转的报文都要经过中心节点转发这一机制,只需要在node-master软件中集中的将它所接收和转发的报文展示出来,就可以直观的将Mesh网络的内部行为显现,进一步地,还可以从网络节点的维度,或者从报文序号的维度,或者从更多不同的维度对报文转发进行筛选和过滤,能够得到更加清晰的展示效果。
在上述方案中,由于报文在任意两个节点进程模拟的网络节点设备之间流转时,都会经过中心进程,从而使得中心进程能够得到报文每次的流转信息,并对流转信息进行记录。采用这样的方案,在一台计算机(及目标设备)上就能够快速动态的创建出虚拟Mesh网络,并对快速的在虚拟的网络节点设备上部署新开发的OS软件,从而模拟出待测试的网络节点设备。再结合通过中心进程交换报文并记录报文流传信息的机制,使得测试者能够轻松的在中心进程处观察到报文在这张虚拟网络中的转发记录和虚拟网络设备的运行状态,并基于此来验证开发的OS软件是否符合预期,极大的提高了研发和测试效率。
由此,本申请上述方案解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
作为一种可选的实施例,中心进程将报文转发至其他节点进程,包括:中心进程查找与发送报文的节点进程最近的下一个节点进程,其中,中心进程通过解析网络拓扑配置文件,获取多个节点进程所模拟的网络节点设备之间的距离;中心进程将报文转发给下一个节点进程。
具体的,节点进程中包括操作系统和运行在操作系统上的应用软件,以及用于提供所述操作系统和所述目标设备之间的抽象层接口的硬件抽象层,还包括用于获取所述应用软件发送的报文,并对所述报文进行传输的节点代理模块,上述步骤由节点代理模块执行。
节点进程中的节点代理模块可以通过广播的方式传输封装后的报文,由于所有节点进程的报文传输都需要中心进程进行交换传输,因此,中心进程监听所有节点进程发出的报文。
在实际的Mesh网络中,每个网络节点设备都能够接收和转发最终目的接收方不是自己的报文,网络节点设备将报文发送到空气中,距离发送报文的来源网络节点设备最近的其他网络节点设备接收到报文后,再将其发送到空气中,以此类推,直至目的接收方的网络节点设备接收到报文。
上述方案用于模拟实际的Mesh网络中网络节点设备的报文传输方式,中心进程将报文传输至下一个节点进程,下一个节点进程指的是距离来源节点进程最近的节点进程。
和实际的Mesh网络不同的是,节点之间的距离关系并不是实际存在着的,也即网络的拓扑结构也需要转换成软件虚拟的形式,在上述方案中,通过配置文件的方式对虚拟的网络节点设备之间的距离关系进行描述。
在一种可选的实施例中,仍结合图2所示,node-master本质也是Linux用户空间的一个独立进程,与node不同的是,node-master是一个服务进程,它在固定的端口侦听数据包,监听node-agent按照Mesh Simulator协议封装的报文。首先通过进程间通信的方式到达node-master的接收逻辑。node-master在Mesh Simulator中的作用就相当于空气在实际的Mesh网络中的作用,所以它接收到数据包之后,需要模拟空气在实际Mesh网络中的作用,也即将报文广播给和报文的上一跳发送者足够邻近的其它节点进程。
node-master启动的时候会读取和解析网络拓扑配置文件,从而知晓虚拟的各个节点进程之间的邻近关系,上述配置文件也记录了每个节点的进程间通信地址,所以在广播报文的时候,node-master筛选出和报文的上一跳发送者(即来源节点进程)足够近的节点进程,找到这些节点对应的进程间通信地址,并将报文处理后逐个发送给它们,从而完成了对空气的广播作用的模拟。
作为一种可选的实施例,中心进程记录报文的流转信息,包括:中心进程记录发送报文来源节点进程的地址和下一个节点进程的地址。
具体的,中心进程记录来源节点进程的地址和下一个节点进程的地址,从而达到了记录报文的流转信息的作用。需要说明的是,上述来源节点进程,对于第一个接收到报文的节点进程来说,是报文的初始来源,对于其他节点进程来说,指的是上一个节点进程。
上述方案可以集中的统计报文的转发过程,无需传统方式中对物理设备的文本日志收集和分析,就能够集中展示报文在网络中的流转情况,提高了测试效率。
实施例3
根据本发明实施例,还提供了一种无线网格网络的模拟系统,图5是根据本申请实施例3的一种无线网格网络的模拟系统,如图5所示,该系统包括:
步骤S51,节点进程生成报文,其中,节点进程运行在用于对无线网格网络进行模拟的目标设备上,节点进程用于模拟无线网格网络的网络节点设备。
具体的,上述节点进程为用于模拟Mesh网络中的网络节点设备的进程,其中,一个节点进程用于模拟一个网络节点设备。目标设备即为用于进行Mesh网络测试的设备,目标设备上的操作系统可以是Linux系统,也可以是其他能够支持节点进程的系统。
在一种可选的实施例中,每个节点进程还需要包括待测试的Mesh网络模块,以及TCP/IP协议栈,以使得在节点进程运行时,能够模拟待测试的Mesh网络模块对报文进行处理。
协议栈是指网络中各层协议的总和,反应了网络中报文的传输过程,在发出报文时,报文由底层协议到上层协议,不断增加各层协议对应的数据包,在接收报文时由上层协议到底层协议,不断去掉个协议对应的数据包。在上述方案中,应用软件是运行在操作系统上层的应用软件,因此应用软件需要传输报文时,需要通过协议栈接口发出。
步骤S53,节点进程将报文传输至中心进程,由中心进程将报文转发至下一个节点进程,并由中心进程记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程,中心进程运行在目标设备上。
在多个节点进程传输报文时,由中心进程进行交换,也即,报文在多个节点之间流转,来模拟报文在网络节点设备之间流转的过程,在每次报文由一个节点进程流传至另一个节点进程时,都要经由中心进程转发,从而使得中心进程能够知晓报文每次流转的路径并进行记录。
中心进程记录的流转信息用于表示报文在传输过程中经过的节点进程,在一种可选的实施例中,中心进程可以记录报文每次流传时进过的节点进程的进程地址,从而能够确定报文的流转信息。
上述中心进程实际可以为一个主控软件,并能够在目标设备上提供一个人机交互界面,将记录的报文流转信息展示出来。中心进程记录的内容除了报文流转信息之外,还可以包括节点进程的信息(例如节点进程运行的软件的版本等)等,便于用户了解对测试过程。
图2是根据本申请实施例1的一种可选的无线网格网络的模拟系统的示意图,如图2所示,node用于表示节点进程,在该示例中,节点进程包括Al ice、Bob以及Carl,这三个节点进程用于模拟Mesh网络中的网络节点设备,在进行报文转发时,仅由中心进程node-master进行进程间通信,从而实现报文的转发。例如,当Al ice需要将生成的报文转发至Bob时,Al ice生成的报文会先流转至node-master,node-master接收报文后记录报文来源的地址,即Al ice的进程地址,再记录报文的目的地址,即Bob的进程地址,最后再将报文转发给Bob。从而实现了通过中心进程记录各个节点进程间的报文转发的目的。
本方案和传统的物理Mesh网络测试的结构相比,传统方案在部署阶段,需要把组成实验网络的数十台设备都用USB转串口线物理连接到开发主机上烧录新开发的软件,整个部署的过程非常的漫长又容易出错,还可能会出现不同的设备上软件版本不同的问题,如果使用本申请上述方案提供的Mesh Simulator,在部署阶段,由于所有的节点不再是实际设备,而是软件的进程,因此只需要对一个节点进程克隆多次,就能产生多个内部执行逻辑完全一样的节点进程,并可以确定所有节点的内部行为一定是同一个版本的,进程的克隆所消耗的时间相对部署到物理硬件的时间来说,几乎可以忽略不计。
在运行阶段,传统方案由于开发和测试Mesh网络就是要调整和观察每个节点在网络中面对不同网络数据报文的处理方式是否符合预期,而要观察节点的内部行为只能通过设备运行的同时打印设备的行为到终端串口上,但把这些日志收集起来要花费很大的人力和时间,分析起来更加花费人力和时间。使用本申请提出的Mesh Simulator,由于设置了一个中心进程(node-master),不仅扮演了空气,起到模拟物理介质的效果,还使用网络中流转的报文都要经过中心节点转发这一机制,只需要在node-master软件中集中的将它所接收和转发的报文展示出来,就可以直观的将Mesh网络的内部行为显现,进一步地,还可以从网络节点的维度,或者从报文序号的维度,或者从更多不同的维度对报文转发进行筛选和过滤,能够得到更加清晰的展示效果。
在上述方案中,由于报文在任意两个节点进程模拟的网络节点设备之间流转时,都会经过中心进程,从而使得中心进程能够得到报文每次的流转信息,并对流转信息进行记录。采用这样的方案,在一台计算机(及目标设备)上就能够快速动态的创建出虚拟Mesh网络,并对快速的在虚拟的网络节点设备上部署新开发的OS软件,从而模拟出待测试的网络节点设备。再结合通过中心进程交换报文并记录报文流传信息的机制,使得测试者能够轻松的在中心进程处观察到报文在这张虚拟网络中的转发记录和虚拟网络设备的运行状态,并基于此来验证开发的OS软件是否符合预期,极大的提高了研发和测试效率。
由此,本申请上述方案解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
作为一种可选的实施例,节点进程包括操作系统和运行在操作系统上的应用软件,节点进程将报文传输至中心进程,包括:节点进程中的节点代理模块获取应用软件使用操作系统的协议栈接口发送的报文;节点代理模块对报文进行封装处理,并使用进程间的通信方式将封装后的报文发送至中心进程。
协议栈是指网络中各层协议的总和,反应了网络中报文的传输过程,在发出报文时,报文由底层协议到上层协议,不断增加各层协议对应的数据包,在接收报文时由上层协议到底层协议,不断去掉个协议对应的数据包。
在上述方案中,应用软件是运行在操作系统上层的应用软件,因此应用软件需要传输报文时,需要通过协议栈接口发出。
节点代理模块在接收到应用软件需要发送的报文后,需要将报文进行封装,并将封装后的报文发送至中心进程,由中心进程进行转发。
再以图2所示的示例进行说明,node进程上的Al iOS Things操作系统启动,上层应用软件使用Al iOS Things的协议栈接口发送报文,报文经过Al iOS Things操作系统的协议栈部分处理,到达HAL层。与实体的物理网络下不同的是,如果是实际的网络节点设备,此时HAL层是将准备向空气中发送的报文交给网络接口卡的设备驱动程序,而在上述方案中,报文是被交给了node-agent,node-agent获取向外发送的报文的内容和长度,模仿网卡驱动程序对报文进行加工,即对报文进行封装。
作为一种可选的实施例,节点代理模块对报文进行封装处理,包括:节点代理模块在报文的首字节前增加报文的接口信息、报文来源节点进程的通信地址,报文目标节点进程的通信地址和目标设备的通信标识;节点代理模块在报文的尾字节后增加报文校验和。
具体的,上述报文的接口信息用于表示该报文所属会话的路径,可以由一系列文件名构成,报文的来源节点进程指的是发出报文的应用软件所属的节点进程,报文的目标节点进程是指来源节点进程所指示的接收报文的节点进程,校验和用于中心节点对报文进行校验。
在该方案中,节点进程对报文封装后需要发送至中心进程,需要使用进程间通信(IPC,Interprocess Communicat ion)的方式进行报文的传输,因此需要在报文首部加入来源节点进程的通信地址和目标节点进程的通信地址,该通信地址均为进程间通信地址。而报文的接口信息和目标设备的标识用于在分析时对报文进行追溯。进一步地,在封装过程中,除了上述内容,还可以在报文首部加入其它字段,例如:报文序号等,在实际应用中,可以根据对报文分析的实际需求来设定封装时需要在报文首部增加的字段内容。
在一种可选的实施例中,node-agent在报文之前附加一个Mesh Simulator的首部字段,具体可以包括:报文的接口信息、报文来源节点进程的进程间通信地址、报文的目标节点进程的进程间通信地址以及目标设备的标识符,并在末尾字节后增加报文校验和等。
node-agent对报文的封装,实际是使用Mesh Simulator协议对报文的封装,node-agent本质上是Linux用户空间的一段程序,因此它在完成了报文的封装之后,可以用Linux标准的进程间通信方式,将封装后的报文从node进程发送给node-master。
作为一种可选的实施例,上述方法还包括:节点进程接收中心进程返回的重新封装后的报文;节点进程对重新封装后的报文进行解封,并将解封得到的报文通过运行在节点进程中的操作系统的协议栈发送至节点进程中的应用软件。
由于节点代理模块处在硬件抽象层的最下方,因此会最先接收到中心进程发送的报文。节点代理模块接收到报文会,会对报文进行解封,从而将报文恢复至原始状态,再将恢复的报文上交给上层的应用软件。
仍结合图2所示的结构,node-agent层还用于还原报文,解封由Mesh Simulator协议附加的首部和尾部,报文的内容恢复成原始的Mesh报文,然后交给上层的HAL逻辑,HAL层再将报文交给更上层的Al iOS Things操作系统的协议栈。如果最终达到了应用层的用户程序,那么报文的内容等同于最初被发出时的状态。由此,完成了报文在虚拟Mesh网络中的发送-接收链路。
基于这样的收发机制,如果再有多个节点上的多个应用程序,发出了多条网络报文交给Mesh Simulator网络进行模拟传输的时候,会使用同样的机制,按照上述的过程叠加到多个通信对端之间相继运行,从而模拟出和实际的Mesh网络一致的运行效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例4
根据本发明实施例,还提供了一种用于执行实施例2中的无线网格网络的模拟方法的无线网格网络的模拟装置,图6是根据本申请实施例4的一种无线网格网络的装置的示意图,如图6所示,该装置600包括:
监听模块602,用于中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备。
转发模块604,用于中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
此处需要说明的是,上述监听模块602和转发模块604对应于实施例1中的步骤S41至步骤S43,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,转发模块包括:查找子模块,用于中心进程查找与发送报文的节点进程最近的下一个节点进程,其中,中心进程通过解析网络拓扑配置文件,获取多个节点进程所模拟的网络节点设备之间的距离;转发子模块,用于中心进程将报文转发给下一个节点进程。
作为一种可选的实施例,转发子模块包括:发送单元,用于中心进程记录发送报文来源节点进程的地址和下一个节点进程的地址。
实施例5
根据本发明实施例,还提供了一种用于执行实施例3中的无线网格网络的模拟方法的无线网格网络的模拟装置,图7是根据本申请实施例5的一种无线网格网络的装置的示意图,如图7所示,该装置700包括:
生成模块702,用于节点进程生成报文,其中,节点进程运行在用于对无线网格网络进行模拟的目标设备上,节点进程用于模拟无线网格网络的网络节点设备;
传输模块704,用于节点进程将报文传输至中心进程,由中心进程将报文转发至下一个节点进程,并由中心进程记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程,中心进程运行在目标设备上。
此处需要说明的是,上述生成模块702和传输模块704对应于实施例1中的步骤S41至步骤S43,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。
作为一种可选的实施例,传输模块包括:获取子模块,用于节点进程中的节点代理模块获取应用软件使用操作系统的协议栈接口发送的报文;发送子模块,用于节点代理模块对报文进行封装处理,并使用进程间的通信方式将封装后的报文发送至中心进程。
作为一种可选的实施例,发送子模块包括:第一增加单元,用于节点代理模块在报文的首字节前增加报文的接口信息、报文来源节点进程的通信地址,报文目标节点进程的通信地址和目标设备的通信标识;第二增加单元,用于节点代理模块在报文的尾字节后增加报文校验和。
作为一种可选的实施例,上述装置还包括:返回装置,用于节点进程接收中心进程返回的重新封装后的报文;解封装置,用于节点进程对重新封装后的报文进行解封,并将解封得到的报文通过运行在节点进程中的操作系统的协议栈发送至节点进程中的应用软件。
实施例6
本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
可选地,图8根据本发明实施例的一种计算机终端的结构框图。如图8所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器802、存储器804、以及传输装置806。
其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
可选的,上述处理器还可以执行如下步骤的程序代码:中心进程查找与发送报文的节点进程最近的下一个节点进程,其中,中心进程通过解析网络拓扑配置文件,获取多个节点进程所模拟的网络节点设备之间的距离;中心进程将报文转发给下一个节点进程。
可选的,上述处理器还可以执行如下步骤的程序代码:中心进程记录发送报文来源节点进程的地址和下一个节点进程的地址。
采用本发明实施例,由于报文在任意两个节点进程模拟的网络节点设备之间流转时,都会经过中心进程,从而使得中心进程能够得到报文每次的流转信息,并对流转信息进行记录。采用这样的方案,在一台计算机(及目标设备)上就能够快速动态的创建出虚拟Mesh网络,并对快速的在虚拟的网络节点设备上部署新开发的OS软件,从而模拟出待测试的网络节点设备。再结合通过中心进程交换报文并记录报文流传信息的机制,使得测试者能够轻松的在中心进程处观察到报文在这张虚拟网络中的转发记录和虚拟网络设备的运行状态,并基于此来验证开发的OS软件是否符合预期,极大的提高了研发和测试效率。
由此,本申请上述方案解决了现有技术中mesh网络在测试过程中需要部署较多的硬件设备,导致测试效率低的技术问题。
本领域普通技术人员可以理解,图8示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端8还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的无线网格网络的模拟方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:中心进程监听节点进程发送的报文,其中,中心进程和节点进程均运行在用于对无线网格网络进行模拟的设备上,节点进程用于模拟无线网格网络中的网络节点设备;中心进程将报文转发至下一个节点进程,并记录报文的流转信息,其中,报文的流转信息用于表示报文在传输过程中经过的节点进程。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (18)

1.一种无线网格网络的模拟系统,包括:
节点进程,运行在用于对所述无线网格网络进行模拟的目标设备上,用于模拟所述无线网格网络中的网络节点设备;
中心进程,运行在所述目标设备上,用于交换多个所述节点进程之间的报文,并记录所述报文的流转信息,其中,所述报文的流转信息用于表示所述报文在传输过程中经过的节点进程。
2.根据权利要求1所述的模拟系统,其中,所述节点进程包括:
操作系统和运行在所述操作系统上的应用软件;
硬件抽象层,用于提供所述操作系统和所述目标设备之间的抽象层接口。
3.根据权利要求2所述的模拟系统,其中,所述节点进程还包括:
节点代理模块,用于获取所述应用软件发送的报文,并对所述报文进行传输。
4.根据权利要求3所述的模拟系统,其中,所述节点代理模块还用于获取所述应用软件使用所述操作系统的协议栈接口发送的报文,对所述报文进行封装处理,并使用进程间的通信方式将封装后的报文发送至所述中心进程。
5.根据权利要求4所述的模拟系统,其中,所述节点代理模块还用于在所述报文的首字节前增加所述报文的接口信息、所述报文的来源节点进程的通信地址、所述报文的目标节点进程的通信地址和所述目标设备的通信标识,在所述报文的尾字节后增加报文校验和,以对所述报文进行封装。
6.根据权利要求5所述的模拟系统,其中,所述中心进程还用于监听任意节点代理模块发送的封装后的报文,并将所述封装后的报文转发至与所述来源节点进程最近的下一个节点进程,其中,所述中心进程通过解析网络拓扑配置文件,获取多个所述节点进程所模拟的网络节点设备之间的距离。
7.根据权利要求6所述的模拟系统,其中,所述中心进程还用于对所述封装后的报文进行重新封装,并记录所述来源节点进程的地址和所述下一个节点进程的地址。
8.根据权利要求7所述的模拟系统,其中,所述中心进程还用于使用所述中心进程的地址和所述下一个节点进程的地址对所述报文的首部重新进行组装。
9.根据权利要求7所述的模拟系统,其中,所述节点代理模块还用于接收中心进程发送的重新封装的报文,对所述重新封装的报文进行解封,并将解封得到的所述报文通过所述节点进程中的操作系统的协议栈发送至所述节点进程中的应用软件。
10.一种无线网格网络的模拟方法,包括:
中心进程监听节点进程发送的报文,其中,所述中心进程和所述节点进程均运行在用于对无线网格网络进行模拟的设备上,所述节点进程用于模拟无线网格网络中的网络节点设备;
所述中心进程将所述报文转发至下一个节点进程,并记录所述报文的流转信息,其中,所述报文的流转信息用于表示所述报文在传输过程中经过的节点进程。
11.根据权利要求10的模拟方法,其中,所述中心进程将所述报文转发至其他节点进程,包括:
所述中心进程查找与发送所述报文的节点进程最近的下一个节点进程,其中,所述中心进程通过解析网络拓扑配置文件,获取多个所述节点进程所模拟的网络节点设备之间的距离;
所述中心进程将所述报文转发给所述下一个节点进程。
12.根据权利要求10所述的方法,其中,所述中心进程记录所述报文的流转信息,包括:
所述中心进程记录发送所述报文来源节点进程的地址和所述下一个节点进程的地址。
13.一种无线网格网络的模拟方法,包括:
节点进程生成报文,其中,所述节点进程运行在用于对无线网格网络进行模拟的目标设备上,所述节点进程用于模拟无线网格网络的网络节点设备;
所述节点进程将所述报文传输至中心进程,由所述中心进程将所述报文转发至下一个节点进程,并由所述中心进程记录所述报文的流转信息,其中,所述报文的流转信息用于表示所述报文在传输过程中经过的节点进程,所述中心进程运行在所述目标设备上。
14.根据权利要求13所述的方法,其中,所述节点进程包括操作系统和运行在所述操作系统上的应用软件,所述节点进程将所述报文传输至所述中心进程,包括:
所述节点进程中的节点代理模块获取所述应用软件使用所述操作系统的协议栈接口发送的报文;
所述节点代理模块对所述报文进行封装处理,并使用进程间的通信方式将封装后的报文发送至所述中心进程。
15.根据权利要求14所述的方法,其中,所述节点代理模块对所述报文进行封装处理,包括:
所述节点代理模块在所述报文的首字节前增加所述报文的接口信息、所述报文来源节点进程的通信地址、所述报文目标节点进程的通信地址和所述目标设备的通信标识;
所述节点代理模块在所述报文的尾字节后增加报文校验和。
16.根据权利要求13所述的方法,其中,所述方法还包括:
所述节点进程接收所述中心进程返回的重新封装后的报文;
所述节点进程对所述重新封装后的报文进行解封,并将解封得到的所述报文通过运行在所述节点进程中的操作系统的协议栈发送至所述节点进程中的应用软件。
17.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如下步骤:中心进程监听节点进程发送的报文,其中,所述中心进程和所述节点进程均运行在用于对无线网格网络进行模拟的设备上,所述节点进程用于模拟无线网格网络中的网络节点设备;所述中心进程将所述报文转发至下一个节点进程,并记录所述报文的流转信息,其中,所述报文的流转信息用于表示所述报文在传输过程中经过的节点进程。
18.一种计算机终端,包括:至少一个处理器,所述处理器用于运行程序,其中,所述程序运行时执行如下步骤:中心进程监听节点进程发送的报文,其中,所述中心进程和所述节点进程均运行在用于对无线网格网络进行模拟的设备上,所述节点进程用于模拟无线网格网络中的网络节点设备;所述中心进程将所述报文转发至下一个节点进程,并记录所述报文的流转信息,其中,所述报文的流转信息用于表示所述报文在传输过程中经过的节点进程。
CN201811012102.XA 2018-08-31 2018-08-31 无线网格网络的模拟系统和方法 Active CN110876155B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811012102.XA CN110876155B (zh) 2018-08-31 2018-08-31 无线网格网络的模拟系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811012102.XA CN110876155B (zh) 2018-08-31 2018-08-31 无线网格网络的模拟系统和方法

Publications (2)

Publication Number Publication Date
CN110876155A CN110876155A (zh) 2020-03-10
CN110876155B true CN110876155B (zh) 2023-05-30

Family

ID=69715497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811012102.XA Active CN110876155B (zh) 2018-08-31 2018-08-31 无线网格网络的模拟系统和方法

Country Status (1)

Country Link
CN (1) CN110876155B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113037545A (zh) * 2021-02-26 2021-06-25 中电数据服务有限公司 网络仿真方法、装置、设备和存储介质
CN114363939B (zh) * 2021-12-29 2024-01-19 上海庆科信息技术有限公司 节点模拟测试方法、装置、存储介质、处理器及设备
CN115396348B (zh) * 2022-08-25 2024-05-10 北京智芯微电子科技有限公司 无线传感器网络的测试系统、方法及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595463A (zh) * 2012-02-20 2012-07-18 北京傲天动联技术有限公司 无线环境模拟方法
WO2015000117A1 (zh) * 2013-07-01 2015-01-08 华为技术有限公司 一种模拟拨测用户侧和网络侧的方法及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1231032C (zh) * 2002-07-22 2005-12-07 华为技术有限公司 一种网络协议测试方法及其测试系统
US8775152B2 (en) * 2010-07-30 2014-07-08 Ciena Corporation Multi-core, multi-blade, and multi-node network environment simulation
KR20140134451A (ko) * 2013-05-14 2014-11-24 한국전자통신연구원 테스트 환경 설정 장치, 및 테스트 환경 설정 장치를 이용하는 네트워크 시뮬레이션 장치의 작동 방법
US20180167257A1 (en) * 2016-09-08 2018-06-14 Ray W. Sanders Methods and systems for forming network connections
CN107949010A (zh) * 2017-12-29 2018-04-20 南京熊猫电子股份有限公司 基于mesh网络的无线组网路由测试方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102595463A (zh) * 2012-02-20 2012-07-18 北京傲天动联技术有限公司 无线环境模拟方法
WO2015000117A1 (zh) * 2013-07-01 2015-01-08 华为技术有限公司 一种模拟拨测用户侧和网络侧的方法及设备

Also Published As

Publication number Publication date
CN110876155A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
CN110351156B (zh) 一种测试方法和装置
CN110876155B (zh) 无线网格网络的模拟系统和方法
Ahrenholz et al. Integration of the CORE and EMANE Network Emulators
CN111224839B (zh) 一种带内网络遥测功能的验证方法、装置、存储介质及电子设备
US7523198B2 (en) Integrated testing approach for publish/subscribe network systems
CN109495870B (zh) 蓝牙测试的方法和装置
US10461990B2 (en) Diagnostic traffic generation for automatic testing and troubleshooting
CN111782524B (zh) 应用测试方法和装置、存储介质和电子装置
CN110677829B (zh) 长期演进车到万物lte-v2x测试系统及测试方法
US10958616B2 (en) Methods, systems, and computer readable media for network test configuration using virtual local area network (VLAN) scanning
WO2016015511A1 (zh) 一种网管测试事件的数据包模拟方法、装置及计算机存储介质
CN104461697B (zh) 一种虚拟机批量在线ip地址自动设置系统及方法
CN111224903B (zh) 一种数据传输方法、设备及计算机可读存储介质
CN111263377B (zh) 网络配置方法、装置、设备、系统和配网测试方法、系统
WO2015084140A1 (en) A system and method for emulating multiple independent wireless client devices in the cloud
CN116056126A (zh) 仿真测试方法、装置、计算机设备和计算机可读存储介质
CN107231275B (zh) 用于用户设备与家居设备连接配置的方法
CN114253823A (zh) 分布式测试方法及相关设备
Dimitriou et al. Sensenet: a wireless sensor network testbed
CN110581792A (zh) 一种报文传输方法及装置
CN110471830A (zh) 一种程序测试方法、装置及电子设备
CN108616453B (zh) 一种用于网络设备的方法、装置和系统
KR102021466B1 (ko) 전술데이터링크 소프트웨어 시험 환경을 구성하는 방법, 장치 및 기록매체
Catal et al. Visualization of traffic flows in a simulated network environment to investigate abnormal network behavior in complex network infrastructures
Autefage et al. NEmu: A distributed testbed for the virtualization of dynamic, fixed and mobile networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40025537

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant