The Network Link Layer: Rumor Routing 谣言路由协议(数据为中心)

Rumor Routing 谣言路由协议

Rumor Routing 和 Directed Diffusion(定向扩散)是两种不同的协议,但同属于数据中心化(Data Centric)路由协议。

Rumor Routing 是一个双向、分布式的事件发现机制。Event-based – ideal for dense WSNs,事件驱动型的,特别适合 密集型无线传感器网络(dense WSNs)。
两个角色——agent 代理,query 询问

什么是“事件驱动”?

比如说:
森林中布满了温度传感器。某一处温度急剧升高,意味着可能发生了火灾。这个“火灾”就是一个 事件(event),不是所有节点都一直在传数据,只有发生事件时,才会触发路由行为。

为什么说它“适合稠密网络”?

因为节点多,agent 和 query 更容易在网络中“碰头”,所以更容易在不广播全网的前提下,成功找到事件。

Agent 代理包

Agent 基础

nodes create and spread agents 节点创建并传播代理
agent = data packet that randomly “walks” spreading information about an event 代理 = 随机“游走”单播事件信息的数据包

类比:就像一个人在城市中传八卦,他不发朋友圈,而是一个个地告诉遇到的人:“嘿,有家餐厅在打折!”这个“走着传播”的过程就是 agent 的作用。

下图绿色节点,就是代理包走过的路径。
在这里插入图片描述

agents propagate and install routing information to events in each node they visit 这些被 agent 走过的节点,会记住事件的路径信息(即“知道事件在哪”)
usually propagated by unicast transmission with a TTL. 通常通过具有 TTL 的单播传输进行传播

TTL = Time to Live
限制 agent 最多走几步,防止走得太远、太久,耗费资源

Agent 特色

顺带传播

在这里插入图片描述
Agents can spread routing information about several events if they cross the route to another event
如果 agent 的路径与其他事件的路径相交,它还能“顺便”传播另一个事件的信息!

短路径更新

在这里插入图片描述
Agents can also shorten existing routes if they know about shorter paths
如果 agent 发现了更短路径,它还能更新之前节点存的路径,让整体更高效。

Agent以及节点路由表

在这里插入图片描述

agent 携带事件表(记录了它知道的事件及跳数)到达一个节点后对比该节点已有的事件路由信息
如果 agent 知道更短的路径 → ✅ 更新节点路由表
否则 → ❌ 不更新

在这里插入图片描述

Query(查询包)

If interested in an event, the sink sends out a query on a “random walk” 如果接收器对某个事件感兴趣,它会发出==“随机游走”==查询query(查询包)

A query is targeted to an event 查询是“有目的地”指向一个事件的,比如:我要找事件 E1。
if a node has a route towards the target event, it forwards the query along the route 如果节点有通往目标事件的路线,它会沿着该路线转发查询
if it does not, it forwards the query to a random neighbor (assuming TTL not exceeded) 如果没有,它会将查询转发给一个随机邻居(假设 TTL 未超过)

在这里插入图片描述
Rumor Routing 中的查询不是洪泛,而是“随机+引导”:
随机走着走着,如果碰到知道路径的节点,它就会被拉到正确方向,沿已知最短路径去找事件。

Rumor Routing 为何有效

因为Agent和Query相遇的可能性是非常大的。
high probability of finding a pre-established route to the event 找到到达该事件的预设路径的概率很高

Based on the idea of intersecting lines in a bounded rectangular region
基于“在一个有限矩形区域内,随机线段相交”的思想
在这里插入图片描述
Monte-Carlo simulation shows that two random lines may intersect each other with a probability of 69%
蒙特卡洛模拟表明,两条随机线可能以 69% 的概率相交。
the more lines (or routes), the higher the intersection probability。线路(或路线)越多,交叉概率越高。

Sink 到底是怎么知道要发出一个 query 的?它是定时的吗?随机的吗?还是怎么触发的?

在 Rumor Routing 中:
Sink 发出 query 的前提,是它对某个事件“感兴趣”了(感兴趣 → 发起查询),而是否发出 query 是由应用层需求触发的,不是协议自动周期触发的!

🚫不是定时触发(periodic)
Rumor Routing 不是周期性主动搜集全网信息,因为这会很耗能。Sink 不会“每隔几分钟就到处问问有没有事件”
🚫 也不是完全随机发 query
它不会自己随机“漫游问路”

Query 的发出是有目的、针对事件 ID 发起的
✅ 而是这样一种机制:
当上层应用(比如:用户、主控系统)需要知道某类事件(例如:E1火灾、E2水灾)是否发生时,Sink 才会发出 query。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值