精华内容
下载资源
问答
  • 文章基于MAC层协作的动机,探讨了分布式协作网络中MAC层协议设计所面临的问题和挑战,基于近年来涌现的典型协作MAC协议和协议性能的分析,得出结论:只有全面考虑分布式网络的特点和需求,合理地设计协议的各个环节...
  • 摘要:阐述拥有自主MAC层协议无线网卡的构建方法和实现过程。改进了基于Intersil公司的PRISM 2系列无线网卡套片的无线局域网解决方案,使用DSP和CPLD来替代其中的MAC层控制芯片,实现自主MAC层协议的无线网卡开发。 ...
  • 以太网MAC层协议

    万次阅读 2018-08-07 17:31:11
     MAC发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过 主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过PHY...

    MAC发送模块

      MAC发送模块可将上层协议提供的数据封装之后通过MII接口发送给PHY。发送模块可接收主机接口模块的数据帧开始和数据帧结束标志,并通过 主机接口从外部存储器中读取要发送的数据,然后对数据进行封装,然后通过PHY提供的载波侦听和冲突检测信号,在信道空闲时通过MII接口将数据以4位的 宽度发送给PHY,最后由PHY将数据发送到网络上。
      发送模块由CRC生成模块(crc_gen)、随机数生成模块(random_gen)、发送计数模块(tx_cnt) 和发送状态机(tx_statem_模块等四个子模块组成。

    CRC生成模块(crc_gen)

      该模块用于计算发送数据的CRC值,并将CRC值添加到数据帧的帧校验序列字段(FCS)内。为了提高效率,并考虑到MAC与PHY的数据通道 为4位,设计时可采用4位并行CRC计算方法,算法中可使用一个次态函数,并通过循环迭代来模拟移位操作。这样,发送模块就可以在边发送数据到PHY的同 时,一边计算CRC,这样当数据发送完时,CRC值也计算完成了。

    随机数生成模块(random_gen)

      如在发送过程中检测到冲突,发送模块就先发送拥塞码(jam),随后停止发送。在下次重新发送之前,发送模块会先执行一个后退 (backoff)操作,即发送模块等待一个半随机(生成的随机数有范围限制)的时间之后再开始发送。该随机数就是由随机数生成模块产生的,它采用经典的 截断二元指数后退算法,后退的时间是一个与发生冲突次数有关的随机数,随着冲突的次数增多,用于生成该随机数的范同也将逐渐增大,以减少冲突的概率。

    发送计数模块(tx_cnt)

      发送计数模块由半字节计数器(nibcnt)、字节计数器和重试次数计数器(retrycnt)三个计数器组成。其中重试次数计数器 (retrycnt)可对发送某个帧时产生冲突次数进行计数。当计数器的值达到最大重试次数时,它将放弃重试,并丢弃发送缓冲器内的数据。同时,重试计数 器的值还被随机数生成模块用于计算下次重试之前需要后退(backoff)的时隙的个数。
      半字节计数器和字节计数器分别用于对发送过程中的半字节(bibble)和字节进行计数。
      信道忙时,发送模块会一直等待,半字节计算器一直计数。当计数到额定等待时间时(最大帧长度的两倍,即3036字节时间),系统会根据设置放弃 发送或是一直等待(可选功能)。一旦信道空闲再进入帧间间隙周期(≥96个比特时间),南半字节计数器从零开始计数。帧间间隙分为两个部分,在前2/3个 周期中,如果检测到信道忙信号,则半字节计数器复位,发送模块重新开始等待;在后l/3周期中,即使检测到信道忙信号,半字节计数器也不会复位,而是继续 计数,以保证每个站点公平的竞争信道。而当半字节计数器的值达到帧问间隙周期时,此时如果有数据等待发送,发送模块就开始发送数据。此外,半字节计算器还 用于前序码的生成和短帧的判断,在数据帧的长度小于最小帧时,发送模块必须根据系统设置进行填充或不填充。
      字节计算器还可用于滞后冲突(late collision)和超长帧的判断。当滞后冲突发生时,正在发送的数据将被丢弃。超长帧的判断则是从对帧内容(包括FCS)进行字节计数,如果字节计数 器的值大于最大有效帧的长度(1518个字节),发送模块就根据系统设置(是否支持超长帧)丢弃或发送。

    发送状态机模块(tx_statem)

      发送状态机模块是整个发送模块的核心,主要用于控制整个发送过程。发送状态机由I-die_State、Preamble_State、 Data0_State、 Da-tal_State、 PAD_State、 FCS_State、 IPG_State、Jam_State、BackOff_State、Defer_State等十个状态组成。
      系统复位后,发送模块即进入Defer_State状态,并一直检测载波侦听(CarrierSense)信号。当载波侦听信号变成无效(表示 信道空闲)时,状态机进人IPG_State状态。尔后,在等待一个帧间间隙之后,状态机则进入Idle_State状态。如果在帧间间隙的前2/3个周 期检测到信道忙信号,状态机将重新回到Defer_State状态。
      状态机进入Idle_State状态之后,发送模块将检测载波侦听信号和主机接口的发送请求。若主机模块请求发送,状态机将进入 Preamble_State状态,发送模块即通知PHY发送开始,同时开始发送前序码(7个0x5),然后发送帧起始定界符(SFD,0xd)。状态机 进入Data0_State后,发送模块将发送一个数据字节的低4位(LSB nibble),将当其进入Data1_State状态后,发送模块则发送数据字节的高4位(MSB nibble)。随后,状态机一直在data0和data1之间循环,直到数据发送完毕。当还剩一个字节时,主机模块将通过发送帧结束信号来通知发送模 块。如果数据帧的长度大于最小帧并且小于最大帧,状态机就进入FCS_State状态,此时发送模块则将CRC生成模块生成的CRC值添加到帧的FCS字 段中并发送给PHY。帧发送完之后,状态机进入Defer_State状态,之后是IPG_State和Idle_State状态。此后状态机又回到初始 状态,以重新等待新的发送请求。
      如果数据帧的长度小于最短帧,状态机就进入PAD_State状态,发送模块根据系统设置是否在数据之后来添加填充码。然后,状态机进入 FCS_State状态。如果数据帧的长度大于最大帧,而系统设置又支持发送超长帧,那么,状态机就进入FCS_State状态;如果不支持发送超长帧, 发送模块将放弃发送,状态机直接进入Defer状态,然后是IPG状态,最后回到Idle状态。
      在发送数据的过程中,发送模块会一直检查冲突检测信号(collision detected)。如果发现冲突且状态机正处于Preamble_State,状态机将在发送完前序码和SFD之后进入Jam_State,并发送拥塞 码,然后进入BackOff状态,以等待重试。之后,状态机经过Defer和IPG回到Idle状态。如果此时重试次数计数器的值没有达到额定值,发送模 块将重新开始发送刚才的帧,并将重试次数计数器的值加1;如果发现冲突且状态机处于data0、da-tal或FCS状态,而且没有超过冲突时间窗,那么 状态机将马上进入Jam状态发送拥塞码,之后经过BackOff、Defer、IPG、回到Idle,并根据重试计数器的值决定是否重新发送刚才的数据 帧;如果检测到发生冲突的时间超过了冲突时间窗,状态机将进入Defer状态,然后经过IPG到IDLE状态,并放弃重试。
      在全双工模式中发送帧时,不会进行延迟(defer),发送的过程中也不会产生冲突。此时,发送模块将忽略PHY的载波侦听和冲突检测信号。当 然,帧与帧之间仍然需遵守帧间间隙的规则。因此,全双工模式下的发送状态机没有Jam_State、。BackOff_State、 Defer_State三个状态。

    MAC接收模块

      MAC接收模块负责数据帧的接收。当外部PHY将通信信道的串行数据转换为半字节长的并行数据并发送给接收模块后,接收模块会将这些半字节数据 转换为字节数据,然后经过地址识别、CRC校验、长度判断等操作后,再通过主机接口写入外部存储器,并在主机接口模块的接收队列中记录帧的相关信息。此 外,接收模块还负责前序码和CRC的移除。
      接收模块由CRC校验模块、地址识别模块、接收计数器模块和接收状态机模块等四部分组成。
      接收模块中的CRC校验模块可通过检查输入帧的CRC值来验证帧的正确性。其算法与CRC生成模块相同。
      地址识别模块用于决定是否接收收到的帧,接收模块首先接收输入帧而不管目的地址,随后由地址识别模块检查帧中的目的地址。若MAC被设置为混杂模式(Promiscuous mode)且目的地址为广播地址,同时允许接收广播帧,帧则被接收。否则,帧被丢弃。
      接收计数器模块由字节计数器(Bytecnt)和帧间间隙计数器(IFGcnt)组成。字节计数器在接收帧过程中将对字节进行计数,以用于识别 帧中的各个字段(前序码、目的地址字段、数据、FCS等)以及判断超长帧。帧间间隙计数器则对两帧之间的间隔时间进行计数,以用于判断下一帧数据的开始。 IEEE 802.3规定,两帧之间的间隔至少必须为96个比特时间(10 Mbps中为9 600ns,100 Mbps中为960 ns)。如果两帧之间的间隔小于要求,帧将被丢弃。
      接收状态机为接收模块的核心,用于控制整个接收过程。接收状态机由Idle_State、Drop_State、Preamble_State、 SFD_State、 Da-ta0_State、Data1_State等六个状态组成。
      系统复位后,状态机处于Drop_State。如果此时MII的数据有效信号(MRxDV)无效,状态机马上进入Idle_State状态,并一直处于Idle等待接收输入帧。
      当接收模块检测到数据有效信号之后,状态机将进入Preamble_State,并开始接收前序码。此后再状态机进入SFD_State,接收 一个字节的帧起始定界符,之后,根据IFGcnt计数器的值进入不同的状态。如果,IFGcnt所确定的时间大于96个比特时间,状态机将进入Data0 状态以接收字节的低4位,然后是Data1状态,并接收字节的高4位,之后又回到Data0状态。状态机就一直在这两个状态之间循环,直到数据接收完毕 (PHY清除MRxDV信号)后进入Idle,以重新等待接收新的数据;如果接收到帧起始定界符时,IFGcnt计数器所确定的时间小于96个比特时间, 那么状态机将进入Drop_State状态,并一直维持该状态直到数据有效信号结束(PHY清除MRxDV信号)。之后,状态机再同到Idle等待接收新 的数据。
      如果在接收前序码、帧起始定界符和数据期间,数据有效信号被清除,那么,状态机将回到Idle。

    MII管理模块

      MII管理模块用于控制MAC与外部PHY之间的接口,以用于对PHY进行配置并读取其状态信息。该接口由时钟信号MDC和双向数据信号MDIO组成。MII管理模块则由时钟生成模块、移位寄存器模块和输出控制模块三部分组成。
      时钟生成模块可以根据系统时钟和系统设置中的分频系数来产生MII管理模块的时钟信号MDC(10 Mbps速率时为2.5 MHz,100 Mbps速率时为25 MHz)。
      移位寄存器模块既可用于对PHY的控制数据进行写入操作,也可用于对PHY的状态信息进行读出操作。写控制数据时,移位寄存器根据其他模块的控 制信号将并行控制数据转换为串行数据;而在读状态信息时,移位寄存器则将PHY的串行数据转换为并行数据,MAC中的其他模块可将该并行数据写入适当的寄 存器。
      由于MDIO是双向信号,因此,输出控制模块就用来决定MDIO是处于输入状态还是输出状态。当MDIO处于输出状态时,移位寄存器输出的串行控制数据在经过时钟同步后发送到PHY;当MDIO处于输入状态时,移位寄存器将数据线上的串行数据转换为并行数据。

    主机接口模块

      主机接口是运行以太网的上层协议(如TCP/IP协议)与MAC控制器的接口。通过该接口,上层协议可以设置MAC的工作模式并读取MAC的状态信息。该接口还可用于上层协议与MAC之间的数据交换。
      主机接口模块内有一组寄存器,可用于存储上层协议对MAC设置的参数以及MAC的状态信息。上层协议对MAC设置的参数包括接收超短帧的使能、 添加填充码使能、持发送超长帧的使能、添加CRC校验值使能、全双工模式或半双工模式、持超长延迟(Defer)使能、混杂模式 (Promiscuous)、接收广播帧使能、发送和接收使能、中断源和中断使能、帧间间隙的长度、最大帧和最小帧的长度、重试限制和冲突时间窗、MII 地址和MII控制命令、接收和发送队列的长度以及本机MAC地址等。
      上层协议通过MAC发送和接收数据的操作主要由主机接口模块内的两个队列来进行管理,这两个队列用于对等待发送的多个帧和接收到的多个帧进行排队。
      发送队列主要记录等待发送的帧的相关信息、发送该帧时对MAC的设置以及该帧发送完之后产生的状态信息。帧的相关信息包括帧的长度、帧在外部存 储器中的地址、该帧是否准备好发送以及队列中是否还有其它帧等待发送;对MAC的设置则包括中断使能、填充使能、CRC使能;产生的状态信息包括成功发送 之前的重试次数、由于达到重试限制而放弃发送、发送时产生的滞后冲突以及成功发送之前发生过的延迟。
      接收队列主要对接收到的数据帧进行排队并记录每个接收到的帧信息。这些信息包括帧的长度、是控制帧还是普通数据帧、帧中包含无效符号、接收到的 帧太长或太短、发生CRC错误、接收的过程中发生滞后冲突、帧是否接收完、队列中是否还有其它已接收到的帧以及帧存储在外部存储器中的地址等。该位同时队 列中还有针对每个帧的设置位,用来设置是否在接收到帧时产生中断。
      发送队列和接收队列的长度都可以在控制寄存器中进行设置。

    展开全文
  • TD-LTE宽带多媒体集群系统基站侧MAC层协议设计与实现——TD-LTE基站侧MAC层协议设计与实现
  • WiMAX网络MAC层协议研究,陈威,阙大顺,论文着重研究的是IEEE802.16的媒体接入控制(MAC)层组成,服务质量QoS参数,及MAC层的带宽调度,能否采用一种有效的MAC层带宽调度架构是十
  • lte mac层协议

    2018-06-01 10:40:21
    lte mac层标准协议学习,由助于新手了解mac层相关的东西
  • 无线传感器网络MAC层协议的分析比较、电子技术,开发板制作交流
  • zigbee网络的MAC层协议规范.doc
  • 网络协议是无线传感器网络(WSN)的核心分支,MAC层协议对无线传感器网络的性能有很大的影响;对于语音应用,无线音频网络(WVN)必须提供有限带宽下的高实时性和高准确度,用来传输大量的音频数据。针对特殊的应用环境和...
  •  WSNs的上述特性和应用促使其MAC层协议与传统的无线MAC层协议在许多方面不同,其主要目标是节能和自组织,而每个节点的公平和时延是次要的。本文的第三部分将分类介绍几种为WSNs设计的MAC层协议。   2、MAC层...

    无线通信分析现状


        1、引言(Introduction)  

        无线传感器网络(Wireless Sensor Networks,WSNs)是由大量的集成了传感器、数据处理单元和通信模块的微小节点构成的全分布式的自组织网络[1]。由于数量众多,传感器节点通常随机投放在监测区域内,并且很难更换电源。通常相邻节点间距离很短,适于采用低功率的多跳通信模式,节省功耗的同时增强了通信的隐蔽性和抗干扰性。由于WSNs具有易扩展、自组织、分布式结构、健壮性和实时性等特点,使其在军事、建筑、农业、环境监测、医疗等领域有着传统网络无法比拟的优势[2-6],必将开发出许多有价值的应用。同时这些独特要求和制约因素也为WSNs的研究提出了新的技术问题,其中如何有效地延长网络的生命周期成为研究WSNs的核心问题。 
        信道接入技术是用于建立可靠的点到点、点到多点或多点共享的通信链路技术。如何控制共享信道的接入,是数据链路层的介质接入控制(Medium Access Control,MAC)子层的主要任务。 
        WSNs的上述特性和应用促使其MAC层协议与传统的无线MAC层协议在许多方面不同,其主要目标是节能和自组织,而每个节点的公平和时延是次要的。本文的第三部分将分类介绍几种为WSNs设计的MAC层协议。 
        2、MAC层协议面临的问题和挑战 (Problems and challenges for MAC protocol) 
        传统的MAC层协议的设计目标是最大化吞吐量、最小化时延并且提供公平性。而为WSNs设计的MAC层协议关注的是最小化能耗,这就决定了它要适度地减小吞吐量和增加时延。由于WSNs的节点总是协作完成某应用任务,所以公平性通常不是主要问题。另外,WSNs的一些典型应用(如战场目标跟踪)也对其MAC层协议的设计提出了不同于传统无线网络的要求。其中一些主要问题归纳如下 
    能量受限  
        WSNs的基本特征就是能量受限。MAC层协议要尽可能地节约能源,如减少冲突和串音、降低占空比和尽量避免长距离通信。协议中还应包括折衷机制,使用户可以在节能和提高吞吐量、降低延迟之间做出选择[7]。另外,协议设计者应该注意能量不是随时可用的。因为节点可能处于睡眠状态或者由于不可知的原因死亡。 
    实时性  
        WSNs经常被应用于军事、医疗等对实时性要求很高的领域,及时地检测、处理和传递信息是其不可缺少的要求。MAC层应和其它层合作提供实时保证。 
    分布式算法  
        由于WSNs的节点计算能力和存储能力受限,需要众多节点协同完成某应用任务,所以MAC层协议应该运行分布式的算法。这也是有效避免某些节点的死亡造成网络瘫痪的需要。 
    灵活性  
        WSNs针对不同的应用显示出了不同的网络特性,MAC层协议应该能适应不同应用的各种流量模式。 
    各性能间的平衡  
        MAC层协议的设计需要在各种性能间取得平衡。各性能间的平衡往往比单个性能的表现更重要。因为一个不平衡的协议即使在实验室表现好,也可能在实际环境中表现很差。比如,一个协议如果太频繁地关闭无线收发装置来节能,不仅使实时性和可靠性受到影响,包丢失引起的重传也会反过来影响节能的效果。 
        3、典型的MAC层协议(Some typical MAC protocols in WSNs) 
        现有的MAC层协议大体可以分为固定分配类和基于竞争类。以下分别介绍其中的一些典型协议。 
        3.1 固定分配类MAC层协议 
        原有的固定分配类MAC层协议主要有频分多址接入(FDMA)、时分多址接入(TDMA)、码分多址接入(CDMA)三种。 
        FDMA是将频带分成多个信道,不同节点可以同时使用不同的信道。TDMA是将一个时间段内的整个频带分给一个节点使用。相对于FDMA,TDMA通信时间较短,但网络时间同步的开销增加。CDMA是固定分配方式和随机分配方式的结合,具有零信道接入时延、带宽利用率高和统计复用性好的特点,并能降低隐藏终端问题的影响,但其完全集中式的信道分配和基站的高复杂性,使其不适用于全分布的WSN中。针对WSNs特点,本部分将介绍以下几种基于固定分配类的MAC方案。 
    SMACS协议和EAR算法  
        SMACS(Self-Organizing Medium Access Control for Sensor Networks)协议[8]是分布式的协议,无需任何全局或局部主节点,就能发现邻节点并建立传输/接收调度表。链路由随机选择的时隙和固定的频率组成。虽然各子网内邻节点通信需要时间同步,但全网并不需要同步。在链接阶段使用一个随机唤醒机制,在空闲时关掉无线收发装置,来达到节能的目的。EAR(Eavesdrop-And-Register)算法[8]用来为静止和移动的节点提供不间断的服务。SMACS的缺点是从属于不同子网的节点可能永远得不到通信的机会。EAR算法作为SMACS协议的补充,但EAR算法只适用于那些整体上保持静止,且个别移动节点周围有多个静止节点的网络。 
    TDM- FDM  
        这是一个时分复用TDMA和频分复用FDMA的混合方案[9]。在节点上维护着一个特殊的结构帧,类似于TDMA中的时隙分配表,节点据此调度它与相邻节点间的通信。FDMA技术提供的多信道,使多个节点之间可以同时通信,有效地避免了冲突。由于预先定义的信道和时隙分配方案限制了对空闲时隙的有效利用,使得在业务量较小时信道利用率较低。 
      
    DE-MAC  
        DE-MAC(Distributed Energy-aware MAC) [10]的中心内容是让节点交换能级信息。它执行一个本地选举程序来选择能量最低的节点为“赢者”,使得这个“赢者”比其邻节点具有更多的睡眠时间,以此在节点间的平衡能量,延长网络的生命周期。且这个选举程序与TDMA时隙分配集成到一起,从而不影响系统的吞吐量。DE-MAC用选举包和无线收发装置的能量状态包来交换能量信息,节点由能量信息来决定占有传输时隙的数量。各节点为每个邻节点维持一个表明其无线收发装置能量状态的变量,此信息用来设定其接收器接收邻居的包。当一节点比原来的“赢者”能量值低时,它进入选举阶段。处于选举阶段的节点向所有邻节点发送它的当前能量值,并收集它们的投票。如果邻节点的能值都比此节点高,它将收到所有邻节点的正选票。此节点占有当前时隙,或者发送数据,或者进入睡眠。协议的缺点是传感器节点只在自己占有时隙且无传输时,才能进入睡眠。而在其邻节点占有的时隙里,就算没有数据传输,它也必须醒着。 
    TRAMA  
        TRAMA(Traffic-Adaptive Medium Access)[11]用两种技术来节能:用基于流量的传输调度表来避免可能在接收者发生的数据包冲突;使节点在无接收要求时进入低能耗模式。TRAMA将时间分成时隙,用基于各节点流量信息的分布式选举算法来决定哪个节点可以在某个特定的时隙传输,以此来达到一定的吞吐量和公平性。仿真显示,由于节点最多可以睡眠87%,所以TRAMA节能效果明显。在与基于竞争类的协议比较时,TRAMA也达到了更高的吞吐量(比S-MAC和CSMA高40%左右,比802.11高20%左右),因为它有效地避免了隐藏终端引起的竞争。但TRAMA的延迟较长,更适用于对延迟要求不高的应用。 
        3.2 基于竞争类MAC层协议 
        基于竞争类的MAC协议一般使用广播式信道,连接到这条信道上的节点都可以向信道发送广播信息。想要通信的节点遵循某种规则竞争信道,得到使用权的节点可以发送信息。传统的基于竞争类的MAC协议包括ALOHA和带有冲突检测的载波侦听多路存取CSMA等。 
    S-MAC  
        Wei Ye等在2002年提出的S-MAC(Sensor-MAC)[11]应用了三种新技术来减少能耗并支持自组织:节点定期睡眠以减少空闲监听造成的能耗;邻近的节点组成虚拟簇,使睡眠调度时间自动同步;用消息传递的方法来减少时延。S-MAC用仍采用类似IEEE 802.11中的方式来避免冲突,包括虚拟和物理的载波监听和RTS/CTS交换。与IEEE 802.11相比,S-MAC具有很好的节能特性,并且可以根据流量情况在能量和时延之间折衷。然而,每个节点的占空比都相同,没有对能量较少的节点给予保护。另外,虚拟簇技术还有待深入研究,同步调度会对能耗有很大的影响。 
    T-MAC  
        T-MAC(Timeout-MAC)[13]在S-MAC的基础上引入适应性占空比,来应付不同时间和位置上负载的变化。它动态地终止节点活动,通过设定细微的超时间隔(fine-grained timeouts)来动态地选择占空比。减少了闲时监听浪费的能量,但仍保持合理的吞吐量。T-MAC通过仿真,与典型无占空比的CSMA和占空比固定的S-MAC比较,发现不变负载时T-MAC和S-MAC节能相仿(最多节约CSMA的98%);但在简单的可变负载的场景,T-MAC在5个因数上胜过S-MAC。仿真中存在早睡(early sleeping)问题,虽然提出了一些解决办法,但仍未在实践中得到验证。 
    MD  
        对于许多应用,运行能耗远大于待机能耗,故Edgar H. Callaway提出通过减少占空比来获得低能耗和高电池寿命的MD(Mediation Device)协议[2]。其中,节点在99.9%的时间处于睡眠,在醒来时发出询问信标。MD作为一个不停活动的仲裁者,通过接收有信息传输节点发出的RTS和目标节点的询问信标,协调两个节点暂时同步来传输数据。出于节能的考虑,又提出了分布式MD协议,即节点随机成为MD。这样每个节点的平均占空比仍可保持很低,整个网络保持低功耗、低成本的异步网络。并且由于MD的功能是在所有网络节点中随机分布的,无需精确布置某种专用的MD来保护网络分割。但是,由于节点必须等待临近的节点成为MD才能传输,时延将会增加。对于一些要求很低信息时延的应用,采用及时设置邻节点成为MD的方法来最小化时延,但又增加了能耗。另外,由于占空比低,没有过于考虑通道访问的问题。 
        总的来说,基于固定分配类协议提供了可公平使用的信道,并且如果配备一个适当的调度算法,也可以很好的避免冲突。但许多协议需要使用全局信息来进行调度,这使得它们在大多数WSNs中不可用[14]。基于竞争的协议可以大幅度减少冲突的机会,从而节约了能源。但它们通常很难保证实时性要求,适用于一些对可预见性要求不高的网络。 
        4、结束语(Conclusion) 
        WSNs自身的特点及其各种应用的要求,导致了传统的无线协议很难在WSNs中适用,这也对MAC层协议的研究提出了挑战。本文阐述了近年来针对WSNs所设计的一些MAC层协议,并比较了它们的优缺点,为其进一步的研究与改善奠定了基础。对于WSNs的MAC层协议的研究才刚刚起步,存在许多亟待解决的问题,期待人们的更多关注。
    展开全文
  • mac协议代码

    2014-05-25 13:55:21
    经过修改可以在windows平台上运行,需先安装omnet++3.3版本。
  • 基于IEEE802.11的无线Mesh网络MAC协议,莫可,,无线Mesh网络(Wireless Mesh Network, WMN)是一种高速率、高容量的多点对多点网络,是一种新型的解决“最后一英里”问题的分布式网络,可把�
  • MATLAB仿真mac协议

    2016-05-19 17:03:30
    MATLAB仿真s-mac和802.15.4,两个的
  • 以太网MAC层协议研究与FPGA实现
  • IEEE802.22标准的MAC层协议分析 论文 西安电子科技大学 宽带无线通信实验室
  • Zigbee Mac 层协议

    万次阅读 2011-03-13 15:26:00
    MAC层 功能:MAC层需要处理接入到物理无线信道等事务,并负责下列的任务: 一、 能产生网络信标(如果设备是协调器 二、 同信标保持同步 三、 支持PAN的连接和断开连接 四、 ...

    MAC

    功能:MAC层需要处理接入到物理无线信道等事务,并负责下列的任务:

    一、             能产生网络信标(如果设备是协调器

    二、             同信标保持同步

    三、             支持PAN的连接和断开连接

    四、             支持设备的安全性

    五、             信道接入采用CSMA-CA接入机制

    六、             处理和维护GTS机制

    七、             在对等的MAC实体之间提供一个可靠的通信链路

    MAC层所规定和维护的常数和属性用斜体字表示,常数通常加上前缀a,例如aBaseSlotDuration。属性前通常加上mac

     

     

    MAC层帧结构

    介质访问控制层(MAC)被称为MAC协议数据单元(MPDU),其长度不超过127个字节。它具有四种不同的帧形式,即信标帧、数据帧、确认帧和命令帧

    说明:第1个时隙是用来传输信标帧的,后面15个时隙是竞争接入期(CAP),这16个时隙组成超帧结构。而最后一个时隙也是传输信标帧,但是属于下一个超帧结构。

     

    LR-WPAN标准中允许使用超帧结构。超帧格式由协调器定义。超帧由协调器发送并受网络信标的限制(如上图),而且它还被分为16个大小相同的时隙。超帧的第一个时隙用来传输信标帧。如果协调器不希望使用超帧结构,它就不发送信标。

    信标在网络中用于设备之间的同步、区分PAN和描述超帧结构

    任何设备想要在两个信标之间的竞争接入期(contention Access periodCAP)进行通信,就必须同其他设备采用时隙免冲突载波检测多路接入CSMA-CA机制进行竞争,所有的处理必须在下一个网络信标的到达之前完成。超帧有活动和不活动部分(网络休眠区和网络活动区。在不活动部分,协调器与PAN之间不能发生联系,并进入低功耗模式

    对于应用于低延迟或需要在特定数据带宽的情况下,PAN协调器可以用活动超帧的一部分来实现,这部分称为保证时隙(Guaranteed Time Slot GTS)。保证时隙(可有多个)形成了非竞争期CFP),它始终出现在CAP之后和活动超帧之前。PAN协调器可分配七个GTS,而每个GTS时间不少于一个时隙。然而CAP的有效部分应当保留,使基于竞争的其它网络设备和新设备能接入网络。所有基于竞争的传输应当在CFP开始之前完成,同时每个工作在GTS时期的设备应当确保它的传输在下一个GTS开始和CFP的结束之前完成。

     

    GTS保证时隙:是活动超帧的一部分,为实现一些特殊应用开辟的

    CAP竞争接入期:任何设备想在此时通信,必须采用CSMA-CA竞争机制

    CFP非竞争期:由GTS组成,这段时期内不需竞争

     

    (一) 信标帧

    信标帧MPDUMAC子层产生。在信标网络中,协调器通过向网络中的所有从设备发送信标帧,以保证这些设备能够同协调器进行同步(同步工作和同步休眠,以达到网络功耗最低(非信标模式只允许ZE进行周期性休眠,ZC和所有ZR必须长期处于工作状态)。其帧结构如下图所示。

     

                          

     

    其中MHRMAC层帧头;MSDUMAC层服务数据单元,表示MAC层载荷;MFRMAC层帧尾。这三部分共同构成了MAC层协议数据单元(MPDU)MFR中包含16位帧校验序列(FCS)。当MAC层协议数据单元(MPDU)被发送到物理层(PHY)时,它便成为了物理层服务数据单元(PSDU)。如果在PSDU前面加上一个物理层帧头(PHR)便可构成物理层协议数据单元(PPDU)。如果再加上一个同步帧头(SHR),则这个数据包便成为最终在空气中传播的数据包。

     

    MSDU = 超帧域 + 未处理数据地址域 + 地址列表域 + 信标净荷域

    MHR = 帧控制域 + 信标序列号 + 寻址信息域

    MFR = 16bit的帧校验序列FCS

     

    MPDU = MHR + MSDU + MFR 

    MAC协议数据单元 = MAC帧头 + MAC服务数据单元 + MAC帧尾

     

    PPDU = PHR + PSDU + PFR 

    物理层协议数据单元 = 物理层帧头 + 物理层数据单元 + 物理层帧尾

     

    空气中最终传播的数据包 = PPDU + 同步帧头SHR

     

    (二) 数据帧

    数据帧由高层(应用层)发起,在ZigBee设备之问进行数据传输的时候,要传输的数据由应用层生成,经过逐层数据处理后发送给MAC层,形成MAC层服务数据单元(MSDU)。通过添加MAC层帧头信息和帧尾,便形成了完整的MAC数据帧MPDU,其帧结构如下图所示。

                    

    应用层生成要传输的数据——>逐层数据处理——>MSDU——>添加MHRMFR——>MPDU——>PSDU——>添加SHRPHR——>PPDU

     

    SHR = 前导码序列 + SFD

    PHR = PSDU长度值

     

    (三) 应答帧

    应答帧由MAC子层发起。为了保证设备之问通信的可靠性,发送设备通常要求接收设各在接收到正确的帧信息后返回一个应答帧,向发送设备表示已经正确的接收了相应的信息。其帧结构如下图所示。MAC子层应答帧由MHRMFR组成。MHR包括MAC帧控制域和数据序列号;MFR16bitFCS组形成。

                                 

                          

    同样,MPDU传到物理层就形成物理应答帧的净载荷,即PSDU。在PSDU前面加上SHRPHR就形成PPDU。其中SHR由前导码序列和SFD域构成;PHRPSDU的长度值域构成。

    (四)命令帧

    MAC命令帧由MAC子层发起。在ZigBee网络中,为了对设备的工作状态进行控制,同网络中的其他设备进行通信,MAC层将根据命令类型生成相应的命令帧。其帧结构如下图所示。

                              

     

     

    MSDU = 命令类型域 + 数据域(命令净载荷)

    MHR = MAC帧控制域 + 数据序列号  + 寻址信息域

    MFR = 16bitFCS

    MPDU = MHR + MSDU + MFR

    同样,MPDU传到物理层就形成物理层命令帧的净载荷,即PSDU。在PSDU前面加上SHRPHR就形成PPDU。其中中SHR由前导码序列(保证接收机和符号同步)和SFD域构成;PHRPSDU的长度值域构成。

     

    展开全文
  • ZigBee的MAC层协议规范-李群20071018.ppt
  • 网络协议之从物理层到MAC层

    千次阅读 多人点赞 2018-08-18 19:21:31
    第一(物理) 使用路由器,是在第三上。我们先从第一物理开始说。 物理能折腾啥?现在的同学可能想不到,我们当时去学校配电脑的地方买网线,卖网线的师傅都会问,你的网线是要电脑连电脑啊,还是电脑...

    第一层(物理层)
    使用路由器,是在第三层上。我们先从第一层物理层开始说。
    物理层能折腾啥?现在的同学可能想不到,我们当时去学校配电脑的地方买网线,卖网线的师傅都会问,你的网线是要电脑连电脑啊,还是电脑连网口啊?

    我们要的是电脑连电脑。这种方式就是一根网线,有两个头。一头插在一台电脑的网卡上,另一头插在另一台电脑的网卡上。但是在当时,普通的网线这样是通不了的,所以水晶头要做交叉线,用的就是所谓的1-3、2-6 交叉接法。

    水晶头的第 1、2 和第 3、6 脚,它们分别起着收、发信号的作用。将一端的 1 号和 3 号线、2 号和 6 号线互换一下位置,就能够在物理层实现一端发送的信号,另一端能收到。

    当然电脑连电脑,除了网线要交叉,还需要配置这两台电脑的 IP 地址、子网掩码和默认网关。这三个概念上一节详细描述过了。要想两台电脑能够通信,这三项必须配置成为一个网络,可以一个是 192.168.0.1/24,另一个是 192.168.0.2/24,否则是不通的。

    这里我想问你一个问题,两台电脑之间的网络包,包含 MAC 层吗?当然包含,要完整。IP 层要封装了 MAC 层才能将包放入物理层。

    到此为止,两台电脑已经构成了一个最小的局域网,也即LAN。

    如果有三个人有三台电脑,怎么把三台电脑连在一起呢?
    先别说交换机,当时交换机也贵。有一个叫作Hub的东西,也就是集线器。这种设备有多个口,可以将宿舍里的多台电脑连接起来。但是,和交换机不同,集线器没有大脑,它完全在物理层工作。它会将自己收到的每一个字节,都复制到其他端口上去。这是第一层物理层联通的方案。

    第二层(数据链路层)
    你可能已经发现问题了。Hub 采取的是广播的模式,如果每一台电脑发出的包,宿舍的每个电脑都能收到,那就麻烦了。这就需要解决几个问题:

    这个包是发给谁的?谁应该接收?
    大家都在发,会不会产生混乱?有没有谁先发、谁后发的规则?
    如果发送的时候出现了错误,怎么办?
    这几个问题,都是第二层,数据链路层,也即 MAC 层要解决的问题。MAC的全称是Medium Access Control,即媒体访问控制。控制什么呢?其实就是控制在往媒体上发数据的时候,谁先发、谁后发的问题。防止发生混乱。这解决的是第二个问题。这个问题中的规则,学名叫多路访问。有很多算法可以解决这个问题。就像车管所管束马路上跑的车,能想的办法都想过了。

    比如接下来这三种方式:

    方式一:分多个车道。每个车一个车道,你走你的,我走我的。这在计算机网络里叫作信道划分;

    方式二:今天单号出行,明天双号出行,轮着来。这在计算机网络里叫作轮流协议;

    方式三:不管三七二十一,有事儿先出门,发现特堵,就回去。错过高峰再出。我们叫作随机接入协议。著名的以太网,用的就是这个方式。

    解决了第二个问题,就是解决了媒体接入控制的问题,MAC 的问题也就解决好了。这和 MAC 地址没什么关系。

    接下来要解决第一个问题:发给谁,谁接收?这里用到一个物理地址,叫作链路层地址。但是因为第二层主要解决媒体接入控制的问题,所以它常被称为MAC 地址。
    解决第一个问题就牵扯到第二层的网络包格式。对于以太网,第二层的最开始,就是目标的 MAC 地址和源的 MAC 地址。
    这里写图片描述
    接下来是类型,大部分的类型是 IP 数据包,然后 IP 里面包含 TCP、UDP,以及 HTTP 等,这都是里层封装的事情。

    有了这个目标 MAC 地址,数据包在链路上广播,MAC 的网卡才能发现,这个包是给它的。MAC 的网卡把包收进来,然后打开 IP 包,发现 IP 地址也是自己的,再打开 TCP 包,发现端口是自己,也就是 80,而 nginx 就是监听 80。

    于是将请求提交给 nginx,nginx 返回一个网页。然后将网页需要发回请求的机器。然后层层封装,最后到 MAC 层。因为来的时候有源 MAC 地址,返回的时候,源 MAC 就变成了目标 MAC,再返给请求的机器。

    对于以太网,第二层的最后面是CRC,也就是循环冗余检测。通过 XOR 异或的算法,来计算整个包是否在发送的过程中出现了错误,主要解决第三个问题。

    这里还有一个没有解决的问题,当源机器知道目标机器的时候,可以将目标地址放入包里面,如果不知道呢?一个广播的网络里面接入了 N 台机器,我怎么知道每个 MAC 地址是谁呢?这就是ARP 协议,也就是已知 IP 地址,求 MAC 地址的协议。
    这里写图片描述
    这里写图片描述
    广而告之,发送一个广播包,谁是这个 IP 谁来回答。具体询问和回答的报文就像下面这样:
    这里写图片描述
    为了避免每次都用 ARP 请求,机器本地也会进行 ARP 缓存。当然机器会不断地上线下线,IP 也可能会变,所以 ARP 的 MAC 地址缓存过一段时间就会过期。

    局域网
    好了,至此我们宿

    这种组网的方法,对一个宿舍来说没有问题,但是一旦机器数目增多,问题就出现了。因为 Hub 是广播的,不管某个接口是否需要,所有的 Bit 都会被发送出去,然后让主机来判断是不是需要。这种方式路上的车少就没问题,车一多,产生冲突的概率就提高了。而且把不需要的包转发过去,纯属浪费。看来 Hub 这种不管三七二十一都转发的设备是不行了,需要点儿智能的。因为每个口都只连接一台电脑,这台电脑又不怎么换 IP 和 MAC 地址,只要记住这台电脑的 MAC 地址,如果目标 MAC 地址不是这台电脑的,这个口就不用转发了。

    谁能知道目标 MAC 地址是否就是连接某个口的电脑的 MAC 地址呢?这就需要一个能把 MAC 头拿下来,检查一下目标 MAC 地址,然后根据策略转发的设备,按第二节课中讲过的,这个设备显然是个二层设备,我们称为交换机。

    交换机怎么知道每个口的电脑的 MAC 地址呢?这需要交换机会学习。

    一台 MAC1 电脑将一个包发送给另一台 MAC2 电脑,当这个包到达交换机的时候,一开始交换机也不知道 MAC2 的电脑在哪个口,所以没办法,它只能将包转发给除了来的那个口之外的其他所有的口。但是,这个时候,交换机会干一件非常聪明的事情,就是交换机会记住,MAC1 是来自一个明确的口。以后有包的目的地址是 MAC1 的,直接发送到这个口就可以了。

    当交换机作为一个关卡一样,过了一段时间之后,就有了整个网络的一个结构了,这个时候,基本上不用广播了,全部可以准确转发。当然,每个机器的 IP 地址会变,所在的口也会变,因而交换机上的学习的结果,我们称为转发表,是有一个过期时间的。

    总结
    有三个重点需要你记住:
    第一,MAC 层是用来解决多路访问的堵车问题的;
    第二,ARP 是通过吼的方式来寻找目标 MAC 地址的,吼完之后记住一段时间,这个叫作缓存;
    第三,交换机是有 MAC 地址学习能力的,学完了它就知道谁在哪儿了,不用广播了。

    展开全文
  • 5G通信协议MAC 简介)

    千次阅读 2020-10-05 17:17:40
    目录1.MAC层结构2.MAC层的功能2.1 通道的映射2.2 复用/解复用2.3 HARQ2.3.1 下行 1.MAC层结构 MAC子层位于网络结构中的数据链路层。 在L2层包括了MAC、RRC、PDCP、SDAP四个子层。 2.MAC层的功能 MAC层的服务和功能...
  • [4G&5G专题-54]:L2 MAC层-架构概述

    千次阅读 2021-03-05 14:44:17
    第2章 MAC层协议栈 2.1 MAC层协议示意图 2.2 L2 MAC两大部分组成 第3章 MAC层信道映射 第1章 RAN协议栈 第2章 MAC层协议栈 2.1 MAC层协议示意图 2.2 L2 MAC两大部分组成 (1)MAC层帧调度 HARQ:...
  • 无线局域网80211协议的分析及其MAC层实现 无线局域网80211协议的分析及其MAC层实现
  • 二层三层网络协议-从物理层到MAC层

    千次阅读 2018-07-13 21:55:26
    网线有两种连接方式1.连接网口的2.电脑连电脑的网线的1,2和3,6脚分别起着收,发信号...就需要用 HUB连接了这是第一物理的连通方案MAC全称是 Medium Access Control,媒体访问控制控制数据发送的顺序,冲突,就类...
  • 非常棒的MAC层协议综述,作者主要针对于集中式的架构网络的MAC算法做出了总结和回顾,对于学习和带入MAC层有很大帮助
  • Contiki系统中专门从MAC层分离出RDC(Radiio Duty Cycing)层来负责控制无线收发器的开启和关闭来降低功耗。 ContikiMAC为contiki默认的RDC层协议。 ContikiMAC协议中使用的主要机制: 时间划分 快速...
  • 2.3 WSN的MAC协议

    千次阅读 2020-04-09 19:30:28
     无线通信模块是传感器节点能量的主要消耗者,而MAC直接与物理接口,即MAC协议直接控制着无线射频收发器的活动并决定着何时将数据发送出去或接收数据,所以MAC协议节能效率的好坏将严重影响着网络的生命周期...
  • TI ZigBee协议栈,MAC层的代码和文档描述
  • 以太网MAC协议--CSMA/CD协议

    千次阅读 2019-11-27 11:38:55
    以太网MAC协议–CSMA/CD协议 @(计算机网络) 为了通信的方便,以太网采用了两种重要的措施: ...区别于数据链路层协议。 所以,以太网提供的是无连接不可靠的服务。尽最大努力交付即可。 关于CSMA/...
  • 无线网络的MAC层

    千次阅读 2017-07-01 20:16:00
    无线通信中,为什么要有MAC协议?  无线网络主要通过光、无线电波进行传输。大家都是通过一个共享的无线物理链路把所有的用户联结起来。由排队理论得知,对个用户,也就是多址通信的接入方式有好多种,但是最重要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 136,126
精华内容 54,450
关键字:

mac层协议