一、Medium Access Control protocol(媒质访问控制协议MAC)
1、概念:网络中的通信介质通常被大量节点共用,传输各自的数据包,而MAC协议负责协调WSN中的节点对共用介质的访问,在OSI七层模型中属于数据链路的子层。
2、功能:① 决定节点何时可以访问共享介质
② 解决发生在竞争节点间的潜在访问冲突
③ 纠正物理层的通信差错
④ 执行寻址、流量控制等任务
3、 设计考虑的因素:A:传输可靠性 B:能量效率
4、分类:① 无竞争介质访问协议:使用固定分配或动态分配的方式使每个节点互斥地访问介质。(如FDMA、CDMA)
② 基于竞争的介质访问协议:节点在传输数据前先进行协商,通过竞争访问介质。(如CSMA、ALOHA)
二、Open Systems Interconnection(开放系统互连模型OSI)
OSI模型在理论上更加清晰,但TCP/IP模型却是当前的主流,实质上也是现行标准。TCP/IP模型将OSI模型的应用层、表示层和会话层集合成为一个应用层,将数据链路层和物理层集合成为一个数据链路层,使模型变得相对简单。
作用 | OSI | 相关的网络协议 |
---|---|---|
为应用程序提供服务 | 应用层(Application) | HTTP、FTP、 NFS |
数据格式转换、数据加密 | 表示层(Presentation) | Telnet, Rlogin |
建立、管理、维护会话 | 会话层(Session) | SMTP, DNS |
建立、管理、维护端到端连接 | 传输层(Transport) | TCP、UDP |
IP选址和路由选择 | 网络层(Network) | IP、ICMP |
提供介质访问和链路管理 | 数据链路层(DataLink) | FDDI、Ethernet |
提供可靠的点到点通信 | 物理层(Physical) | IEEE802.1A、IEEE802.11 |
(物理层需要通过介质Medium实现)
TCP/IP | 与OSI模型的区别 |
---|---|
应用层 | 包含OSI中的应用层、表示层和会话层 |
传输层 | 对应OSI中的传输层 |
网络层 | 对应OSI中的网络层 |
数据链路层 | 包含OSI中的数据链路层和物理层 |
注意:如果想要详细了解请翻阅至底部查看图片。
三、Carrier Sense Multiple Access(载波监听多路访问CSMA)
1、基本思想:节点在传输数据前,先监听信道是否空闲。
2、分类:WSN中的许多基于竞争的MAC协议是基于CSMA协议及其变体版本的。
① 非持续型CSMA:当无线节点在监听到信道空闲时传输数据,信道繁忙时采取退避操作。
② 1-持续型CSMA:传输数据的节点一直处于监听信道的活动状态,当信道空闲时传输数据,如果传输过程发生碰撞时该节点采取退避操作,再尝试传输。
③ P-持续型CSMA:传输数据的节点一直处于监听信道的活动状态,当信道空闲时,节点以概率P传输数据,以概率1-P延迟此次传输,如果传输过程发生碰撞时该节点采取退避操作,再尝试传输。
(退避操作:随机等待一段时间)
四、退避时间
1、在非时隙的CSMA中,随机退避的时间是连续的。
2、在按时隙划分的CSMA中,随机退避的时间为时隙的整数倍。
(时隙是电路交换汇总信息传送的最小单位)
五、CSMA的两种基本变体
1、基于冲突检测的CSMA(CSMA/CD)
① 概念:发送者检测通信介质来确定介质是否空闲来选择传输数据。
② 应用:在有线系统中可以通过检测有线电缆上的直流信号平均电压等级来判断是否有冲突,所以一般用于有线系统。
2、基于冲突避免的CSMA(CSMA/CA)
① 概念:采用主动避免碰撞的方式来解决冲突问题。
② 应用:可以满足不易检测是否有冲突发生的系统需求,所以一般用于无线系统,因为碰撞发生在接收机端,而发送者不知道是否存在冲突。
③ 隐患:产生隐藏终端和暴露终端的问题。
六、CSMA/CA协议的技术原理
Step1: 节点监听信道,当监听到信道空闲时并不立即使用信道。
Step2: 节点先等待一个DIFS帧间距的时间,再等待一个随机退避时间,由于该协议是按时隙划分的,所以该随机退避时间是时隙的整数倍。(分布式帧间间隙DIFS:Distributed Inter-frame Space)
Step3: 为防止多个节点同时接入信道,退避时间较短的节点会占用信道。
注意点:
① 计算等待时间需要考虑DIFS帧间距的时间以及可能存在的其他节点的传输时间。
② 每个节点的退避时间都需要完全执行,即使在竞争时被其它节点抢先,但在 接下来的竞争中还得继续完成剩余的退避时间。
七、隐藏终端问题
节点B在节点A和C的通信范围内,但节点A和C互不在通信范围内(因为环境导致信号衰减),导致二者都无法监听到对方是否在发送数据,所以当A向B发送数据,C也向B发送数据的时候,节点B无法正确接收来自A和C的任何有效数据。此时,称A和C互为隐藏终端。
八、暴露终端问题
节点B正在传输数据给节点A,当节点C想要向节点D传输数据时,C监听到B正在不间断传输,因为C无法判断B是否是在给D发送数据,所以需要等待节点B传输结束。又因为节点D在B的传输影响范围之外,B的传输并不干扰D进行数据的接收,所以C的等待其实并没有必要,反而导致了信道利用率下降的问题。此时,C称为B的暴露终端。(如果C先传输数据,那么B称为C的暴露终端)