[go: up one dir, main page]

CN104219247A - 一种无线多媒体传感器网络接入ip网络的方法 - Google Patents

一种无线多媒体传感器网络接入ip网络的方法 Download PDF

Info

Publication number
CN104219247A
CN104219247A CN201410486749.1A CN201410486749A CN104219247A CN 104219247 A CN104219247 A CN 104219247A CN 201410486749 A CN201410486749 A CN 201410486749A CN 104219247 A CN104219247 A CN 104219247A
Authority
CN
China
Prior art keywords
data
network
packet
wireless
operating system
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.)
Pending
Application number
CN201410486749.1A
Other languages
English (en)
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.)
Shanghai Institute of Microsystem and Information Technology of CAS
Original Assignee
Shanghai Institute of Microsystem and Information Technology of CAS
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 Shanghai Institute of Microsystem and Information Technology of CAS filed Critical Shanghai Institute of Microsystem and Information Technology of CAS
Priority to CN201410486749.1A priority Critical patent/CN104219247A/zh
Publication of CN104219247A publication Critical patent/CN104219247A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种无线多媒体传感器网络接入IP网络的方法,其特征在于采用虚拟网关的方式实现无线多媒体传感器网络接入IP网络;所述的虚拟网关遵从SOCKET网络编程规范的应用程序便可以访问该无线多媒体传感网络;所述的虚拟网关在不同的操作平台上能动态加载,完成IP数据和多媒体传感器网络协议数据的转换,是对应操作系统的网络驱动程序。本发明开发的虚拟网关中间件,解决了无线多媒体传感器网络IP网络数据透明传输的问题和无线多媒体传感器网络应用程序移植性、通用性差的问题。

Description

