无线传感器网络中为什么需要MAC协议

无线网络主要通过光、无线电波进行传输。大家都是通过一个共享的无线物理链路将所有用户联结起来,由排队理论知,对多个用户,也就是多址通信的接入方式有好多种,但重要的是避免多个用户碰撞,否则会产生干扰。理想的多址通信是让所有队列排成一个总队列,由信道服务。则排队的方式就需要一个协议,这个协议就是无线通信中的MAC(Medium Access Control)协议。


设计MAC协议重点考虑方面

1.节省能量
传感器节点一般是干电池、纽扣电池等供电,故电池能量难补充,提高生存周期成为最重要的一点。

2.可扩展性
传感器节点数量和分布密度等可能会变化,所以需要拓扑结构具有灵活性。

3.网络效率
它包括了公平性、实时性、网络吞吐量以及带宽利用率。


无线传感器网络能量浪费的主要原因

1.MAC协议采用竞争方式使用共享无线信道,数据产生碰撞,产生干扰。

2.节点接收和处理不必要的数据。

3.节点无需发送数据时,保持对无线信道的空闲监听。

4.控制节点之间的信道分配,控制消息太多。


MAC协议的种类

多个用户,多址接入的核心问题是:对于一个信道,多个用户产生竞争时,如何采用一些协调机制(MAC协议)。例如两种极端的方式:一种是完全自由方式,用户自由发送,但要解决碰撞后如何解决;一种是完全排序,用户被规定了详细的规则来发送,接收包。但实际上不能如此,因为MAC主要决定了通信的吞吐量、延迟等性能。

目前能缺乏一个统一的分类,按固定还是随机分配信道的方式可分成三种:

1.无线信道的时分复用(Time Division Multiple Access,TDMA)方式,给每个传感器节点分配固定的无线信道使用时段,避免节点之间的相互干扰。

2.无线信道的随机竞争方式,节点在需要发送数据时随即使用无线信道,尽量减少节点间的干扰。

3.其他MAC协议,频分复用或码分复用,实现节点间无冲突的无线信道的分配。


802.11的帧类型

主要分成三种

1.控制帧:RTS,CTS,ACK

2.管理帧:试探请求、响应、信标、认证、接触认证

3.数据帧。


IEEE 802.11 MAC层协议(基于竞争)

IEEE 802.11 MAC协议有分布式协调(Distributed Coordination Function,DCF)和点协调(Point Coordination Function,PCF)两种访问控制方式。

一、DCF:

(1)基本概念
该机制是节点(Node)共享无线信道进行数据传输的基本接入方式,它将CSMA/CA(Carrier Sense Multiple Access with Collision Avoiddance,带冲突避免的载波侦听多路访问)技术和确认(ACK)技术结合起来。它采用二进制指数回退策略(Binary Backoff Algorithm)来避免冲撞(collision / collide)。

其中CSMA/CA是一种载波感测冲突避免技术。主要通过载波信号检测来判断某一信道中的信号能量是否达到一个基准点,如果信号的强度在这基准点之下,就表示该信道未被占用,因此工作站就可使用该信道来传输。反之,若信号强度在基准点之上,则表示传输媒介目前忙碌,在这种情况之下,工作站必需延缓等待,直到发现传输媒介是空闲的才能进行传输。
(2)帧间间隔分类(IFS)
IEEE 802.11MAC协议规定了三种基本帧间间隔Interframe spacing, IFS),用来提供访问无线信道的优先级。

三种间隔分为:
1、SIFS(Short IFS):短帧间隔,使用SIFS的帧优先级最高,用于需要立即响应的服务,如ACK帧、CTS帧或者Poll帧的交互间隔。

2、PIFS(PCF IFS):PCF帧间隔。在进行PCF非竞争性接入功能时,用于获得无尽争访问周期启动时访问信道的优先级。

3、DIFS(DCF IFS):DCF帧间隔。在进行DCF竞争性接入功能时,用于发送数据帧和管理帧。
上述的优先级逐次下降。

(3)传输
根据CSMA/CA协议,当一个节点传输到一个分组时:

1.首先侦听信道状态。如果信道空闲,而且经过一个帧间间隔时间DIFS后,信道仍然空闲,则站点立即开始发送信息。
2.如果信道忙,则站点一直侦听信道直到信道的空闲时间超过DIFS。当信道空闲下来时,节点会使用二进制退避算法(Binary Backoff Algorithm),进入退避状态以免发生碰撞(collision)。

退避时间 = Random ()×aSlottime 其中,Random()是竞争窗口【0,CW】内均匀分布的为随机整数;CW是整数随机数,其值处于aCWmin到ACWmax之间;aSlottime是一个时槽时间,包括发射启动时间、媒体传播时延、检测信道的响应时间等。

节点进入退避状态时,启动一个退避计时器,当计时到达退避时间后结束退避状态。在退避状态下,只有当检测到信道空闲时才进行计时。如果信道忙,退避计时器中止计时,直到检测信道空闲时间大于DIFS后才继续计时。当多个节点推迟且进入随机退避时,利用随机函数选择最小退避时间的节点作为竞争优胜者

