拓扑控制(topology control )是一种协调节点间各自传输范围的技术,用以构建具有某些期望的全局特性(如连通性)的网络拓扑结构,同时减少节点的能耗或增加网络的传输能力。
报告内容:
选取一种拓扑控制算法,编程实现该算法并用图形显示效果。要求有 执行 算法前后拓扑对比图 、链路数量统计对比。节点数目最少 50 个,随机分布,其他如通信半径、部署区域大小等自行选取。考虑到连通性问题,要求 应用拓扑控制的 初始 网络为 全连通网络 , 即 每个节点与 其他 任意节点至少 存在 一条链路 ( 可在 随机生成节点位置时 多 试几次或增加节点密度)。 编程环境 、语言不限。
背景介绍:
随着路由节点的增加以及拓扑结构变化率的增大,传统的路由转发协议算法效率低、鲁棒性差。贪婪周界无状态路由协议(GPSR)只使用拓扑结构中的临近信息节点进行“贪婪转发”决策。当数据包进入“路由空洞”的时候,算法会先构造GG平面图或者RNG平面图,然后采用“周边转发”绕过此区域。此过程中,算法会自动切换“贪婪转发”和“周边转发”这两种模式。在频繁变化或者节点数量多的拓扑结构中,并且每个节点存储的信息量少,GPSR可以较低的成本快速地响应变化,查询正确的路由路径
为了让节点存储最少的信息量,并且能够快速响应拓扑结构的变化。需要使用贪心法的思想,让每一步都是最优解,这个转发过程就是“贪心转发”。
但是有些时候无法满足“贪心转发”的条件,此时的情况就是“路由空洞”。解决“路由空洞”的重要技术是“右手法则”,这个转发过程就是“周边转发”。而在周边转发之前需要将图处理成平面图,有GG和RNG两种平面图供选择。
主要的平面化算法有GG(Gabriel Graph )和RNG( Relative Neighborhood Graph )。
构造平面图
1. RNG平面图
RNG平面图的定义
若顶点U,V和任意其它顶点W之间的距离,全都大于或等于顶点u和v之间的距离d(u,v),则在顶点U和V之间存在RNG边(u,v)。用方程式表示如下:
下 图形象地说明了RNG平面图的定义。以节点u和节点v各自形成一个半径为d(u,v)的圆形,半月形阴影区域则是这两个圆的重叠部分。若(u,v)是RNG中的边,则在节点U和V之间的阴影半月形区域内,不能包含有任何证明节点w。此时,由于d(u, v) > max(d(u,w), d(w,v)),为了构建RNG平面图,必须把边(u, v) 舍去。
RNG平面图的定义
RNG的算法
对于每个节点u,有完整的邻节点列表N,用以下伪代码去除非RNG连接:
RNG伪代码
2. GG平面图
GG平面图的定义
如果节点u和节点v之间,直径为uv的圆内,不存在其它顶点W,则节点u和节点v存在GG边(u,v)。用方程式表示如下:
下图形象地说明了RNG平面图的定义,节点u和节点v之间形成一个直径为d(u,v)的圆形,节点u和节点v都在圆上,即是圆形阴影区域。若(u,v)是GG中的边,则在节点U和V之间的圆形阴影区域,不能包含有任何证明节点w。
GG平面图的定义
GG平面图的算法
直径为uv的圆形阴影的圆心也是uv的中点。对于每个节点u,有完整的邻节点列表N,用以下伪代码去除非GG连接:
GG伪代码
对伪代码在MATLAB中实现
从两者的定义可以看出,RNG是GG的子集,差别在GG只是在节点间较小的圆形阴影区域内搜寻证明节点。如下图所示,左图是无线网络的完整拓扑图;150个节点被随机部署在150*150米的区域,无线电范围为250米;中间表示整个拓扑图的RNG子图;右图表示整个拓扑图的GG子图,sum,sum1,sum2分别为完整无线网络拓扑链路数量、RNG算法计算后链路数量和GG算法计算后链路数量。
再次随机生成150个节点,结果分别如下: