一种基于蓝牙协作的ADHOC网络多信道通信方法与流程

文档序号:13707987阅读:160来源:国知局
技术领域本发明涉及无线通信领域,尤其涉及一种基于蓝牙协作的ADHOC网络多信道通信方法。

背景技术:
随着移动通信技术的飞速发展和以智能手机为代表的移动终端技术的快速进步与大规模普及,移动互联网已经成为现代社会生活中一个越来越重要的组成部分。随着移动互联网应用的不断发展,信息社会已经进入移动互联网时代。移动互联网的核心在于无线数据通信。在传统2G时代,蜂窝网络仅能够支持语音通话与短报文服务。3G通信的到来使得高性能的网络数据传输成为可能。随着3G,4G网络的普及,移动蜂窝网络能够提供更加强大的通信性能以满足更加多样性的应用需求。流媒体通信作为一个传统的应用项目,是互联网应用的重要组成部分。受制于2G网络孱弱的性能,这一应用需求无法得到满足。随着高性能通信网络的普及,流媒体应用服务随之高速发展。然而,不同于传统有线网络的固定资费或者按时计费机制,移动蜂窝网络由于其长连接,数据传输需求突发性强等特点,以及基站建设的硬性开销等原因,在可预见的一段时间内依然只能采用按照流量计费的服务模式。因而数据资费是移动互联网用户的主要开销。而流媒体这一应用场景又对通信有较高需求,因此,数据流量的代价就成为了制约移动流媒体应用需求的最大障碍。通常情况下,WIFI通信作为移动蜂窝网络的补充,提供了较为有效的高性能无线通信方案。作为最主流WLAN服务设备,目前几乎所有移动终端都配备了WIFI天线。然而传统WIFI通信需要AP基站提供互联网接入,这就需要预先部署相应的硬件设施。因此,WIFI通信更多应用于家庭,学校,娱乐场所等固定设施内。而当用户在多数户外场景时,无法获得WIFI通信接入,使得其只能使用蜂窝网络进行网络通信,这将产生相应的流量资费开销。因此,MANET就是为了解决这样问题发展起来的一项新兴技术。通常WIFI终端节点需要连接AP以获得服务,而当应用场景中没有可以使用的AP节点时,WIFI协议支持设备间通过自组织的形式组建移动ADHOC网络。在移动ADHOC网络内,节点间通过一定的机制进行组织与管理,从而实现任意节点间可以相互通信。因此,基于MANET的流媒体应用可以通过在ADHOC网络内实现数据的共享,从而降低对于蜂窝网络通信的需求。因此,高质量的流媒体应用需求对ADHOC网络的质量提出了更高的要求。在ADHOC网络中,节点使用WIFI天线在同一通信信道下根据DCF介质访问机制进行数据传输的竞争。在硬件协议不改变的前提下,一个区域内所有设备的通信能力总和是受到WIFI通信协议制约的。以802.11g协议为例,在一个区域内,所有节点的通信性能之和无法超过协议设计的通信能力上限,也就是54Mbps。当区域内节点数量增加时,由于竞争会使得网络性能进一步恶化,最终使得每个节点自身的可用带宽大幅下降,从而难以满足流媒体应用对于高性能数据传输的需求。在WIFI的物理传输中,设备工作在ISM规定的通信信道上。任意时刻内,信道上只能有一个节点进行数据的发送。由于多个信道之间的通信互不干扰,因此使得ADHOC网络同时使用多个信道进行数据通信成为可能。现有多信道通信系统都是基于修改MAC协议实现,且需要严格的时钟同步机制。或者基于多天线的硬件设备实现。移动互联网设备通常是手机终端,即无法且不适宜修改硬件的功能,也极少配备多WIFI天线,因此现实系统中难以实现多信道通信。在这个背景下,本发明通过基于应用层的蓝牙协作的多信道ADHOC通信机制,在不修改硬件功能,利用现有常见设备的前提下实现了多信道ADHOC网络,大幅优化了ADHOC网络的通信性能。从而实现了提高ADHOC网络可用性,降低数据资费开销的效果。

