精华内容
下载资源
问答
  • 帧格式有哪些字段组成
    千次阅读 多人点赞
    2022-08-08 20:07:12

    目录

    数据链路层(以太网):

     链路一般分为两种:

    以太网的MAC地址:

    以太网帧格式

    Ethernet_II帧格式

    IEEE802.3帧格式

    帧格式:

    ​编辑地址解析协议(ARP):

    免费arp:

    代理arp:

    目标MAC地址没有怎么办?

    什么是单播帧?什么是组播数据帧?什么是广播帧?

    单播:

    组播:

    广播:


    数据链路层(以太网):

    所有网络层数据都必须封装在链路层以帧为单位进行转发。

     链路一般分为两种:

    1、点到点链路:即仅支持2个接口的链路,PPP , DHLC,无虚链路层地址区别不同的接口

    2、广播型链路(MA多路访问) : 允许链路上存在2个以上的接口,所以需要区别不同的接口,那么规定每个以太网接口都要有一个全球唯一但链路有效的MAC地址。

    以太网的MAC地址:

    总共48bit 组成 分为 24 bitsOUI 24bits由供应商分配
    MAC 地址有两部分组成,分别是供应商代码和序列号。其中前 24 位 代表该供应商代码,由IEEE 管理和分配。剩下的 24 位序号由厂商自己分配

    以太网帧格式

    Ethernet_II帧格式

    绝对部分应用使用的帧格式

    Ethernet_II帧类型值大于等于1536(0x600),以太网数据帧的长度在64-1518字节之间

     每一层都把上一层当成自己的数据,链路层则把网络层当成自己的数据,网络层把传输层当自己的数据,以此类推,逐层封装。

    帧的大小最小为64字节,最大为1518字节。帧的数据大小为46~1500字节。不能小于这个区间,否则这个数据不能成帧。

    IEEE802.3帧格式

    用于底层协议使用的帧格式

    IEEE802.3帧长度字段值小于等于1500(0x05DC)

    帧格式:

    Length/Type >= 1536(Ox0600)       Ethernet_ll (绝大部分应用传输数据使用的帧格式)
    Length/Type <= 1500(Ox05DC)       IEEE802.3   (底层协议使用的帧格式)

    帧长度字段大于或等于1536的是Ethernet_II的帧格式

    帧长度字段小于或等于1500的是IEEE802.3的帧格式

    例:

     下面就是抓包工具抓出来的数据包,帧的长度是316,所以是IEEE802.3格式的数据帧。(帧长度字段小于或等于1500)


    地址解析协议(ARP):

    ARP协议:是网络层协议,通过eth II 帧进行工作。

    为什么需要ARP地址解析协议?

    1、因为我们网络设备在第一次交换数据的时候,没有对方MAC地址。所以我们需要使用ARP来获取MAC地址。

    2、发送数据,要在数据链路上转发数据,需要目的的MAC地址。所以我们需要使用ARP来获取目的MAC地址。

    3、唯一性,因为IP地址可修改的逻辑地址,仅仅只能做到范围内唯一。而MAC地址,是不可修改的,且是全球唯一性的。

    所以,我们要确定数据在网络上转发给唯一的目标设备,就需要IP地址和MAC地址共同作用。英尺我们需要ARP来获取目标MAC地址,来使得我们确定设备的唯一性。

    作用:根据已知的IP地址解析获得其对应的MAC地址。没有ARP地址解析协议,互联网就无法正常的工作。

    在链路层中,帧的组成需要源MAC地址和目标MAC地址,若没有目标MAC地址,若只知道源IP目标IP则不能成帧,所以就需要ARP地址解析协议根据已知的IP地址或得相对应的MAC地址,数据帧才能组成,数据才能正常通信。

    ARP作用步骤:

    请求目标MAC地址

    封装内容:

    1、硬件类型:以太网

    2、协议类型:IPv4(0x0800)

    3、操作的动作:请求(1)/回应(2)

    4、发送者信息:MAC地址 和 IP地址

    5、接受者信息:MAC地址 和 IP地址

    ARP代理:解决广播无法到达ARP请求

    免费ARP:解决Ip地址冲突的检测技术

    免费arp:

    1、用于地址冲突检测,当接口地址变更时可以用免费arp做地址冲突检测,测试同广播域是否存在相同的IP地址。

    2、用于刷新其他主机的ARP缓存,接口MAC地址变更时发送免费ARP,用于刷新链路其他接口的ARP缓存。

    IP地址变化和MAC地址变化,都会触发免费arp的行为。但是处理机制不一样。

    原理:当修改接口地址时例如修改成1.1.1.3,该接口就会用arp发送广播问谁是1.1.1.3,若无回应,则代表地址无冲突,若出现回应(应答是单播),就代表该广播域出现相同地址,该IP地址存在冲突。

    代理arp:

    PC在没有设置网关时,访问其他的网段的主机,对目标地址发起arp请求。

    如果路由器开启了arp代理,并拥有DIP(目标地址)的路由信息,则回应arp应答。

    目标MAC地址没有怎么办?

    1、查自身的ARP缓存表(有缓存时间,时间过了就会清空缓存表),是否存在DIP的对应MAC地址信息

    例:ARP缓存表

    2、如果不存在目标IP地址对应的MAC信息,则发送ARP请求报文。

    以下是ARP请求报文:

    3、如果ARP缓存表中存在目标地址(DIP)的MAC地址,则直接发送数据

    什么是单播帧?什么是组播数据帧?什么是广播帧?

    单播:

    DMAC地址第8bit等于0的就是单播帧

    一对一有明确的目标叫单播 网络原则 只要不是自己的就不理

    组播:

    DMAC地址的第8bit等于1就是组播帧

    分类过程 只争对特地范围的人访问

    广播:

    DMAC地址全为1的就是广播帧

    知道范围内,不知道目标是谁,发送一份数据 一对多

    更多相关内容
  • 详解以太网MAC帧格式

    千次阅读 2022-03-12 16:34:37
    终端之间的通信 二、帧格式 三、Ethernet Ⅱ 帧格式 1. 各字段说明 2. 两个问题 3. 抓包示意 4. 参考标准 四、IEEE 802.3 帧格式 1. 字段说明 2. 抓包示意 3. 参考标准 一、引入 1. 前言 20 世纪60 年代以来,...

    目录

    一、引入

    1. 前言

    2. 网络通信协议

    3. 终端之间的通信

    二、帧格式

    三、Ethernet Ⅱ 帧格式

    1. 各字段说明

    2. 两个问题

    3. 抓包示意

    4. 参考标准

    四、IEEE 802.3 帧格式

    1. 字段说明

    2. 抓包示意

    3. 参考标准


    一、引入

    1. 前言

    20 世纪60 年代以来,计算机网络得到了飞速发展。各大厂商和标准组织为了在数据通信网
    络领域占据主导地位,纷纷推出了各自的网络架构体系和标准,如IBM 公司的SNA 协议,
    Novell 公司的IPX/SPX 协议,以及广泛流行的OSI 参考模型和TCP/IP协议。同时,各大厂
    商根据这些协议生产出了不同的硬件和软件。标准组织和厂商的共同努力促进了网络技术
    的快速发展和网络设备种类的迅速增长。
    网络通信中, " 协议" 和" 标准" 这两个词汇常常可以混用。同时, 协议或标准本身又常
    常具有层次的特点。一般地, 关注于逻辑数据关系的协议通常被称为上层协议, 而关注于
    物理数据流的协议通常被称为底层协议。IEEE 802 就是一套用来管理物理数据流在局域网
    中传输的标准, 包括在局域网中传输物理数据的802.3 以太网标准。除以太外, 还有一些用
    来管理物理数据流在广域网中传输的标准, 如PPP ( Point-to- Poi nt Protocol ) , 高级数
    据钅连路控制HDLC ( High-LeveI Data Link ControI ) 。

    2. 网络通信协议

    3. 终端之间的通信

     数据包在以太网物理介质上传播之前必须封装头部和尾部信息, 封装后的数据包称为数据
    帧, 数据帧中封装的信息决定了数据如何传输。以太网上传输的数据帧有两种格式, 选择
    哪种格式由TCP/IP 协议簇中的网络层决定。

    二、帧格式

    以太网上使用两种标准帧格式。第一种是世纪80 年代初提出的DIX v2 格式, 即Ethernet
    II 帧格式。Ethernet II 后来被IEEE802 标准接纳, 并写进了IEEE 802.3x-1997 的3.2.6 节。

    Ethernet Ⅱ 帧格式


    第二种是1983 年提出的IEEE 802.3 格式。这两种格式的主要区别在于Ethernet II 格式中包
    含一个Type 字段, 标识以太帧处理完成之后将被发送到哪个上层协议进行处理, IEEE
    802.3格式中, 同样的位置是长度(length)字段。

    IEEE  802.3 帧格式


    不同的Type 字段值可以用来区别这两种帧的类型, 当Type 字段值小于等于1500 ( 或者十
    六进制的0x05DC) 时, 帧使用的是IEEE 802.3 格式。当Type 字段值大于等于1536 ( 或者
    十六进制的0x0600)时, 帧使用的是Ethernet II 格式。以太网中大多数的数据帧使用的是
    Ethernet II 格式


    以太帧中还包括源和目的MAC 地址分别代表发送者的MAC 和接收者的MAC , 此外还有
    帧校验序列字段, 用于检验传输过程中帧的完整性。

    以太网帧格式

    三、Ethernet Ⅱ 帧格式

    1. 各字段说明

    DMAC6字节目的MAC地址,IPV4为6字节,该字段确定帧的接收者。
    SMAC6字节源MAC地址,IPV4为6字节,该字段标识发送帧的工作站。
    Type2字节协议类型。取值表示了数据字段包含的高层协议。下表列出了链路直接封装的协议。
    Data变长

    数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段。

    如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。

    CRC4字节用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。这个字段只是提供检错功能,并不提供纠错功能。该效验和效验的范围为:目的地址,源地址,类型,数据等字段。CRC效验的生成多项式为:

    G(x)=X(32)+X(26)+X(23)+X(22)+X(16)+X(12)+X(11)+X(10)+X(8)+X(7)+X(5)+X(4)+X(2)+X(1)+1

    对于Type 字段来说,不同的取值代表数据字段封装的不同上层协议,具体如下:

    0x0800Internet Protocol (IP) [RFC894]
    0x0801X.75 Internet
    0x0805X.25 Level 3
    0x0806Address Resolution Protocol (ARP)[RFC7042]
    0x0808Frame Relay ARP [RFC1701]
    0x8000IS-IS
    0x8035Reverse Address Resolution Protocol (RARP) [RFC903]
    0x8137Novell NetWare IPX/SPX (old)
    0x8138Novell, Inc.
    0x8100IEEE Std 802.1Q - Customer VLAN Tag Type
    0x814CSNMP over Ethernet [RFC1089]
    0x86DDIP Protocol version 6 (IPv6) [RFC7042]
    0x8808IEEE Std 802.3 - Ethernet Passive Optical Network (EPON) [RFC7042]
    0x880BPoint-to-Point Protocol (PPP) [RFC7042]
    0x880CGeneral Switch Management Protocol (GSMP)
    0x8847MPLS (multiprotocol label switching) label stack - unicast [RFC 3032]
    0x8848MPLS (multiprotocol label switching) label stack - multicast [RFC 3032]
    0x8863PPP over Ethernet (PPPoE) Discovery Stage [RFC2516]
    0x8864PPP over Ethernet (PPPoE) Session Stage [RFC2516]
    0x888EIEEE Std 802.1X - Port-based network access control
    0x88A8IEEE Std 802.1Q - Service VLAN tag identifier (S-Tag)
    0x88B7IEEE Std 802 - OUI Extended Ethertype
    0x88C7IEEE Std 802.11 - Pre-Authentication (802.11i)
    0x88CCIEEE Std 802.1AB - Link Layer Discovery Protocol (LLDP)
    0x88E5IEEE Std 802.1AE - Media Access Control Security
    0x88F5IEEE Std 802.1Q - Multiple VLAN Registration Protocol (MVRP)
    0x88F6IEEE Std 802.1Q - Multiple Multicast Registration Protocol (MMRP)

    这个以太网V2的前导域为8B,而IEEE802.3的前导域为7B,将空余出来的一个字节用作帧起始分解符,它的位模式为10101011,这样做的目的就是为了和IEEE802.4和IEEE802.5兼容。

    还有的就是IEEE802.3帧规定的第三个字段是“长度/类型域”。当这个字段值大于1536时,表示类型,这个就是和V2以太网一样的标准了;当这个字段值小于1500时,才表示“长度”,这时,接收方无法确定对接收到的帧做如何处理,必须通过在数据部分增加一个小的LLC头部,用它来提供帧类型的

    2. 两个问题

    1.在以太网V2的MAC帧中,其首部并没有一个帧长度(或数据长度)的字段,那么MAC子层如何知道从接收到的以太网帧中取出多少字节的数据交给上一层的协议?

    D:  这是因为以太网采用曼彻斯特编码,曼彻斯特编码的一个重要特点是:在曼彻斯特的每一个码元的正中间一定有一次电压的转化(从高到低或者从低到高)。当发送方把一个以太网帧发送完毕后,就不再发送其他码元(帧之间有着一定的间隔),这样发送方适配器上的电压就不再变化,于是接收方就可以很容易地找到以太网帧的结束位置,这个位置上往前数4B(效验和),就能确定数据字段的结束位置。

    2.当数据字段不足46B时候,必须通过填充字段来扩充数据字段的长度,使其满足最小长度64B的要求,那么接收端的MAC子层在从接收到的帧中剥去首部和尾部后把数据字段交给上一层协议后,上一层协议如何识别有效的数据字段的长度?

    D: 上一层协议要识别数据帧的数据字段的有效长度,一般是通过上层协议的类似“总长度”字段推断出来的。例如,如果上层协议使用的是IP协议的时候,其IP头中就有一个“总长度字段”,因此“总长度”字段加上填充字段,应当等于MAC帧中数据字段的长度。例如,当IP数据包的总长度为42B时,填充字段共有4B,当MAC帧将46B的数据交给IP层时,IP层就把其中的4B的填充字段丢弃。

    3. 抓包示意

    抓包实例

    4. 参考标准

    标准描述
    IEEE 802.3Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications
    IEEE 802.3aeMedia Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s Operation
    RFC 894A Standard for the Transmission of IP Datagrams over Ethernet Networks
    RFC 1042A Standard for the Transmission of IP Datagrams over IEEE 802 Networks

    四、IEEE 802.3 帧格式

     

    1. 字段说明

    DMAC6目的MAC地址
    SMAC6源MAC地址
    Length2指后续数据的字节长度,但不包括CRC检验码
    DSAP1目的服务访问点
    SSAP1源服务访问点
    Data44~1498负载
    CRC4用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)

    IEEE  802.3 帧格式

    IEEE802.3 帧格式类似于Ethernet II 帧, 只是Ethernet II 帧的Type 域被802.3 帧的Length
    域取代, 并且占用了Data 字段的8 个字节作为LLC 和SNAP 字段。
    Length 字段定义了Data 字段包含的字节数。
    逻辑链路控制LLC ( Logical Link Control ) 由目的服务访问点DSAP ( Destination
    Service Access Point )、源服务访问点SSAP ( Source Service Access Point ) 和
    Control 字段组成
    SNAP ( Sub-network Access Protocol ) 由机构代码( Org Code ) 和类型( Type ) 字段组成。Org Code 三个字节都为0 。Type 字段的含义与Ethernet II 帧中的Type 字段相同。
    IEEE802.3 帧根据DSAP 和SSAP 字段的取值又可分为以下几类:
    1. 当DSAP 和SSAP 都取特定值0xff时,802.3 帧就变成了Netware-ETHERNET 帧, 用
    来承载NetWare 类型的数据。
    2. 当DSAP 和SSAP 都取特定值0xaa时,802.3 帧就变成了ETHERNET_SNAP帧
    ETHERNET_SNAP 帧可以用于传输多种协议。

    3. DSAP和SSAP取值为其它时,就是纯的IEEE 802.3 帧。

    2. 抓包示意

    3. 参考标准

    标准描述
    IEEE 802.3Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications
    IEEE 802.3aeMedia Access Control (MAC) Parameters, Physical Layers, and Management parameters for 10Gb/s Operation
    RFC 894A Standard for the Transmission of IP Datagrams over Ethernet Networks
    RFC 1042A Standard for the Transmission of IP Datagrams over IEEE 802 Networks
    展开全文
  • 802.11 MAC帧结构/帧格式

    千次阅读 2020-11-16 01:41:29
    802.11帧格式 上图是802.11帧的通用格式,具体不同类型的帧会不同的变体,802.11帧一共三种类型: 控制帧:用于竞争期间的握手通信和正向确认、结束非竞争期等; 管理帧:主要用于STA与AP之间协商、关系的控制...

    802.11帧格式

    在这里插入图片描述
    上图是802.11帧的通用格式,具体不同类型的帧会有不同的变体,802.11帧一共有三种类型:

    1. 控制帧:用于竞争期间握手通信和正向确认结束非竞争期等;
    2. 管理帧:主要用于STA与AP之间协商、关系的控制,如探测请求、认证、关联、同步等;
    3. 数据帧:用于在竞争期和非竞争期传输数据。

    Frame Control帧控制字段(2Byte)

    1. Protocol(2bit)位:协议版本由2bit构成,用以显示该帧所使用的MAC版本,目前是0;
    2. type(2bit)与subtype(4bit)位:类型与子类型位用来指定所使用的帧类型;

    1. type为00时为管理帧;
    2. type为01时为控制帧;
    3. type为10时为数据帧。
    4. subtype为三大类型下的细分。

    在这里插入图片描述
    常用的管理帧:

    1. Beacon(信标帧,AP周期性发送;STA被动扫描)
    2. Probe request、Probe response (STA发起、AP响应;STA主动扫描)
    3. Authentication、Deauthentication(STA发起、AP响应;链路认证(不同于接入认证))
    4. Association Request、Association Response、Disassociation(STA发起、AP响应;建立关联)
    5. ReassociationRequest、ReassociationResponse
    6. ATIM(Announcement Traffic Indication Message,通知传输指示消息)WLAN中的IBSS网络中没有接入点,因此无法依赖接入点来缓存帧。IBSS中的STA1如果有要传送给处于休眠状态的接收者STA2的缓存帧,就会在传递期间送出ATIM帧来通知对方有信息待传。

    常用的控制帧

    1. RTS
    2. CTS(RTS/CTS一般用于解决隐藏节点问题、还有当要传送的数据帧叫较大时,会先用RTS/CTS帧,防止冲突产生时造成较大的资源浪费。)
    3. ACK
      在这里插入图片描述
      常用的数据帧

    Ø第一组用来承载数据

    1. SimpleData
    2. Data+ CF-Ack
    3. Data+ CF-Poll
    4. Data+ CF-Ack+ CF-Poll
      Ø第二组不承载数据
    5. NullFunction
    6. CF-Ack
    7. CF-Poll
    8. CF-Ack +CF-Poll

    3. to DS与from DS(各1bit)数据帧(Data Frame)具有方向,这个方向用DS(分布式系统)字段来标识,以区分不同类型帧中关于地址的解析方式;其它的类型Frame例如Control Frame或者管理帧中,这个字段是全零。这个字段用两位表示,这两个位的含义分别表示“To Ds”和“From Ds”,大致含义如下:

    1. To DS:表示Station->AP,一般也叫Upload;
    2. From DS表示AP->Station,一般也叫Download

    这里,我们可以大致将DS看做AP,To/From是从AP的角度来考虑的。
    在这里插入图片描述
    4. Morefragments bit(1bit):这个功能类似与IP的更多片位。如果上层的封包经过MAC分段的处理,最后一个分段除外,其他片段均将此位置1

    5. Retrybit:重传帧位。任何重传的帧会将此bit置位1,以协助接收端剔除重复的帧

    6. Powermanagement bit:802.11网卡为了提高电池的使用时间,通常可以关闭网卡以节省电力。此位用来指定传送端在完成目前的基本帧交换之后是否进入省电模式,1代表工作站即将进入省电模式,而0则代表工作站一直保持清醒状态。基站发出去的帧该位必为0

    Duration/ID位(2Byte)

    Duration字段全称是Duration/ID字段,在协议中有三种用法:
    在这里插入图片描述

    1. Duration(NAV):用作NAV设置,其包含15位,所以大小是从0到2^15-1=32767(右边为高位)。当第15bit被设定为0时,duration/ID位会用来设定NAV,数值代表目前所进行的传输预计使用介质多少微秒
    2. CFP帧–免竞争期间所传送的帧第14bit为0,第15bit为1,其他位为0。因此此时duration/ID位为32768,这个值被解读为NAV。它让没有收到Beacon信标帧的STA知道这段时间是免竞争期间,以便将NAV更新为适当的数值,避免干扰到免竞争传输;
    3. PS-poll帧(Power Save省电-轮询):当14位和15为被设置为1的时候,此时Duration/ID就被认为是AID字段。这种用法一般出现在PS-Poll帧中。移动工作站STA可以关闭天线以达到省电的目的。休眠的工作站必须定期醒来。确保不至于丢失任何帧,从休眠状态醒来的工作站STA必须发送一个PS-poll帧,以便从基站取得以前暂存的帧。此外,醒来的工作站STA会在PS-poll帧中加入连接识别码(association ID,简称AID),以显示其所隶属的BSS,AID值介于1-2007(251 * 8 - 1 = 2007)之间,理论上的最大连接数

    Address(6Byte)

    1. 如果传送给实际介质的第一个 bit 为 0,该地址位代表单一工作站(单点传播[unicast]);
    2. 如果第一个 bit 为 1,该地址代表一组实际工作站,称为组播(多点传播[multicast])地址;
    3. 如果所有 bit 均为 1,该帧即属广播(broadcast)

    Address有如下五种类型:

    1. BSSID, 基本服务集标识符
    2. DA, 目的地址
    3. SA, 源地址
    4. RA, 接收端地址
    5. TA, 发送端地址

    一个 802.11 帧最多可以包含四个地址位。 这些位地址位均经过编号, 因为随着帧类型不同,这些位的作用也有所差异,由帧类型决定使用哪几个地址字段, 通常有三个, SA、DA和BSSID(常见的管理帧和数据帧都是用这三个)。具体方式如下:(当然具体的还是详细去看各个帧的具体结构)

    在这里插入图片描述
    例如,最典型的一个例子就是在WDS模式下,数据帧会有4个地址,RA,TA表示接收端和发送端,这两个地址用于无线传输途中来表示此跳的发送者和接受者;DA、SA是我们熟知的目的地址和源地址(和以太网中的一样)。
    在这里插入图片描述

    在这里插入图片描述区分RA/DA & TA/SA
    STA1–>AP1–>AP2–>STA2。
    STA1:源地址SA;STA2:目的地址DA;
    STA1–>AP1:STA1是发送端TA,AP1是接收端RA。

    1. Address 1 代表帧接收端的地址RA。 在某些情况下,接收端即为目的地,但不然如此。目的地是指负责处理帧中网络层封包的工作站。 而接收端则是负责将无线电解码为802.11 帧的工作站。如果Address 1 被设为广播或组播地址,则必须同时检查BSSID(基本服务组合识别码)。工作站只会应答来自同一个基本服务组合(basic service set,简称BSS)的广播或组播信息;至于来自其他不同BSS 者则加以忽略。
    2. Address 2 是发送端的地址TA,用来发送应答信息。在某些情况下,发送端即为源地址,但不然如此。源地址是指产生帧中网络层协议封包的工作站;而发送端则是负责将帧发送至无线链路。
    3. Address 3 位则是供基站与传输系统过滤之用,不过该位的用法,取决于所使用的网络类型。
    4. Address 4 一般不使用,只有在WDS(无线分布系统)中才会使用。

    Sequence Control顺序控制字段(2Byte)

    顺序控制位Sequence control由 4 个 bit 的 fragment number(片段编号)位以及 12 个 bit 的 sequence number(顺序编号)位所组成。
    在这里插入图片描述

    1. Sequence Number是每个帧的编号,计算方式是已传帧的计数器取4096 的模(modulo),数值范围是0-4095(2^12 = 4096),以1为步长递增。当帧被分段时,同一帧中不同分段的Sequence Number相同;
    2. Fragment Number是被分段的帧用于标识分段位置顺序的编号,数值范围是0—15,以 1为步长递增。fragment number(片段编号)在上层封包被切割处理时使用,第一个片段的编号为0。其后每个片段依序累加1,方便帧进行重组。所有帧片段都会具有相同的顺序编号,如果是重传帧,则顺序编号不会有任何改变。

    Frame Body(帧主体 0-2312Byte)

    Frame Body 称为数据位,负责在工作站之间传输上层数据(payload)。
    802.11帧最多可以传输2312个bit组的上层数据。
    在这里插入图片描述

    FCS(4Byte)

    1. 发送端对全部MAC包头和Frame Body内容进行CRC计算,计算结果即为FCS (Frame Check Sequence)值,接收端进行同样的计算。结果一致时,则接收端向发送端返回ACK;否则,丢弃帧。
    2. 在802.11网络上,通过完整性检验的帧还需接收端送出应答。例如,接收无误的数据帧必须得到正面应答,否则就必须重传
    3. 对于未能通过FCS检验的帧,802.11并未提供负面应答机制;在重传之前,工作站就必须等候应答超时。

    参考文章

    1. https://zhuanlan.zhihu.com/p/261369609
    2. https://blog.csdn.net/weixin_42353331/article/details/86527421
    3. https://blog.csdn.net/robertsong2004/article/details/42805803?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param
    4. https://www.cnblogs.com/diligenceday/p/7070821.html#_label0
    5. https://www.cnblogs.com/hunaiquan/p/5566534.html

    更新 2020/12/9

    统一MAC帧格式(采自IEEE Std 2016)
    在这里插入图片描述
    标准果然是标准呀!0 or 6,0 or 2…代表不同类型的MAC帧中,这些字段可能存在,也可能不存在。

    Qos Control字段(0 or 2)

    QoS Control字段是一个16位字段(2Byte),用于标识该帧属于TC还是TS,以及关于此帧的其他QoS相关,A-MSDU相关和Mesh相关的信息 (这些信息随帧类型,子类型、发送此帧的STA的类型的变化而变化)。

    Subtype subfield内的QoS subfield等于1的所有数据帧中都存在QoS控制字段

    NOTE1Qos Control字段只可能存在于数据帧中,目前还没遇到例外,如果理解有误,请留言交流。

    NOTE2–在数据帧中,Subtype subfield的最高有效位(MSB,most significant bit)被定义为QoS subfield,因此它占 1 Bit。如下图:
    在这里插入图片描述

    缩略语解释:
    TC:traffic category ,
    TS:

    展开全文
  • LoRaWAN协议-MAC帧格式详解

    千次阅读 2021-12-14 10:03:55
    3 MAC帧格式组成 3.1 分类 3.2 组成 4 MHDR(MAC Header) 4.1 帧类型FType 4.2 协议号Major 5 MIC消息校验码 5.1 校验算法 6 MACPayload 6.1 FHDR(Frame Header) 1)DevAddr 2)FCtrl 3)FCnt 4)...

    目录

    1 前言

    2 帧格式整体框图

    3 MAC帧格式组成

    3.1 分类

    3.2 组成

    4 MHDR(MAC Header)

    4.1 帧类型FType

    4.2 协议号Major

    5 MIC消息校验码

    5.1 校验算法

    6 MACPayload

    6.1 FHDR(Frame Header)

    1)DevAddr

    2)FCtrl

    3)FCnt

    4)FOpts

    6.2 FPort(Frame Port)

    6.3 FRMPayload

    1)加密


    1 前言

            LoRaWAN协议做为MAC层,分析其帧格式能更好的理解其功能是怎么通过命令实现的。本文梳理了MAC帧格式相关信息,为进一步了解LoRaWAN协议打下基础。

    2 帧格式整体框图

    3 MAC帧格式组成

    3.1 分类

    • 总共分为3类,其中Join-Request和Join-Accept比较特殊,仅用于空中入网过程

    3.2 组成

    • MAC帧格式由帧头MHDR,帧载荷MACPayload,消息校验码MIC组成

    4 MHDR(MAC Header)

    • 作为MAC头,共占1个字节
    • 由帧类型FType和协议号Major组成,RFU是保留字段

    4.1 帧类型FType

    • 按该字段,MAC帧共分为6种类型:入网请求帧,入网确认帧,未确认上行数据帧,未确认下行数据帧,确认上行数据帧,确认下行数据帧
    • 入网请求帧和入网确认帧用于空中入网流程
    • 确认数据帧需要接收方回复应答,未确认帧无需回复应答

    4.2 协议号Major

    • 协议版本号,现阶段固定为0x00

    5 MIC消息校验码

            共计4字节,用于MAC帧数据校验,不包括MIC自己。

    5.1 校验算法

    msg = MHDR | FHDR | FPort | FRMPayload 
    CMAC = aes128_cmac(NwkSKey, B0 | msg)
    MIC = CMAC[0..3]

    • msg:整个MAC字段除了MIC自身
    • 额外加入数据B0[16],其中有DevAddr,Dir(0-Up;1-Down),Fcnt,len(msg)
    • 使用AES128加密算法,秘钥为NwkSKey,生成密文
    • MIC取密文的前4字节作为验证码

    PS:这里补充一点,入网后才会有NwkSKey密钥,Join-Request和Join-Accept的MIC计算是通过APPKey(节点端和服务器端提前写好)加密的,后面单独说明

    6 MACPayload

    • MAC数据段由帧头FHDR,帧端口FPort,帧载荷FRMPayload3个子段组成
    • 其中只有FRMPayload字段是加密的

    • 其长度是可变的,其FRMPayload最大长度N,后续单独一篇文章分析

    6.1 FHDR(Frame Header)

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

    1)DevAddr

    • 占用4字节,用于标识当前网络的终端设备
    • 该地址由网络服务器分配

    2)FCtrl

            占用1字节,依据上行帧和下行帧其组成字段不一样

    • 下行消息

    • 上行消息

    • ADR - 当自身支持ADR时,该位会被置1。
    • ACK - 当收到确认消息时,按协议需回复应答给对方。此时该位会被置1
    • FPending - 仅用于下行链路帧中,当该位被置1时,表示服务端还有很多数据等着要发,告知Class A设备尽快发起新的一轮通信窗口
    • FOptsLen - 表示FOpts字段的长度,0~15字节
    • ADRACKReq - 用于节点测主动进行ADR降速,具体见《LoRaWAN协议-自适应速率(ADR)技术》
    • ClassB - 仅用于上行链路帧,该位置1表示节点通知服务端,自己已经使能Class B设备了,可以开始接收下行ping,具体见后续Class B设备分析

    3)FCnt

    协议背景:

    • 每个节点设备,程序内部会维持两个计数器FCntUp和FCntDown
    • FCntUp计数器在每次节点上行数据给网络服务器时,递增+1
    • FCntDown计数器在每次节点接收到网络服务器下行数据时,递增+1
    • OTAA入网成功后,即节点收到Join-Accept命令,此时程序会复位FCntUp和FCntDown

    字段作用:

    • 接收方可通过该字段,和内部的计数器进行比较同步
    • MIC(消息验证码)需要使用到该字段的值进行运算校验

    4)FOpts

    • 属于可选项,当FOptsLen非零时,使用该字段
    • 其长度由FCtrl中的FOptsLen决定,最大15字节
    • 可用于存放MAC命令,MAC命令还可以放到FRMPayload字段,但两者不能同时存放MAC命令。
    • 存放MAC命令的区别是:FOpts字段是不加密的,而FRMPayload字段是加密的

    6.2 FPort(Frame Port)

    • 当FRMPayload字段不为空时,该字段必须存在
    • 和网络协议的端口号类似,其值范围为0~255
    • FPort = 0时,表示FRMPayload字段只存放MAC命令
    • 1~223,用于应用层特殊使用
    • 224 用于LoRaWAN测试协议

    6.3 FRMPayload

            该字段作为MAC帧的有效载荷,可以存放MAC命令,也可以存放用户数据。

    1)加密

    • 如果该字段不为空,需要在MIC生成之前完成加密
    • 加密密钥依据FPort的值而定,NwkSKey和AppSKey会在入网过程中生成

    • 使用AES128进行加密

    展开全文
  • 以太网数据帧格式及ARP协议

    千次阅读 2020-08-29 15:59:52
    在物理层上看,一个完整的以太网帧有7个字段,事实上,前两个字段并不能算是真正意义上的以太网数据,它们是以太网在物理层上发送以太网数据时添加上去的。为了实现底层数据的正确阐述,物理层使用7个字节前同步码...
  • 初识Ethernet II帧格式

    千次阅读 2021-09-27 20:45:56
    常见的三种帧格式:Ethernet II 帧是最常见的帧类型,并通常直接被 IP 协议使用;非标准 IEEE 802.3 帧变种;IEEE 802.3帧(后跟逻辑链路控制(LLC) 帧)。本文仅谈对Ethernet II 帧的初步认知。 Ethernet II ...
  • MAC帧格式分析与应用

    2010-08-26 14:08:14
    本文介绍了IEEE802.3标准中规定的两种以太网帧格式,基本帧格式和扩展帧格式。得出以下结论,IEEE802.3-2005...扩展帧格式在基本帧格式上增加了“802.1Q TAG”类型和TCI字段,可实现对用户优先级和VLAN加标帧的控制。
  • 以太网帧格式学习

    2021-12-31 10:23:44
    数据链路层:将比特组合成字节,再将字节组合成,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。 网络层:提供逻辑地址,供路由器确定路径。 传输层:提供面向连接或非面向连接的数据传递...
  • HDLC帧格式

    千次阅读 2020-06-18 14:36:41
    DLMS通信链路帧基本采用HDLC帧格式,HDLC除几个特殊域,其他域均为16进制数据,这章我主要分享什么是HDLC帧格式 如图一则为基本的HDLC帧格式: 图一 接下来的每个帧的解释我将按照一次标准报文应答进行解释HDLC...
  • 以太网(802.3)帧格式

    千次阅读 2019-09-03 13:46:40
    1. 以太网帧格式 2. 字段说明 Preamble(前导码): 用于接收方与发送方的同步,7个字节,每个字节的值固定为0xAA. SFD(start frame delimiter): 帧起始定界符,用于标识一个以太网帧的开始,值固定为0xAB. DST ...
  • 计算机网络——以太网结构/格式

    千次阅读 2020-05-31 17:53:55
    可以看到,以太网由6个字段组成: 目的地址 目标适配器的MAC地址 (即物理地址,也称为链路地址、MAC地址、LAN地址。关于它的详细介绍以及其他寻址方式的介绍可以看这篇博客:计算机网络知识点——寻址(物理地址、...
  • 以太网帧格式

    2017-03-08 09:41:16
    目前,四种不同格式的以太网帧在使用,它们分别是: ●Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA。 ●Ethernet 802.3 raw:Novell在1983年公布的专用以太网...
  • MAC知识点001:以太网帧格式--IEEE802.3

    万次阅读 多人点赞 2018-10-26 20:21:56
    MAC知识点001:以太网帧格式--IEEE802.3 IEEE802.3协议以太网帧格式 字段 字段长度(字节)  说明 前导码(Preamble) 7 同步 帧开始符...
  • 常见两种帧格式,第一种是上世纪80年代初提出的DIX v2格式,即Ethernet II帧格式。Ethernet II后来被IEEE802标准接纳,并写进了IEEE802.3x-1997的3.2.6节。 第二种是1983年提出的IEEE802.3格式。 这两种格式的主要...
  • MAC格式

    万次阅读 多人点赞 2018-10-18 18:29:26
    常用的以太网MAC帧格式有两种标准,一种是DIX Etherent标准,一种是IEEE的802.3标准。两种帧的结构如图所示; 这个以太网V2的前导域为8B,而IEEE802.3的前导域为7B,将空余出来的一个字节用作帧起始分解符,它的...
  • 最近在研究CAN总线的驱动,需要详细了解数据/标准/扩展/远程/错误这几种的详细组成格式,于是收集了一下,统一放在这里进行对比和记录,以便日后需要时查阅。 1、数据-标准 CAN 标准数据如下图...
  • TCP IP 以太网帧格式,ICMP实验
  • 以太网格式

    千次阅读 2021-07-24 17:36:56
    以太网格式不止一种 以太网最初是由美国的Xerox公司与前DEC公式设计的一种通信方式,当时命名为Ethernet。之后由IEEE802.3委员会将其规范化。但是这两者之间对以太网格式定义还是有所不同的。因此,IEEE802....
  • 以太网MAC帧格式

    万次阅读 多人点赞 2018-05-06 18:48:10
     常用的以太网MAC帧格式有两种标准 :DIX Ethernet II标准,IEEE 的 802.3 标准。 Ethernet II和IEEE802.3的帧格式比较类似,主要的不同点在于前者定义的2字节为包类型,而后者定义的2字节...
  • 一、广域网、 二、广域网 与 局域网 对比、 三、PPP 协议、 四、PPP 协议 需要实现的功能、 五、PPP 协议 不需要实现的功能、 六、PPP 协议 组成部分、 七、PPP 协议 示例、 八、PPP 协议 帧格式
  • HDLC PPP FR(中继)

    千次阅读 2021-07-24 07:55:03
    学习笔记仅个人学习用,便于记录和复习,无广泛传播之意,若侵权,请联系我删除。欢迎各位大佬指正和交流。 1HDLC HDLC(High-level Data Link Control,高级数据链路控制)是一种面向比特的链路层协议,其最大...
  • 802.11 帧格式和分类详解

    千次阅读 2021-01-18 11:22:37
    802.11主要三种类型: 管理 它的主要作用是维护接入点和无线客户端之间的通信,管理框架拥有以下子类型: Authentication De-authentication Association Request Association Response ...
  • 9.以太网数据帧格式(结构)图解

    千次阅读 2021-05-09 23:57:34
    在以太网中,网络访问层的软件必须把数据转换成能够通过网络适配器硬件进行传输的格式。 以太的工作机制 当以太网软件从网络层接收到数据报之后,需要完成如下操作: 1) 根据需要把网际层的数据分解为较小的块,...
  • 用Wireshark抓包分析帧格式

    千次阅读 2021-02-05 01:12:39
    摘要:该文从Ethernet和wifi的帧格式着手进行了分析,并讨论了帧结构的各个字段的含义且对于该如何分析进行了举例,加深了读者对帧格式的理解,增强了wireshark的应用。关键词:wireshark;ethernet;wifi中图分类号...
  • WIFI基础入门--MAC基础--31.帧格式 1.帧格式
  • LoRa PHY帧格式详细介绍

    千次阅读 2021-12-25 15:52:54
    1. LoRa PHY帧格式 2. Preamble部分 2.1可变Preamble部分 2.2 Sync Word部分 2.3 SFD部分 3. Header部分 3.1 Payload数据包长度 3.2 CR因子选择 3.3 PHY中CRC存在控制 3.4 Header数据校验 4. LoRa空口...
  • IP报文格式及各字段意义

    千次阅读 2020-12-24 13:59:58
    IP数据包由报头和数据两部分组成。报头的前一部分是固定长度,共20字节。在报头的固定部分的后面是可选部分——IP选项和填充域。首部各字段的含义如下1、版本占4位,指IP协议的版本。2、报头长度占4位,该字段的单位...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,913
精华内容 11,165
热门标签
关键字:

帧格式有哪些字段组成