802.11MAC协议通过确认机制预留机制来提高性能。在主动确认机制中,当目标节点收到一个发给它的有效数据帧(DATA)时,必须向源节点发送一个应答帧(ACK),确认数据已被正常接收到。

(2)PCF:


无线传感器网络中的MAC协议相关推荐

  1. 无线传感器网络标准化进展与协议分析

    无线传感器网络作为一门面向应用的研究领域,在近几年获得了飞速发展.在关键技术的研发方面,学术界从网络协议.数据融合.测试测量.操作系统.服务质量.节点定位.时间同步等方面开展了大量研究,取得丰硕的成果 ...

  2. 无线传感器网络中的节点定位技术

    无线传感器网络中的节点定位技术 无线传感器网络中的节点定位技术 本文转载,原文链接://www.cnblogs.com/dolphin0520/archive/2013/05/03/3056789.h ...

  3. BitTorrent网络中基于Kademlia协议到DHT无服务器泛互联网搜索软件推荐

    本文转自 http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1515544 标题有点长,可能大家不理解什么意思,偶就慢慢地介绍一下, 首先, ...

  4. 【LEACH协议】基于matlab无线传感器网络LEACH与DEEC协议【含Matlab源码 2187期】

    ⛄一. 简介 1 引言 WSN 由能感知外部环境的传感器节点以自组网的形式构成,是一种分布式无线传感器网络.随着科技的进步和现代生活的需求,由于 WSN 的远程控制.信息即时传播以及低功耗等众多优点, ...

  5. Linux内核网络中数据报在协议层的处理

    1. 前言 本文主要分析数据报从 IP 协议层进入协议栈,通过udp协议层,到达 socket,最终被用户程序读取的过程.在此过程中,介绍了 IP 协议层和 UDP 协议层中监测数据和网络调优的方法. ...

  6. GSM模块_GPRS网络中使用TCP协议比使用UDP有何优势

    China移动的GPRS网络是使用的虚拟IP地址,需要通过移动的虚拟地址转换路由器进行与internet之间消息的转发,具体实现过程---NAT router得到从内网IP地址发来的请求,把该请求的I ...

  7. WSN(无线传感器网络)中的定位

    传感器网络最初的网络雏形和局域网一样,所有节点有线连接,并且有一个中心控制节点, 所有节点把数据点对点传给中心节点.随着无线通信技术的发展和进步,现在的sensor network已经发展为WSN,没 ...

  8. 无线传感器网络WSN技术、协议、距离汇总

    技术 协议 距离 WMAN IEEE802.16 五公里内 WLAN IEEE802.11 几公里内 WPAN 蓝牙IEEE802.15.4 紫蜂IEEE802.15.1 10m内

  9. 【布局优化】基于Memetic算法求解集群无线传感器网络中节能覆盖控制优化问题含Matlab源码

    1 简介 Memetic 算法是一种结合遗传算法和局部搜索策略的新型智能算法.通过与局部优化策略的结合,局部调整进化后产生的新个体,强化了算法的局部搜索能力.Memetic 算法区别于遗传算法的关键是 ...

  10. 无人机无线传感器网络中的节能数据采集(Matlab代码实现)

最新文章

  1. Jsp实现停车场管理系统
  2. VMware中安装CentOS Linux release 7.4.1708 (Core)
  3. 一站式学习Redis 从入门到高可用分布式实践(慕课)第十章 缓存设计与优化
  4. 面试总结-百度(1)
  5. oracle 云 BI,[Oracle]见习BI工程师之函数
  6. c语言vbs,我的vbs整人程序
  7. openwrt 运行程序时提示缺少libstdc++.so.6
  8. 家的N次方 经典台词
  9. Reeder 5 for Mac(RSS阅读器)
  10. 虚拟软驱_文伟_新浪博客
  11. go——垃圾回收机制(GC)
  12. 发布海外媒体稿件更好帮助企业海外营销推广
  13. 青少年怎么学计算机,青少年编程的正确学习路线
  14. android studio实现记住密码,Andriod Studio实现保存QQ密码功能(案例代码详解)
  15. python Beautiful Soup解析html页面table标签
  16. 日志收集之--将Kafka数据导入elasticsearch
  17. java仿redis对变量设置过期时间方法setex
  18. yolov5方框的颜色及粗细更改
  19. 记录nodejs使用express搭建一个api服务器程序(5)-nodejs操作SQL数据库,Sequelize和Knex
  20. 微信qq邮箱提醒 服务器繁忙,微信设置密码失败,QQ无法绑定,邮箱服务器繁忙...

热门文章

  1. c语言读取三菱plc数据,三菱plc怎么读取程序_电脑读取三菱PLC数据简单方法
  2. 用gulp-imageisux智图api压缩图片
  3. vmware虚拟机卸载教程
  4. matlab 调度算法,基于遗传算法的车辆调度问题的matlab源程序
  5. Ubuntu安装ISE14.7与Vivado2018.2
  6. 使用Phoenix连接HBASE,squirrel使用,代码连接使用Phoenix
  7. zip和rar压缩文件的区别
  8. Java-String类学习笔记
  9. proteus 安装包以及破解汉化
  10. 咸鱼3D打印—3D打印的基本流程