CN102077528A - 本地对等群组(lpg)间路由方法 - Google Patents

本地对等群组(lpg)间路由方法 Download PDF

Info

Publication number
CN102077528A
CN102077528A CN2009801250872A CN200980125087A CN102077528A CN 102077528 A CN102077528 A CN 102077528A CN 2009801250872 A CN2009801250872 A CN 2009801250872A CN 200980125087 A CN200980125087 A CN 200980125087A CN 102077528 A CN102077528 A CN 102077528A
Authority
CN
China
Prior art keywords
node
lpg
identifier
peer group
local peer
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
CN2009801250872A
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.)
Toyota InfoTechnology Center USA Inc
Iconectiv LLC
Original Assignee
Telcordia Technologies Inc
Toyota InfoTechnology Center USA Inc
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 Telcordia Technologies Inc, Toyota InfoTechnology Center USA Inc filed Critical Telcordia Technologies Inc
Publication of CN102077528A publication Critical patent/CN102077528A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/28Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/32Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/005Moving wireless networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及在多个本地对等群组(LPG)之间路由数据的按需方法。每一LPG包含多个活动节点。所述方法包括:从源节点发射路由请求消息;将所述路由请求消息中继到本机边界节点;将所述路由请求消息转发到外来边界节点;确定目的地节点是否在所述外来边界节点的LPG内;如果所述目的地节点不在所述LPG内,那么将所述路由请求消息中继到另一边界节点;如果所述目的地节点在所述LPG内,那么将所述路由请求消息中继到所述目的地节点;在所述目的地节点处接收所述路由请求消息;将路由响应发射到所述源节点;经由通过所述路由请求发现的路径将所述路由响应中继到所述源节点;在所述源节点处接收所述路由响应;及发射所述数据。

Description

