精华内容
下载资源
问答
  • MAC帧格式

    千次阅读 2020-04-07 22:49:39
    2、MAC帧最小为64字节,目标地址+源地址+FCS(帧校验序列)占了18字节,所以IP数据报最小为46个字节 3、无效的MAC帧 ① 帧的长度不是整数个字节 ② 用收到的帧序列FCS查到有差错 ③ 数据段的长度不在46~1500...

    1、以太网最大传输单元MTU=1500

    2、MAC帧最小为64字节,目标地址+源地址+FCS(帧校验序列)占了18字节,所以IP数据报最小为46个字节

    3、无效的MAC帧

    ① 帧的长度不是整数个字节

    ② 用收到的帧序列FCS查到有差错

    ③ 数据段的长度不在46~1500字节之间

    ④ 有效的MAC帧长在64~1518之间

    ⑤ 对于检查出的无效MAC帧就简单地丢弃,以太网不负责重传丢弃的帧

    以太网的争用期定为51.2us,对于10M/s以太网,51.2us可以发送521bit数据,即64字节,所以也叫以太网的最小帧长

    5、以太网规定帧间最小间隔为9.6μs,对于10M/s以太网,相当于96bit的发送时间

    一个站在检测到总线开始空闲后还要等待9.6μs才能再次发送数据,这样做是为了使刚刚收到数据帧的接受缓存来得及清理,做好接受下一帧的准备

    展开全文
  • 以太网MAC帧格式

    万次阅读 2018-05-06 18:48:10
     常用的以太网MAC帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。 Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节为包类型,而后者定义的2字节...

      在FPGA有关的以太网设计中,FPGA实现的代码工 能工作在mac层。因此,设计FPGA网口代码时常需要对网络包进行打包和解包,这就需要相关网络协议包格式的知识。

      常用的以太网MAC帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。

      Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节为包类型,而后者定义的2字节为的长度;所幸的是,后者定义的有效长度值与前者定义的有效类型值无一相同,这样就容易区分两种帧格式了。如果值大于 1500(0x05DC),说明是以太网类型字段,EthernetII 帧格式。如果值小于等于1500,说明是长度字段,IEEE802.3 帧格式。因此类型字段值最小的是 0x0600。而长度最大为 1500。

    MAC层要求定界字符之后的内容要在64字节到1518个字节之间,其中包括14字节的目标和源MAC,4字节的CRC32值。并且报文帧之间的传递间隔要大于9.6us。

    最常用的 MAC 帧是以太网V2的格式:



    IEEE 的 802.3 标准



    类型字段 2个字节): 用来标志上一层使用的是什么协议,以便把收到的MAC帧的数据上交给上一层的这个协议;数据字段 (46-1500): 正式名称是MAC客户数据字段最小长度64 字节-18字节的首部和尾部 = 数据字段的最小长度;FCS字段 (字节):当数据字段的长度小于 46 字节时,应在数据字段的后面加入整数字节的填充字段,以保证以太网的MAC帧长不小于64 字节;在帧的前面插入的 8 字节中的第一个字段共 7 个字节,是前同步码,用来迅速实现 MAC帧的比特同步。第二个字段是帧开始定界符,表示后面的信息就是MAC帧。

    参考:

    UDP协议 收发数据的FPGA实现 verilog

    https://www.cnblogs.com/alifpga/p/7679851.html

    FPGA极客空间《internet上的网络层》



    展开全文
  • 以太网的MAC帧格式

    2019-05-21 20:32:00
    以太网的MAC帧格式 数据字段小于46字节,MAC子层会在数据字段的后面加入一个整字节的填充字段以保证以太网的MAC帧 不小于64字节 通过前同步码判断一帧开始 帧结束:电平的跳变判断 MAC层的硬件地址。硬件...

    以太网的MAC帧格式

    数据字段小于46字节,MAC子层会在数据字段的后面加入一个整字节的填充字段以保证以太网的MAC帧 不小于64字节

    通过前同步码判断一帧开始

    帧结束:电平的跳变判断

     

    MAC层的硬件地址。硬件地址又称物理地址或MAC地址,因为用于MAC帧中。
    MAC地址有48位,但通常被表示12位点分十六位进制。
    MAC地址全球唯一,由IEEE对这些地址进行管理和分配。每个地址由两部分组成,分别是供应商和序列号。其中前24位二进制代表该供应商代码。剩下的24位由厂商自己分配。
    如果48位全是1,则表明该地址是广播地址。
    如果第8位是1,则表明该地址是组播地址。

    包括三种帧:
    单播帧(一对一)
    广播帧(一对全体)
    多播帧(一对多)

     

    转载于:https://www.cnblogs.com/abcd791092881/p/10902196.html

    展开全文
  • LoRaWAN协议中文版 第4章 MAC帧格式

    万次阅读 2017-01-19 08:48:00
    LoRaWAN协议1.0中文版_第4章_MAC帧格式

    前言

    这是《LoRaWAN102》的译文,即LoRaWAN协议规范 V1.0.2 版本(2016年7月定稿)。

    我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总

    本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/


    翻译开始

    第4章 MAC帧格式

    LoRa所有上下行链路消息都会携带PHY载荷,PHY载荷以1字节MAC头(MHDR)开始,紧接着MAC载荷(MACPayload),最后是4字节的MAC校验码(MIC)。

    射频PHY层:

    Preamble PHDR PHDR_CRC PHYPayload CRC
    图5.射频PHY结构(注意 CRC只有上行链路消息中存在)

    PHY载荷:

    MHDR MACPayload MIC
    或者
    MHDR Join-Request MIC
    或者
    MHDR Join-Response MIC
    图6.PHY载荷结构

    MAC载荷:

    FHDR FPort FRMPayload
    图7.MAC载荷结构

    FHDR:

    DevAddr FCtrl FCnt FOpts
    图8.帧头结构

    图9.LoRa帧格式元素(即图5~8)

    4.1 MAC层(PHYPayload)

    Size (bytes) 1 1..M 4
    PHYPayload MHDR MACPayload MIC

    MACPayload字段的最大长度M,在第6章有详细说明。

    4.2 MAC头(MHDR字段)

    Bit# 7..5 4..2 1..0
    MHDR bits MType RFU Major

    MAC头中指定了消息类型(MType)和帧编码所遵循的LoRaWAN规范的主版本号(Major)。

    4.2.1 消息类型(MType位字段)

    LoRaWAN定义了六个不同的MAC消息类型:join request, join accept, unconfirmed data up/down, 以及 confirmed data up/down 。

    MType 描述
    000 Join Request
    001 Join Accept
    010 Unconfirmed Data Up
    011 Unconfirmed Data Down
    100 Confirmed Data Up
    101 Confirmed Data Down
    110 RFU
    111 Proprietary
    表1.MAC消息类型
    • 4.2.1.1 Join-request and join-accept 消息

    join-request和join-accept都是用在空中激活流程中,具体见章节6.2

    • 4.2.1.2 Data messages

    Data messages 用来传输MAC命令和应用数据,这两种命令也可以放在单个消息中发送。
    Confirmed-data message 接收者需要应答。
    Unconfirmed-data message 接收者则不需要应答。
    Proprietary messages 用来处理非标准的消息格式,不能和标准消息互通,只能用来和具有相同拓展格式的消息进行通信。

    不同消息类型用不同的方法保证消息一致性,下面会介绍每种消息类型的具体情况。

    4.2.2 数据消息的主版本(Major位字段)

    Major位字段 描述
    00 LoRaWAN R1
    01..11 RFU
    表2.Major列表

    注意:Major定义了激活过程中(join procedure)使用的消息格式(见章节6.2)和MAC Payload的前4字节(见第4章)。终端要根据不同的主版本号实现不同最小版本的消息格式。终端使用的最小版本应当提前通知网络服务器。

    4.3 MAC载荷(MACPayload)

    MAC载荷,也就是所谓的“数据帧”,包含:帧头(FHDR)、端口(FPort)以及帧载荷(FRMPayload),其中端口和帧载荷是可选的。

    4.3.1 帧头(FHDR)

    FHDR是由终端短地址(DevAddr)、1字节帧控制字节(FCtrl)、2字节帧计数器(FCnt)和用来传输MAC命令的帧选项(FOpts,最多15个字节)组成。

    Size(bytes) 4 1 2 0..15
    FHDR DevAddr FCtrl FCnt FOpts

    FCtrl在上下行消息中有所不同,下行消息如下:

    Bit# 7 6 5 4 [3..0]
    FCtrl bits ADR ADRACKReq ACK FPending FOptsLen

    上行消息如下:

    Bit# 7 6 5 4 [3..0]
    FCtrl bits ADR ADRACKReq ACK RFU FOptsLen
    • 4.3.1.1 帧头中 自适应数据速率 的控制(ADR, ADRACKReq in FCtrl)

    LoRa网络允许终端采用任何可能的数据速率。LoRaWAN协议利用该特性来优化固定终端的数据速率。这就是自适应数据速率(Adaptive Data Rate (ADR))。当这个使能时,网络会优化使得尽可能使用最快的数据速率。

    移动的终端由于射频环境的快速变化,数据速率管理就不再适用了,应当使用固定的数据速率。

    如果ADR的位字段有置位,网络就会通过相应的MAC命令来控制终端设备的数据速率。如果ADR位没设置,网络则无视终端的接收信号强度,不再控制终端设备的数据速率。ADR位可以根据需要通过终端及网络来设置或取消。不管怎样,ADR机制都应该尽可能使能,帮助终端延长电池寿命和扩大网络容量。

    注意:即使是移动的终端,可能在大部分时间也是处于非移动状态。因此根据它的移动状态,终端也可以请求网络使用ADR来帮助优化数据速率。

    如果终端被网络优化过的数据速率高于自己默认的数据速率,它需要定期检查下网络仍能收到上行的数据。每次上行帧计数都会累加(是针对于每个新的上行包,重传包就不再增加计数),终端增加 ADR_ACK_CNT 计数。如果直到ADR_ACK_LIMIT次上行(ADR_ACK_CNT >= ADR_ACK_LIMIT)都没有收到下行回复,它就得置高ADR应答请求位(ADRACKReq)。 网络必须在规定时间内回复一个下行帧,这个时间是通过ADR_ACK_DELAY来设置,上行之后收到任何下行帧就要把ADR_ACK_CNT的计数重置。当终端在接收时隙中的任何回复下行帧的ACK位字段不需要设置,表示网关仍在接收这个设备的上行帧。如果在下一个ADR_ACK_DELAY上行时间内都没收到回复(例如,在总时间ADR_ACK_LIMIT+ADR_ACK_DELAY之后),终端必须切换到下一个更低速率,使得能够获得更远传输距离来重连网络。终端如果在每次ADR_ACK_LIMIT到了之后依旧连接不上,就需要每次逐步降低数据速率。如果终端用它的默认数据速率,那就不需要置位ADRACKReq,因为无法帮助提高链路距离。

    注意:不要ADRACKReq立刻回复,这样给网络预留一些余量,让它做出最好的下行调度处理。

    注意:上行传输时,如果 ADR_ACK_CNT >= ADR_ACK_LIMIT 并且当前数据速率比设备的最小数据速率高,就要设置 ADRACKReq,其它情况下不需要。

    • 4.3.1.2 消息应答位及应答流程(ACK in FCtrl)

    收到confirmed类型的消息时,接收端要回复一条应答消息(应答位ACK要进行置位)。如果发送者是终端,网络就利用终端发送操作后打开的两个接收窗口之一进行回复。如果发送者是网关,终端就自行决定是否发送应答。
    应答消息只会在收到消息后回复发送,并且不重发。

    注意:为了让终端尽可能简单,尽可能减少状态,在收到confirmation类型需要确认的数据帧,需要立即发送一个严格的应答数据帧。或者,终端会延迟发送应答,在它下一个数据帧中再携带。

    • 4.3.1.3 重传流程

    当需要应答却没收到应答时就会进行重发,重发的个数由终端自己定,可能每个终端都不一样,这个参数也可以由网络服务器来设置调整。

    注意:一些应答机制的示例时序图在第18章中有提供。

    注意:如果终端设备重发次数到达了最大值,它可以降低数据速率来重连。至于后面是否再重发还是说丢弃不管,都取决于终端自己。

    注意:如果网络服务器重发次数到达了最大值,它就认为该终端掉线了,直到它再收到终端的消息。一旦和终端设备的连接出现问题时,要不要重发都取决于网络服务器自己。

    注意:在重传期间的数据速率回退的建议策略在章节18.4中有描述。

    • 4.3.1.4 帧挂起位(FPending in FCtrl 只在下行有效)

    帧挂起位(FPending)只在下行交互中使用,表示网关还有挂起数据等待下发,需要终端尽快发送上行消息来再打开一个接收窗口。

    FPending的详细用法在章节18.3。

    • 4.3.1.5 帧计数器(FCnt)

    每个终端有两个计数器跟踪数据帧的个数,一个是上行链路计数器(FCntUp),由终端在每次上行数据给网络服务器时累加;另一个是下行链路计数器(FCntDown),由服务器在每次下行数据给终端时累计。 网络服务器为每个终端跟踪上行帧计数及产生下行帧计数。 终端入网成功后,终端和服务端的上下行帧计数同时置0。 每次发送消息后,发送端与之对应的 FCntUp 或 FCntDown 就会加1。 接收方会同步保存接收数据的帧计数,对比收到的计数值和当前保存的值,如果两者相差小于 MAX_FCNT_GAP (要考虑计数器滚动),接收方就按接收的帧计数更新对应值。如果两者相差大于 MAX_FCNY_GAP 就说明中间丢失了很多数据,这条以及后面的数据就被丢掉。

    LoRaWAN的帧计数器可以用16位和32位两种,节点上具体执行哪种计数,需要在带外通知网络侧,告知计数器的位数。
    如果采用16位帧计数,FCnt字段的值可以使用帧计数器的值,此时有需要的话通过在前面填充0(值为0)字节来补足;如果采用32位帧计数,
    FCnt就对应计数器32位的16个低有效位(上行数据使用上行FCnt,下行数据使用下行FCnt)。

    终端在相同应用和网络密钥下,不能重复用相同的FCntUp数值,除非是重传。

    • 4.3.1.6 帧可选项(FOptsLen in FCtrl, FOpts)
      FCtrl 字节中的FOptsLen位字段描述了整个帧可选项(FOpts)的字段长度。

    FOpts字段存放MAC命令,最长15字节,详细的MAC命令见章节4.4。

    如果FOptsLen为0,则FOpts为空。在FOptsLen非0时,则反之。如果MAC命令在FOpts字段中体现,port0不能用(FPort要么不体现,要么非0)。

    MAC命令不能同时出现在FRMPayload和FOpts中,如果出现了,设备丢掉该组数据。

    4.3.2 端口字段(FPort)

    如果帧载荷字段不为空,端口字段必须体现出来。端口字段有体现时,若FPort的值为0表示FRMPayload只包含了MAC命令;具体见章节4.4中的MAC命令。 FPort的数值从1到223(0x01…0xDF)都是由应用层使用。 FPort的值从224到255(0xE0…0xFF)是保留用做未来的标准应用拓展。

    Size(bytes) 7..23 0..1 0..N
    MACPayload FHDR FPort FRMPayload

    N是应用程序载荷的字节个数。N的有效范围具体在第7章有定义。

    N应该小于等于:
    N <= M - 1 - (FHDR长度)
    M是MAC载荷的最大长度。

    4.3.3 MAC帧载荷加密(FRMPayload)

    如果数据帧携带了载荷,FRMPayload必须要在MIC计算前进行加密。
    加密机制是采用IEEE802.15.4/2006的AES128算法。

    默认的,加密和加密由LoRaWAN层来给所有的FPort来执行。如果加密/解密由应用层来做更方便的话,也可以在LoRaWAN层之上给特定FPorts来执行,除了端口0。具体哪个节点的哪个FPort在LoRaWAN层之外要做加解密,必须要和服务器通过out-of-band信道来交互(见第19章)。

    • 4.3.3.1 LoRaWAN的加密

    密钥K根据不同的FPort来使用:

    FPort K
    0 NwkSKey
    1..255 AppSKey
    表3: FPort列表

    具体加密是这样:
    pld = FRMPayload
    对于每个数据帧,算法定义了一个块序列Ai,i从1到k,k = ceil(len(pld) / 16):

    Size(bytes) 1 4 1 4 4 1 1
    Ai 0x01 4 x 0x00 Dir DevAddr FCntUp or FCntDown 0x00 i

    方向字段(Dir)在上行帧时为0,在下行帧时为1.
    块Ai通过加密,得到一个由块Si组成的序列S。

    Si = aes128_encrypt(K, Ai) for i = 1…k
    S = S1 | S2 | … | Sk

    通过异或计算对payload进行加解密:

    • 4.3.3.2 LoRaWAN层之上的加密
      如果LoRaWAN之上的层级在已选的端口上(但不能是端口0,这是给MAC命令保留的)提供了预加密的FRMPayload给LoRaWAN,LoRaWAN则不再对FRMPayload进行修改,直接将FRMPayload从MACPayload传到应用层,以及从应用层传到MACPayload。

    4.4 消息校验码(MIC)

    消息检验码要计算消息中所有字段。
    msg = MHDR | FHDR | FPort | FRMPayload

    MIC是按照[RFC4493]来计算:

    cmac = aes128_cmac(NwkSKey, B0 | msg)
    MIC = cmac[0…3]

    块B0的定义如下:

    Size(bytes) 1 4 1 4 4 1 1
    B0 0x49 4 x 0x00 Dir DevAddr FCntUp or FCntDown 0x00 len(msg)
    方向字段(**Dir**)在上行帧时为0,在下行帧时为1.

    翻译完


    展开全文
  • MAC 帧格式 IEEE 802.11 的MAC帧包括三部分:MAC Header,Frame body,FCS IEEE 802.11 MAC帧的最大长度2346个字节。 MAC Header:包含MAC帧的信息。 Frame Body:帧主体,来自网络层的数据,负责在STA间...
  • LoRaWAN协议解析 第4章 MAC帧格式

    万次阅读 2017-02-23 20:36:56
    LoRaWAN第4章,主要讲述了MAC帧格式,对所有涉及的字段都做了解释。帧格式是大家随手都能看到的东西,本尊作为IoT小能手,如果不能提出一些稍有深度的信息增量,就对不起这个称号了。所以,在这篇协议解析中还分享对...
  • TCP报文格式+UDP报文格式+MAC帧格式

    千次阅读 2019-06-10 11:25:00
    TCP报文格式+UDP报文格式+MAC帧格式 TCP和UDP的区别: 1)TCP是面向连接的,而UDP是无连接的 2)TCP提供可靠服务,而UDP不提供可靠服务,只是尽最大努力交付报文 3)TCP面向字节流,TCP把数据...
  • MAC帧格式: 以太网帧格式由5个字段组成,前两个字段分别是6字节长的目的地址和源地址字段,是指网卡的硬件地址(MAC地址)。第三个字段是2字节的类型字段,用来标识上一层使用的是什么协议,以便把收到的MAC帧的...
  • 2、MAC帧最小为64字节,目标地址+源地址+FCS(帧校验序列)占了18字节,所以IP数据报最小为46个字节 3、无效的MAC帧 ① 帧的长度不是整数个字节 ② 用收到的帧序列FCS查到有差错 ③ 数据段的长度不在46~1500字节之间...
  • MAC帧格式 帧控制字段 From DS和To DS字段的含义 时长、ID字段 时长字段的值小于32768时,该值被解读为以us为单位的时长,被用于更新网络分配向量NAV。如果在一个PS-POLL帧中两个高位比特被设置了,则低14位...
  • 以太网中的MAC帧格式

    2019-10-04 18:21:40
    以太网中的MAC帧格式为:前导码(7字节):使接收器建立比特同步起始定界符SFD(1字节):指示一帧的开始目的地址DA(6字节):指出要接收该帧的工作站源地址SA(6字节):指示发送该帧的工作站地址。数据字段长度...
  • PPP帧和MAC帧格式

    千次阅读 2016-10-18 10:48:41
  • 802.11 MAC帧格式

    千次阅读 2016-07-28 11:38:39
    一般的802.11 MAC帧,通常用到的是3个Address的,所以MAC头24byte。如果增加Address4,MAC头为30byte。 Frame Control字段:  1.Protocol目前为00‘b  2.Type:00’b管理帧,01’b控制帧,10‘b数据帧 ...
  • IP协议及MAC帧格式

    千次阅读 2018-05-25 18:14:33
    以太网的帧格式如下: 这里的源地址和目的地址,就是在网络传输中的Mac地址,协议类型是指把帧数据交给上一层的哪一个协议,这里有IP协议,ARP协议,RARP协议。 其中,在IP分片的时候,我们知道,超过了MTU...
  • MAC 是在MAC子层实体间交换的协议数据单元, IEEE802.3 MAC 格式如图8-14 所示
  • 第4章 MAC帧格式 LoRa所有上下行链路消息都会携带PHY载荷,PHY载荷以1字节MAC头(MHDR)开始,紧接着MAC载荷(MACPayload),最后是4字节的MAC校验码(MIC)。 射频PHY层: Preamble PHDR PHDR_CRC PHYPayload CRC 图5....
  • 以太网V2的MAC帧格式(重点): 以太网V2的 MAC 帧格式由五个字段组成,前两个字段分别为6字节长的目的地址和源地址字段;第三个字段是2字节长的类型字段,用来标志上一层使用什么协议,0x0800表示上层使用 IP 数据...
  • 以太网协议已经是非常成熟的通信技术,本文旨在在汇总以太网MAC层的协议,以便于与其他通信技术的MAC层作为比较,如4G LTE, 5G NR,特别是LTE在非授权频谱上的通信LAA LBT, 就是借鉴了无线以太网MAC层的协议规范。
  • MAC帧格式

    万次阅读 多人点赞 2018-10-18 18:29:26
    常用的以太网MAC帧格式有两种标准,一种是DIX Etherent标准,一种是IEEE的802.3标准。两种帧的结构如图所示; 这个以太网V2的前导域为8B,而IEEE802.3的前导域为7B,将空余出来的一个字节用作帧起始分解符,它的...
  • 以太网MAC帧格式

    千次阅读 2019-05-20 22:25:00
    以太网中的MAC帧格式与各字段的作用为:前导码(7字节):使接收器建立比特同步起始定界符SFD(1字节):指示一帧的开始目的地址DA(6字节):指出要接收该帧的工作站源地址SA(6字节):指示发送该帧的工作站地址...
  • 解析以太网V2MAC帧格式

    万次阅读 2018-06-08 10:59:30
    (1) 前导码和前定界符 在中设置前导码和前定界符,以便于的识别。前导码由56位(7Byte)的10101010…1010比特序列组成,每个字节都是16进制0xAA。从Ethernet物理层电路设计的角度,接受Manchester编码信号的...
  • 以太网的MAC帧(一)

    千次阅读 热门讨论 2020-08-02 18:53:10
    以太网MAC帧格式有两种标准:DIX Ethernet V2标准和IEEE 802.3标准。DIX以太网V2标准的帧格式如图: 前导码: 使接收端与发送端时钟同步,在帧的前面插入的8字节,可再分为两字段:第一个字段共7字节,是前同步码,...
  • 以太网中的MAC帧格式为:前导码(7字节):使接收器建立比特同步起始定界符SFD(1字节):指示一帧的开始目的地址DA(6字节):指出要接收该帧的工作站源地址SA(6字节):指示发送该帧的工作站地址。数据字段长度...
  • 以太网的MAC帧(二)

    千次阅读 2020-08-02 19:09:36
    常用的以太网MAC帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。 Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节为包类型,而后者定义的2字节为的长度;所幸的是,后者...
  • MAC802.11数据帧格式

    千次阅读 2015-09-15 17:42:27
    1 MAC802.11数据帧格式 首先要说明的是mac802.11的帧格式很特别,它与TCP/IP这一类协议不同,它的长度是可变的。不同功能的数据帧长度会不一样。这一特性说明mac802.11数据帧显得更加灵活,然而,也会更加复杂。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 39,633
精华内容 15,853
关键字:

mac帧格式