第一讲 传感器网络概述
-
- 定义:传感器网络是由一组传感器节点以特定方式构成的无线网络,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并发布给观察者。
- 三个基本要素:传感器、感知对象、观察者
- 基本功能:协作地感知、采集、处理和发布感知信息
- 传感器节点结构:传感器模块、处理器模块、无线通信模块(能量消耗最高)、能量供应模块
- 三个限制:
- 电源能量有限
- 通信能力有限
- 存储和计算能力有限
- 传感器网络特点:
- 大规模网络:地理区域大;部署密集
- 自组织网络:不确定性;拓扑结构变化
- 资源受限:能量、通信、计算、存储
- 动态拓扑:节点故障;通讯故障;移动性;节点加入
- 可靠网络:适应环境条件;鲁棒性;容错性
- 应用相关:没有统一的通信协议平台
- 以数据为中心:以数据本身作为查询条件
- 传感器网络首要设计目标:能源的高效使用
第二讲 网络层 路由协议
- 分类:
-
- 能量感知路由协议
- 基于查询的路由协议
- 地理位置路由协议
- 可靠的路由协议
-
- 洪范路由(Flooding)和闲聊路由(Gossiping)
- 洪范路由机制:节点产生或收到数据后向所有邻节点广播,直到信息过期或到达目的地才停止广播。
- 缺点:内爆:节点几乎同时从邻节点收到多份相同数据
- 洪范路由机制:节点产生或收到数据后向所有邻节点广播,直到信息过期或到达目的地才停止广播。
重叠:节点会转发同一区域内同一信息的多份拷贝
能量低效、带宽利用率极低:不考虑自身资源限制
-
- 闲聊路由机制:随机选择一个邻节点来发送数据;
优点:避免了内爆
缺点:增加了时延。网络大后,概率趋于0
-
- 两种算法的优点
简单,不需要维护路由信息,也不需要任何算法
-
- 两种算法的缺点
扩展性很差
- 能量感知路由
- 主要思想:根据节点的可用能量(PA)或传输路径上的能量需求,选择路径
- 能量多径路由
- 主要过程
- 路径建立阶段
- 数据传播阶段
- 路由维护阶段
- 优点
- 考虑了能量消耗及能量剩余
- 路径选择概率与能量相关
- 维护保持多条活动的冗余路径,可靠性增加
- 实现整个网络能量的平稳降级,最大限度的延长网络的生存期
- 主要过程
- 能量多径路由
- 主要思想:根据节点的可用能量(PA)或传输路径上的能量需求,选择路径
- 基于查询的路由协议
- DD 定向扩散路由协议
- 三个阶段
- 兴趣消息扩散
- 数据传输梯度建立
- 路径加强
- 主要思想
- Sink节点周期地通过洪范方式广播兴趣消息
- 中间节点本地保存兴趣列表,反向建立到Sink节点的路由路径(梯度)
- 源节点将数据消息传递到Sink节点
- Sink节点选择最优路径进行强化
- 三个阶段
- DD 定向扩散路由协议
-
- 谣传路由
- 思想:从源节点产生代理数据包(Agent)并发送,Sink节点发送请求探测数据包,两者都随机进行下一跳节点的选择,直到两个数据包在某一节点上相交,则构成了一条可行路径。
- 优点:能耗较小、协议简单
- 缺点
- 如果事件非常多,维护事件表和收发Agent带来的开销会很大
- 汇报延迟无法保证
- 谣传路由
- 地理位置路由
- 边界定位路由
- 边界节点均为信标节点,计算节点坐标的迭代过程:
- 起始阶段,边界节点位置已经确定,设置所有非边界节点的坐标相同
- 迭代阶段,定义节点的位置为邻居节点坐标位置的平均值,非边界节点计算自己的坐标,邻居节点相互交换计算出的新坐标值,在进行下一步迭代
- 当达到一定迭代次数,或者超过一个停止阈值,如当坐标的变化不超过5%时,迭代停止
- 评价
- 较少节点知道精确位置信息,减少对传感器节点的功能要求
- 确定全局坐标节点在坐标系中的位置需要大量信息交换,通信量增加
- 迭代过程确定节点位置,位置精度与迭代次数相关
- 边界节点均为信标节点,计算节点坐标的迭代过程:
- 边界定位路由
- 可靠路由协议
- 不相交多径路由协议DM
- 建立过程描述
- 汇聚节点首先通过主路径增强消息建立主路径,然后发送次优路径增强消息给次优节点A,次优节点A再选择最优邻居节点B
- 如果B在主路径上,则B发回否定增强消息给A,A向次优节点传递次优路径增强消息;如果B不在主路径上,则B继续传递次优路径增强消息
- 按照同样的方式构造一条次优路径
- 优点
- 提高了一次传送的成功率,减小了延迟
- 提高了网络负载的平衡
- 缺点
- 难以确定最优的路径数
- 分离多路径几乎不能提高能量效率
- 建立过程描述
- 随机
- 不相交多径路由协议DM
第三讲 数据链路层 MAC协议
- 能力浪费原因:
- 碰撞重传(随机竞争)
- 串音
- 空闲侦听(忙闲)
- 控制消息(太多)
- 节能策略
- 尽量处于睡眠状态
- 减少接收不需要接收的数据分组
- 减少碰撞
- 较少控制消息的开销
- 分类
- 基于竞争
- 802.11MAC
- S-MAC
- T-MAC
- SIFT-MAC
- 基于固定信道
- DEANA
- TRAMA
- DMAC
- 周期性调度
- 其他
- SMACS/EAR
- CSMA/CA和CDMA结合
- 基于竞争
- 802.11MAC采用CSMA/CA
- CSMA/CA协议的要点
- 帧优先级处理:使用长度不同的帧间间隔SIFS>PIFS>DIFS>AIFS>EIFS
- 载波侦听:采用“物理载波侦听+MAC虚拟载波侦听”
- 冲突避免:采用“随机后退”机制
- 对于隐藏站点问题:采用“RTS/CTS”机制
- 差错控制:采用“逐帧确认+重传”机制
- 克服脉冲干扰:采用“分片”机制
- CSMA/CA协议的要点
- S-MAC
- 占空比技术(固定)
- 机制:
- 周期性侦听/睡眠的工作方式(能量)
- 一致性的睡眠调度制度(空闲侦听)
- 流量自适应的侦听机制(减少延迟)
- 消息分割和突发传递(控制消息和消息延迟)
- S-MAC侦听期是⼀段固定的时间,当⽹络通信量很小时,造成不必要的能量消耗。当⽹络中通信量很⼤时,固定持续的时间往往不够用
- T-MAC
- S-MAC的改进
- 根据通信量的大小来实时的调节侦听期的长度,节点在一个时隙的开始时刻唤醒进行侦听,如果没有检测到数据传输则切换到睡眠模式。节点在完成消息传输的一段时间内继续保持唤醒状态,以此来检测是否有更多的数据通信。超时间隔保证节点到睡眠模式的快速切换。
- 目的:通信量大时,节点唤醒时间长;通信量小时,采用简短的唤醒时间
- 早睡问题解决:
- 未来请求发送:节点C收到B发送给A的CTS分组后,立刻向下一跳的接收者D发出FRTS分组,其中包含D接收数据前需要等待的时间长度。
- 满缓冲区优先:当一个节点的传输/路由缓冲区接近饱和时,节点将优先选择发送信息,而不是接收信息。
第四讲 拓扑控制
- 定义:
- 在满足网络覆盖度和连通度的前提下,通过功率控制和骨干网节点的选择,形成一个数据转发的优化网络结构
- 通过控制节点发送功率、睡眠调度和网络结构等,生成优化的网络拓扑来满足一定的性质,以延长网络生命周期,降低网络干扰,提高吞吐率
- 原因:
- 在由无线传感器网络生成的网络拓扑中,可以直接通信的两个节点之间存在一条拓扑边。如果没有拓扑控制,所有节点都会以最大无线传输功率工作。
- 在这种情况下,一方面,节点有限的能量将被通信部件快速消耗,降低了网络的生命周期。同时,网络中每个节点的无线信号将覆盖大量其他节点,造成无线信号冲突频繁,影响结点的无线通信质量,降低网络的吞吐率。
- 另一方面,在生成的网络拓扑中将存在大量的边,从而导致网络拓扑信息量大,路由计算复杂,浪费了宝贵的计算资源。
- 意义
- 影响网络生存周期
- 减少无线干扰,提高通信效率
- 为路由协议提供基础
- 影响数据融合
- 研究方向
- 功率控制:调整网络中每个节点的发射功率,保证网络联通,在均衡 节点直接邻居数目(单跳可达邻居节点数目) 的同时,降低节点间的通信干扰
- 层次拓扑结构控制:利用分簇思想,使网络中部分节点处于激活状态,成为簇头节点。有这些簇头节点构建一个连通的网络来处理和传输网络中的数据,并且定期或者不定期地重新选择簇头节点,以均衡网络中节点的能量消耗
- 连通支配集
- S集合是V集合的子集,S集合是V集合的支配集
控制节点:S中的节点
受控节点:V-S中的节点
-
- 连通支配集
- 如果V的子集S是支配集,同时由S能导出连通的子图,那么S是连通支配集。由此形成的网络叫骨干网。
- 连接节点是用来连接控制节点的受控节点。
- 连通支配集
- 三色算法
- 节点状态
- 白色:未被发现
- 黑色:支配节点
- 灰色:普通节点
- 初始化:所有节点都被标记为白色,有一个初始节点发起TopDisc三色算法
- 算法执行完毕:所有节点都将被标记为黑色或灰色
- 评价
- 是早期成簇算法中的代表,可以使节点在密集部署的传感器网络中快速地形成分簇结构,并在簇头之间建立树型关系。
- 但是由于这种算法构建成的层次型网络灵活性不强,重复执行算法的开销过大。另外,算法中没有考虑节点的剩余能量问题。
- 评价
- 节点状态
- 四色算法
- 基本原理与三色算法类似
- 动机:希望可以形成更少的簇,且簇与簇之间的交替更少,扩大簇间间隔
- 节点状态
- 白色
- 黑色
- 灰色
- 深灰色
- 过程
- 初始节点将自己标记为黑色节点,并广播查询消息。
- 白色节点收到黑色节点的查询消息时变为灰色节点,然后等待一段时间,再进行查询消息广播,等待长度与其到黑色节点的距离成反比。
- 白色节点收到灰色节点的查询消息时,变为深灰色节点,然后继续广播查询消息,同时等待一段时间,等待时间的长度与它到灰色节点的距离成反比;如果在等待时间内,深灰色节点又收到黑色节点的查询消息,则立即变成灰色节点;否则,它将变为黑色节点。
- 白色节点收到深灰色节点的查询消息时,先等待一段时间,等待时间的长度与它到深灰色节点的距离成反比,如果在等待的时间内,白色节点又收到黑色节点的查询消息,则立即变成灰色节点;否则变为黑色节点;然后继续向外广播查询消息。
- 黑色节点或者灰色节点都不响应所有的查询消息。
-
- 查询消息传播完成后,黑色节点成为族头,灰色节点成为族内节点,反向还原查询消息的传播路径,连接所有族头形成骨干网络。
- 四色算法与三色算法对比
- 四色算法两个黑色节点之间最远可以间隔两个灰色节点,拉大了相邻黑色节点的距离
- 四色算法可以形成更少的簇,且簇与簇之间的交叠更少,但是有可能形成孤独的黑色节点
- 时间同步
- 定义:将通信网络上各种通信设备或计算机设备基于UTC的时间偏差限定在足够小的范围内(如100ms)
- RBS参考广播同步机制
- 同步消息的延迟 = 发送时间+访问时间+传播延迟+接受延迟
- TPSN时间同步协议
- 目标:提供全网范围内时间同步
- 根节点:与外界通信获取外界时间的节点
- 假设:
- 节点标识符唯一
- 节点间的无线通信链路是双向的
- 采取分级的层次网络结构
- 基本思想:
- 将节点分级后(根节点为0级),每个节点同上一级的一个节点进行时间同步,最终与根节点同步
- 节点对之间的同步采取发送者-接收者同步机制
- 操作过程:
- 层次发现阶段
- 目标:形成一个层次型拓扑结构
- 洪范“级别发现”分组,包含发送节点的ID和级别号
- 根节点发起,级别号为0
- 每跳级别号加1
- 节点级别号确定后忽略其他分组,防止网络产生洪范拥塞
- 同步阶段
- 根节点通过广播时间同步分组启动
- 第1级节点收到后等待随机时间,通过与根节点交换消息同步到根节点
- 第2级节点侦听到第1级节点的交换消息后,后退和等待一段随机时间,并与它的父亲节点交换消息进行同步...
- 层次发现阶段
-
- 优点
- 减少同步误差,在MAC层消息开始发送到无线信道时才给消息添加时标,消除了访问时间带来的同步误差
- 提高同步精度,与RBS机制相比,考虑了传播时间和接收时间,利用双向消息交换计算消息的平均延迟,提高了同步的精度
- 缺点
- 没有考虑根节点失效问题
- 新的节点加入时,需要初始化层次发现阶段,级别的静态特性减少了算法的鲁棒性
- 优点
- 传输层技术
- 任务
- 实现端到端的可靠传输
- 解决网络拥塞问题,包括检测可能发生拥塞的位置以及如何避免拥塞事件的发生
- PSFQ 慢存快取
- 分类 Sink-to-Sensor
- 设计目标
- 保证每个节点都能够收到来自Sink节点的全部分组
- 基本思想
- 将一个消息分割成多个短的分组
- 逐跳可靠传输
- 基本过程:在逐跳传输分组时,上一跳节点以较慢的速率发送分组,下一跳节点发现分组丢失后,立即向上一跳节点请求重传
- 三种操作
- 存入Pump、提取Fetch、报告Report
- 基本工作原理
- 逐跳(本地)错误恢复
- 多条重传机制
- 快速恢复机制
- 三种操作
- 消息转发(存入操作:pump operation):源节点(感知事件发生区域内的传感器节点或者汇聚节点)将消息发送到网络中,中间节点缓存消息,并按照适当的策略转发消息,以满足宽松的传输时延要求。
- 转发过程的错误恢复(提取操作:fetch operation):中间转发节点维护一个数据缓存区,利用所缓存的信息监测数据丢失情况(根据接收数据分组的序号连续性加以判断),在必要时通过发送ACK或者NACK消息触发相关节点的错误恢复操作。
- 选择性状态报告(报告操作,report operation):源节点(即数据发送节点)获取有关分发状态统计数据,并将其作为随后决策(比如在任务重新分配空中下载时调整数据分发频率)。因此,反馈和报告机制对于PSFQ协议而言非常重要,且报告机制必须具备自适应性(报告时机根据通信环境动态调整)和可扩展性(开销尽可能低)。
- 存在问题:
- 由于采用基于单纯的NACK的确认机制,PSFQ协议不能发现所有分组都丢失的情况;
- “放”操作速度较慢,增加分组的传输延时,也浪费了带宽;
- 为了重传分组,逐跳的丢失恢复机制需要较大的缓存空间; 因为,一旦数据包丢失,汇聚节点就会存储次序被打乱了的数据包,直到接收到丢失的数据包。增加了PSFQ协议需求的存储空间。
- GARUDA可靠传输协议
- 主要思想
- 解决NACK的缺陷,使用WFP脉冲来确保单个包或第一个包的可靠传输
- Core的虚拟结构,进行局部指定服务器最优化分配,对丢失的分组进行丢失恢复
- 工作过程
- 可靠的单个/第一个包传输,节点确认距离Sink节点的跳数
- Core节点的瞬间建立
- 距离Sink节点跳数为3的倍数
- 节点将侦听到的第一个core作为自己的core节点,否则自己作为
- 第一个分组传输后,每个节点确定自己是否为core,以及上游core
- 阶段丢失恢复
- 主要思想
非core和core都向上有core发送NACK请求重传
-
-
-
- 第一阶段:核心节点恢复所有丢失分组
- 第二阶段:非核心节点恢复丢失分组
-
- 评价
- 从本质上看,GARUDA定义的可靠性是选择出期望接收Sink节点数据分组的节点集合,但在这个集合中的节点都需要收到Sink节点发送的所有分组。因此,GARUDA保证的仍然是绝对可靠性
- GARUDA采用高能量的WFP脉冲,对传感器节点提出较高的要求
-
- 无线定位
- WSN定位问题:自组织的网络通过特定方法提供节点的位置信息
- 节点自身定位:确定网络节点的坐标位置,是自身属性的确定过程,人工标记或节点自身定位算法
- 目标定位:以位置已知的网络节点作为参考,确定网络覆盖区域内一个事件或是一个目标的坐标位置
- 位置信息:
- 物理位置
- 符号位置
- 分类
- 根据是否依靠测量距离,
- 基于测距的定位
- 不需要测距的定位
- 根据部署的场合不同:
- 室内定位
- 室外定位
- 根据信息收集的方式
- 被动定位
- 主动定位
- 根据是否依靠测量距离,
- 评价指标
- 位置精确指标
- 绝对精度:长度单位度量的精度
- 相对精度:百分比
- 覆盖范围
- 刷新速度:提供位置信息的频率
- 功耗:能力消耗
- 定位实时性:对动态目标的位置跟踪
- 位置精确指标
- 三边测量算法
- 三角测量算法
- 基于TOA(到达时间)定位机制
- 基本思想:已知信号传播速度,根据信号的传播时间来计算节点间距离,然后利用三边或极大似然估计法等计算出节点的位置
- 评价
- 精度高
- 要求结点间精确的时间同步
- 对传感器节点的硬件和功耗要求较高
- 扬声器模块、麦克风模块、无线电模块、CPU模块
- 过程:
- 发送节点的扬声器模块在发送伪噪声序列信号的同时,无线电模块通过无线电同步消息通知接收节点伪噪声序列信号发送的时间
- 接收节点的麦克风模块在检测到伪噪声序列信号后,根据传播时间和速度计算发送节点和接收节点之间的距离;
- 利用三边测量算法或极大似然估计算法计算出自身位置。
- 基于TDoA(到达时间差)的定位
- 原理:发射节点同时发射两种不同传播速度的无线信号,接收节点根据两种信号到达的时间差以及这两种信号的传播速度,计算两个节点之间的距离。
- 多信号:发射节点同时发射无线射频信号和超声波信 号,接收节点记录下这两种信号的到达时间T1、 T2,已知无线射频信号和超声波的传播速度, 计算两个节点之间的距离。
-
- 多节点:
- 基于AOA(到达角度)的定位
- 测距概念:利用多天线阵列测量节点接收信号方向与轴线方向之间的夹角
轴线方向为两个接收天线之间连线的中垂线。
-
- 定位过程:
- 相邻节点之间的方位角的测定
- 相对信标节点的方位角测量
- 利用方位信息计算节点位置
- 评价:
- 不仅能确定节点的坐标,还能提供节点的方位信息
- 测量技术易受外界环境影响,且需要额外硬件,不适用于大规模的传感器网络
- 定位过程:
- 三角定位法
- 在基于AoA测距获得的信号到达角度的基础上,利用三角形的几何特性来计算未知节点位置的方法
- 若没有足够的方位节点,则三步走:
- 相邻节点间的方位角的测定
- 相对信号节点
- 利用方位信息
- 安全技术
- 以攻击性质分类
- 被动攻击
- 窃听:通过监听链路流量,窃取关键数据或分析包头字段获得重要信息(如节点的身份口令、暂用节点资源)
- 流量分析:非法节点对通信双方之间交换的信息进行分析,试图判断或恢复出关键的信息
- 主动攻击
- 节点俘获攻击:由于传感器网络部署在开放的环境中,攻击者可以轻易捕获节点,直接从物理上进行入侵。
- 节点复制攻击:传感器节点没有特殊的硬件保护机制,攻击者可以通过复制传感器节点,进而窃取网络中的信息。
- 女巫攻击:冒充其他节点,或通过声明虚假身份,对网络中的其他节点表现出多重身份。
- 虫洞攻击:针对传感器路由协议的攻击。协作的攻击者在距离较远的两个地点之间,建立一个不同频道的信道,然后将一端的路由信息通过该信道转到另一端,扰乱路由。
- 黑洞攻击:攻击者为一个被捕获的节点篡改路由信息,尽可能地引诱附近的流量通过该恶意节点。
- DoS攻击:指任何能够削弱或消除传感器网络正常工作的攻击。
- 被动攻击