本地对等群组(LPG)间路由方法
相关申请案交叉参考
本发明与06年10月23日提出申请、标题为“用于在特定无线网络中路由单播及多播消息的方法及通信装置(Method and Communication Device for Routing Unicast and Multicast Messages in an Ad-hoc Wireless Network)”的共同拥有、共同待决的第11/585,047号美国专利申请案(“′047申请案”)相关。
技术领域
此发明涉及移动环境中的通信网络。更具体来说,本发明涉及用于在多个本地对等群组之间路由消息的方法。
背景技术
′047申请案描述一种用于通过选择一个活动运载工具作为群组领头者将活动运载工具群组组织成本地对等群组(LPG)、使用所述群组领头者维持所述本地对等群组及产生本地路由信息的方法。所述活动运载工具适于使用单跳或多跳发射来路由数据。′047申请案描述特定LPG内路由是根据每一节点或活动运载工具内的本地路由表来确定。所述本地路由表是由所述节点从所述LPG内的其它节点接收的信息创建。持续更新路由路径。LPG的大小经预设定以确保LPG是管理大小。所述大小是基于跳跃计数限制来预设定。
网络可含有多个LPG,其中每一LPG包含数个活动运载工具。在一个LPG内发射消息,例如,LPG内通信。然而,需要在多个LPG之间发射其它消息,例如LPG间通信。包含但不限于紧急道路障碍警告、十字路口坐标、隐藏车道警告、变道或合道帮助的消息必须能够在LPG之间有效地发射。
为支持例如避免碰撞等各种应用,性能要求包含低延迟(大约100毫秒)及持续不变的通过量(或等效地,成功接收到警告消息的相邻运载工具的百分比)。
因此,需要一种用于在多个本地对等群组之间进行发射的方法。
发明内容
因此,揭示了在多个本地对等群组之间路由数据的按需方法。所述本地对等群组中的每一者包含多个活动节点。所述方法包括以下步骤:从源节点发射路由请求消息,所述路由请求消息至少包含目的地节点、所述源节点的LPG识别符及前一LPG识别符;将所述路由请求消息中继到所述目的地节点;及发布路由响应;及将所述响应路由到所述源及将所述路由请求消息中继到本机边界节点;在所述源节点处接收所述路由响应;及在接收到所述路由响应之后即刻发射所述数据。首先使用发射路由响应的节点中继所述数据,然而,实际路由是根据更新的本地路由表来确定。
所述路由请求消息是通过以下步骤中继到所述目的地节点,将所述路由请求消息转发到外来边界节点,确定所述目的地节点是否在所述外来边界节点的LPG内,如果所述目的地节点不在所述LPG内,那么将所述路由请求消息中继到另一边界节点及如果所述目的地节点在所述LPG内,那么将所述路由请求消息中继到所述目的地节点。
所述目的地节点在接收到所述路由请求之后即刻将所述路由响应发射到所述源节点。所述路由响应是通过经由所述路由请求发现的路径中继到所述源节点。
所述按需方法进一步包括确定接收所述路由请求消息的节点是所述目的地节点还是目的地节点的LPG内的边界节点的步骤。
所述按需方法进一步包括以下步骤:确定所述目的地节点是否处于与接收所述路由请求消息的节点相同的LPG中,确定接收所述路由请求消息的节点是否为进入边界节点,及用所述源节点的识别符来更新目的地列表。
所述按需方法进一步包括确定接收所述路由请求消息的节点是否为中继节点。
所述按需方法进一步包括以下步骤:确定接收所述路由请求消息的节点是否为出离边界节点及用所述出离边界节点的LPG的LPG识别符来替换所述路由请求消息中的前一LPG识别符。
所述按需方法进一步包括以下步骤:确定所述源节点是否处于与接收所述路由响应的节点相同的LPG中;确定接收所述路由响应的节点是否为进入边界节点;及用所述目的地节点的识别符来更新目的地列表。
所述按需方法进一步包括确定接收所述路由响应的节点是否为中继节点的步骤。
所述按需方法进一步包括确定接收所述路由响应的节点是否为出离边界节点及用所述出离边界节点的LPG的LPG识别符来替换所述路由响应中的下一LPG识别符的步骤。
所述按需方法进一步包括维持从源节点到目的地节点的路由直到所述目的地节点已接收到所述数据为止的步骤。
所述维持路由的步骤包含以下子步骤:检测节点是否已改变LPG,将节点已改变LPG的通知发射到LPG内的所有节点,确定检测到改变的节点是否为边界节点及将改变LPG的所述节点的识别符作为有义务外来目的地添加到路由表中。
所述路由请求消息包含目的地节点识别符及前一节点识别符。
还揭示了一种用于选择用于多个本地对等群组之间的通信的边界节点的方法。所述方法包括以下步骤:接收始发于预定节点的第一控制包,确定所述第一控制包是否来自同一本地对等群组中的群组领头者,如果所述第一控制包始发于外来本地对等群组,那么通过将包发射到所述群组领头者来宣布边界节点的候选资格,接收来自至少一个候选者的所述经发射包,在所述群组领头者处,基于所述所接收的包产生候选者列表,从所述候选者列表中选择一个候选者作为所述边界节点,及发射含有所述选定边界节点的识别符的数据包。所述预定节点为群组领头者。
所述候选者列表在预设定的时间周期内是有效的。所述时间周期是存活时间值。所述存活时间值是所述第一控制包的发射周期的倍数。所述方法进一步包括确定所述预设定的时间周期是否已期满及如果所述预设定的时间周期已期满那么移除候选者的步骤。所述方法进一步包括当所述群组领头者接收到含有相同候选者的识别符的数据包时,刷新存活时间值的步骤。
所述边界节点是基于针对每一候选者的从所述群组领头者的跳跃计数而选择。
所述方法进一步包括以下步骤:接收含有所述选定边界节点的识别符的所述数据包,比较所述选定边界节点的所述识别符与接收节点的识别符,及基于所述比较而将接收节点的状态改变为边界节点。
所述方法进一步包括在将状态改变为边界节点之后周期性地发射第二控制包的步骤。
所述方法包括以下步骤:选择第二边界节点,所述第二边界节点处在从所述群组领头者来看的与所述边界节点相反的相对方向上。
附图说明
通过参考以下图,本发明的这些及其它特征、益处及优点将变得显而易见,其中在所述视图中相同的参考编号指代相同的结构,其中:
图1根据本发明实施例图解说明适于LPG间通信的彼此邻近的多个本地对等群组;
图2图解说明实例性心跳消息;
图3图解说明实例性成员资格报告消息;
图4及5根据本发明实施例图解说明用于选择边界节点(BN)的方法的流程图;
图6根据本发明实施例图解说明用于BN选择的有限状态图;
图7根据本发明实施例图解说明创建路由表及更新所述路由表中的条目的方法的流程图;
图8图解说明处理从另一本地对等群组中的节点接收的数据包的方法的流程图;
图9到11根据本发明实施例图解说明按需路由发现的方法的流程图;
图12根据本发明实施例图解说明用于移动性检测方法的流程图;
图13根据本发明实施例图解说明将从本地对等群组检测到撤离节点通知节点的方法的流程图;及
图14根据本发明实施例图解说明散布义务外来目的地列表的方法的流程图。
具体实施方式
根据本发明,将节点或活动装置组织成易管理的群组。使用这些群组来协调节点之间的数据发射。基于相邻节点的相对位置或基于固定的位置来构建所述群组。此分组或本地对等群组(“LPG”)是在单个LPG内以及在LPG之间路由无线电信号的基础。无线电信号包含运载工具安全应用及信息应用。
图1图解说明两个LPG(概括标示为1):LPG A(la)及LPG B lb。LPG A la包含三个个别节点(将节点概括标示为“10”)。选择LPG 1内的一个节点为所述群组的领导者。所述领导者称为GH,对于LPG A la来说描绘为GHa(将GH概括标示为“25”)。GH 25管理LPG 1。另外,GH 25选择特殊节点为边界节点(BN,概括标示为“20”)。BN 20是负责在多个LPG 1之间中继数据的节点10。BN 20物理上位于具有多个LPG 1的重叠无线电覆盖区的区域中。BN 20负责按需路由搜索及维持。BN 20还负责维持用于LPG间通信的有效路由。BN 20将特定外来目的地列表作为其成员资格报告(MR)300的部分报告给其它节点10。所述特定外来目的地列表包含有义务外来目的地。有义务外来目的地包含其通信路径是有效的目的地且外来目的地的下一跳跃LPG是所述BN位于其中的LPG 1。另外,由于BN 20窃听来自多个LPG 1的心跳消息200及MR 300,因此BN 20还帮助通知撤离或活动节点。
LPG 1的大小经控制以避免既定LPG 1中有太多节点10。具体来说,GH 25广播具有特定格式的无线电信号;GH 25的范围内的其它节点10能够接收到所述无线电信号。无线电信号包含跳跃计数或期间信号为有效的存活时间(TTL)值,即,如果针对跳跃计数器大于所规定值中继所述信号,则节点将不加入LPG 1。将此无线电信号称为心跳消息200。在′047申请案中描述了LPG 1的形成、维持、GH的选择及控制,所述申请案以引用的方式并入本文中。
如上文所述,存在可听到来自两个不同LPG 1的无线电信号的区。在此区中,节点接收两个不同的心跳消息200,然而,节点10可仅加入一个LPG 1。此重叠区域称为LPG交叉区域(LIA)。节点10加入具有最高优先权的LPG 1。在一个实施例中,优先权是基于LPG识别符来确定。举例来说,在图1中,存在两个LPG 1及两个GH25。
LIA内的节点10可以是BN 20的候选者。然而,不保证节点10在LIA内。因此,使用边缘心跳。边缘心跳是具有比有效HC限制大1个跳跃的HC的心跳消息。节点10在接收到边缘心跳之后不能加入LPG 1。不同于心跳消息200,边缘心跳不被中继。
图2根据本发明图解说明心跳消息200的实例。GH 25周期性地发出识别LPG且提供关于所述LPG的信息的心跳消息200。此周期是固定间隔(T)。可基于设计或操作需要来选择间隔(T)的值。GH 25还维持所述LPG中的所有节点的列表。此列表包含节点何时进入LPG或GH 25何时从节点10接收状态更新的时间戳。所述列表用于对LPG的各种管理及控制功能。举例来说,所述列表可用于追踪群组大小、创建及更新多播路由表及领头者分辨。另外,向LPG 1中的所有其它节点周期性地广播此列表。向GH 25的(从无线电方面来看)附近内的所有节点广播LPG心跳消息200。
心跳消息200将包含LPG的识别符、GH识别、序列号及心跳消息的类型,例如具有完整的群组列表、递增的群组列表或无群组列表的心跳。在一个实施例中,心跳消息将在每一包中包含完整的群组列表。使用完整的群组列表是控制路由且维持正确的群组成员列表的最准确方式;然而,具有完整的群组的心跳消息需要大量的带宽。在另一实施例中,每第n个心跳消息200将包含完整的群组列表。举例来说,每一第三心跳包含完整的群组列表。ToHb将指示心跳消息200的类型。心跳消息的类型受LPG 1的拓扑改变速率及心跳的广播频率影响。随着LPG 1的拓扑改变速率增加,更加需要将完整的群组列表包含在所有心跳消息200中。
心跳消息200将包含从GH的跳跃计数(HC)。首先,将HC设定为预定值,例如,1。每当节点中继心跳消息200时,所述中继节点将HC值增加1,即,HC=HC+1。所述HC值可如上文所述用于限制LPG大小、指示心跳消息200内的信息的过时性及控制控制包的路由以减少额外负担。一旦HC递增到最大跳跃计数,将不中继所述控制包。
使用最大跳跃计数HC及序列号防止在LPG 1内无限地复制控制包。跳跃计数还可用于中继策略。当节点转发心跳消息时,其将在所述消息中包含其ID信息以使得下一跳跃节点知晓谁中继了心跳消息200。
如上文所阐述,心跳消息200还可包含群组列表。群组列表可包含关于LPG 1的成员的信息,例如LPG 1中成员的编号、每一编号的IP地址、从GH的跳跃计数、作为BN 20的状态、BN的存活时间、分类。
分类可以是提及从GH来看的相对方向(例如,上行链路、下行链路及对等)的代码。对等分类指示节点在从GH 25来看的相同无线覆盖区域内,即,所有对等节点具有从GH的相同跳跃计数。上游节点由心跳确定。下游节点是基于成员资格报告(MR)300来确定,在后文将阐释所述成员资格报告。上游发射表示朝向GH 25的通信且下游发射表示远离GH 25的通信。此分类是相对术语。每一节点可将其邻居分类为三个不同的类别。如果另一节点的成员资格报告具有比所述节点的HC小1的跳跃计数(HC),那么所述节点是上游节点。如果所述HC与其自己的HC相同,那么所述节点是对等的。如果所述HC比其自己的HC大1,则所述节点为下游节点。使用所述分类来从BN候选者群组中选择BN 20,从GH 25的每一侧选择一个。
图3图解说明成员资格报告(MR)300的实例。MR 300是由不同于GH 25的节点广播的控制包且接收者是GH 25。MR 300是响应于心跳消息200而产生的。MR 300包含可收集路由信息,例如成员资格列表、下游节点识别及下游节点的下一跳跃。MR300包含一些与心跳消息200相同的信息:GID及群组领头者Id。MR 300还将包含MR序列号。所述MR序列号类似于心跳消息200的序列号且用于维持MR的次序。所述MR序列号是针对一个特定节点的MR次序。通常,MR序列号具有与触发MR 300的心跳消息200的序列号相同的值。
始发节点(即,产生MR 300的节点)的节点ID也包含在MR 300中。
MR 300还包含下一跳跃中继ID。下一跳跃中继ID是用于朝向GH 25中继MR 300的中继指令。直接从所接收的心跳消息200确定下一跳跃信息。当节点10接收到新的或新鲜的心跳消息200时,其在任何包处理之前从IP层及MAC层恢复前一中继节点的识别。前一中继节点的识别存储在存储器中且用作MR 300的下一跳跃中继ID。当节点10转发心跳消息200时,节点10在所述包中包含其ID。当接收下一跳跃节点接收到新的或新鲜的心跳消息200时,所述节点将存储此ID,作为到达GH 25的下一跳跃中继ID。新的或新鲜的心跳消息200具有带有最低HC的较新序列号。
MR 300还包含“MR类型指示符”ToMR。存在两种类型MR 300:单个成员及集合的多个成员报告。单个成员MR仅包含来自始发节点的MR 300。集合的多个成员报告包含多于一个节点10的MR 300。所述集合的报告可用于减少控制包所需的额外负担及带宽。发送一个包含多个MR的MR 300。
另外,MR 300可包含从GH的跳跃计数(HCGH)。(HCGH)是从GH到MR 300的始发节点的HC值。MR 300将包含报告节点的可用信道列表。另外,MR 300将包含其用于中继多播消息的状态或可用性,即转发节点状态。MR还将包含对BN 20的任命,即节点10将宣布其自身为BN 20的候选者且通知GH 25。如果可以获得,MR包含相邻LPG列表及有效的LPG间节点列表。
图4及5根据本发明实施例图解说明用于选择BN的方法。图4图解说明不是GH25的所有节点的功能框。图5图解说明是GH 25的节点10的功能框。
当节点10听到外来心跳(心跳消息200或边缘心跳)时,节点10变为BN候选者。外来心跳为不是由来自同一LPG 1的节点10产生的消息或包。仅选定BN 20广播边缘心跳。如果BN 20在LPG的边缘处,那么节点10广播所述边缘心跳。如果所述节点处在心跳消息跳跃计数限制下,那么BN 20在LPG 1的边缘处。在从心跳消息跳跃计数的一个额外跳跃处广播边缘心跳,允许相邻LPG注意到另一LPG 1的存在。外来节点在接收到边缘心跳之后不加入LPG 1。边缘心跳不被转发。
在功能框400处,非GH节点为空闲。出于说明的目的,非GH节点将称为一般节点(GN)。在框405处,心跳消息200到达。心跳消息200包含LPG的识别符。GN基于包格式确定所述包是心跳消息200。在框410处,GN确定心跳消息200是否为外来HB,例如来自另一LPG 1的心跳消息200。GN比较心跳消息200中所含有的LPG识别符与GN所在的LPG的识别符。如果所述识别符不相同,那么GN在框415处宣布其自身为BN候选者。GN将其状态改变为“BN候选者”。GH使用MR 300将BN候选资格通知GH 25。在框420处,GN在下一MR循环期间向GH广播MR 300。所述MR包含用于节点状态的栏,例如,BN候选资格。然后,GN返回到框400处的空闲状态且等待下一心跳消息200来确定BN 20。
如果在框410处,GN确定LPG识别符是相同的,那么所述方法继续进行到功能框425。在框425处,GN抽取心跳消息中所包含的任何BN信息。所述BN信息包含选定BN的节点识别符及对应于选定BN的任何存活时间值。所述存活时间值表示其中选定BN充当边界节点的周期。所述存活时间以心跳循环表达。
在框430处,GN确定其是否为选定BN。GN比较心跳消息200中所含有的选定BN的识别符与其自己的节点识别符。如果所述识别符相同,那么GN在框435处宣布其自身为LPG的BN 20。GN将其状态从BN候选者改变为BN 20。GN在下一MR循环中通知LPG的所有成员其为BN 20。MR 300将包含新的状态。
然后,在框440处,GN(现在为BN 20)确定节点10是否需要转发心跳消息200。具体来说,BN 20确定节点10是否位于心跳消息200的跳跃计数限制下。此确定是基于心跳消息200中所含有的到GH的跳跃计数及心跳消息200的最大跳跃计数。每当转发心跳消息200时,将到GH的跳跃计数递增1。将到GH的跳跃计数与最大跳跃计数相比较。如果到GH的跳跃计数等于最大跳跃计数,那么不转发或不中继心跳消息200。而是BN 20在框450处广播边缘心跳。边缘心跳的格式与心跳消息200相同。唯一的差异在于每一边缘心跳内的HC比心跳消息200可携带的最大跳跃计数大1。BN 20然后将返回到框400处的空闲状态。
如果到GH的跳跃计数小于最大跳跃计数,那么在框445处转发或中继心跳消息200。
如果在框430处,选定BN 20的识别符不匹配GN的识别符,那么所述过程移动到框440且GN执行正常的心跳消息200中继功能。在框440处,GN确定节点10是否需要转发心跳消息200。将到GH的跳跃计数与最大跳跃计数相比较。如果到GH的跳跃计数等于最大跳跃计数,那么不转发或不中继心跳消息200。然后GN变为框400处的空闲。如果到GH的跳跃计数小于最大跳跃计数,那么在框445处转发或中继心跳消息200。将到GH的跳跃计数递增1。
现在将关于GH 25描述BN选择过程。在框400处,GH 25是空闲的。在框405处,心跳消息200到达。心跳消息200包含LPG的识别符。GH 25基于包格式确定所述包为心跳消息200。在框410处,GH 25确定心跳消息200是否为外来HB,例如,来自另一LPG 1的心跳消息200。GH 25比较心跳消息200中所含有的LPG识别符与GH 25控制的LPG的识别符。如果所述识别符不相同,那么GH 25在框500处宣布其自身为BN候选者。所述GH将宣布其自身为候选者而不管心跳是边缘心跳还是心跳消息200。GH 25将其状态改变为“BN候选者”。如果心跳消息200中所含有的LPG识别符与其自己的LPG识别符相同,那么在框505处,出于BN选择的目的忽略心跳消息200。
如果MR 300到达,那么过程在框510处开始。在框515处,GH 25从MR 300中抽取BN候选者信息。GH 25针对BN候选者检查MR 300中的状态栏。如果状态栏指示节点10为BN候选者,那么GH 25在框520处将节点(GN)的识别符记录在候选者列表中。GH 25维持所有潜在候选者的候选者列表。GH 25使用此列表来选择至少一个BN 20。
在框525处,GH 25调整且刷新现有BN 25及BN候选者的存活时间(TTL)值。如果GH 25从不具有BN候选资格的BN 20接收MR 300,那么GH 25通过在BN候选者中选择新的BN 20来立即替换BN 20。如果GH 25从具有BN候选资格的BN 20接收MR 300,那么GH 25重置TTL。如果GH 25没有以心跳间隔接收到MR 300,那么GH 25减小TTL值。当TTL值转为0时,GH 25重新选出BN 20。然后,GH 25变为框400处的空闲。
如上文所述,GH 25周期性地广播心跳消息200。所述周期称为心跳间隔。在GH25内的计时器追踪对心跳间隔的计时。当心跳间隔的时间期满时,计时器在框530处触发心跳消息200的产生。在广播心跳消息200之前,GH 25从BN候选者列表中选择BN 20。在一个实施例中,选择准则是从GH的跳跃的数目。GH 25选择为从GH的最大数目个跳跃计数的节点10(GN)。然后BN候选者列表将包含跳跃计数信息。
在另一实施例中,选择准则为其中节点10已成为LPG 1的成员的时间周期。在此实施例中,GH 25维持每一节点10的持续时间历史。依据心跳循环的数目测量所述持续时间历史。GH 25从BN候选者列表中选择最长相关节点10作为BN 20。
在另一实施例中,选择准则为BN候选者在既定时间内所接收的外来心跳的数目。在此实施例中,节点10(GN)追踪外来心跳的序列号,以及外来心跳的LPG识别符。朝向GH 25广播的MR 300将包含作为BN候选者的状态、窃听的外来心跳的数目、对应于外来心跳的识别符及每一外来心跳的序列号。GH 25在将其添加到BN候选者列表时从MR 300抽取此信息。GH 25选择窃听最大数目个具有相同序列号的外来心跳消息200的节点10作为BN 20。
在另一实施例中,选择准则为BN候选者相对于GH 25的相对移动性。在此实施例中,节点监视其平均速度。所述平均速度可基于来自外部速率或速度测量装置的输入来确定。将所述速度信息添加到MR 300并释放给GH 25。所述GH比较每一BN候选者的平均速度与其自己的平均速度。平均速度的差异越小,BN候选者的优先权越高。
在另一实施例中,从BN候选者列表中选择两个BN 20:在从GH25来看的每一相对方向上一个。BN候选者的相对方向是基于节点的分类(例如,上游或下游)来确定。
在选择一个或多个BN 20之后,将BN信息附加到心跳消息200。在框540处,GH 25广播心跳消息200。在广播心跳消息200之后,GH 25递减针对BN候选者列表中的所有BN候选者的TTL值。将TTL值降低1。每当BN 20向GH 25报告时,即,发送具有其作为BN 20的状态的MR 300时,将TTL刷新到其原始状态,例如,T个心跳循环。
然后GH 25在框550处确定BN候选者是否过时。如果TTL值等于零,那么BN候选者为过时。如果针对BN候选者的TTL值为零,那么在框555处从BN候选者列表中移除BN候选者。针对每一BN候选者重复所述确定。一旦BN候选者列表已更新,GH 25便在430处确定选定BN 20是否与GH 25相同,例如其自身。GH 25比较心跳消息200中所含有的选定BN的识别符与其自己的节点识别符。如果所述识别符相同,那么GH 25在框435处宣布其自身为LPG的BN 20。如果所述识别符不相同,那么GH 25变为框400处的空闲。
图6图解说明用于BN 20选择的有限状态机。节点10可以处于三个不同状态中:BN候选者状态600、非BN状态605及BN状态610。如果处于非BN状态605的节点10接收到外来心跳或边缘心跳,那么所述节点10将改变为BN候选者状态600。当GH 25选择处于BN候选者状态600中的节点作为BN 20时,所述节点改变为BN状态610。只要节点10接收到外来心跳或边缘心跳,所述节点10就保持处于BN候选者状态600中。当节点10不再接收到外来心跳消息或边缘心跳时,所述节点10从BN候选者状态600回返到非BN状态605。只要节点10接收到外来心跳或边缘心跳,所述节点10就保持处于BN状态610中。
当节点10不再接收到外来心跳或边缘心跳或TTL值为过时(即TTL=0)时,所述节点10从BN状态610回返到非BN状态605。
BN 20促进LPG间路由。路由路径是基于每一节点内的路由表来确定。所述路由表包含关于用于中继数据的下一跳跃、下一LPG及LPG 1的BN 20的信息。所述路由表是从心跳消息200及MR 300中所含有的信息产生。另外,用从外来心跳及边缘心跳窃听的信息更新路由表。
图7图解说明用于处理心跳消息200及MR 300以创建及更新路由表的方法。首先,每一节点10是空闲的(步骤700)。当包到达(步骤702)时,节点10在步骤704处确定所述包是心跳消息200还是MR 300。依据控制包的类型,节点10执行特殊的包处理。如果所述控制包是心跳消息200,那么节点10以步骤706开始处理所述包。节点10确定所述包是否是本机的(步骤706)。如果包是针对相同LPG 1(即,所述包具有相同GID(群组识别符)),那么所述包是本机的。节点10将比较GID与存储在存储器中的群组识别。如果GID不匹配存储在存储器中的识别,那么节点10将起始外来HB处置且转到步骤800。在图8中将详细描述外来HB处置。如果GID匹配存储在存储器中的识别,那么节点10将在步骤708中确定心跳消息200是否按序列。节点10比较序列号与存储器中的序列号。如果所述序列号小于存储在存储器中的值,那么节点10忽略所述包。如果所述序列号大于存储在存储器中的值,那么心跳消息200为按序列且节点10在步骤710处通过比较当前序列号与最后存储的序列号来确定心跳消息200是否为新的。如果节点10确定所述包不是新的,那么仅更新发送者的路由条目(步骤712)。不中继心跳消息200。如果所述节点确定所述消息或数据包是新的,那么依据所述节点是GH 25还是GN,节点10将执行两个功能中的一者。在步骤714处执行节点类型的确定。如果节点10为GH 25,那么节点10在步骤716处更新发送者的路由条目。不中继心跳消息200且所述节点将变为空闲700。然而,如果节点10是GN,那么节点10在步骤718处针对所有LPG内及LPG间路由条目更新路由表且中继心跳消息200。LPG间路由信息是在节点10窃听到来自外来LPG的消息或直接从BN 20接收信息时获得。另外,LPG间路由信息包含在来自GH 25的心跳消息200中。节点10将任何新的目的地、到目的地的下一跳跃及新的目的地所在的LPG的识别符及LPG 1的BN 20添加到所述路由表。另外,如果目的地是有义务目的地,那么路由表包含旗标。具有有义务外来目的地的BN 20或GN使用旗标且将有义务目的地作为外来目的地包含在其自己的MR 300中。包含GH 25的上游节点通过从具有有义务外来目的地的BN 20或GN窃听到MR 300了解外来目的地。后文将描述有义务外来目的地。GH在下一心跳消息200中包含外来目的地以告知其余具有LPG 1的节点10。对于路由表中已列出的目的地,节点10更新任何不同于所述表中的信息的信息。举例来说,节点10可更新下一跳跃、LPG及BN 20。
如果控制包是MR 300,那么节点10以步骤720开始处理所述包。节点10确定所述包是否是本机的(步骤720)。所述节点将比较GID与存储在存储器中的群组识别。如果GID不匹配存储在存储器中的识别,那么节点10将启动外来MR处置且转到步骤800。如果所述GID匹配存储在存储器中的识别,那么节点10在步骤722处确定发送所述MR 300的节点10是否是LPG 1的成员(同一LPG)。节点10比较节点ID与存储在存储器中的成员资格列表。如果不存在匹配,那么节点10在步骤724处仅中继MR 300。中继MR 300,使得新的群组节点(GN)可在不必等待完整的心跳循环的情况下加入LPG 1。
如果发送MR 300的节点未于所述加入列表中列出,那么可将节点10视为加入节点。路由表中没有针对加入节点的路由条目。在一个实施例中,节点10可朝向GH 25转发MR 300。节点10将不更新路由表中的任何条目。在另一实施例中,节点10可将(MR 300的)始发节点添加到目的地列表,即存留始发节点的路由条目。节点10可将中继节点信息保存为下一跳跃且当在始发节点作为成员的情形下接收新的心跳消息200时,节点10可用已经存储在存储器中的信息自动更新所述路由表。当完成新的路由条目时,可将始发节点分类为下游节点。
如果存在匹配,那么节点10在步骤726处确定MR 300是否为按序列。节点10比较MR序列号与存储器中的序列号。如果MR序列号小于存储在存储器中的值,那么节点10忽略所述包且变为空闲700。如果MR序列号大于或等于存储在存储器中的值,那么MR 300为按序列且节点10在步骤728处通过检查所述节点是否已经从始发者接收到具有当前序列号的MR 300(通过与最后存储的序列号相比较)来确定MR 300是否为新的。如果节点10确定所述消息不是新的,那么仅更新发送者的路由条目(步骤730)。不中继MR 300。如果节点10确定所述消息是新的,那么依据所述节点是GH 25还是GN,节点10执行两个功能中的一者。执行节点类型的确定(步骤732)。如果节点10是GH 25,那么节点10在步骤734处更新紧接着的发送者及始发者的路由条目。如果MR 300也携带至少一个外来目的地,那么节点10在步骤734处将所述条目添加到外来目的地列表中。所收集的外来目的地列表包含在下一心跳消息200中以维持与LPG 1的LPG间路由。更新包含修改LPG内及LPG间路由两者。如果MR300来自具有至少一个有义务外来目的地的节点10,那么接收节点10将使用所述有义务外来目的地信息更新LPG间路由。从所述有义务外来目的地信息,接收节点10了解到可从始发MR 300的节点10到达的所有外来目的地(节点)。朝向这些外来目的地的下一跳跃是始发MR 300的节点10。上文描述了所述更新且将不再次对其进行详细描述。GH 25还通过将任何新的目的地节点添加到成员资格列表中来更新所述成员资格列表。所述新的成员资格列表包含在下一心跳消息200中。不中继MR 300且节点10将变为空闲700。
然而,如果节点10是GN,那么节点10在步骤736处更新发送者及始发者的路由表且中继MR 300。举例来说,对于始发者,在下一跳跃始发者是直接发送者。如果MR 300还包含外来目的地列表(外来条目),那么朝向外来目的地的下一跳跃是发送者。始发者为下游节点。所述更新包含修改LPG内及LPG间路由两者。上文描述了所述更新且将不再次对其进行详细描述。
图8描绘用于处理外来数据包或消息的方法。外来数据包或消息是始发于不同LPG中的节点10的消息。外来数据包的确定是基于所述数据包中的LPG识别符。在步骤800处,从外来LPG接收数据包。在步骤805处,节点10确定所述外来数据包是心跳消息200还是MR 300。依据控制包的类型,节点10执行特殊的包处理。在步骤810处,节点10确定所述数据包是否始发于新的LPG。此步骤是针对心跳消息200及MR 300两者执行。节点10比较所述外来数据包中的LPG识别符与路由表中的LPG识别符。如果外来数据包不是来自新的LPG 1,那么节点10在步骤815处确定所述外来数据包是否按序列到达。
如果所述外来数据包是来自新的LPG且如果所述数据包是心跳消息200,那么所述过程移动到步骤820。在步骤820处,登记LPG 1。将LPG识别符存储在存储器中且添加到路由表。还记录时间戳。在实施例中,使用所述时间戳来清除路由表中的过时信息。在预定时间周期期满之后,从所述路由表中删除所述信息。
另外,节点10针对新的LPG创建新的数据结构,包含与新的LPG相关的信息,例如LPG识别符、GH识别符、成员列表及到GH的下一跳跃。与路由表分开存储此信息。在步骤830处,节点10更新路由表中的LPG间路由条目。从包含在心跳消息200中的成员资格列表中抽取路由条目。节点10将来自成员资格列表的每一成员作为目的地添加。针对每一目的地,路由表包含下一跳跃、BN 20及所述节点所在的LPG 1。另外,路由表针对有义务外来目的地包含旗标。有义务外来目的地是其通信方驻存于LPG中或驻存于LPG 1外的有效通信的节点10。节点10也变为BN候选者,因为节点10窃听到外来心跳消息。在实施例中,使用外来心跳计数器来清除路由表中的过时信息。在预定时间周期期满之后,从所述路由表中删除所述信息。在步骤830处,每当接收到新的外来心跳时,重置外来心跳计数器。
如果心跳消息200不是新的,那么节点10在步骤815处确定数据包是否按序列到达。节点10比较序列号与存储器中的序列号。如果所述序列号小于存储在存储器中的值,那么节点10忽略所述包且丢弃外来数据包。如果所述序列号大于存储在存储器中的值,那么心跳消息200为按序列且节点10在步骤825处通过比较当前序列号与最后存储的序列号来确定心跳消息200是否是新的。如果节点10确定所述包不是新的,那么节点10在步骤835处确定是否寻找到更好的路由。新鲜的HB经由最短路径到来并不总是对的。如果稍后的HB包(即使其不是新鲜的)经由更短的路径到来,那么应更新到GH的路由。路由表是基于外来心跳消息200中的新的信息来更新。如果在步骤825处确定外来数据包是新的,那么所述过程移动到步骤830。上文描述了步骤830且将不再次对其进行详细描述。
如果外来数据包是MR 300,那么节点10在步骤810处确定LPG 1是否为新的。如果LPG 1是新的,那么所述过程继续进行到步骤840。在步骤840处,节点10更新路由表中发送者、始发者及到外来GH的下一跳跃中继的LPG间路由条目。所述节点针对三种节点类型(例如,发送者、始发者及下一跳跃中继节点)更新下一跳跃信息及目的地信息。另外,节点10还检查以寻找更好的路由。更好的路由通常意指更短的跳跃路由。即使BN 20知晓所述三个外来目的地(例如,发送者、始发者及到GH的下一跳跃中继),GN也具有到发送者的直接路径及到始发者及下一跳跃中继的更短路径。如果MR 300不是新的,那么节点10在步骤815处确定数据包是否按序列到达。节点10比较序列号与存储器中的序列号。如果所述序列号小于存储在存储器中的值,那么节点10忽略所述包且丢弃外来数据包。如果所述序列号大于存储在存储器中的值,那么MR 300为按序列且所述过程移动到步骤840。上文描述了步骤840且将不再次对其进行详细描述。
在步骤830、835及840中的每一者之后,所述过程移动到步骤845。在步骤845处,检测撤离节点。后文将详细地描述所述检测过程。
图9到11图解说明按需路由确定的方法。使用路由请求(R_Req)及路由响应(R_Resp)数据包来确定并维持按需路由。发现并维持有效通信的路由。当源需要起始到外来目的地(即,不同LPG 1中的目的地)的通信时,节点10将单播R_Req消息发送到本机BN 20。本机BN是相同LPG 1中的BN 20。中继节点中继R_Req。中继节点是具有其MR 300由中继节点自身中继的至少一个下游节点的节点10。所述特定路由由路由表中的下一跳跃信息确定。R_Resp是由目的地节点或目的地节点本机的BN 20起始的消息。中继R_Req直到寻找到目的地节点或达到最大跳跃计数为止。最大跳跃计数防止R_Req在错误方向上被无限地中继。每当中继R_Req时,跳跃计数递增1。仅将R_Req中继到中继节点且不使其泛滥。
如果BN 20不能发布R_Resp,那么BN 20朝向相邻BN中继R_Req。BN 20将R_Req转发到其它BN 20直到达到最大跳跃计数或直到BN 20可发布R.Resp。当BN20发布R_Resp时,R_Resp指示目的地在其相邻LPG中。
R_Req包含R_Req的类型、最大跳跃计数、前一LPG识别符、目的地、目的地序列号、源识别符及源序列号。R_Req的类型可以为正常、已得到响应等。使用R_Req的类型来识别所述R_Req是否在其到达目的地之前已得到响应,如果所述R_Req在所述R_Req到达目的地节点之前已经得到响应,那么目的地节点不必发布R_Resp。如上文所述,使用最大跳跃计数来限制路由搜索。如果R_Req来自另一LPG,那么前一LPG识别符是其中最近中继R_Req的紧邻LPG 1的识别符。前一LPG识别符等于源节点所属的LPG 1中的当前LPG识别符。目的地ID是目的地节点的识别符。源ID是源节点的识别符。源序列号用于唯一识别每一R_Req数据包及定序R_Req。在另一实施例中,R_Req另外包含目标BN识别符、朝向目标BN的下一跳跃识别符及前一跳跃。目标BN识别符允许节点10在相同LPG 1中的BN 20之间区分。如果在LPG 1中存在多于一个BN 20,那么节点10将知晓向哪个方向中继R_Req。朝向目标BN的下一跳跃识别符由中继节点用来朝向目标BN中继R_Req。仅下一跳跃转发R_Req。反向路径的节点10使用前一跳跃。基于中间节点的路由表将R_Resp中继回到源。当转发R_Req时,将源插入路由表中,且通过具有源节点作为其有义务外来目的地的节点将路由条目维持在每一LPG内。包含前一跳跃的优点在于如果R_Resp行进穿过多个LPG;中间LPG 1可能不在路由表中具有源节点。中间LPG是在源LPG与目的地LPG之间的LPG。所有包含源LPG、中间LPG及目的地LPG的节点具有源及目的地的路由信息。从R_Req中抽取前一跳跃并将其存储在存储器中供以后使用。
所述R_Resp包含跳跃计数、下一LPG识别符、目的地识别符、目的地序列号、源识别符、源序列号及下一跳跃中继。跳跃计数是目的地节点远离源节点的跳跃数目。下一LPG识别符是R_Resp将被中继到的下一LPG的识别符。
如图9中所描绘,节点10在步骤400处为空闲。在步骤900处,R_Req或R_Resp到达。在步骤905处,节点10确定所接收的数据包是R_Req还是R_Resp。此确定是基于到达数据包的格式及其中所含有的信息。
如果到达数据包为R_Req,那么所述过程移动到步骤910。在步骤910处,节点10确定R_Req是否为新的请求。所述确定是基于所述数据包的序列号,即源序列号。每当接收到R_Req包时,从所述包中抽取源序列号并将其存储在存储器中。当新的R_Req包到达时,将最后存储的源序列号与到达R_Req包的源序列号相比较。如果所述源序列号小于存储在存储器中的值,那么节点10忽略所述包并丢弃所述包。如果所述源序列号大于存储在存储器中的值,那么R_Req为新的且节点10在步骤915处确定是否已发布对R_Req的R_Req响应。所述确定是基于R_Req中所包含的R_Req指示符的类型。如果R_Req的类型指示已经发布对R_Req的响应,那么节点10在步骤930处将所述R_Req中继到目的地。当R_Req没有得到响应时,节点10在步骤920处确定其是在目的地的LPG中的BN 20还是目的地。
如果节点10是目的地的LPG中的BN 20或者目的地,那么节点10在步骤925处发布R_Resp并改变R_Req的类型为“已得到响应”。然后,所述节点在步骤930处执行R_Req中继功能。下面描述R_Req中继功能。在执行R_Req中继功能之后,节点10在步骤935处更新R_Req的源的路由,即源的下一跳跃在R_Req包来自之处。如果R_Req的类型指示未发布对R_Req的响应,那么节点10在步骤920处确定其是否可发布响应。仅目的地节点或BN 20可发布R_Req。节点10从R_Req中抽取目的地识别符并将所述识别符与其自己相比较。如果所述识别符匹配,那么节点10是目的地节点。如果所述识别符不匹配,那么节点10不是目的地节点。另外,使用所述目的地识别符,节点10在路由表中查找目的地节点的BN 20。节点10比较BN 20的识别符与其自己。如果所述识别符匹配,那么节点10是目的地节点的BN 20。如果所述识别符不匹配,那么节点10不是目的地节点的BN 20,即不是其中目的地节点驻存的LPG 1中的BN。
如果节点10为目的地节点或目的地节点的LPG 1中的BN 20,那么在步骤925处BN 20或节点10发布R_Resp。另外,节点10将R_Req的类型改变为已得到响应且在步骤930处将R_Req中继到目的地。
如果节点10不是目的地节点或目的地节点的BN 20(在步骤920处),那么节点10在步骤930处朝向BN 20或目的地节点中继R_Req。源节点变为BN 20的有义务外来目的地且BN 20为源节点的进入BN。在图10中描述所述R_Req中继功能且后文将进行详细描述。
在步骤935处,节点10用来自R_Req的信息更新路由表中针对源节点的路由信息。举例来说,节点10可添加源节点识别符、源节点的LPG信息及源节点的跳跃计数。
如果到达数据包为R_Resp,那么所述过程移动到步骤940。在步骤940处,节点10确定R_Resp是否为新的响应。所述确定是基于所述数据包的序列号,即目的地序列号。每当接收到数据包时,从所述包中抽取目的地序列号并将其存储在存储器中。当新的数据包到达时,将最后存储的目的地序列号与到达数据包的目的地序列号相比较。如果目的地序列号小于存储在存储器中的值,那么节点10忽略所述包并丢弃所述包。如果所述目的地序列号大于存储在存储器中的值,那么R_Resp为新的,且在步骤945处朝向源节点中继R_Resp。
在图11中描述R_Resp中继功能且后文将对其进行详细描述。
在步骤950处,节点10用来自R_Resp的信息更新路由表中针对目的地节点的路由信息。举例来说,节点10可添加目的地节点识别符、目的地节点的LPG信息及目的地节点的跳跃计数。
图10描述R_Req的中继过程。所述过程在步骤1000处开始。在步骤1005处,节点10确定目的地节点是否在相同LPG 1内,即本地目的地。节点10查看路由表且检查目的地节点是否为LPG内目的地。如果目的地节点作为LPG内路由条目列出,那么所述目的地在同一LPG中。如果目的地是本地的,即LPG内,那么节点10确定R-Req是否已到达目的地节点,即目的地节点的识别符与当前节点的识别符相同。所述目的地节点在接收到目的地为其自身的R_Req之后将即刻终止R_Req转发。
针对本地及非本地目的地两者执行步骤1010、1015、1030及1035。在步骤1010处,节点10确定节点10是否为源的进入BN。进入BN为LPG 1中的节点10中第一次接收来自另一LPG 1中的节点10的R_Req或R_Req的源已在其有义务外来目的地列表中的BN 20。有义务外来目的地是针对在其LPG外部的节点的特殊的路由条目。当节点具有有义务外来目的地时,有义务外来目的地的节点ID作为其MR(成员报告)的一部分经包含以告知这些节点可经由所述节点到达。中继节点是在“k”个先前控制消息循环中将至少一个下游节点的MR 300中继到上游节点的节点。
如果节点10是源的进入BN,那么节点10在步骤1015处插入用源节点的条目更新路由表。所述源节点变为有义务外来目的地。所述节点设定义务旗标。所述节点(进入BN)负责将路由信息告知或通告其自己的LPG 1。
在节点10更新路由表之后,节点10(进入BN)在步骤1035处广播R_Req。在广播之前,节点10在步骤1032处将跳跃计数递增1。另外,节点10在步骤1034处确定是否达到R_Req的最大跳跃计数。所述最大跳跃计数包含在R_Req中。节点10比较最大跳跃计数与当前跳跃计数,例如所接收的R_Req+1的跳跃计数。如果已达到最大跳跃计数,那么不转发R_Req且节点10在步骤1040处停止。
如果目的地节点是本地的且节点10不是进入BN,那么节点10在步骤1030处确定节点10为中继节点。下一跳跃中继是基于路由表中的信息。如果节点10为中继节点,那么在步骤1035处广播R_Req。然后所述过程在步骤1040处结束。在广播之前,中继节点在步骤1032处将跳跃计数递增1。另外,中继节点在步骤1034处确定是否已达到R_Req的最大跳跃计数。所述最大跳跃计数包含在R_Req中。所述中继节点比较所述最大跳跃计数与当前跳跃计数,例如所接收的R_Req+1的跳跃计数。如果已达到所述最大跳跃计数,那么不转发R_Req且所述中继节点在步骤1040处停止。
如果目的地节点为非本地目的地且节点10不是进入BN,那么节点10确定节点10是否为出离BN。出离BN是接收来自其自己的LPG中的节点10的R_Req或R_Req的源已经在其外来目的地(虽然其不是有义务目的地)中的BN。出离BN功能是将R_Req广播到相邻LPG以使得所述LPG可接收R_Req。如果节点10为出离BN,那么节点10在步骤1025处用其自己的LPG识别符替换前一LPG识别符并在步骤1035处广播R_Req。当跳跃计数达到最大跳跃计数时,不再转播R_Req。
如果目的地节点为非本地且节点10不是进入BN或出离BN,那么节点10在步骤1030处确定节点10是否为中继节点。
下一跳跃中继是基于路由表中的信息。中继节点是具有其MR 300由所述中继节点中继的至少一个下游节点的节点10。如果节点10不是中继节点,那么不中继或转发R_Req。如果节点10为中继节点,那么在步骤1035处广播R_Req。然后所述过程在步骤1040处结束。
图11描述R_Resp的中继过程。所述过程在步骤1100处开始。在步骤1105处,节点10确定源节点是否在同一LPG 1内,即本地源。节点10查看路由表且读取源节点的LPG 1的LPG识别符。将源节点的LPG识别符与节点10的LPG识别符相比较。如果所述识别符匹配,那么源节点在同一LPG 1中。对于本地及非本地目的地两者,中继过程是类似的,除了对于非本地目的地来说存在两个额外步骤之外。
针对本地及非本地源两者执行步骤1110、1115、1130及1135。在步骤1110处,节点10在其接收到来自另一LPG中的节点的R_Resp时确定节点10是否为目的地的进入BN。进入BN为接收来自另一LPG 1中的节点10的R_Resp的BN。
如果节点10为进入BN,那么节点10在步骤1115处插入用针对目的地节点的条目更新路由表。目的地节点变为有义务外来目的地。所述节点设定义务旗标。所述节点(进入BN)负责将路由信息告知或通告其自己的LPG 1。
在节点10更新路由表之后,节点10(进入BN)在步骤1135处广播R_Resp。在实施例中,经由与R_Req相同的路径中继R_Resp。
如果源节点是本地的且节点10不是进入BN,那么节点10在步骤1130处确定节点10是否为中继节点。所述确定是基于路由表中的信息。中继节点是具有其MR 300由所述中继节点中继的至少一个下游节点的节点。如果节点10不是中继节点,那么不中继或转发R_Resp。如果节点10为中继节点,那么在步骤1135处广播所述R_Resp。然后,所述过程在步骤1140处结束。
如果源节点为非本地源且节点10不是进入BN,那么节点10在步骤1120处确定节点10是否为出离BN。出离BN功能是将R_Resp广播到相邻LPG以使得所述LPG可接收R_Resp。如果节点10为出离BN,那么节点10在步骤1125处用其自己的LPG识别符替换下一LPG识别符且在步骤1135处广播所述R_Resp。
如果源节点是非本地的且节点10不是进入BN或出离BN,那么节点10在步骤1130处确定节点10是否为中继节点。所述确定是基于路由表中的信息。中继节点是具有其MR 300由所述中继节点中继的至少一个下游节点的节点。如果节点10不是中继节点,那么不中继或转发R_Resp。如果节点10是中继节点,那么在步骤1135处广播所述R_Resp。然后,所述过程在步骤1140处结束。
一旦源节点接收到所述R_Resp,所述源节点便开始其到目的地节点的消息、数据或通信的发射。
如上文所述,BN 20负责维持有效通信路径且将活动或撤离节点通知给其它节点10。图12图解说明检测撤离节点的过程。所述过程以BN 20在步骤400处为空闲开始。在步骤1200处检测撤离节点。以两种方式中的一者检测撤离节点。撤离节点可通过窃听外来心跳消息200来检测。具体来说,撤离节点将使其识别符包含在心跳消息200中所含有的成员资格列表中。当在其自己的LPG 1中的节点于外来成员资格列表中列出时,BN 20确定一个节点离开了所述LPG。另一选择为,当撤离节点广播具有外来LPG 1的识别符的MR 300时可检测到撤离节点。BN 20窃听来自先前在同一LPG中的节点的MR 300。BN 20比较其LPG识别符与MR 300中的识别符。如果所述识别符不同,那么节点10已撤离。节点10可仅为一个LPG 1的成员。
在步骤1205处,BN 20针对撤离节点更新其路由表。具体来说,BN 20改变撤离节点的LPG。一旦已更新所述路由表,那么BN返回到步骤400处的空闲状态。然后所述BN通告与撤离节点相关的信息。
在另一实施例中,任何节点(不仅是BN 20)可通过窃听外来心跳或外来MR 300来检测撤离节点。
20.从路由表检索BN信息。如果节点10是BN 20,那么BN 20在下一MR 300中包含撤离节点通知。所述通知是节点已离开LPG 1的肯定陈述。所述通知包含撤离节点的识别符及新的LPG的识别符。然后BN 20在步骤1325处确定是否正针对撤离节点进行有效通信。如果撤离节点是通信的目的地或源,那么为正进行通信。如果没有正进行有效通信,那么BN 20返回到空闲状态(步骤400)。然而,如果正进行有效通信,那么BN 20必须维持路由。所述路由是通过在步骤1330处将撤离节点添加到有义务外来目的地的列表中来更新路由表而维持。此列表在下一MR 300中广播且稍后包含在心跳消息200中。然后BN 20返回到空闲状态(步骤400)。
如果在步骤1305处,节点10不是BN 20,那么节点10确定BN 20是否已经发送撤离节点通知。节点10在步骤1310处针对撤离节点通知检查来自BN 20的最近接收的MR 300。如果MR 300含有撤离节点通知,那么节点10返回到空闲状态。节点10用撤离节点通知中所含有的信息更新路由表。
如果来自BN 20的MR 300不包含撤离节点通知,那么节点10确定另一节点是否已经发送撤离节点通知。节点10在步骤1315处针对撤离节点通知检查来自任何节点的最近接收的MR 300。如果MR 300含有撤离节点通知,那么节点10返回到空闲状态。
如果没有从任何节点10接收到撤离节点通知,那么所述过程移动到步骤1320,其中节点10将撤离节点通知插入到其MR 300中。然后节点10执行步骤1325及1330(好像其为BN 20一样)。
图14图解说明将有义务外来目的地通告或告知其它节点的过程。有义务外来目的地列表的通告是使用心跳消息200及MR 300来达成。将所述有义务外来目的地列表添加到心跳消息200及MR 300。
如图14中所描绘,节点10在步骤400处开始处于空闲状态。周期性地广播心跳消息200及MR 300。所述周期为心跳循环或MR循环。通过计时器或计时工具来计数在连续心跳消息200或MR 300之间的时间周期。通过循环周期的期满来触发心跳消息200及MR 300。在步骤1400处,通过计时器中的一者的期满来触发心跳消息200或MR 300。在步骤1405处,节点10确定其为常规节点(GN)还是GH 25。如果节点10为GH 25,那么在步骤1410处将有义务外来目的地列表作为LPG 1的外来目的地添加或编码在心跳消息200中。在步骤1415处广播心跳消息200。之后GH 25返回到空闲状态(步骤400)。
如果节点10为GN,那么在步骤1420处将有义务外来目的地列表添加或编码在MR 300中。在步骤1425处广播MR 200。之后所述GN返回到空闲状态(步骤400)。
在步骤1430处,GH 25接收MR 300。所述GH在步骤1435处从MR 300中抽取有义务外来目的地列表并存储所述列表供以后转播。所存储的有义务目的地列表将包含在下一心跳消息中。然后,GH 25返回到空闲状态(步骤400)。
本文已参考特定实例性实施例描述了本发明。在不背离本发明的范围的前提下,所属领域的技术人员可显而易见某些替代方案及修改方案。所述实例性实施例意在说明性,而非限制本发明的范围,本发明的范围由以上权利要求书界定。

