CN101442825B - WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 - Google Patents
WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 Download PDFInfo
- Publication number
- CN101442825B CN101442825B CN2008102364469A CN200810236446A CN101442825B CN 101442825 B CN101442825 B CN 101442825B CN 2008102364469 A CN2008102364469 A CN 2008102364469A CN 200810236446 A CN200810236446 A CN 200810236446A CN 101442825 B CN101442825 B CN 101442825B
- Authority
- CN
- China
- Prior art keywords
- node
- local topology
- topology
- network
- way
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种WINCE下Ad Hoc网络局部拓扑形成与维护方法,在Windows CE平台下利用NDIS驱动实现无线路由协议中通过局部拓扑的形成与维护来促进路由发现与维护,该发明能在现实的实现环境中为路由协议提供一种拓扑形成与维护方法,由于拓扑的即时维护与更新,因此本发明能很好地适应网络的移动性。而且很好地处理了双向邻居的关系,因此也能很好的解决单向链路的问题。
Description
技术领域
本发明属于异类点无线移动自组织网络(Ad Hoc网络),主要应用于Windows CE平台下无线路由协议的实现,特别涉及WINCE下Ad Hoc网络局部拓扑形成与维护方法。
背景技术
目前存在的对无线Ad Hoc网络下的路由协议的研究主要有两种:
第一种是面向研究的方法,该方法是在一定的场景中,比如同类点或异类点,军用或民用的场景中设计一种理想的网络模型或路由协议来最大化网络性能,包括收包率、延迟、吞吐量等等,来达到最佳的通信效果。该方法主要通过仿真来模拟验证协议的性能,主要优点在于仿真可以不过于考虑物理环境的限制,将研究的重点集中放在协议的理论价值上。缺点在于协议的当前的实用性并不高。
第二种是面向实现的方法,该方法主要面向无线路由在现实中的应用,也包括各种场景。此种应用实现的平台主要有Linux,Windows CE,uC/OS,TinyOS等等。其主要目的是在一定的环境,如电子会议,救灾环境等环境中实现临时通信,在性能上并没有第一种方法中要求来得严格,一般并不需要达到最佳效果,因为一般也无法达到这种效果,由于真实环境的制约,比方说无线本身的不稳定性和地理上可能存在的阻隔,而是达到的既定的要求即可。目前这方面的文献并不太多,比如说AODV的实现和多路径源路由的实现等等,鉴于这些实现都没有考虑到利用局部拓扑来加速路由发现和并减轻路由维护的负载,导致过多的路由发现,尤其是真实环境中的链路极不稳定性导致的不断的路由更新过程,将导致大量的控制负载。
发明内容
本发明为了克服上述现有技术不足,提供一种WINCE下Ad Hoc网络局部拓扑形成与维护方法,主要从代码实现角度分析局部拓扑的形成与维护,而解决真实环境中无线网络路由协议的实现过程中由于通信链路的不稳定性导致的不断地路由重建的问题,同时加速路由发现过程。
本发明的技术方案是这样实现的:包括以下步骤:
Step1每个节点维护一个二维链表,链表表项通过指针与具有相同ID的链表表头产生关联。节点之间在NDIS的中间层通过UDP协议进行发包,并使收包方在底层截包,在将数据传往TCP/IP等上层协议前对这些包进行处理,来维护拓扑信息。
Step2每个节点周期性广播hello包来形成双向邻居。对于刚进入网络的节点,每一步骤均需要一定的时间,这通过NDIS层的timer来设置计时器来实现。
Step3每个节点有选择地广播或单播自己的双向邻居信息,以便其它节点可以知道自己的邻居信息,也可以有选择地决定是否代本节点广播邻居信息。
Step4如果有必要,节点需要广播自己的局部拓扑图来与周围节点共享。
Step5节点进入维护阶段,为每一个双向邻居表项设置一个时间戳来维护双向邻居。同时节点之间通过交换邻居列表得到周围节点的双向邻居信息,通过调用Broadcast,Unicast,或Multicast等发UDP包来实现。另外节点也可以一次性地发送节点的拓扑图,来使周围节点进行局部拓扑的融合,通过调用Broadcast,Unicast,或Multicast等发UDP包来实现。
本发明将基于Windows CE下NDIS的中间层驱动,在给定的真实拓扑情况下,为每个节点能够形成并维护相应的局部拓扑提供代码实现方面的分析,此结构由每个节点通过二维链表维护。本发明能很好地适应网络的移动性。而且很好地处理了双向邻居的关系,因此也能很好的解决单向链路的问题。局部拓扑的辅助可以很好地缓解真实环境中由于链路不稳定导致的路由重发现过程,减轻了网络的控制负载,并减少路由发现的延迟,也使路由维护更加方便快捷。
附图说明
图1(a)是本发明一种简单情况下的真实拓扑图;
图1(b)是利用本发明得到的相应拓扑图链表表示。
图2(a)是稍微复杂情况下的真实拓扑图;
图2(b)是利用本发明得到的相应拓扑图链表表示。
具体实施方式
参照图1(a)、(b)所示,其中1、4、5是网络中的节点,且两两节点都在通信范围内,如附图1(a)所示,每个节点只维护节点的双向邻居就足够了,利用本发明可得拓扑图用链表表示如附图1(b),其中4是当前节点,LT表示局部拓扑,G表示当前节点是普通节点,与大功率节点相对应。
参照图2(a)、(b)所示,其中1、4、5、6是网络中的节点,在稍微复杂的情况下,如附图2(a)所示,4是当前节点,而节点1并不在当前节点的通信范围之内。此时要获得较为详细的拓扑,就需要在节点间交换信息,如双向邻居列表或局部拓扑信息,利用本发明可得拓扑图用链表表示如附图2(b),图中拓扑总共有四列,分别是自身的双向邻居列表和邻居的双向邻居列表,由此图可以看出,虽然1号节点并不在当前节点的通信范围内,但我们可以通过拓扑图很方便地找到此节点,为路由发现和维护提供了很大的帮助。
节点拓扑信息结构
每个节点维护一个二维链表,每个表项应该是一个结构体,每一行代表此节点所收集到的双向邻居信息,而每一行的表头和普通表项可以定义为不同的结构体,因为很多信息只需要表头维护即可,而且普通表项信息通常也是表头的重复,因此可以简化普通表项结构,例如普通表项只维护节点ID,而其它信息,可以通过在其结构中添加一个指针来指向某一行的具有相同ID的表头来获取更详细的信息。尽管局部拓扑的不完整性可能导致普通表项对应的ID并不一定会在本节点拓扑的所有表头中出现,但对于此类情况而言,我们一般不需要此类普通节点的详细信息,因此只需将该指针置空即可。
节点信息交互方式
节点信息的传输方式主要有三种:单播、广播和组播,此后我们将分别用Unicast、Broadcast、Multicast等三个函数名代替包传输操作。通过周期性地调用单跳Broadcast,每个节点可以自己的双向邻居列表,该列表也属于局部拓扑图。而其它节点可以通过任何一种传输方式来选择性地告知自己的双向邻居信息,也可以直接散布自己的局部拓扑信息,然后接收到该信息的节点可以根据此信息完善自己的局部拓扑图。节点信息交互通过控制包来完成,根据不同的协议实现方式,可以有不同种类、不同数量的控制包,此类型可以通过enum枚举类型来表示。不同的类型可以有不同的传输方式、不同的处理方式:1)对于发送节点,通过调用Unicast、Broadcast或Multicast来对某一类控制包选择其合适的传输方式,例如hello包一般使用一跳Broadcast,而散布双向邻居信息可以采用Unicast把自己的信息更新到某一节点;然后该节点又可以通过广播方式将自己的局部拓扑信息告知周围节点,这种方式在异类点网络作用尤为明显,小功率节点可以将自己的信息传给某一大功率节点,并由此大功率节点替代自己将自己的信息广播给周围的节点,避免了小功率节点的不必要的洪泛。当然控制包需要有别于数据包,因此可以通过设置UDP协议端口号来方便接收节点判定该包是否为控制包。2)对于接收节点,在中间层截获数据帧时,由于中间层位于TCP/IP之下,因此需要根据各协议层数据包头在RFC中的定义对数据帧进行解析,在此需建立必要的数据包头结构来方便处理对应数值,如struct UDPHeader,这样的话当提取到UDP头部时,我们就可以直接取得UDPHeader中的端口值来判定此当前数据帧内容是否是控制数据包。如果不是,则可以将此包传给上层协议,否则需要对此类包进行处理;当然不同的控制包也对应着不同的处理方式或作用,因此可以根据类型判定应该采取哪一种处理方式。此外,控制包对于上层节点已经没有利用价值,因此中间层直接丢弃。而如果要转发控制包,中间层可以另外调用Unicast、Broadcast或Multicast来转发。
节点拓扑的形成
Step1每个节点周期性广播hello包来形成双向邻居。对于刚进入网络的节点,每一步骤均需要一定的时间,这通过NDIS层的timer来设置计时器来实现。
Step2每个节点有选择地广播或单播自己的双向邻居信息,以便其它节点可以知道自己的邻居信息,也可以有选择地决定是否代本节点广播邻居信息。
Step3如果有必要,节点需要广播自己的局部拓扑图来与周围节点共享。
节点拓扑的维护
1.双向邻居的维护:为每一个双向邻居表项设置一个时间戳,并在收到并确定是双向邻居的包时更新此时间戳,然后周期性地检查该项是否过期,如果过期,不但本节点更新双向邻居,同时Unicast来找节点代替通知其它节点更新拓扑或直接Broadcast更新包来通知其它节点以便及时更新拓扑。
2.局部拓扑邻居列的维护:对于拓扑中其它节点的双向邻居列表,将在收到其它节点的更新包或其它包之后,作必要的改进,一般是整列替换,考虑到普通表项中指向具有相同ID的表头的指针,因此更新邻居列时不删除列首,从而避免了其它邻居列中因为此列的删除重建而导致的指针重设,而只需更新此列每一节点的指针即可。当然,建于删除和添加,所有节点都需要更新此指针,操作对象也是以邻居列为单位,并且确保重得表头不在拓扑表中出现。
3.整体拓扑信息的更新:除了一次更新一个邻居列之外,也可以选择一次性地发送节点的拓扑图,这样周围的节点就可以一次性拥有详细的拓扑信息。节点在收到此类控制包时,需要提取出包中拓扑信息,并将此信息融合到自己的拓扑中。这种情况尤其适合于异类点网络,大功率节点在收集到足够的小功率节点信息后,可以仅通过一跳便让周围很多节点一次性获得较为详细的拓扑信息。这极大地避免了小功率节点之间不必要的信息交互。
Claims (1)
1.WINCE下Ad Hoc网络局部拓扑形成与维护方法,其特征在于,包括以下步骤:
步骤1)对于网络中的每个节点,都维护一个二维链表来表示网络局部拓扑,链表表项通过指针与具有相同ID的链表表头产生关联,节点之间在网络驱动接口规范NDIS的中间层通过UDP协议进行发包,并使收包方在中间层截包,在将数据传往TCP/IP上层协议前对这些包进行处理,来形成和维护拓扑信息;
步骤2)每个节点周期性广播hello包来形成双向邻居,对于刚进入网络的节点,每一步骤所需要的时间均通过NDIS层的timer设置计时器来实现;
步骤3)每个节点有选择地广播或单播自己的双向邻居信息,以便其它节点知道自己的邻居信息,或者有选择地决定是否代本节点广播邻居信息;
步骤4)节点需要广播自己的局部拓扑图来与周围节点共享;
步骤5)节点进入维护阶段,为每一个双向邻居表项设置一个时间戳来维护双向邻居,同时节点之间通过交换邻居列表得到周围节点的双向邻居信息,通过调用函数Broadcast,Unicast,或Multicast发UDP包来实现,另外节点能够一次性地发送节点的拓扑图,来使周围节点进行局部拓扑的融合,通过调用函数Broadcast,Unicast,或Multicast发UDP包实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102364469A CN101442825B (zh) | 2008-12-24 | 2008-12-24 | WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102364469A CN101442825B (zh) | 2008-12-24 | 2008-12-24 | WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101442825A CN101442825A (zh) | 2009-05-27 |
CN101442825B true CN101442825B (zh) | 2011-02-09 |
Family
ID=40727026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102364469A Expired - Fee Related CN101442825B (zh) | 2008-12-24 | 2008-12-24 | WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101442825B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9055105B2 (en) * | 2009-05-29 | 2015-06-09 | Nokia Technologies Oy | Method and apparatus for engaging in a service or activity using an ad-hoc mesh network |
CN103701703B (zh) * | 2013-12-31 | 2017-05-10 | 新华三技术有限公司 | 一种邻居关系管理方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473803B1 (en) * | 1997-06-02 | 2002-10-29 | Unisys Corporation | Virtual LAN interface for high-speed communications between heterogeneous computer systems |
US6496509B1 (en) * | 1998-08-03 | 2002-12-17 | Advanced Micro Devices, Inc. | System for transmitting data packets between computers via an IEEE-1394 network medium |
CN1666489A (zh) * | 2002-07-08 | 2005-09-07 | 索尼国际(欧洲)股份有限公司 | 网络设备的会聚层与传输数据业务的方法 |
CN1741501A (zh) * | 2005-09-22 | 2006-03-01 | 中国科学院计算技术研究所 | 部分连接的无线网络组关系路由系统与方法 |
-
2008
- 2008-12-24 CN CN2008102364469A patent/CN101442825B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6473803B1 (en) * | 1997-06-02 | 2002-10-29 | Unisys Corporation | Virtual LAN interface for high-speed communications between heterogeneous computer systems |
US6496509B1 (en) * | 1998-08-03 | 2002-12-17 | Advanced Micro Devices, Inc. | System for transmitting data packets between computers via an IEEE-1394 network medium |
CN1666489A (zh) * | 2002-07-08 | 2005-09-07 | 索尼国际(欧洲)股份有限公司 | 网络设备的会聚层与传输数据业务的方法 |
CN1741501A (zh) * | 2005-09-22 | 2006-03-01 | 中国科学院计算技术研究所 | 部分连接的无线网络组关系路由系统与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101442825A (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Malar et al. | Multi constraints applied energy efficient routing technique based on ant colony optimization used for disaster resilient location detection in mobile ad-hoc network | |
CN101179499B (zh) | 用于监控系统的无线自组网形成树形路由方法 | |
CN101489276B (zh) | 一种移动Ad Hoc网络多播路由方法 | |
Ahmed et al. | An overview of MANETs: applications, characteristics, challenges and recent issues | |
CN101534520B (zh) | 移动Ad hoc网络可靠路由方法 | |
CN107404745A (zh) | 一种基于自组网的火灾探测器远程检测系统 | |
CN101883048A (zh) | 多维网络的路由方法 | |
CN102984781B (zh) | 用于无线自组织网络路由的邻居节点判定方法 | |
CN101867973B (zh) | 多维网络及其数据传输方法 | |
CN105072657A (zh) | 基于数据命名为中心的无线传感器网络异步休眠调度方法 | |
CN108462983A (zh) | 基于改进蚁群aodv协议的多机器人通信组网方法 | |
CN102595546B (zh) | 基于事件驱动的无线传感器执行器网络数据收集分簇方法 | |
CN101442825B (zh) | WINCE 下 Ad Hoc网络局部拓扑形成与维护方法 | |
CN103391595A (zh) | 基于跨层链路状态反馈的矿井应急救援无线网状网路由方法 | |
Ngqakaza et al. | Least path interference beaconing protocol (libp): A frugal routing protocol for the internet-of-things | |
CN103929789A (zh) | 基于主动路由算法的manet网络主控节点的自动选择方法 | |
CN102695192A (zh) | IPv6无线传感器网络的路由方法 | |
CN105050077A (zh) | 一种分簇链式无线传感网数据传输方法 | |
CN101867988A (zh) | Ad Hoc网络中的集中式自适应网管节点选择算法 | |
CN103067873A (zh) | 面向具有可充电节点和多汇聚节点的无线传感网节能组播方案 | |
Shukla et al. | An optimal relay node selection technique to support green internet of things | |
CN107222520A (zh) | 基于定向扩散算法的分布式系统中间件 | |
Jing et al. | An energy-efficient routing strategy based on mobile agent for wireless sensor network | |
Bhople et al. | Energy routing protocol with power utilization optimization in MANET | |
CN103596221B (zh) | 一种移动Ad Hoc网络的数据传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110209 Termination date: 20131224 |