基于蓝牙技术的手机自组通信网络CellNet的组网和路由算法

文档序号:9730641阅读:1172来源:国知局
基于蓝牙技术的手机自组通信网络CellNet的组网和路由算法
【技术领域】
[0001] 本发明设及无线自组网领域,具体是基于蓝牙技术的手机自组通信网络CelWet 的组网和路由算法。
【背景技术】
[0002] 目前,关于无线自组网的研究很多,比如《Ad-Hoc网络路由协议的改进研究和无线 Me sh网络路由技术研究》中介绍了很多的算法,其中就有DSDV、0LSR、DSR、A0VD、T0RA、LAR、 GRSR等。但是,运些算法均存在一些劣势,比如DSDV和化SR算法,它们基于表驱动路由,需要 在每个节点维护整个网络的路由,当网络越来越大的时候,每个节点的表的大小就会越来 越大,在维护运张表的时候,也需要向网络中的节点发送自己的节点信息,增加了网络的负 担,很可能导致拥塞。又比如DSR、A0VD、T0RA算法,运Ξ个协议都是需要在传送数据时,启动 路由发现的过程,然后找到一条路径,接着按照运个路径发送数据,运样的一个过程,网络 拓扑图变化很快的时候,路由维护的开销很大,并且数据包的到达率也很低。再比如GRSR算 法,它完全基于位置,选择离目的节点更近的节点作为下一跳的节点,运个也是需要维护节 点的位置信息,该协议也会洪泛发送自身节点信息,并且该协议可能导致当前节点无法找 到比自身节点更加靠近目的节点的下一跳。

【发明内容】