Claims (20)

1.一种在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,所述方法包括:
从源节点发射路由请求消息,所述路由请求消息至少包含目的地节点的识别符、源节点的识别符及前一LPG识别符;
将所述路由请求消息中继到本机边界节点;
将所述路由请求消息转发到外来边界节点;
确定对应于目的地节点的所述识别符的目的地节点是否在所述外来边界节点的LPG内;
如果所述目的地节点不在所述LPG内,那么将所述路由请求消息中继到另一边界节点;
如果所述目的地节点在所述LPG内,那么将所述路由请求消息中继到所述目的地节点;
在所述目的地节点处接收所述路由请求消息;
由所述目的地节点将路由响应发射到所述源节点;
经由通过所述路由请求消息发现的第一路径将所述路由响应中继到所述源节点;
在所述源节点处接收所述路由响应;及
在接收到所述路由响应之后即刻发射所述数据,所述数据是使用通过所述路由响应发现的第二路径而中继。
2.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定接收所述路由请求消息的节点是所述目的地节点还是目的地节点的所述LPG内的边界节点。
3.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定所述目的地节点是否处于与接收所述路由请求消息的节点相同的LPG中;
确定接收所述路由请求消息的节点是否为进入边界节点;及
用所述源节点的识别符来更新目的地列表。
4.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定接收所述路由请求消息的节点是否为中继节点。
5.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定接收所述路由请求消息的节点是否为出离边界节点;及
用所述出离边界节点的LPG的LPG识别符来替换所述路由请求消息中的所述前一LPG识别符。
6.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定所述源节点是否处于与接收所述路由响应的节点相同的LPG中;
确定接收所述路由响应的节点是否为进入边界节点;及
用所述目的地节点的识别符来更新目的地列表。
7.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定接收所述路由响应的节点是否为中继节点。
8.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
确定接收所述路由响应的节点是否为出离边界节点;及
用所述出离边界节点的LPG的LPG识别符来替换所述路由响应中的下一LPG识别符。
9.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括维持从源节点到目的地节点的路由直到所述目的地节点已接收到所述数据为止的步骤。
10.根据权利要求9所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其中所述维持路由的步骤包含以下子步骤:
检测节点是否已改变LPG;
将节点已改变LPG的通知发射到LPG内的所有节点;
确定检测到改变的节点是否为边界节点;及
如果改变LPG的所述节点被确定为边界节点,那么将所述节点的识别符作为有义务外来目的地添加到路由表中。
11.根据权利要求1所述的在其中多个本地对等群组中的每一者包含多个活动节点的所述本地对等群组之间路由数据的按需方法,其进一步包括以下步骤:
维持所述第一路径直到所述源节点接收到所述路由响应为止;及
维持所述第二路径直到所述目的地节点接收到所述数据为止。
12.一种用于选择用于多个本地对等群组之间的通信的边界节点的方法,所述方法包括:
接收始发于预定节点的第一控制包,所述预定节点为群组领头者;
确定所述第一控制包是否来自同一本地对等群组中的群组领头者;
如果所述第一控制包始发于外来本地对等群组,那么通过将包发射到所述群组领头者来宣布边界节点的候选资格;
在所述群组领头者处接收来自至少一个候选者的所述经发射包;
基于所述所接收的经发射包产生候选者列表;
从所述候选者列表中选择一个候选者作为所述边界节点;及
发射含有所述选定边界节点的识别符的数据包。
13.根据权利要求12所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其中所述候选者列表在预设定的时间周期内有效,所述时间为存活时间值。
14.根据权利要求12所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其中所述存活时间值为所述第一控制包的发射周期的倍数。
15.根据权利要求13所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其进一步包括以下步骤:
确定所述预设定的时间周期是否已期满;及
如果所述预设定的时间周期已期满,那么移除候选者。
16.根据权利要求13所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其进一步包括以下步骤:
当所述群组领头者接收到含有同一候选者的识别符的数据包时,刷新存活时间值。
17.根据权利要求12所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其进一步包括以下步骤:
接收含有所述选定边界节点的识别符的所述数据包;
比较所述选定边界节点的所述识别符与接收节点的识别符;及
基于所述比较而将接收节点的状态改变为边界节点。
18.根据权利要求17所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其进一步包括以下步骤:
在将状态改变为边界节点之后周期性地发射第二控制包。
19.根据权利要求12所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其中基于针对每一候选者的从所述群组领头者的跳跃计数选择所述边界节点。
20.根据权利要求12所述的用于选择用于多个本地对等群组之间的通信的边界节点的方法,其进一步包括以下步骤:
选择第二边界节点,所述第二边界节点处在从所述群组领头者来看的与所述边界节点相反的相对方向上。
CN2009801250872A 2008-05-15 2009-05-11 本地对等群组(lpg)间路由方法 Pending CN102077528A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/120,690 2008-05-15
US12/120,690 US8160078B2 (en) 2008-05-15 2008-05-15 Inter-local peer group (LPG) routing method
PCT/US2009/043403 WO2009140179A1 (en) 2008-05-15 2009-05-11 An inter-local peer group (lpg) routing method

