CN107070809A - 一种大规模传感器数据的实时转发方法 - Google Patents

一种大规模传感器数据的实时转发方法 Download PDF

Info

Publication number
CN107070809A
CN107070809A CN201710231427.6A CN201710231427A CN107070809A CN 107070809 A CN107070809 A CN 107070809A CN 201710231427 A CN201710231427 A CN 201710231427A CN 107070809 A CN107070809 A CN 107070809A
Authority
CN
China
Prior art keywords
real
data
sensor data
scale sensor
type
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.)
Granted
Application number
CN201710231427.6A
Other languages
English (en)
Other versions
CN107070809B (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.)
Taizhou Sincere Surveying And Mapping Service Co Ltd
Nantong University
Original Assignee
Taizhou Sincere Surveying And Mapping Service Co Ltd
Nantong University
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 Taizhou Sincere Surveying And Mapping Service Co Ltd, Nantong University filed Critical Taizhou Sincere Surveying And Mapping Service Co Ltd
Priority to CN201710231427.6A priority Critical patent/CN107070809B/zh
Publication of CN107070809A publication Critical patent/CN107070809A/zh
Application granted granted Critical
Publication of CN107070809B publication Critical patent/CN107070809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Abstract

本发明公开了一种大规模传感器数据的实时转发方法,包括数据转发器与数据接收器的构建,数据接收器主要从网卡上抓取数据包,将其进行解析后查找数据转发器中的通道进行转发;数据转发器主要负责向远程接收主机进行数据传输,针对接收到的数据,向远程主机发送数据;数据接收器的构造主要包括网卡数据通道的建立,JpcapCapter对象的初始化以及数据包的抓取、解析与转接等过程。本发明实现了大规模传感器数据的抓取和向多个终端的实时转发,适合于物联网环境下大量传感器数据的透传或者传输协议转换等相关的应用。

Description

