一、OSI七層模型
MAC屬于七層模型中的數據鏈路層(DATA LINK)

二、MAC層 包格式

前導碼、起始幀定界符 (SFD)、MAC 幀的目的地址和源地址、長度/類型字段(用于指示包含 MAC 客戶端數據的后續(xù)字段的長度或協議類型,包含填充(如果需要)的字段,以及包含循環(huán)冗余校驗值的幀校驗序列 (FCS) 字段,用于檢測接收到的 MAC 幀中的錯誤)。如果需要,添加擴展字段(僅適用于 1000 Mb/s 半雙工操作)。在這些字段中,除了 MAC 客戶端數據、填充和擴展字段外,所有字段都是固定大小的,這些字段可能包含由 MAC 的特定實現確定的最小值和最大值之間的整數個八位字節(jié)。
import:OCTER就是8bit,如 7 OCTERS就是表明PREAMBLE有7個字節(jié)的數據
(1)Preamble
Preamble 字段是一個 7 字節(jié)的字段,用于允許 PLS(PHYSICAL LAYER SIGNALING) 電路與接收到的數據包的定時達到其穩(wěn)態(tài)同步
在一段數據開始之前,會首先發(fā)送Preamble,即7個0x55
In a LAN implementation, most of the Physical Layer components are allowed to provide valid output some
number of bit times after being presented valid input signals. Thus it is necessary for a preamble to be sent
before the start of data, to allow the PLS circuitry to reach its steady state. Upon request by
TransmitLinkMgmt to transmit the first bit of a new frame, PhysicalSignalEncap shall first transmit the
preamble, a bit sequence used for physical medium stabilization and synchronization, followed by the Start
Frame Delimiter. If, while transmitting the preamble or Start Frame Delimiter, the collision detect variable
becomes true, any remaining preamble and Start Frame Delimiter bits shall be sent. The preamble pattern is:
10101010 10101010 10101010 10101010 10101010 10101010 10101010
The bits are transmitted in order, from left to right. The nature of the pattern is such that, for Manchester
encoding, it appears as a periodic waveform on the medium that enables bit synchronization. It should be
noted that the preamble ends with a “0.”(Information comes from 4.2.5 Preamble generation)
(2)Start Frame Delimiter (SFD)
SFD字段是序列 10101011(D5)。它緊跟在前導碼(Preamble)之后,MAC幀在SFD之后開始。
(3)Address
地址域包含目的地址和源地址
a) 每個地址字段的長度應為 48 位。
b) 第一位 (LSB) 是目的地址 地址類型指定位,目的地址標識為單地址或組地址。如果該位為 0,則表明該地址字段包含一個單地址。如果該位為 1,則表明地址字段包含一個組地址 。在 源地址 字段中,第一位保留并設置為 0。
c) 第二位應用于區(qū)分本地或全局管理的地址。對于全局管理地址,該位設置為 0。如果要在本地分配地址,則該位應設置為 1。
import:對于廣播地址,該位也為 1
d) 每個地址字段的每個八位字節(jié)應首先傳輸最低有效位。

MAC子層地址有兩種類型:
a) Individual Address
b) Group Address
與給定網絡上的一個或多個站相關聯的多目的地址。Group Address有兩種:
Multicast-Group Address(多播/組播 地址)
多播是一種點對多點的通信方式,其中一個或多個發(fā)送方同時發(fā)送數據包給一個特定的多播組地址,而接收方是加入該多播組的一組設備。多播組地址是一個特殊的IP地址范圍,用于標識多播組。只有加入了相應多播組的設備才能接收到發(fā)送到該組的數據包。多播組的成員可以是不同的設備,它們可以位于不同的網絡中。
Broadcast Address(廣播地址)
廣播是一種點對全網的通信方式,其中一個發(fā)送方同時向網絡中的所有設備發(fā)送數據包,以廣播的方式進行傳輸。這意味著網絡中的每個設備都能接收到廣播消息,不論其是否有意接收該消息。
import:源地址字段不由MAC子層解釋。MAC子層工作在數據鏈路層,主要負責在局域網內傳輸數據幀。MAC子層使用目標地址字段來確定接收方的物理地址,以便正確地將數據幀傳遞給目標設備。但對于源地址字段,MAC子層并不需要解釋或處理它,因為它只是用于標識發(fā)送方的物理地址。源地址字段的解釋和處理通常在網絡層或更高層次進行。例如,在IP協議中,源地址用于標識發(fā)送方的IP地址,這個工作是在網絡層進行的。源地址字段的解釋和處理取決于所使用的網絡協議和協議棧的層次結構。
(4)Length/Type
a) 如果該字段的值小于或等于1500(05DC十六進制),則Length/Type字段表示基本幀的后續(xù)MAC客戶端數據字段中包含的Mac客戶端數據字節(jié)個數(Length interpretation )
b) 如果該字段的值大于或等于1536(0600 十六進制),則 Length/Type 字段表示以太網類型
不管Length/Type是如何解釋的,如果Mac客戶端數據字段長度小于協議要求的最小長度,就會有填充字段加到Length/Type字段和FCS字段之間
(5)MAC Client Data
Mac客戶端數據字段,有三種長度的數據幀類型
a) 1500 decimal—basic frames
最常見的是基礎幀,最大長度為 1518字節(jié)
b) 1504 decimal—Q-tagged frames
用于特點場景的Q-tagged frames ,最大長度為 1522字節(jié)。IEEE 802.1Q VLAN協議用于實現虛擬局域網(VLAN)功能。它在以太網幀頭部引入了一個額外的標記字段,稱為VLAN標簽或VLAN標識符。這個標記字段用于將以太網幀劃分到不同的虛擬局域網中。因此,使用IEEE 802.1Q VLAN協議的幀類型稱為Q-標記幀(Q-tagged Frames)。

c) 1982 decimal—envelope frames
Envelope Frames 最大長度為 2000(1518 + 482)字節(jié),目的是允許包含高層封裝協議所需的額外前綴和后綴。封裝協議可以使用多達482個字節(jié)的空間。例如 IEEE 802.1 工作組(例如 Provider Bridges 和 MAC Security)定義的協議,ITU- T 或 IETF(例如 MPLS)
import:上述最大長度包括了除Preamble和SFD的其他字段
import:所有的Q-tagged frames都是envelope frames,但是envelope frames不一定是Q-tagged frames
(6)Pad
填充字段,如果小于MAC數據字段最小長度,就要填充,使其滿足MAC數據字段最小長度
(7)Frame Check Sequence (FCS)
CRC32校驗和,從起始幀之后開始計算
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1
(8)Extension
擴展字段,不包含在FCS中,通常情況下,長度為0
三、傳輸順序
除FCS以外,MAC幀,每字節(jié)首先傳輸最低有效位
四、無效的MAC幀
a) 幀長度與Length字段不一致
b) 不是8bit對齊的
c) CRC校驗錯誤
審核編輯:黃飛
?
電子發(fā)燒友App























評論