Publications (1)

Publication Number Publication Date
CN102077528A true CN102077528A (zh) 2011-05-25

Family

ID=41316100

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009801250872A Pending CN102077528A (zh) 2008-05-15 2009-05-11 本地对等群组(lpg)间路由方法

Country Status (6)

Country Link
US (2) US8160078B2 (zh)
EP (1) EP2281368A4 (zh)
JP (1) JP5231634B2 (zh)
CN (1) CN102077528A (zh)
CA (1) CA2723460A1 (zh)
WO (1) WO2009140179A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009155463A2 (en) * 2008-06-20 2009-12-23 Leostream Corp Management layer method and apparatus for dynamic assignment of users to computer resources
WO2010073168A2 (en) * 2008-12-23 2010-07-01 Koninklijke Philips Electronics, N.V. Self-coexistence of devices in a flexible wireless system including two or more wireless networks that share a frequency band
US8274910B2 (en) * 2009-12-04 2012-09-25 Telcordia Technologies, Inc. Adaptation protocols for local peer group (LPG) networks in dynamic roadway environments
US8484375B2 (en) * 2010-07-12 2013-07-09 Fujitsu Limited Systems and methods for removing stale mapping entries for network element
CN102469017A (zh) * 2010-11-17 2012-05-23 中兴通讯股份有限公司 一种中继选择方法及中继控制系统
US20120155322A1 (en) * 2010-12-17 2012-06-21 Lamba Jaideep S Method And Apparatus For Network Node Discovery
CN102164125A (zh) * 2011-03-17 2011-08-24 武汉大学 基于asgka协议的安全通信系统及方法
US9119130B2 (en) * 2012-03-23 2015-08-25 Cisco Technology, Inc. Proactive link-estimation in reactive routing networks
US9515920B2 (en) * 2012-04-20 2016-12-06 Futurewei Technologies, Inc. Name-based neighbor discovery and multi-hop service discovery in information-centric networks
US9386551B2 (en) 2012-11-30 2016-07-05 Qualcomm Incorporated Systems and methods for synchronization of wireless devices in an ad-hoc network
US9504090B2 (en) * 2013-01-17 2016-11-22 Lg Electronics Inc. Method and apparatus for group communication in proximity-based service
US9210689B2 (en) * 2013-05-02 2015-12-08 Qualcomm Incorporated Method and apparatus for efficient communication of safety messages for a group of user equipments
US10050865B2 (en) * 2014-02-28 2018-08-14 Tyco Fire & Security Gmbh Maintaining routing information
US9513364B2 (en) 2014-04-02 2016-12-06 Tyco Fire & Security Gmbh Personnel authentication and tracking system
WO2016086345A1 (zh) * 2014-12-01 2016-06-09 华为技术有限公司 心跳包定时器的识别方法和设备
US11411915B2 (en) * 2019-01-09 2022-08-09 Cisco Technology, Inc. Leveraging MACsec key agreement (MKA) state events to trigger fast IGP/EGP convergence on MACsec encrypted links
JP7422029B2 (ja) * 2020-07-29 2024-01-25 本田技研工業株式会社 通信システム、情報処理装置、情報処理方法、移動体、移動体の制御方法、及びプログラム
US11825399B2 (en) * 2021-08-03 2023-11-21 Huawei Technologies Co., Ltd. Method and apparatus for data routing using moving communication nodes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050122955A1 (en) * 2003-12-05 2005-06-09 Hwa-Chun Lin Method and system for route selection and method for route reconstruction
US20070115868A1 (en) * 2005-11-22 2007-05-24 Wai Chen Group-header based method to organize local peer group of vehicles for inter-vehicle communication
CN101128998A (zh) * 2005-11-22 2008-02-20 泰克迪亚科技公司 用于组织特定网络的基于链接式等效小区首领的方法及协议
US20080095163A1 (en) * 2006-10-23 2008-04-24 Wai Chen Method and communication device for routing unicast and multicast messages in an ad-hoc wireless network

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6026303A (en) * 1996-11-07 2000-02-15 Nec Corporation Method for determining optimal parent terminal and ad hoc network system for the same
US7184421B1 (en) * 2001-12-21 2007-02-27 Itt Manufacturing Enterprises, Inc. Method and apparatus for on demand multicast and unicast using controlled flood multicast communications
US7177295B1 (en) * 2002-03-08 2007-02-13 Scientific Research Corporation Wireless routing protocol for ad-hoc networks
US6718394B2 (en) * 2002-04-29 2004-04-06 Harris Corporation Hierarchical mobile ad-hoc network and methods for performing reactive routing therein using ad-hoc on-demand distance vector routing (AODV)
US7190678B2 (en) * 2002-10-28 2007-03-13 Cisco Technology, Inc. Arrangement for router attachments between roaming mobile routers in a clustered network
KR100468545B1 (ko) 2002-12-23 2005-01-27 한국전자통신연구원 이동 임시 네트워크에서 단방향 링크 연결 제어 방법 및그 프로그램이 저장된 기록매체
JP4659680B2 (ja) * 2006-06-01 2011-03-30 三菱電機株式会社 拠点通信端末並びにネットワークシステム
US20070280174A1 (en) * 2006-06-03 2007-12-06 Ngan-Cheung Pun Small Geographical Area Cell-based Dynamic Source Routing for Mobil Ad-hoc Networks
JP4948054B2 (ja) * 2006-06-16 2012-06-06 三菱電機株式会社 管理装置及び通信端末装置及び通信システム及び通信管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050122955A1 (en) * 2003-12-05 2005-06-09 Hwa-Chun Lin Method and system for route selection and method for route reconstruction
US20070115868A1 (en) * 2005-11-22 2007-05-24 Wai Chen Group-header based method to organize local peer group of vehicles for inter-vehicle communication
CN101128998A (zh) * 2005-11-22 2008-02-20 泰克迪亚科技公司 用于组织特定网络的基于链接式等效小区首领的方法及协议
US20080095163A1 (en) * 2006-10-23 2008-04-24 Wai Chen Method and communication device for routing unicast and multicast messages in an ad-hoc wireless network