一种无线多媒体传感器网络接入IP网络的方法
技术领域
本发明涉及无线多媒体传感器网络接入其他网络如IP网络的问题,可用于运行私有协议的无线多媒体传感器网络系统,属于信息技术领域。 
背景技术
随着无线传感器网络技术的发展,在网络中传输的数据包类型从比较单一的数据包逐渐发展到了多媒体类型的数据包,应用程序对数据的需求也逐渐变大,已有网络应用程序直接访问无线网卡数据的形式已经不能满足开发的需要,如何使得IP数据包“透传”无线多媒体传感器网络,如何增加应用的移植性,如何明显的减轻开发人员的负担,成为无线多媒体传感器网络中需要解决的问题。 
网络领域IP化的趋势,同样影响到了无线多媒体传感器网络,但是由于无线多媒体传感器网络多业务的特点,需要传输视频、图像、语音、数据等不同业务类型的数据,考虑到无线信道的环境,相应的网络协议也要适应于无线多媒体传感器网络的特点,一般的IP网络协议是不适合于无线多媒体传感器网络的,但是,无线多媒体传感器网络也需要接入到IP网络,因此,就需要提供一种方法和机制来完成此项功能。 
无线多媒体传感器网络存在自身的网络访问API,但是,在普通的网络编程中,一般都是采用SOCKET规范编程方法来访问网络,为了增加应用程序的可移植性和标准化,应用程序不用修改即可以访问网络资源,也为了降低应用程序的开发难度,更好的完成无线传感器网络接入到IP网络,所以,需要一套标准化的方法来实现上述功能。 
在已有技术中,IP网络数据包不能直接到达无线多媒体传感器节点,无线多媒体传感器网络实现IP化的方法可以是直接在无线网卡上构建IP网络协议栈,这样,一个无线网卡便是一个IP网络节点,但是,无线多媒体传感器 网络的特点使得其采用这种方式并不合适,无线多媒体传感器网络节点通信运行了不同于IP网络的协议,IP格式的数据包不能被无线多媒体传感器网络所识别,因此,影响了网络的兼容性,不能和应用最为广泛的IP网络实现互联互通,这成为了无线多媒体传感器网络的一个缺陷;另外一种实现无线多媒体传感器网络接入IP网络的方法是采用网关设备[CN.200910033224.1,孙力娟等“无线多媒体传感器网络与无线局域网因特网的互联方法”。],在原有的基础上开发协议转换功能,实现IP数据到达无线多媒体传感器网络节点,但这种方式需要增加额外的硬件设备,需要专门为该网关设备开发不同于无线多媒体传感器网络节点的程序,增加时间和成本上的投入。原有的无线多媒体传感器网络实现IP化存在以上所述的问题。 
在应用程序开发过程中,原有的技术采用无线传感器网络特有的API进行网络访问,这样就给开发过程中的并行开发带来了困难,应用程序开发人员必须等待无线网卡固件开发人员完成协议栈的构建以后才能进行网络部分的开发,同时网络访问API函数的非标准化,给应用程序的移植性和通用性带来了困难,当网络形式发生变化时,应用程序也便失效了,应用程序开发人员针对新的网络形式进行新的开发,降低了工作效率,重复劳动,因此,这也成为了无线多媒体传感器网络不能与SOCKET网络编程规范兼容的一个不足之处。 
为了克服已有技术上的不足,因此,本申请拟开发一种基于虚拟网关的无线多媒体传感器网络接入IP网络中间件,实现了协议转换,使得无线多媒体传感器网络接入到了IP网络中。 
发明内容
本发明的目的在于提供一种无线多媒体传感器网络接入IP网络的方法,本发明是基于无线多媒体传感器网络形式,构建一种基于操作系统平台的虚拟网关,所述的虚拟网关可以在软件层面使IP数据包“透传”无线多媒体传感器网络,整个方案的网络拓扑结构图可以如图1描述。 
在图1中,多媒体数据包括视频、图像、语音、数据在由无线网卡构成的无线多媒体传感器网络中进行传输,其网络拓扑结构可以是多种形式的, 例如星型、网型、树形等。PC机和手持设备运行IP网络协议栈,操作系统内部传递的是IP数据包的形式,在无线网卡中传输的数据格式是无线多媒体传感器网络的协议包格式,为了实现IP数据包能够“透传”无线多媒体传感器网络,使应用程序的开发具有通用性,需要在PC机和手持设备上构建虚拟网关,用来完成协议的转换。该虚拟网关所处的层次结构图如图2所示: 
虚拟网关主要存在于PC机与手持设备上,应用程序位于最上层,应用程序的编写遵从SOCKET规范,也就是说,有了虚拟网关,遵从SOCKET网络编程规范的应用程序便可以访问该无线多媒体传感器网络。应用程序实现网络应用,具有很好的移植性,当更换网络形式时,应用程序几乎不需要做出改变就可以继续使用,提高了应用程序的通用性和跨平台特性。 
操作系统层面负责应用程序与操作系统之间的接口,即为应用程序提供操作系统API,包括SOCKET API,操作系统内部维护一个IP协议栈,在涉及到具体的网络形式时,便通过网络驱动程序的形式向下进行数据交互,虚拟网关在这里对操作系统来说可以看成是对应操作系统的网络驱动程序。 
虚拟网关具体是在软件层面实现的,当数据从应用程序经操作系统到达虚拟网关时,其具体的是IP数据包的格式,为了让无线多媒体传感器网络节点识别IP数据包,需要对IP数据包头进行分析,转换成对应于无线多媒体传感器网络中的数据包格式,其数据包头具有相同的意义。当IP数据包的长度很长时,虚拟网关也要完成数据包的分片操作,同时,数据负载也被拷贝进入了新的数据包,这样,就完成了IP数据包从上到下无线多媒体传感器网络数据包的转化,实现了IP数据包的透传;当数据从下往上从无线网卡驱动传送到虚拟网关时,虚拟网关负责把无线多媒体传感器网络中的数据包格式转换为能够被IP网络识别的标准IP数据包,同时,根据无线多媒体传感器网络包头中的标志位,判断是否进行组包操作,最后,虚拟网关把得到的IP数据包向上传递给操作系统,进而传递给应用程序。 
无线网卡驱动程序具体负责驱动无线网卡,主要是对硬件的操作,跟无线网卡进行数据交互,无线网卡具体负责收发在空中的无线多媒体传感器网络数据,完成数据传输。 
虚拟网关的具体实现架构如图3所示,虚拟网关的向下链路为首先从操 作系统下发IP格式的数据,数据会存入操作系统下发数据接收队列,在队列上,会存在一个接收事件或者信号量,来标志该队列存在数据,数据循环派发线程1等待该事件,当该事件发生时,即队列中存在数据时,该数据循环派发线程1开始运行,并把操作系统下发数据接收队列中的数据搬运到无线网卡驱动数据发送队列中,并在这个过程中完成分片的操作,分片与否是根据两个不同网络中的MTU决定的,在此处,无线传感器网络MTU局限于物理条件的限制,IP包的MTU要大于无线多媒体传感器网络中的MTU值,因此,需要检查IP包的数据长度,如果IP包长度大于无线多媒体传感器网络MTU,则进行分片;如果小于,则不进行任何操作,直接搬运到无线网卡驱动数据发送队列即可。分片后的数据分片后存入无线网卡驱动数据发送队列。无线网卡驱动数据发送队列同样存在事件监听机制,当数据到来时,循环派发线程2运行,把数据从无线网卡驱动数据发送队列取出,通过无线网卡驱动把数据发送到无线网卡,进而通过天线发送出去。 
虚拟网关的向上链路为从无线网卡驱动接收到数据后,该数据便是无线多媒体传感器网络格式的数据,接收监听线程1负责把数据从无线网卡搬运到无线网卡驱动数据接收队列中,相应的队列上同样存在事件或者信号量,内部数据缓存入队线程开始工作,它首先根据包头中的标志位进行分片与否的判断,如果没有分片,则直接存入IP数据接收队列,如果是分片数据,则存入内部数据缓存队列,每到达一个分片,则存入分片对应的缓存结构,当所有的分片到达后,检查线程会检测到所有分片已经接收完毕,在这一阶段,完成无线多媒体传感器网络格式的数据包转换为IP格式数据包的过程,完成组包后,设置相应的事件用来启动接收监听线程2,把数据存入IP数据接收队列;如果因为无线多媒体传感器网络信道的原因或者其他原因造成丢包,使得分片数据不能全部收到,数据会一直堆放在缓存队列中,如果信道很坏的情况下,会造成缓存队列满的情况,这时,会存在一个超时检查线程,设置相应的超时时限,当缓存队列中相应包的时间超过时限后还没有全部收到分片,则超时线程会清理缓存队列相应的数据结构,数据传输的可靠性由上层来维护。当IP数据接收队列接收到数据后,通过设置接收事件或者信号量,启动等待此事件或者信号量的递交操作系统数据线程,用来完成IP数据从IP 数据接收队列向操作系统的递交。 
综上所述,在一般的自主开发无线多媒体传感器网络中,由于无线多媒体传感器网络协议的私有性,使得IP网络数据包不能直接到达无线传感器网络节点,无线多媒体传感器网络接入不进IP化的网络。本发明提供一种无线多媒体传感器网络接入IP网络的方法。 
在已有情况下,无线多媒体传感器网络节点之间运行私有协议,IP网络数据包不能直接到达无线多媒体传感器节点;在IP网络中普遍使用的SOCKET编程规范在此处不再适用,应用程序要想访问网络,需要自行开发网络接口API,这样不仅给无线网卡固件开发者增加了负担,同时也给应用程序开发人员增加了负担,在实际情况下,因为网络接口API的私有性,不兼容IP网络,应用程序不具有很好的移植性。本发明是在已有技术的基础上,通过开发虚拟网关中间件,使得IP网络中的数据包能够到达无线多媒体传感器网络节点;应用程序可以直接通过SOCKET编程规范访问网络节点,从而减轻了应用程序开发人员的负担,是一种运行私有网络协议的无线多媒体传感器网络接入IP网络的方法。 
本发明是在已有技术的基础上,开发虚拟网关中间件,解决了无线多媒体传感器网络IP网络数据透明传输的问题和无线多媒体传感器网络应用程序移植性、通用性差的问题,主要具有以下优点: 
①无线多媒体传感器网络接入IP网络采用虚拟网关的方式,即采用软件而非硬件的方式来实现。该虚拟网关在不同的操作系统平台上能够动态加载,完成IP数据和无线多媒体传感器网络协议数据的转换; 
②通过虚拟网关的形式,使得采用SOCKET编程规范的应用程序不需要改动便可以访问无线多媒体传感器网络,使应用程序具有通用性和移植性; 
③通过虚拟网关,IP网络数据可以透明传输无线多媒体传感器网络,可以直接通过IP地址访问无线多媒体传感器网络节点; 
④不需要增加额外的网关硬件设备,只需要通过虚拟的动态加载网关中间件,便可以实现不同网络之间协议的转换; 
⑤不需要额外的硬件设备和在资源有限的无线传感器网络节点上构建复杂的IP协议栈,使得IP网络中的数据包能够到达无线多媒体传感器网络节点; 
⑥应用程序可以通过SOCKET编程规范访问无线传感器网络节点,避免开发私有网络协议的无线多媒体传感器网络访问API,减轻了应用程序开发人员的负担,增加了程序开发的标准性和移植性。 
附图说明
图1整个方案的网络拓扑结构图; 
图2虚拟网关所在层次结构图; 
图3虚拟网关的实现架构; 
图4Window体系下虚拟网关层次结构图; 
图5分包过程; 
图6组包过程相关数据结构示意图; 
图7组包过程。 
具体实施方式
下面,通过具体实施方式进一步阐述本发明的实质性特点和显著的进步。但本发明决非仅局限于介绍的具体实施方式。 
在具体实施中,平台主要为PC机和手持设备,以PC机运行Windows操作系统、手持设备运行Windows CE为例,对具体实施例进行详细的说明。其具体的层次架构图如图4所示。 
遵从SOCKET规范的应用程序调用Windows API,数据从APP进入操作系统,Windows操作系统维护一个IP协议栈,并对外提供NDIS接口,以用来适配不同网络形式的物理网卡,在这里,虚拟网关构建于NDIS下层,用来获得从操作系统传送下来的IP数据包,在虚拟网关,IP数据包完成了分包过程并转化为无线多媒体传感器网络格式的数据,从无线网卡得到的无线多媒体传感器网络数据在这里完成了组包过程并把该数据包格式转换为IP网络数据包的格式,完成了协议的转换。无线网卡流驱动程序用来驱动无线网卡,即传输无线多媒体传感器网络数据的无线通信板,在Windows体系结构下一般采用流驱动的方法进行开发。 
在Windows开发体系的应用程序层面,主要是开发符合SOCKET网络程序规范的应用程序,其开发语言可以采用C/C++、java等不同的开发语言进行开发,这些应用程序最终都是通过调用Window操作系统API来实现应用程序与操作系统的交互,Windows和Wince操作系统虽然在操作系统内核方面实现不相同,但是其提供给应用程序的操作系统接口基本是相同的,SOCKET网络规范在Windows操作系统的表现形式为一组网络API,这样,应用程序和操作系统便可以完成数据的交互,应用程序可以把数据传递给Windows操作系统,Windows操作系统也可以把数据传递给应用程序。 
Windows、Wince操作系统维护一个IP协议栈,例如在传输层层面实现了TCP状态机,实现了UDP、IP等协议,提供给外部一个NDIS的网络驱动程序接口,用来适配于不同的通信网卡,在操作系统层面实现了一个统一的结构,根据设置的不同,数据最终流向不同的物理网卡,在这里,数据通过操作系统提供的NDIS接口流向了运行私有协议的无线传感器网络无线通信网卡。 
NDIS接口提供虚拟网卡注册、卸载等函数,能够保证虚拟网关被操作系统所识别,NDIS起到了承上启下的功能,对上作为操作系统的接口,对下可以跟虚拟网关进行数据交互,NDIS接口也是操作系统提供的接口,在这里虚拟网关中通过调用NDIS接口函数,可以从操作系统中拷贝数据进入到虚拟网关,也可以从虚拟网关中拷贝数据到操作系统,从而完成了数据交互与流动。 
在虚拟网关中,其具体实现架构如图3所示,在Windows操作系统体系,采用C语言开发,在Wince环境下可以是BSP包中进行编译,也可以在APP SDK中进行编译,编译的选项要进行仔细的设置才能够实现。虚拟网关每个队列都存在相应的事件和线程,事件用来标标识是否有数据进入到队列,线程等待事件的发生并执行,最终完成数据在不同层次的层层递交。 
在虚拟网关实现中,需要完成IP数据包分包和组包的过程,分包的具体过程如 
图5所示,分包的过程中,IP包头中的信息被转换为无线多媒体传感器网络中的包头信息,在这个过程中,进行了包头压缩,但是不丧失有效信息。数据负载则被分入了各个分片包中,数据仅仅是做简单的拷贝。分包的过程中,首先,在无线多媒体传感器网络包头中设置不分片、分片首包、分片中 间包、分片末包包标志位,在包头中设置分片偏移量,设置包标识符(ID),设置所承载的IP包包类型标识。然后,设置无线多媒体传感器网络包中承载的IP包头信息,包括IP目标地址、原地址和IP头中的其他信息,如果在同一个网段,则可以使用短地址形式,是否在同一个网段的标志可以设置在无线多媒体传感器网络包头中的IP包包类型标识中。IP头中的其他信息在无线多媒体传感器网络包格式中可以进行压缩。压缩的目的是为了增大有用数据传输的比例,减少资源的浪费。最后,设置UDP、TCP、ICMP包在无线多媒体传感器网络包中字段,包括端口信息等。数据域的负载则需要详细的计算好需要分割的位置,对数据负载进行分割,填充到首包、中间包和末包中,当然,如果长度不太大,数据分割只分为两片,则最终只会存在首包和末包,长度足够长,则会有多个中间包出现,数据分割的长度也不仅仅只是为两片了。 
组包过程如图7所示,在组包过程中,其数据结构如图6所示,直观来看,是一个二维链表,从横向看,其构成了一个链表,每个分包管理数据结构代表能够处理一个IP包,链表的长度代表了其正在处理的IP包的个数。每一个IP数据包都会存在一个数据包ID用来标识不同的IP数据包,如图6中分包管理结构,其内部存在数据包ID记录,用来代表一个IP包,此数据结构存储有IP包的相应信息,它的填充由不断收到的无线多媒体传感器网络数据分片包头来填充,具体是首个包的包头来填充,其下面挂载的链表便代表了所有此IP包所拆分成的无线多媒体传感器网络分片,随着数据的不断到来,相应的分片根据其偏移量找到在此链表中的位置并插入进去,等所有的分包被接收完成以后,便会启动类似于图3中的接收监听线程2,完成分包的组合过程,整个过程中,检查线程不断检查是否完成,以用来确保组包过程的启动。超时检查依据分包管理结构中的超时标志,用来判断在一定时间范围内一个IP包的所有分片数据是否全部收到,如果没有,则会清理掉,释放掉其所占用的资源,避免出现某一个不完整的IP包一直占用资源的情况,如果丢包现象严重,则会消耗掉接收机大量的资源,超时检查即是完成此项功能。 
在一个IP数据包分片链表中,存在着内存管理结构,其中的标志位可以用来区分是首包、中间包还是末包,这些标志位在判断数据是否完整即检查 是否完成方面起着重要的作用。如图中所示,数据分片是顺序的,整个链表是动态构建的,考虑到在发送的过程中,分片数据可能不是顺序发送,即默认为是乱序,数据分片到来以后,根据包头中的标志位,判断首包、末包和偏移量,从而找到该分片在此链表中位置,保证了分片数据顺序的正确性,减少了组包过程中的负担。该内存管理结构指向负载数据,这些数据的合并组成IP数据包的数据域。 
组包过程如图7所示,组包过程为根据首个包的包头内容来填充IP包头,无线多媒体传感器网络分片首包提供了IP数据包的有效信息,在这个过程中,压缩的信息要还原出来,完成IP包头的填充。还原的过程为分包过程的逆过程,根据分包过程中不同网络协议形成的对应关系,在组包的过程中还原出来。IP包中的数据域由各个分片数据进行合并拷贝,其在合并拷贝的过程中需要不断计算IP包数据域拷贝目标地址,防止数据组装的出错,最终完成数据域的组装,完成组包过程。 
虚拟网关完成以后,需要开发无线网卡驱动程序,用来驱动无线多媒体传感器网络网卡,在Windows操作系统体系,可以采用SPI总线进行处理器和无线多媒体传感器网络网卡的通信,因此,驱动程序可以采用Windows流驱动进行开发,虚拟网关通过该驱动,把无线多媒体传感器网络包发送给无线多媒体传感器网络网卡,进而把数据通过无线电发送出去,同样的,无线多媒体传感器网络网卡收到数据后,通过该驱动交付给虚拟网关,实现数据的交互以及信息的传输。 
最后,本申请文件中涉及的英文缩写的全称及中文译名汇总于下面,以免引起歧义。 
IP           Internet Protocol                                因特网协议 
API          Application Programming Interface                应用程序接口 
MTU          Maximum Transmission Unit                        最大传输单元 
PC           Personal Computer                                个人计算机 
NDIS         Network Driver Interface Specification           网络驱动程序接口规范 
Wince        Windows CE                                       微软嵌入式操作系统 
TCP          Transmission Control Protocol                    传输控制协议 
UDP          User Datagram Protocol                           用户数据报协议 
BSP        Board Support Package                           板级支持包 
APP        Application                                     应用程序 
SDK        Software Development Kit                      软件开发工具包 
ID         Identity                                      标识 
SPI        Serial Peripheral Interface                   串行外设接口 
Windows                                                  微软视窗操作系统 
Window CE        Windows Embedded Compact                微软公司嵌入式操作系统 
Socket                                       孔/插座套接字,用于描述IP地址和端口 
c/c++    java                                            编程语言 。

