一、OSI七層模型
MAC屬于七層模型中的數(shù)據(jù)鏈路層(DATA LINK)
二、MAC層 包格式
前導(dǎo)碼、起始幀定界符 (SFD)、MAC 幀的目的地址和源地址、長度/類型字段(用于指示包含 MAC 客戶端數(shù)據(jù)的后續(xù)字段的長度或協(xié)議類型,包含填充(如果需要)的字段,以及包含循環(huán)冗余校驗值的幀校驗序列 (FCS) 字段,用于檢測接收到的 MAC 幀中的錯誤)。如果需要,添加擴(kuò)展字段(僅適用于 1000 Mb/s 半雙工操作)。在這些字段中,除了 MAC 客戶端數(shù)據(jù)、填充和擴(kuò)展字段外,所有字段都是固定大小的,這些字段可能包含由 MAC 的特定實現(xiàn)確定的最小值和最大值之間的整數(shù)個八位字節(jié)。
import:OCTER就是8bit,如 7 OCTERS就是表明PREAMBLE有7個字節(jié)的數(shù)據(jù)
(1)Preamble
Preamble 字段是一個 7 字節(jié)的字段,用于允許 PLS(PHYSICAL LAYER SIGNALING) 電路與接收到的數(shù)據(jù)包的定時達(dá)到其穩(wěn)態(tài)同步
在一段數(shù)據(jù)開始之前,會首先發(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)。它緊跟在前導(dǎo)碼(Preamble)之后,MAC幀在SFD之后開始。
(3)Address
地址域包含目的地址和源地址
a) 每個地址字段的長度應(yīng)為 48 位。
b) 第一位 (LSB) 是目的地址 地址類型指定位,目的地址標(biāo)識為單地址或組地址。如果該位為 0,則表明該地址字段包含一個單地址。如果該位為 1,則表明地址字段包含一個組地址 。在 源地址 字段中,第一位保留并設(shè)置為 0。
c) 第二位應(yīng)用于區(qū)分本地或全局管理的地址。對于全局管理地址,該位設(shè)置為 0。如果要在本地分配地址,則該位應(yīng)設(shè)置為 1。
import:對于廣播地址,該位也為 1
d) 每個地址字段的每個八位字節(jié)應(yīng)首先傳輸最低有效位。
MAC子層地址有兩種類型:
a) Individual Address
b) Group Address
與給定網(wǎng)絡(luò)上的一個或多個站相關(guān)聯(lián)的多目的地址。Group Address有兩種:
Multicast-Group Address(多播/組播 地址)
多播是一種點對多點的通信方式,其中一個或多個發(fā)送方同時發(fā)送數(shù)據(jù)包給一個特定的多播組地址,而接收方是加入該多播組的一組設(shè)備。多播組地址是一個特殊的IP地址范圍,用于標(biāo)識多播組。只有加入了相應(yīng)多播組的設(shè)備才能接收到發(fā)送到該組的數(shù)據(jù)包。多播組的成員可以是不同的設(shè)備,它們可以位于不同的網(wǎng)絡(luò)中。
Broadcast Address(廣播地址)
廣播是一種點對全網(wǎng)的通信方式,其中一個發(fā)送方同時向網(wǎng)絡(luò)中的所有設(shè)備發(fā)送數(shù)據(jù)包,以廣播的方式進(jìn)行傳輸。這意味著網(wǎng)絡(luò)中的每個設(shè)備都能接收到廣播消息,不論其是否有意接收該消息。
import:源地址字段不由MAC子層解釋。MAC子層工作在數(shù)據(jù)鏈路層,主要負(fù)責(zé)在局域網(wǎng)內(nèi)傳輸數(shù)據(jù)幀。MAC子層使用目標(biāo)地址字段來確定接收方的物理地址,以便正確地將數(shù)據(jù)幀傳遞給目標(biāo)設(shè)備。但對于源地址字段,MAC子層并不需要解釋或處理它,因為它只是用于標(biāo)識發(fā)送方的物理地址。源地址字段的解釋和處理通常在網(wǎng)絡(luò)層或更高層次進(jìn)行。例如,在IP協(xié)議中,源地址用于標(biāo)識發(fā)送方的IP地址,這個工作是在網(wǎng)絡(luò)層進(jìn)行的。源地址字段的解釋和處理取決于所使用的網(wǎng)絡(luò)協(xié)議和協(xié)議棧的層次結(jié)構(gòu)。
(4)Length/Type
a) 如果該字段的值小于或等于1500(05DC十六進(jìn)制),則Length/Type字段表示基本幀的后續(xù)MAC客戶端數(shù)據(jù)字段中包含的Mac客戶端數(shù)據(jù)字節(jié)個數(shù)(Length interpretation )
b) 如果該字段的值大于或等于1536(0600 十六進(jìn)制),則 Length/Type 字段表示以太網(wǎng)類型
不管Length/Type是如何解釋的,如果Mac客戶端數(shù)據(jù)字段長度小于協(xié)議要求的最小長度,就會有填充字段加到Length/Type字段和FCS字段之間
(5)MAC Client Data
Mac客戶端數(shù)據(jù)字段,有三種長度的數(shù)據(jù)幀類型
a) 1500 decimal—basic frames
最常見的是基礎(chǔ)幀,最大長度為 1518字節(jié)
b) 1504 decimal—Q-tagged frames
用于特點場景的Q-tagged frames ,最大長度為 1522字節(jié)。IEEE 802.1Q VLAN協(xié)議用于實現(xiàn)虛擬局域網(wǎng)(VLAN)功能。它在以太網(wǎng)幀頭部引入了一個額外的標(biāo)記字段,稱為VLAN標(biāo)簽或VLAN標(biāo)識符。這個標(biāo)記字段用于將以太網(wǎng)幀劃分到不同的虛擬局域網(wǎng)中。因此,使用IEEE 802.1Q VLAN協(xié)議的幀類型稱為Q-標(biāo)記幀(Q-tagged Frames)。
c) 1982 decimal—envelope frames
Envelope Frames 最大長度為 2000(1518 + 482)字節(jié),目的是允許包含高層封裝協(xié)議所需的額外前綴和后綴。封裝協(xié)議可以使用多達(dá)482個字節(jié)的空間。例如 IEEE 802.1 工作組(例如 Provider Bridges 和 MAC Security)定義的協(xié)議,ITU- T 或 IETF(例如 MPLS)
import:上述最大長度包括了除Preamble和SFD的其他字段
import:所有的Q-tagged frames都是envelope frames,但是envelope frames不一定是Q-tagged frames
(6)Pad
填充字段,如果小于MAC數(shù)據(jù)字段最小長度,就要填充,使其滿足MAC數(shù)據(jù)字段最小長度
(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
擴(kuò)展字段,不包含在FCS中,通常情況下,長度為0
三、傳輸順序
除FCS以外,MAC幀,每字節(jié)首先傳輸最低有效位
四、無效的MAC幀
a) 幀長度與Length字段不一致
b) 不是8bit對齊的
c) CRC校驗錯誤
審核編輯:黃飛
?
評論