Geographical Routing地理路由
简述
背景
在WSNs(无线传感器)的应用中,地理是会被考虑的一部分。比如解决发送给:“给定区域中的任何节点”或“最近给定点的节点”。
当每个节点的地理位置信息都知道的时候,可以用于:
- 地理广播——检索/发送数据到特定区域内的节点
- 基于位置的路由——使用位置信息辅助路由
Nearest Forward Progress(最近前进策略)
Nearest Forward Progress(最近前进策略)是无线传感器网络(WSNs)中一种非常简单但实用的地理路由策略。
在 Nearest Forward Progress(NFP) 策略中,每个节点只考虑自己的一跳邻居,然后选出其中距离目标位置最近的那个邻居节点作为下一跳。
⚠️ 它并不考虑这个邻居是否真的能把包送到终点(因为它不知道更远的网络拓扑)
所以它可能会把包转发给一个“最近”的邻居,但那个邻居却无法继续前进——这就是所谓的局部最优陷阱(local minimum)。
【课程中说是距离自己最近的节点,这点保持质疑态度】
如何获取节点的位置信息(location information)?
使用 GPS 获取位置
📌 特点:
每个节点安装 GPS 模块,直接获得其经纬度信息。非常精准,但有两个主要缺点和一个次要缺点:
💸 昂贵(增加成本)
🔋 耗电高(GPS模块非常耗能)
🌐 GPS 有时不能在室内或地下等场景使用
✅ 因此,一般只在网络初始化阶段用 GPS,之后靠别的手段来维持定位。
使用定位协议(Localization protocols)
这是一种不用 GPS,通过测量信号特性来估算位置的办法。有两种常见方式。
- RSSI(接收信号强度,Received Signal Strength Indicator)
思路:发射信号功率是已知的,通过测量接收信号的强度来推测距离
距离越远,信号越弱,依据信号衰减公式来估算距离
P r ( d ) = P t − P L ( d 0 ) − 10 η log 10 ( d d 0 ) [ dB ] P_r(d) = P_t - PL(d_0) - 10 \eta \log_{10}\left( \frac{d}{d_0} \right) \quad [\text{dB}] Pr(d)=Pt−PL(d0)−10ηlog10(d0d)[dB]
其中:
- P r ( d ) P_r(d) Pr(d):power received at distance d d d 距离 d d d处接收的功率
- P t P_t Pt:transmitted power 发射功率
- P L ( d 0 ) PL(d_0) PL(d0):power received at reference distance d 0 d_0 d0 参考距离 d 0 d_0 d0处接收的功率
- η \eta η:attenuation constant or path loss 衰减常数或路径损耗
- d 0 d_0 d0:是参考距离(比如 1 米),是一个固定的已知常量
这个公式求的是 d / d 0 d/d_0 d/d0,然后就能得到距离 d d d。
⏱️ 2. ToA(到达时间,Time-of-Arrival)
思路:比较发送时间和接收时间的差值,乘以信号传播速度,就得到距离
distance = speed × ( t 1 − t 0 ) \text{distance} = \text{speed} \times (t_1 - t_0) distance=speed×(t1−t0)
⚠️ 缺点:
要求时钟同步精确
信号传播速度(光速/声速)必须已知
对硬件精度有一定要求
Greedy forwarding 贪婪转发
贪婪转发是一个基础策略,找到最…的节点,只考虑局部(自己和下一跳)。
节点根据不同的指标选择可行的邻居。
这有四种指标:
M → most forwarding within radius; A和SINK连线投影,距离SINK最近的邻居节点
N → nearest forward progress; 距离A最近的节点
M → pure greedy scheme; 距离SINK最近的节点
C → compass metric; 距离A—SINK连线夹角最小的节点
这些是有失败的可能
GPSR(Greedy Perimeter Stateless Routing)GPSR(贪婪边界无状态路由)
GPSR(Greedy Perimeter Stateless Routing)是 Geographic Routing Protocol 的经典代表协议之一,和 GFG、GOAFR、GLS 等协议属于同一类。
常应用于:无线传感器网络(WSN)、移动自组网(MANET)、无人机通信网络(UAV)、IoT 中的分布式低功耗路由系统。
GPSR - 使用全部节点位置和目的地位置来做出转发决策。
使用节点和目的地的位置来进行路由决策。根据是否存在更靠近目的地的邻居,动态在 贪婪转发(Greedy Forwarding) 和 外围转发(Perimeter Routing) 两种模式之间切换。
GPSR数据包头
GPSR(Greedy Perimeter Stateless Routing)协议中,数据包头部需要包含的关键信息,以及这些信息在切换和退出 Perimeter Routing 模式中的作用。
字段 | 含义 |
---|---|
D | Destination location(目的地的位置) |
Lₚ | Location packet entered perimeter mode(进入 Perimeter 模式时的节点位置) |
M | Routing mode(当前的路由模式, Greedy OR Perimeter) |
GPSR 过程实例
A原始数据包头部
D
: SINK
Lₚ
: NAN
M
: Greedy
A通过贪婪
∣
D
−
S
I
N
K
∣
<
∣
A
−
S
I
N
K
∣
|D-SINK|<|A-SINK|
∣D−SINK∣<∣A−SINK∣,数据包发送给D节点。
D节点原始
D
: SINK
Lₚ
: NAN
M
: Greedy
D节点贪婪寻找,发现没用任何一个邻居节点的距离比他小,贪婪失败。所以D变成外围转发模式
D
: SINK
Lₚ
: D
M
: Perimeter
D节点进行右手规则(沿着D-SINK连线逆时针旋转,如果一直没找到要旋转一周),第一个是节点B。
D将这个数据包转发给B。
D
: SINK
Lₚ
: D
M
: Perimeter
B收到后,查询自己的邻居节点,发现 ∣ F − S I N K ∣ < L p ( D ) |F-SINK|<L_p(D) ∣F−SINK∣<Lp(D),找到更近的了,跳出外围模式。B将下面数据包发给F。
D
: SINK
Lₚ
: NAN
M
: Greedy
F继续贪婪,发现失败(自己的邻居节点EBG都比自己更远),转成外围模式,右手规则后,发送数据包给E。
D
: SINK
Lₚ
: F
M
: Perimeter
E点发现可以贪婪I点,于是E发送数据包给I。
D
: SINK
Lₚ
: NaN
M
: Greedy
从I节点开始,可以一路贪婪到H,K,SINK。