一种大规模传感器数据的实时转发方法
技术领域
本发明涉及一种数据转发方法,特别是一种大规模传感器数据的实时转发方法。
背景技术
在当前,物联网技术已经广泛的应用到环保、消防、交通、测绘等多个领域。在这些应用中,传感器数据的传输起到了至关重要的作用。传感器数据一般通过无线网络发送到主机的TCP端口,并以固定的协议来规范传感器与主机之间的信息传输。
目前,在多种应用场景下需要实现数据的转发。其中包括:
1)数据协议的转换
基于传感器的数据管理系统往往需要遵循某种数据传输协议,在某些应用场景下,需要实现新旧系统的兼容。这种情况下,新旧系统往往存在不同的通信协议。这就需要首先将旧系统中的数据进行“抓取”,在此基础上进行协议转换,并向新系统进行转发。
2)系统测试时对真实数据的模拟
在对某些软件系统进行升级的初期,为了维护数据的稳定性,需要新旧系统同时运行。在这种情况下,新系统尚需要进一步测试,因此,真实的传感器数据往往需要用于旧系统的运行,而对于新系统来说,只能采用模拟数据对其进行测试。这就需要对真实的传感器数据进行处理,在发往旧系统的同时,镜像一份数据发往新系统,以最大限度的对真实环境进行模拟,实现软件的模拟测试。
上述两种情形都需要涉及以下技术问题:1)大规模传感器数据的“抓取”。2)传感器数据在经过处理之后,向多个终端的实时转发。现有技术中并没有相关大规模传感器数据转发方法的记载,因此迫切需要一种能够大规模传感器数据进行转发的方法解决上述问题。
发明内容
本发明所要解决的技术问题是提供一种大规模传感器数据的实时转发方法,实现大规模传感器数据的抓取并向多个远程主机进行数据转发。
为解决上述技术问题,本发明所采用的技术方案是:
一种大规模传感器数据的实时转发方法,其特征在于包含以下步骤:
步骤一:初始化系统环境;
步骤二:初始化类型为NioEventLoopGroup的线程组clientLoopGroup,启动类型为Bootstrap的数据转发器进程引导器并进行相关设置;
步骤三:构建一个用于I/O事件处理的内隐类,并将其挂接到数据转发器进程的主通道内;
步骤四:利用数据转发器进程引导器,向接收转发数据的N个远程主机进行预连接,并将生成的连接通道保存在类型为ArrayList的通道队列queue中;
步骤五:选取指定的网卡设备对象,并初始化一个类型为JpcapCaptor的对象jpcap与选定的网卡设备对象关联,等待从该设备中抓取数据包;
步骤六:调用jpcap对象的loopPacket方法,循环的从网卡中抓取数据包packet,并进行解析与转发处理。
进一步地,所述步骤一中,系统环境的设置包括netty程序包和jpcap程序包的加载。
进一步地,所述步骤二中,相关设置具体包含,
2.1将线程组clientLoopGroup与数据转发器进程引导器进行关联;
2.2设置clientLoopGroup的通道类型为NioSocketChannel;
2.3设置参数SO_KEEPALIVE,TCP_NODELAY的值为true。
进一步地,所述步骤三中,内隐类的构造方法为,继承类型为ChannelInitializer<SocketChannel>的类,并重载其方法initChannel,在该方法中对所在通道添加类型为ChannelInboundHandlerAdapter的拦截器。
进一步地,所述步骤四中通道队列queue所存储的对象为通道对象。
进一步地,所述步骤四中,根据实际需要连接的主机设置预连接的通道。
进一步地,所述步骤六中,对数据包packet解析的具体方法包含,
6.1将该数据包强制类型转换为TCPPacket类型的对象p;
6.2获取该包的端口信息,若是发向指定端口的包,且包大小不为零,则转步骤c;否则丢弃该包;
6.3将包p中的数据取出,并加载到类型为ByteBuf的对象bytebuffer中;
6.4获取queue中所保存的所有通道,将bytebuffer对象在通道中进行发送。
本发明与现有技术相比,具有以下优点和效果:
1、实现了大规模传感器数据的“抓取”;
2、实现了传感器数据在经过处理之后,向多个终端的实时转发;
3、支持多台远程主机的并发通信,将基于本说明书方法所构建的系统部署在一台普通服务器上时,可支持十万级别的远程主机连接。
附图说明
图1是本发明的一种大规模传感器数据的实时转发方法的数据转发框架图。
图2是本发明的一种大规模传感器数据的实时转发方法的流程图。
具体实施方式
下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
如图所示,本发明的一种大规模传感器数据的实时转发方法,其特征在于包含以下步骤:
步骤一:初始化系统环境,系统环境的设置包括netty程序包和jpcap程序包的加载。
步骤二:初始化类型为NioEventLoopGroup的线程组clientLoopGroup,启动类型为Bootstrap的数据转发器进程引导器并进行相关设置。
相关设置具体包含,
2.1将线程组clientLoopGroup与数据转发器进程引导器进行关联;
2.2设置clientLoopGroup的通道类型为NioSocketChannel;
2.3设置参数SO_KEEPALIVE,TCP_NODELAY的值为true。
步骤三:构建一个用于I/O事件处理的内隐类,并将其挂接到数据转发器进程的主通道内。
内隐类的构造方法为,继承类型为ChannelInitializer<SocketChannel>的类,并重载其方法initChannel,在该方法中对所在通道添加类型为ChannelInboundHandlerAdapter的拦截器。
步骤四:利用数据转发器进程引导器,向接收转发数据的N个远程主机进行预连接,并将生成的连接通道保存在类型为ArrayList的通道队列queue中;通道队列queue所存储的对象为通道对象;可以根据实际需要连接的主机设置预连接的通道。
其中,步骤二到步骤四的相关代码为,
步骤五:选取指定的网卡设备对象,并初始化一个类型为JpcapCaptor的对象jpcap与选定的网卡设备对象关联,等待从该设备中抓取数据包;
步骤五的相关代码为:
步骤六:调用jpcap对象的loopPacket方法,循环的从网卡中抓取数据包packet,并进行解析与转发处理。
对数据包packet解析的具体方法包含,
6.1将该数据包强制类型转换为TCPPacket类型的对象p;
6.2获取该包的端口信息,若是发向指定端口的包,且包大小不为零,则转步骤c;否则丢弃该包;
6.3将包p中的数据取出,并加载到类型为ByteBuf的对象bytebuffer中;
6.4获取queue中所保存的所有通道,将bytebuffer对象在通道中进行发送。
步骤六的相关代码为:
本说明书中所描述内容适合基于本框架的数据转发与透传,相关技术人员可以根据具体应用场景来进行修改。若为数据透传,则buildBuf函数可将数据原样转发,若为协议转换后的数据转发,则可在buildBuf函数中编写协议转换的具体代码。
本说明书中的方法支持多台远程主机的并发通信,将基于本说明书方法所构建的系统部署在一台普通服务器上时,可支持十万级别的远程主机连接。
本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