技术实现要素:
发明目的:为了克服现有ADHOC网络单信道下多节点带来的性能下降的问题,本发明提供了一个基于蓝牙协作的多信道通信方法,以提高网络的吞吐能力。技术方案:为实现上述目的,本发明中基于蓝牙协作的ADHOC网络多信道通信方法,在移动设备中,使用一个应用层的代理程序接管其他应用数据的收发工作,对其他应用程序隐藏内部多信道通信实现,使得其他应用程序可以直接进行数据的透明传输。上述移动设备在ADHOC网络称之为节点。在代理程序内部,程序使用网络管理模块,信道切换模块与数据发送模块进行多信道网络的管理工作和数据的传输工作。所述网络管理模块运行包括以下步骤:(1)节点通过Linux系统层启动WIFI网卡的ADHOC模式;(2)节点通过ADHOC模式组建网络,完成网络的组建后,进行路由发现工作。通过DSDV算法实现WIFIADHOC网络的路由表建立;(3)节点启动蓝牙天线,进行节点的发现工作;(4)根据发现的节点组建蓝牙Scatternet网络;(5)在蓝牙Scatternet网络内使用AODV算法进行蓝牙路由表的建立。所述信道切换模块包括如下内容:(1)模块使用若干个互不干扰信道作为数据切换信道;(2)在一段时间内,如果一个信道的通信性能出现下降,则减少使用这个信道的节点数量。如果信道通信性能上升,则增加使用信道的节点数量;(3)节点维护一个时钟计时器,周期性根据信道调度策略进行信道切换工作;(4)节点在信道切换后通知其他邻居节点,实现邻居信道状态的更新。所述数据发送模块中,节点在请求流媒体数据时,通过蓝牙Scatternet向网络请求数据。并根据蓝牙网络返回的数据信息确认拥有所需数据的节点。随后节点通过蓝牙模块向该目的节点发送这个流媒体数据块的传输请求,随后目的节点通过WIFIADHOC网络进行所需流媒体数据的发送。数据发送包含以下步骤:(1)节点维持若干个信道的数据发送队列;(2)有数据包待发送时,根据数据包类型判断使用何天线(WIFI或蓝牙)进行数据发送;(3)有ADHOC网络数据包待发送时,根据目标结点的位置查找路由表找到转发节点;(4)根据邻居节点状态表查找目标邻居节点所处信道,将数据包放入待发队列中;(5)节点运行发送子程序,其根据自己所处的信道状态,选择对应的队列,从中不断取出数据包通过WIFI天线进行数据发送。通过上述三个模块的协作,可以实现多信道ADHOC网络下数据的高性能传输。有益效果:本发明中基于蓝牙协作的ADHOC网络多信道通信方法,通过引入蓝牙协作管理的多信道通信方法提高了现有ADHOC网络的性能;通过应用层的数据管理,维护在多信道通信系统下节点的网络状态,管理数据包的发送,从而实现提高ADHOC网络总吞吐量的优化效果;通过三个管理模块的协调工作,在任意时刻,每条信道上都有相应节点在进行通信工作,因此,整个网络的总通信能力有着理论上成倍的提升;在实现方案中不需要对设备硬件进行修改,实现简单,泛用性好、通用性和扩展性强,对系统的整体性能产生了极大的提升作用。附图说明图1是基于蓝牙协作的ADHOC网络多信道通信方法的结构示意图;图2是网络管理模块的工作流程图;图3是路由表更新流程图;图4是信道切换模块的工作流程图;图5是数据发送模块的工作流程图。具体实施方式下面结合实施例对本发明作更进一步的说明。本发明(以下简称系统)基于MANET(MobileAdhocNETworks,移动自组织网络)介绍基于蓝牙协作的多信道通信方法。系统工作在Android手机系统下。系统中包括三个模块:网络管理模块,信道切换模块,数据发送模块。每个节点包含自己对应的IP地址。节点上使用现有网络通信协议。如图1所示,系统在启动后,当应用程序需要进行数据传输时,不使用传统的套接口(socket)进行数据传输,而是使用本发明中提供的对应API进行数据的发送。随后,多信道传输程序接管数据的发送工作,实现对应用程序的透明传输效果。在系统中构建了蓝牙与WIFI两个独立的ADHOC网络。由WIFIADHOC网络(下文简称ADHOC网络)进行主要数据的传输,由蓝牙分散网(Scatternet)进行网络控制信息的传输。从而实现了在不改变现有硬件和协议前提下的多信道传输方案。多信道传输方案由三个模块共同协作完成,分别是:网络管理模块,信道切换模块,数据发送模块。图2显示了网络管理模块的工作流程。当多信道管理程序启动时,程序首先通过JNI调用启动手机WIFI网卡的ADHOC模式。通过这种方式可以绕过Android的WIFI管理机制,从而获得对WIFI天线更加灵活的控制权限。完成WIFI节点的启动工作后,节点间已经组成传统单信道ADHOC网络。随后,所有节点通过ADHOC网络一跳广播通知信息以通知所有WIFI邻居节点(下文简称邻居节点)自己的IP地址等基本信息。广播完成后,所有节点都能够得到自己所有邻居节点的基本信息。节点将邻居节点信息记录在邻居节点状态表中。每个节点的邻居节点表记录了当前结点的所有邻居节点与他们所处的信道状态。如图3所示,ADHOC网络层使用DSDV协议进行路由发现,目前所有邻居节点的信道值都为网络建立时默认值1,同时每个节点只有自己邻居节点的路由信息;随后,所有节点向网络中所有其他节点广播自己的路由信息;每个点根据接收到的其他节点的路由信息,判断其是否失效并用较新的路由信息更新自己的路由表;在计算停止后,所有节点都得到了整个网络的路由信息。随后,系统启动蓝牙通信模块。与WIFI一致,控制程序通过JNI调用的方法开启蓝牙天线。并通过扫描查找的方式发现周围蓝牙邻居节点。蓝牙网路无法组建纯ADHOC网络,而需要通过将多个微微网(Piconet)连接成一个Scatternet的方式实现ADHOC网络的功能。在蓝牙网卡启动后,所有节点自发地组建Piconet。当组建完成Piconet后,Piconet中的主节点根据蓝牙邻居节点的信息,将从节点连接到其他Piconet中,从而实现多个Piconet的互联。重复这一过程,直到所有Piconet都已经组成一个连通的网络。至此完成蓝牙分散网(Scatternet)的构建过程。在蓝牙Scatternet组建完成后,蓝牙节点使用AODV路由协议作为路由发现算法,进行蓝牙路由表的构建,从而实现蓝牙网络的数据连通。图4显示了数据信道切换模块的工作流程。信道切换模块使用1,6,11三个信道进行信道的切换。节点在正常工作的过程中,每隔1s进行一次信道的切换。在切换时,节点首先读取一个信道优先级表。表中记录了该节点的周围信道状态的选择优先级,在初始状态下,3个信道的优先级相等。节点根据读取的信道优先级确定的概率关系,随机生成下一跳目标信道。随后执行信道切换函数switchchannel()将信道切换到目标信道上。信道切换完成后,同时通过WIFI网络和蓝牙网络向邻居节点广播信道切换信息,更新邻居节点的邻居节点状态表。信道切换函数switchchannel使用系统IOCTL函数进行信道的切换。ioct(intskfd,intrequest,structiwreq*pwrq)函数可以直接对硬件的控制数据区进行读写,其中skfd记录了目标硬件的socket地址,iwreq结构体记录了网卡的配置信息。通过选择0x8B20socket地址,可以直接将目标信道配置信息写入WIFI网卡的控制数据区,随后WIFI网卡固件会自动根据控制信息执行信道的切换工作。在系统运行时,信道状态会出现不稳定的随机变化,因此使用信道优先级调整函数优化信道的选择。函数执行策略如下:首先将时间切片,当一个时间片j结束时,可以得到每个信道上节点在这个时间片内的总吞吐量ti(j),同时也可以得到过去n个时间片内每个信道i上节点的平均吞吐量Ti。即ti(j)为第j个时间片内信道i上节点的总吞吐量。Ti为j‐15到j‐1这15个时间片内信道i上节点的平均吞吐量。据此计算信道i的评价系数:ei(j)=ti(j)Ti]]>ei(j)反映了信道i在过去的一个时间片内信道状态的变化情况。如果这一个时间片内信道性能有所提升,那么ei(j)>1,反之亦然。通过求出三个信道各自的ei(j),根据这三个信道的评价系数,可以求出每个信道的分配参数:Fi(j)=eil(j)Σikeil(j)]]>分配参数目的在于确定每个信道在下一个时间片内应该被分配多少通信资源,表现在系统中也即多少个通信节点。系统以计算出的Fi(j)作为信道优先级调整函数的结果更新信道优先级表。其中,l是决策系数。可以看到,当l取值越大时,网络状态的改变情况对于其信道分配的影响力就越大。当liml→0时,信道的状态改变不影响信道的分配,信道处于平均分配的状态。当liml→∞时,信道的状态完全决定了信道的分配,只有信道质量改善的信道能够被分配通信资源,而信道质量下降的节点则失去分配的机会。在具体系统中,l取1‐3可以得到比较好的收益。在完成信道的决策后,更新Ti:Ti=Ti(1-1n)+ti(j)(1n)]]>在本系统中,选择时间片为5s,n为12。决策系数l取值为2。在每个时间片结束时,每个节点将自己在过去一个时间片内在各条信道上传输的数据总量发送给主节点,也就是IP地址为1的节点。随后,主节点根据接收到的数据计算信道优先级调整结果,并将结果广播给所有节点以更新信道优先级表。从宏观上看,每个节点都在不断的进行自身信道的周期性跳转。通过这种方式结合信道状态信息实现网络内节点在3个信道下的有效分配,从而提高网路的可用通信容量。图5显示了数据发送模块的工作流程。ADHOC流媒体系统数据包包括控制报文,数据请求报文与流媒体数据报文三种。控制报文主要用来维护网络状态与广播周围邻居节点状态。根据图1显示,应用程序通过API调用直接将数据包传输给多信道代理程序,而代理程序会将数据包交给数据发送模块完成数据的发送工作。数据发送模块首先读取数据包中类型参数的值,判断该数据包类型。如果数据包是控制报文或数据请求报文,模块则直接通过蓝牙Scatternet网络将数据包发出,以保证数据包送达的速度与效率。如果数据包是流媒体数据包,则使用WIFIADHOC网络传输,将其加入缓存队列中。缓存队列是系统管理流媒体数据包发送的机制。由于系统使用三条互不干扰信道作为通信信道,因此在系统中维护着三个先入先出缓存队列。SEQ1,SEQ6,SEQ11分别对应三条通信信道。流媒体数据包在进入队列前,会根据包内的目标IP地址选择发送的目标节点,通过查找路由表,找到该数据包的下一跳传输节点。因为这个节点是当前结点的邻居节点,通过查询邻居节点状态表得到该节点所处的信道信息。随后,将该数据包放入该信道对应队列中。同时,发送模块内还运行着一个数据发送子程序。通过这个子程序实现数据包的真实发送。数据发送子程序运行流程如下:程序根据节点当前所处的信道状态,选择该信道对应的队列。随后从队列中取出一个待发数据包,读取数据包目标节点,查找邻居节点表,判断目标节点所在信道是否依然与当前信道相同。如果相同,则直接使用UDPSocket将数据包发出。否则,根据目标节点信道状态将数据包重新放入对应的队列中。所有数据包在队列内根据时间戳排序。由于使用链表数据结构管理数据包,在读取的时候不涉及复制等操作,所以队列的调度管理只消耗极少的CPU资源。现有任何移动终端设备都可以满足高数据量的发送需求。通过这种方式,发送模块完成数据包的发送工作。通过三个管理模块的协调工作,多信道代理程序能够实现基于应用层的多信道通信机制。根据设计方案,在任意时刻,每条信道上都有相应节点在进行通信工作。因此,整个网络的总通信能力有着理论上3倍的提升。本发明方法通过使用蓝牙协助通信,实现了ADHOC网络下的多信道的通信。通过本发明,ADHOC网络可以在不改变现有硬件与软件协议的前提下,大幅提升网络的吞吐速率,提高网络的性能。本发明方法实现简单,通用性和扩展性强,对系统的整体性能产生了极大的提升作用。以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1