Claims (10)

1.一种无线多媒体传感器网络接入IP网络的方法,其特征在于采用虚拟网关的方式实现无线多媒体传感器网络接入IP网络;
①所述的虚拟网关遵从SOCKET网络编程规范的应用程序便可以访问该无线多媒体传感网络;
②所述的虚拟网关在不同的操作平台上能动态加载,完成IP数据和多媒体传感器网络协议数据的转换,是对应操作系统的网络驱动程序。
2.按权利要求1所述的方法,其特征在于所述的虚拟网关存在于PC机与手持设备上,应用程序位于最上层,应用程序的编写遵从SOCKET规范;应用程序提供操作系统API。
3.按权利要求1所述的方法,其特征在于所述的虚拟网关具体是在软件层面实现的;当数据从应用程序经操作系统到达虚拟网关时,是以IP数据包的格式,为使无线多媒体传感器网络节点识别IP数据包,需要对IP数据包头进行分析,转换成对应于无线多媒体传感器网络中的数据包格式,两个数据包头具有相同的意义;当IP数据包的长度很长时,虚拟网关要完成数据包的分片操作,同时,数据负载也被拷贝进入了新的数据包,这样,就完成了IP数据包从上到下无线多媒体传感器网络数据包的转化,实现了IP数据包的透传;当数据从下往上从无线网卡驱动传送到虚拟网关时,虚拟网关负责把无线多媒体传感器网络中的数据包格式转换为能够被IP网络识别的标准IP数据包,同时,根据无线多媒体传感器网络包头中的标志位,判断是否进行组包操作,最后,虚拟网关把得到的IP数据包向上传递给操作系统,进而传递给应用程序;
无线网卡驱动程序具体负责驱动无线网卡,是对硬件的操作,跟无线网卡进行数据交互,无线网卡具体负责收发在空中的无线多媒体传感器网络数据,完成数据传输。
4.按权利要求1-3任一项所述的方法,其特征在于:
A、所述的虚拟网关的向下链路为首先从操作系统下发IP格式的数据,数据会存入操作系统下发数据接收队列,在队列上,会存在一个接收事件或者信号量,来标志该队列存在数据,数据循环派发线程1等待该事件,当该事件发生时,即队列中存在数据时,数据循环派发线程1开始运行,并把操作系统下发数据接收队列中的数据搬运到无线网卡驱动数据发送队列中,并在这个过程中完成分片的操作,分片与否是根据两个不同网络中的MTU决定的,IP包的MTU要大于无线多媒体传感器网络中的MTU值,如果IP包长度大于无线多媒体传感器网络MTU,则进行分片;如果小于,则不进行任何操作,直接搬运到无线网卡驱动数据发送队列即可,分片后的数据分片后存入无线网卡驱动数据发送队列。无线网卡驱动数据发送队列同样存在事件监听机制,当数据到来时,循环派发线程2运行,把数据从无线网卡驱动数据发送队列取出,通过无线网卡驱动把数据发送到无线网卡,进而通过天线发送出去;
B、虚拟网关的向上链路为从无线网卡驱动接收到数据后,该数据便是无线多媒体传感器网络格式的数据,接收监听线程1负责把数据从无线网卡搬运到无线网卡驱动数据接收队列中,相应的队列上同样存在事件或者信号量,内部数据缓存入队线程开始工作,它首先根据包头中的标志位进行分片与否的判断,如果没有分片,则直接存入IP数据接收队列,如果是分片数据,则存入内部数据缓存队列,每到达一个分片,则存入分片对应的缓存结构,当所有的分片到达后,检查线程会检测到所有分片已经接收完毕,在这一阶段,完成无线多媒体传感器网络格式的数据包转换为IP格式数据包的过程,完成组包后,设置相应的事件用来启动接收监听线程2,把数据存入IP数据接收队列;如果因为无线多媒体传感器网络信道的原因或者其他原因造成丢包,使得分片数据不能全部收到,数据会一直堆放在缓存队列中,如果信道很坏的情况下,会造成缓存队列满的情况,存在一个超时检查线程,设置相应的超时时限,当缓存队列中相应包的时间超过时限后还没有全部收到分片,则超时线程会清理缓存队列相应的数据结构,数据传输的可靠性由上层来维护;当IP数据接收队列接收到数据后,通过设置接收事件或者信号量,启动等待此事件或者信号量的递交操作系统数据线程,用来完成IP数据从IP数据接收队列向操作系统的递交。
5.按权利要求4所述的方法,其特征在于A中所述的无线传感器网络MTU局限于物理条件的限制。
6.按权利要求2所述的方法,其特征在于PC机运行的Windows操作系统时虚拟网块的运行层次是:
①遵从SOCKET规范的应用程序调用Windows API,数据从APP进入操作系统,Windows操作系统维护一个IP协议栈,并对外提供NDIS接口,以用来适配不同网络形式的物理网卡;
②虚拟网关构建于NDIS下层,用来获得从操作系统传送下来的IP数据包,在虚拟网关,IP数据包完成了分包过程并转化为无线多媒体传感器网络格式的数据,从无线网卡得到的无线多媒体传感器网络数据在这里完成了组包过程并把该数据包格式转换为IP网络数据包的格式,完成了协议的转换;
③无线网卡流驱动程序用来驱动无线网卡,即传输无线多媒体传感器网络数据的无线通信板,在Windows体系结构下采用流驱动的方法进行开发;
其中,a)在Windows开发体系的应用程序层面开发符合SOCKET网络程序规范的应用程序,开发的应用程序最终均是通过调用Window操作系统API来实现应用程序与操作系统的交互,SOCKET网络规范在Windows操作系统的表现形式为一组网络API,应用程序和操作系统便可以完成数据的交互;
b)Windows、Wince操作系统维护一个IP协议栈,例如在传输层层面实现了TCP状态机,实现了UDP和IP协议,提供给外部一个NDIS的网络驱动程序接口,来适配于不同的通信网卡,在操作系统层面实现了一个统一的结构,根据设置的不同,数据最终流向不同的物理网卡,数据通过操作系统提供的NDIS接口流向了运行私有协议的无线传感器网络无线通信网卡;
c)NDIS接口提供虚拟网卡注册、卸载函数,保证虚拟网关被操作系统所识别,NDIS起到了承上启下的功能,对上作为操作系统的接口,对下可以跟虚拟网关进行数据交互,NDIS接口也是操作系统提供的接口,虚拟网关中通过调用NDIS接口函数,从操作系统中拷贝数据进入到虚拟网关或从虚拟网关中拷贝数据到操作系统,从而完成了数据交互与流动。
7.按权利要求6所述的方法,其特征在于:
a)所述的开发符合SOCKET网络程序规范的应用程序时使用C/C++或Java编程语言;
b)Windows和Wince虽然在操作系统内核方面实现不相同,但提供给应用程序的操作系统接口是相同的;应用程序可把数据传递给Windows操作系统,相反Windows操作系统也可把数据传递给应用程序。
8.按权利要求7所述的方法,其特征在于在Windows操作系统体系,采用C语言开发,在Wince环境下是在BSP包中进行编译,或在APP SDK中进行编译,编译的选项要进行仔细的设置才能够实现;虚拟网关每个队列都存在相应的事件和线程,事件用来标标识是否有数据进入到队列,线程等待事件的发生并执行,最终完成数据在不同层次的层层递交。
9.按权利要求4所述的方法,其特征在于:
A、分包
分包的过程中,IP包头中的信息被转换为无线多媒体传感器网络中的包头信息,在不丧失有效信息前提下进行了包头压缩,数据负载则被分入了各个分片包中,数据仅仅是做简单的拷贝;
a)分包的过程中,首先,在无线多媒体传感器网络包头中设置不分片、分片首包、分片中间包、分片末包包标志位,在包头中设置分片偏移量,设置包标识符(ID),设置所承载的IP包包类型标识;
b)然后,设置无线多媒体传感器网络包中承载的IP包头信息,包括IP目标地址、原地址和IP头中的其他信息,如果在同一个网段,则可以使用短地址形式,是否在同一个网段的标志可以设置在无线多媒体传感器网络包头中的IP包包类型标识中。IP头中的其他信息在无线多媒体传感器网络包格式中可以进行压缩。压缩的目的是为了增大有用数据传输的比例,减少资源的浪费;
c)最后,设置UDP、TCP、ICMP包在无线多媒体传感器网络包中字段,包括端口信息;数据域的负载则需要详细的计算好需要分割的位置,对数据负载进行分割,填充到首包、中间包和末包中;
B、组包
组包过程为根据首个包的包头内容来填充IP包头,无线多媒体传感器网络分片首包提供了IP数据包的有效信息,在这个过程中,压缩的信息要还原出来,完成IP包头的填充;还原的过程为分包过程的逆过程,根据分包过程中不同网络协议形成的对应关系,在组包的过程中还原出来;IP包中的数据域由各个分片数据进行合并拷贝,其在合并拷贝的过程中需要不断计算IP包数据域拷贝目标地址,防止数据组装的出错,最终完成数据域的组装,完成组包过程。
10.按权利要求6所述的方法,其特征在于虚拟网关运行层次③中涉及无线网卡的驱动程序是:
在Windows操作系统体系,采用SPI总线进行处理器和无线多媒体传感器网络网卡的通信;驱动程序可以采用Windows流驱动进行开发,虚拟网关通过该驱动,把无线多媒体传感器网络包发送给无线多媒体传感器网络网卡,进而把数据通过无线电发送出去;同样的,无线多媒体传感器网络网卡收到数据后,通过该驱动交付给虚拟网关,实现数据的交互以及信息的传输。
CN201410486749.1A 2014-09-22 2014-09-22 一种无线多媒体传感器网络接入ip网络的方法 Pending CN104219247A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410486749.1A CN104219247A (zh) 2014-09-22 2014-09-22 一种无线多媒体传感器网络接入ip网络的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410486749.1A CN104219247A (zh) 2014-09-22 2014-09-22 一种无线多媒体传感器网络接入ip网络的方法