[0003] 本发明的目的在于提供一种基于蓝牙技术的手机自组通信网络CelWet的组网和 路由算法,解决目前的无线Mesh化t路由算法存在路由维护开销大、数据包到达率较低的问 题,同时还可能存在造成网络负担较大、网络拥堵的问题。
[0004] 本发明的目的通过下述技术方案实现:基于蓝牙技术的手机自组通信网络 Ce 1 INet的组网和路由算法,包括W下步骤:
[0005] (a)组网阶段:将节点接入到蓝牙网络中,并更新该节点的contactlist中的邻居 节点;
[0006] (b)更新阶段:实时更新当前节点的contact 1 i S t中各个邻居节点的信息;
[0007] (C)发送阶段:当前节点将普通数据包或者系统数据包发送至下一节点;
[000引(d)路由阶段:当一个节点接收到另一个节点转发来的数据包时,通过已处理数据 包表来查看该数据包是否已经处理过,如果是,则丢弃该数据包;
[0009] 如果该数据包未被处理过,则查看该数据包的转发目的地是否为本节点,如果是, 则本节点处理该数据包,并且不进行数据转发;
[0010] 如果该数据包的转发目的地不是本节点,则查看数据包中的消息存活时间TTL是 否大于20hop,如果TTL大于20hop,则直接丢弃该数据包,否则本节点进行路由转发;
[0011] (e)接收阶段:下一节点根据收到的数据包类型,作出相应的响应动作。
[0012] 进一步地,作为优选方案,所述组网阶段的具体过程为:
[0013] (al)当有节点尝试接入蓝牙网络时,该节点会发出请求信号,该蓝牙网络中的节 点会根据收到请求信号而回复确认消息或拒绝消息;如果该节点收到的是确认消息,则表 示该节点可W加入该蓝牙网络,并根据收到的确认消息更新该节点的contact 1 i St,发送确 认消息的节点同时也更新自己的contactlist;
[0014] (a2)如果该节点收到的是拒绝消息,则组网失败。
[0015] 进一步地,作为优选方案,所述更新阶段的具体过程为:
[0016] 当某一节点启动时,该节点周期性地向其contactlist中的各个节点发送屯、跳消 息,根据各个节点是否做出回复来更新本节点contactlist中各个节点的状态;
[0017] 如果一个节点回复确认信息,则继续将该节点视为本节点的邻居节点;
[0018] 如果一个节点不回复确认消息,则将该节点从本节点的邻居节点集中删除。
[0019] 进一步地,作为优选方案,所述发送阶段包括普通数据包发送和系统数据包发送, 所述普通数据包的发送过程为:
[0020] (cll)判断普通数据包的源地址,如果是源地址和本地地址相同,则增加重发机制 并发送消息;
[0021] (C12)如果是转发的,则直接发送;
[0022] 所述系统消息的发送过程为:
[0023] (C21)从节点中取出该系统消息,并直接发送。
[0024] 进一步地,作为优选方案,所述路由阶段中,节点进行路由转发的具体过程为:
[0025] (dl)获取数据包已经排除的节点集;
[0026] (d2)通过该节点的contactlist获得该节点的邻居节点集,并根据已经排除的节 点集,从邻居节点集中筛选出未被排除的节点;
[0027] (d3)把运些未被排除的节点加入到待转发数据包中,得到新的数据包,然后把新 的数据包转发给刚刚未被排除的节点集中的所有节点。
[0028] 进一步地,作为优选方案,所述步骤(d3)中,将未被排除的节点加入到待转发数据 包中的具体过程为:
[0029] ((131)当有节点想加入到£:成〇111:;[叫中时,把该节点插入到1]136的口所指向的位置, 此时1]136的口自动向后移动一个位置,当InsedP到达末尾时,则重新指向ExRouting的第一 个位置;其中,ExRout ing和1]13純1口是待发数据包中的两个字段,ExRout ing是指在数据包 中已排除的节点列表;InsertP是指下一个节点加入到ExRouting中的位置;
[0030] (d32)当要加入的节点已存在ExRouting中时,则该节点不会再次加入。
[0031] 本发明具有W下有益效果:
[0032] (1)本发明通过采用特殊的路由方式,在数据包发送过程中,实现了路由路径的动 态生成,同时,通过数据包记录路由经过的所有节点,节点收到数据包时就不再向已收到该 数据包的节点转发,避免了数据包在某个节点上重复地路由,从而极大地降低了路由选择 的时间,也减轻了由于重复发送数据包造成的网络负担。
[0033] (2)本发明在组网和路由选择时,只需要维护每个节点的邻居节点信息,无需在任 何节点处维护整个网络的所有节点信息,从而降低了节点维护的时间,也避免了储存大量 节点信息造成的手机内存不足等问题。
【附图说明】
[0034] 图1为与hand化ake协议对应的线程的流程图;
[0035] 图2为与heartbeat协议对应的线程的流程图;
[0036] 图3为与sencLSyn协议对应的线程的流程图;
[0037] 图4为与sencLSys协议对应的线程的流程图;
[0038] 图5为与receive_msg协议对应的线程的流程图;
[0039] 图6为路由过程的流程图;
[0040] 图7为que巧线程与其它线程的关系图;
[0041 ]图8为heartbeat线程与其它线程的关系图;
[0042] 图9为service线程与其它线程的关系图;
[0043] 图10为组网和路由过程示意图。
【具体实施方式】
[0044] 下面结合实施例对本发明作进一步的详细说明,但本发明的实施方式不仅限于 此。W下提到的节点与本发明要表达的手机端是一个概念,两者只是不同层面的不同叫法 而已。
[0045] 实施例:
[0046] 本实施例所述的基于蓝牙技术的手机自组通信网络Cell化t的组网和路由算法, 包括W下步骤:
[0047] (a)组网阶段:将节点接入到蓝牙网络中,并更新该节点的contactlist中的邻居 节点;
[0048] (b)更新阶段:实时更新当前节点的contact 1 i S t中各个邻居节点的信息;
[0049] (C)发送阶段:当前节点将普通数据包或者系统数据包发送至下一节点,系统数据 包是指入网和屯、跳相关的数据包,入网和屯、跳相关的数据包与后面要提到的handshake协 议(握手协议)和heartbeat协议(屯、跳协议)相关,普通数据包是指系统数据包W外的数据 包,比如普通文本信息,系统信息等;
[0050] (d)路由阶段:当一个节点接收到另一个节点转发来的数据包时,通过已处理数据 包表来查看该数据包是否已经处理过,如果是,则丢弃该数据包;
[0051] 如果该数据包未被处理过,则查看该数据包的转发目的地是否为本节点,如果是, 则本节点处理该数据包,并且不进行数据转发;
[0052] 如果该数据包的转发目的地不是本节点,则查看数据包中的消息存活时间TTL是 否大于20hop,如果TTL大于20hop,则直接丢弃该数据包,否则本节点进行路由转发;
[0053] (e)接收阶段:下一节点根据收到的数据包类型,作出相应的响应动作。
[0054] 具体地,组网阶段的具体过程为:
[0055] (al)当有节点尝试接入蓝牙网络时,该节点会发出请求信号,该蓝牙网络中的节 点会根据收到请求信号而回复确认消息或拒绝消息;如果该节点收到的是确认消息,则表 示该节点可W加入该蓝牙网络,并根据收到的确认消息更新该节点的contact 1 i St,发送确 认消息的节点同时也更新自己的contactlist;
[0056] (a2)如果该节点收到的是拒绝消息,则组网失败。
[0057] 具体地,更新阶段的具体过程为:
[005引当某一节点启动时,该节点周期性地向其contactlist中的各个节点发送屯、跳消 息,根据各个节点是否做出回复来更新本节点contactlist中各个节点的状态;;
[0059] 如果一个节点回复确认信息,则继续将该节点视为本节点的邻居节点;
[0060] 如果一个节点不回复确认消息,则将该节点从本节点的邻居节点集中删除。
[0061] 具体地,发送阶段包括普通数据包发送和系统数据包发送,所述普通数据包的发 送过程为:
[0062] (cll)判断普通数据包的源地址,如果是源地址和本地地址相同,则增加重发机制 并发送消息;
[0063] (C12)如果是转发的,则直接发送;
[0064] 所述系统消息
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1