题目要求
在无线多跳自组织网络下,高效地将关键数据从网络一段扩散至全网,广泛用于网络控制、公共数据广播、时间同步等,这种广播协议一般称为数据分发协议。
挑战:
分发协议本质是一种广播协议,目的是让环境中所有的节点都收到消息。但分发协议在无线多跳网络中存在多方面的权衡与设计挑战。请你设计一种分发协议,目的让环境中所有的节点都收到消息。
设计与分析
这次大作业,我复习到了很多知识,在以前学习过计算机网络相关知识。无线传感课我认为,是范围更小更专业性的一门课程。
在开始编程之前,我先了解了现有的几种无线传感的广播协议:
- 洪泛路由:
当封包到达某一个节点时,新节点往每一个上寄送。 只要目的地可到达,那么包也一定。
优点:无需了解网络的拓扑结构
缺点:每个节点都会进行一次通讯,当网络规模很大时就会出现信息量爆炸问题。 - SPIN-BC:在消息发送前进行协商,确保不会出现信息量大增问题。
优点:小adv消息减轻了内爆问题、通过数据命名解决了交叠问题
缺点:可能会导致较远节点得不到数据(邻节点不转发时候将导致数据,较远节点会得不到数据) - MTE路由协议
优点:简单、开销小,每个节点只需要往下一跳数据发送sink
缺点:因为只给下一个节点发送,当网络是树状结构时候,有一部分节点不会工作。 - DD协议:兴趣扩散、提督建立、强化路径。
优点:节点只需要和邻居节点通信,因而不需要全局地址机制。
缺点:数据聚合过程采用同步时间技术,会带来较大开销和时延 - GPSR协议
优点:使用了最短距离的路由,减少了时延,一定可达路由。
缺点:需要使用gps或者其他定位信息。
当今随着物联网发展趋势,我认为地理位置的获取变成一件很简单的事情。所以我的协议将会从第5条地理位置中出发,设计一个广播协议。
广播协议内容如下:数据中包含发送源的位置信息,如果距离为在特定范围的r1~r2 内,则收到数据后,进行进一步的转发。其中包含自己的位置信息。如果目的可达的话,那么广播协议发送的数据是一定可以达到的。
模拟传播代码
#作者xdu-18130500023
import matplotlib.pyplot as plt
import random
N = 100
x=[]
y=[]
for i in range(0,N):
tempx = random