Ad Hoc网络协议栈通用要求研究( 四 )


IEEE 802.11中Ad Hoc下MAC同步的设计是:第一个开机的节点首先发Beacon帧 , 并认为是网络中的AP角色;随后进入网络的节点首先扫描 , 接收到Beacon帧之后 , 更新自己的时刻 , 和接收到的Beacon帧保持同步 , 并设置RTS/CTS以及Beacon帧退避所需要的计时计数区;在新的Beacon帧发送时刻到来时 , 每个节点都从Beacon帧退避区中取随机等待值(仅在第一次时这样) , 等待值结束后就发出Beacon帧;假如在退避等待期间接收到了Beacon帧 , 则停止等待值的更新 , 等待下一次发送时刻;假如有两个节点同时等待到 , 则Beacon帧会碰撞 , 两个节点同时以二进制指数退避法退避 , 本次Beacon帧的发送会由其他节点完成 。
对于全连通网络 , 这样的方法既可以满足Ad Hoc的灵活性 , 又可以以较低的网络开销实现MAC同步 。但是当网络规模不断扩大后 , 节点之间已经不能实现全连通 , 就必须对网络进行划分 , 在更小的范围内实现同步 , 而整个网络的同步问题就变得非常复杂 , 效率也就急剧下降 , 如何有效地对多跳范围内的节点治理和组织是MAC层设计的技术难点之一 。
在Ad Hoc网络中还要考虑的是路由协议的辅助实现功能 。由于路由协议必须及时更新 , 路由发现过程需要MAC层的配合 。以IEEE 802.11为例 , 节点的地址的变化最早就体现在MAC层上 。MAC层在控制帧和治理帧的发送过程中随路实现路由发现阶段的网络地址广播是非常方便的 。
MAC层同样面临着通信安全性的要求 , 需要考虑节点认证和数据加密 。
2.2逻辑链路子层
逻辑链路层(LLC)实现流量控制、差错控制和业务汇聚 。在流量控制和业务汇聚过程中还要体现出业务的区别 , 为实现QoS创造条件 。
无线Ad Hoc网络中的链路层设计存在很多困难 , 无线信道特性较差 , 容量低 , 多径衰落会引起信号幅度和相位的随机抖动 , 时延传播引发符号间干扰 , 广播特性造成节点间干扰 。
链路层设计的目标是获得接近信道容量限制的数据率 , 并使用相对少的能量来减少信道损伤 。衰落信道下的研究结果表明在信道状况较好时应增加发送功率和速率以提高信道的利用率 。
链路层协议通过使用差错控制机制来保护数据比特 , 以减少信道错误的影响 , 如自动重发请求(ARQ)和前向纠错码(FEC)[1] 。ARQ虽然可以增加分组投递的可靠性 , 但重传将耗费过多的能量和更多地占用带宽 , 并且增加分组投递时延 , 在有实时传输要求的网络下是不可用的 。FEC虽然可以克服ARQ的缺点 , 但是较复杂的编解码机制会带来额外的分组开销 。对于Ad Hoc网络 , 逻辑链路层要求在网络开销和信道容量方面进行必要的平衡 。
业务汇聚要根据业务属性对业务数据进行区分 , 对于相同QoS要求的业务进行打包;对于不同QoS要求的业务 , 要根据优先级和节点的发送能力确定每次发送的数据;流量控制同时要控制数据的发送和接收 , 避免拥塞 , 滑动窗口协议是最常见的方法 。虽然逻辑链路层的功能比较单一 , 但是这些功能都是环环相扣的 , 如何让这些功能协调统一以达到高效运作是逻辑链路层面临的主要问题 。
3 网络层
网络层是Ad Hoc网络中最重要的一层 , 大量具有Ad Hoc特点的功能都要在网络层实现 。网络层面临的主要问题是多跳路由协议 , 邻居节点维护等 。

;3.1邻居发现
邻居发现是网络初始化的一个基本过程 , 从节点的角度看 , 该过程是节点在最大发送功率约束和最小链路性能限制下 , 确定可以与其直接建立通信链路的邻居节点的数量和身份的过程 。
节点使用的发送功率越高 , 邻居节点数量越大 , 网络全连通能力越强 。邻居发现通过发送一定功率的探测信号来检测邻居节点数是否满足最小连接度要求 , 假如不满足 , 可以逐渐增加发送功率重复探测 。每个节点需要的邻居节点的数量依靠于网络配置和节点分布 。随节点移动性的增加 , 网络全连通的能力也不断下降 。

推荐阅读