Claims (7)

1.一种大规模传感器数据的实时转发方法,其特征在于包含以下步骤:
步骤一:初始化系统环境;
步骤二:初始化类型为NioEventLoopGroup的线程组clientLoopGroup,启动类型为Bootstrap的数据转发器进程引导器并进行相关设置;
步骤三:构建一个用于I/O事件处理的内隐类,并将其挂接到数据转发器进程的主通道内;
步骤四:利用数据转发器进程引导器,向接收转发数据的N个远程主机进行预连接,并将生成的连接通道保存在类型为ArrayList的通道队列queue中;
步骤五:选取指定的网卡设备对象,并初始化一个类型为JpcapCaptor的对象jpcap与选定的网卡设备对象关联,等待从该设备中抓取数据包;
步骤六:调用jpcap对象的loopPacket方法,循环的从网卡中抓取数据包packet,并进行解析与转发处理。
2.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤一中,系统环境的设置包括netty程序包和jpcap程序包的加载。
3.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤二中,相关设置具体包含,
2.1将线程组clientLoopGroup与数据转发器进程引导器进行关联;
2.2设置clientLoopGroup的通道类型为NioSocketChannel;
2.3设置参数SO_KEEPALIVE,TCP_NODELAY的值为true。
4.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤三中,内隐类的构造方法为,继承类型为ChannelInitializer<SocketChannel>的类,并重载其方法initChannel,在该方法中对所在通道添加类型为ChannelInboundHandlerAdapter的拦截器。
5.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤四中通道队列queue所存储的对象为通道对象。
6.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤四中,根据实际需要连接的主机设置预连接的通道。
7.按照权利要求1所述的一种大规模传感器数据的实时转发方法,其特征在于:所述步骤六中,对数据包packet解析的具体方法包含,
6.1将该数据包强制类型转换为TCPPacket类型的对象p;
6.2获取该包的端口信息,若是发向指定端口的包,且包大小不为零,则转步骤c;否则丢弃该包;
6.3将包p中的数据取出,并加载到类型为ByteBuf的对象bytebuffer中;
6.4获取queue中所保存的所有通道,将bytebuffer对象在通道中进行发送。
CN201710231427.6A 2017-04-11 2017-04-11 一种大规模传感器数据的实时转发方法 Active CN107070809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710231427.6A CN107070809B (zh) 2017-04-11 2017-04-11 一种大规模传感器数据的实时转发方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710231427.6A CN107070809B (zh) 2017-04-11 2017-04-11 一种大规模传感器数据的实时转发方法

Publications (2)

Publication Number Publication Date
CN107070809A true CN107070809A (zh) 2017-08-18
CN107070809B CN107070809B (zh) 2020-05-12

Family

ID=59603102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710231427.6A Active CN107070809B (zh) 2017-04-11 2017-04-11 一种大规模传感器数据的实时转发方法

Country Status (1)