Publications (1)

Publication Number Publication Date
CN104219247A true CN104219247A (zh) 2014-12-17

Family

ID=52100381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410486749.1A Pending CN104219247A (zh) 2014-09-22 2014-09-22 一种无线多媒体传感器网络接入ip网络的方法

Country Status (1)

Country Link
CN (1) CN104219247A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107018127A (zh) * 2017-03-07 2017-08-04 西安电子科技大学 一种兼容多种协议的物联网虚拟网关及节点接入认证方法
CN108234397A (zh) * 2016-12-14 2018-06-29 中国航空工业集团公司西安航空计算技术研究所 一种基于通道的异构网络数据发送方法和接收方法
CN108763109A (zh) * 2018-06-13 2018-11-06 成都心吉康科技有限公司 数据存储方法、装置及其应用
CN108881400A (zh) * 2018-05-28 2018-11-23 济南万联信息科技有限公司 一种基于多网卡实现多通道数据实时上传的系统
CN109089278A (zh) * 2018-09-29 2018-12-25 中国联合网络通信集团有限公司 一种接口测试方法及装置
CN110493191A (zh) * 2019-07-16 2019-11-22 视联动力信息技术股份有限公司 Windows平台数据转发方法、装置、电子设备及可读存储介质
CN111726201A (zh) * 2020-06-15 2020-09-29 哈工大机器人(合肥)国际创新研究院 一种airt-ros虚拟网卡丢包解决方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859339A (zh) * 2005-04-30 2006-11-08 华为技术有限公司 一种通过边缘媒体网关实现ip跨域互通的通信系统和方法
CN101682587A (zh) * 2007-04-13 2010-03-24 Hart通信基金会 在过程控制环境下支持无线通信协议的无线网关
CN102045896A (zh) * 2010-11-22 2011-05-04 中山爱科数字科技有限公司 实现多协议及网络自适应的虚拟物联网网关系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859339A (zh) * 2005-04-30 2006-11-08 华为技术有限公司 一种通过边缘媒体网关实现ip跨域互通的通信系统和方法
CN101682587A (zh) * 2007-04-13 2010-03-24 Hart通信基金会 在过程控制环境下支持无线通信协议的无线网关
CN102045896A (zh) * 2010-11-22 2011-05-04 中山爱科数字科技有限公司 实现多协议及网络自适应的虚拟物联网网关系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234397A (zh) * 2016-12-14 2018-06-29 中国航空工业集团公司西安航空计算技术研究所 一种基于通道的异构网络数据发送方法和接收方法
CN107018127A (zh) * 2017-03-07 2017-08-04 西安电子科技大学 一种兼容多种协议的物联网虚拟网关及节点接入认证方法
CN107018127B (zh) * 2017-03-07 2019-12-06 西安电子科技大学 一种兼容多种协议的物联网虚拟网关及节点接入认证方法
CN108881400A (zh) * 2018-05-28 2018-11-23 济南万联信息科技有限公司 一种基于多网卡实现多通道数据实时上传的系统
CN108881400B (zh) * 2018-05-28 2019-05-28 济南万联信息科技有限公司 一种基于多网卡实现多通道数据实时上传的系统
CN108763109A (zh) * 2018-06-13 2018-11-06 成都心吉康科技有限公司 数据存储方法、装置及其应用
CN108763109B (zh) * 2018-06-13 2022-04-26 成都心吉康科技有限公司 数据存储方法、装置及其应用
CN109089278A (zh) * 2018-09-29 2018-12-25 中国联合网络通信集团有限公司 一种接口测试方法及装置
CN110493191A (zh) * 2019-07-16 2019-11-22 视联动力信息技术股份有限公司 Windows平台数据转发方法、装置、电子设备及可读存储介质
CN111726201A (zh) * 2020-06-15 2020-09-29 哈工大机器人(合肥)国际创新研究院 一种airt-ros虚拟网卡丢包解决方法
CN111726201B (zh) * 2020-06-15 2023-09-12 合肥哈工轩辕智能科技有限公司 一种airt-ros虚拟网卡丢包解决方法

Similar Documents

Publication Publication Date Title
CN104219247A (zh) 一种无线多媒体传感器网络接入ip网络的方法
US11178259B2 (en) Methods and apparatus for regulating networking traffic in bursty system conditions
CN105531684B (zh) 通用pci express端口
US7734859B2 (en) Virtualization of a host computer's native I/O system architecture via the internet and LANs
EP3550799B1 (en) Heterogeneous multi-protocol stack method, device and system
US8176187B2 (en) Method, system, and program for enabling communication between nodes
US20080002578A1 (en) Network with a constrained usage model supporting remote direct memory access
CN101304373B (zh) 一种实现局域网内高效传输大块数据的方法及系统
US7305493B2 (en) Embedded transport acceleration architecture
US20100050189A1 (en) Method and system for socket API call emulation
CN1679282A (zh) Tcp卸载的系统和方法
CN103248467A (zh) 基于片内连接管理的rdma通信方法
CN101536417A (zh) 消除冗余连接的方法
CN102377778A (zh) 一种基于以太网的远程非对称端通信方法
US9288287B2 (en) Accelerated sockets
CN101163129A (zh) 一种降低并行多数字信号处理器之间消息传递开销的方法
CN100391150C (zh) 数据传送装置及数据传送方法
CN101030927B (zh) 基于通信中间件的电信oss子系统间的接口通信方法
US20080056263A1 (en) Efficient transport layer processing of incoming packets
US7529812B2 (en) Socket connections over a serial link
CN112199211A (zh) 基于RapidIO的CORBA中间件ORB间通信方法
CN102347955A (zh) 一种基于虚拟通道的可靠数据传输协议
CN102065028B (zh) 一种网关设备以及报文处理方法
Chintalapati Layered Driver Architecture for Network Connectivity Over a Police Radio
Rajput et al. Cross Layer Transport Layer Approach for Multihop Wireless Sensor Network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20141217