当前位置: 首页 > 专利查询>南通大学专利>正文

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

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

【技术实现步骤摘要】
一种大规模传感器数据的实时转发方法
本专利技术涉及一种数据转发方法,特别是一种大规模传感器数据的实时转发方法。
技术介绍
在当前,物联网技术已经广泛的应用到环保、消防、交通、测绘等多个领域。在这些应用中,传感器数据的传输起到了至关重要的作用。传感器数据一般通过无线网络发送到主机的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函数中编写协议转换的具体代码。本说明书中的方法支持多台远程主机的并发通信,将基于本说明书方法所构建的系统部署在一台普通服务器上时,可支持十万级别的远程主机连接。本说明书中所本文档来自技高网...
一种大规模传感器数据的实时转发方法

【技术保护点】
一种大规模传感器数据的实时转发方法,其特征在于包含以下步骤:步骤一:初始化系统环境;步骤二:初始化类型为NioEventLoopGroup的线程组clientLoopGroup,启动类型为Bootstrap的数据转发器进程引导器并进行相关设置;步骤三:构建一个用于I/O事件处理的内隐类,并将其挂接到数据转发器进程的主通道内;步骤四:利用数据转发器进程引导器,向接收转发数据的N个远程主机进行预连接,并将生成的连接通道保存在类型为ArrayList的通道队列queue中;步骤五:选取指定的网卡设备对象,并初始化一个类型为JpcapCaptor的对象jpcap与选定的网卡设备对象关联,等待从该设备中抓取数据包;步骤六:调用jpcap对象的loopPacket方法,循环的从网卡中抓取数据包packet,并进行解析与转发处理。

【技术特征摘要】
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的通道类型为NioSocke...

【专利技术属性】
技术研发人员:张驰侯先栋王英利邵勇车明亮李冠男王文娟孙桂平杨玲玲
申请(专利权)人:南通大学泰州市诚泰测绘服务有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1