Country Link
CN (1) CN107070809B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632594A (zh) * 2017-11-06 2018-01-26 苏州科技大学 一种基于无线网络的电器集中控制系统和控制方法
CN110868349A (zh) * 2019-11-27 2020-03-06 河钢数字技术股份有限公司 物联网环境下分布式高并发数据采集与处理方法及系统
CN111736894A (zh) * 2020-06-28 2020-10-02 南通大学 一种基于配置的传感器数据解析处理方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227341A (zh) * 2007-12-18 2008-07-23 浪潮电子信息产业股份有限公司 Linux系统上以太网卡快速捕包的方法
US20090112818A1 (en) * 2007-10-30 2009-04-30 Jaimon Jose Techniques for parallel processing of directory searches
CN102685180A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种面向云计算的网络安全预警方法
CN103281335A (zh) * 2013-06-18 2013-09-04 东华大学 一种基于WinPcap的嵌入式网络协议栈开发方法
CN103916316A (zh) * 2014-04-11 2014-07-09 国家计算机网络与信息安全管理中心 网络数据包线速捕获方法
US20150149554A1 (en) * 2012-02-02 2015-05-28 AppDynamics Inc. Automatic capture of detailed analysis information based on remote server analysis

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090112818A1 (en) * 2007-10-30 2009-04-30 Jaimon Jose Techniques for parallel processing of directory searches
CN101227341A (zh) * 2007-12-18 2008-07-23 浪潮电子信息产业股份有限公司 Linux系统上以太网卡快速捕包的方法
CN102685180A (zh) * 2011-10-18 2012-09-19 国网电力科学研究院 一种面向云计算的网络安全预警方法
US20150149554A1 (en) * 2012-02-02 2015-05-28 AppDynamics Inc. Automatic capture of detailed analysis information based on remote server analysis
CN103281335A (zh) * 2013-06-18 2013-09-04 东华大学 一种基于WinPcap的嵌入式网络协议栈开发方法
CN103916316A (zh) * 2014-04-11 2014-07-09 国家计算机网络与信息安全管理中心 网络数据包线速捕获方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
温曙光等: ""libpcap-MT:一种多线程的通用数据包捕获库"", 《计算机研究与发展》 *
甘彪等: ""基于动态内存池和WinpCap的高速数据捕获技术"", 《信息技术》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632594A (zh) * 2017-11-06 2018-01-26 苏州科技大学 一种基于无线网络的电器集中控制系统和控制方法
CN107632594B (zh) * 2017-11-06 2024-02-06 苏州科技大学 一种基于无线网络的电器集中控制系统和控制方法
CN110868349A (zh) * 2019-11-27 2020-03-06 河钢数字技术股份有限公司 物联网环境下分布式高并发数据采集与处理方法及系统
CN110868349B (zh) * 2019-11-27 2021-07-09 河钢数字技术股份有限公司 物联网环境下分布式高并发数据采集与处理方法及系统
CN111736894A (zh) * 2020-06-28 2020-10-02 南通大学 一种基于配置的传感器数据解析处理方法
CN111736894B (zh) * 2020-06-28 2024-04-19 南通大学 一种基于配置的传感器数据解析处理方法

Also Published As

Publication number Publication date
CN107070809B (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN105706043B (zh) 推进式链接的列表吞吐量
CN108563517A (zh) 系统接口的调用方法及装置
CN103856361A (zh) 实现远程调试的方法及系统
CN107070809A (zh) 一种大规模传感器数据的实时转发方法
CN104993947A (zh) 批量升级固件的方法
CN104021069A (zh) 基于分布式虚拟机系统的软件性能测试的管理方法和系统
CN103942087A (zh) 虚拟机热迁移方法及相关装置和集群系统
CN106998347A (zh) 服务器虚拟化网络共享的装置和方法
US10609125B2 (en) Method and system for transmitting communication data
CN105871643B (zh) 基于路由协议的网络运行仿真方法
CN106878181A (zh) 一种报文传输方法和装置
CN106790347B (zh) 一种基于netty的大规模并发数据转发方法
CN103957214A (zh) 一种教学用计算机网络数据包抓取方法
US9503309B2 (en) Ethernet communication system and method based on MMC/SD interface
CN105991795B (zh) Arp表项更新方法以及装置
CN107071358A (zh) 视频拼接服务器和移动状态下的全景直播系统
CN105071988A (zh) 一种多用户测试系统及方法
CN105518610B (zh) 处理操作请求的存储系统、方法及装置
CN103281335A (zh) 一种基于WinPcap的嵌入式网络协议栈开发方法
CN107135189A (zh) 一种报文发送方法及物理机
CN104579973A (zh) 一种虚拟集群中的报文转发方法和装置
CN110099138A (zh) 一种处理带vlan tag的dhcp数据的方法及系统
CN105939293A (zh) 一种skb回收方法及装置
CN105337797A (zh) 一种复杂电子信息系统网络协议数据捕获方法
CN103279382B (zh) 原生方式访问资源的方法、Java端、原生端及系统

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
GR01 Patent grant
GR01 Patent grant