Also Published As

Publication number Publication date
US20090285213A1 (en) 2009-11-19
JP5231634B2 (ja) 2013-07-10
EP2281368A1 (en) 2011-02-09
EP2281368A4 (en) 2012-12-12
WO2009140179A1 (en) 2009-11-19
CA2723460A1 (en) 2009-11-19
US20120201167A1 (en) 2012-08-09
US8995447B2 (en) 2015-03-31
JP2011523269A (ja) 2011-08-04
US8160078B2 (en) 2012-04-17

Similar Documents

Publication Publication Date Title
CN102077528A (zh) 本地对等群组(lpg)间路由方法
US8351417B2 (en) Methods for efficient organization of vehicle peer groups and efficient V2R communications
EP2217936B1 (en) Method for determining transmission channels for a vehicle communication network
KR101170176B1 (ko) 메시 네트워크 내에서 컴포넌트들을 동기화하기 위한시스템 및 방법
Chiang Wireless network multicasting
JP3947370B2 (ja) 無線通信システム
WO2001041375A2 (en) Route updating in ad-hoc networks
CN101167311A (zh) 网格网络中的多播路由协议
US20070280174A1 (en) Small Geographical Area Cell-based Dynamic Source Routing for Mobil Ad-hoc Networks
KR20050008465A (ko) 센서 네트워크에서 라우팅 경로 설정 장치 및 방법
CN104936249B (zh) 一种适用于无线网络的路由自愈方法
US20100097971A1 (en) Method for configuring and managing multicast data delivery path in mobile ad-hoc network and multicast data delivery system using the same
KR100932556B1 (ko) 차량 간 통신을 위한 라우팅 경로 설정 방법 및 이를수행하는 단말장치
KR101209197B1 (ko) 차량 위치 서비스를 제공하기 위한 차량 그룹 관리 방법 및 차량 그룹 등록 방법
KR101338478B1 (ko) 위치기반 차량 멀티홈 프로토콜 유니캐스트 장치 및 이를 이용한 라우팅 방법
CN107969021B (zh) 一种基于区分服务的事件与执行器间的高效路由策略
Liu et al. Quorum and connected dominating sets based location service in wireless ad hoc, sensor and actuator networks
US9686641B2 (en) Notification method, notification system and terminal for scenery are abased on ad hoc network
CN106713310B (zh) 一种适用于车载短距离通信网络的改进gsd服务发现协议的实现方法
Kanzaki et al. Data forwarding method based on status of connection with multiple mobile sinks in wireless sensor networks
Gujar et al. Bio-inspired routing protocol for vehicular ad hoc networks
KR100931406B1 (ko) 이동 애드혹 네트워크상의 오버레이 멀티캐스트 트리에있어서의 부하 분산 및 부하 억제방법
KR101883904B1 (ko) 위치 기반 모바일 애드혹 네트워크 라우팅 방법
Sivakumar et al. Routing taxonomies for network aware territory of vehicles: a review
Sasaki et al. A Negative Location-Based Information Dissemination Method in Mobile Ad Hoc Networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110525