以太網中的各種幀結構

幀結構(Ethernet Frame Structure)介紹

以太網信號幀結構(Ethernet Signal Frame Structure),有被稱為以太網幀結構,一般可以分為兩類 —— 數據幀和管理幀。

按照 IEEE 802.3,ISO/IEC8803-3 系列標準規范,數據幀還可以分為基本數據幀、虛擬局域網(VLAN,Virtual Local Area Network)采用的擴展幀、G bit Ethernet 中的擴充幀、突發幀(Burst Frame)以及幀標志類型放在客戶數據區域中的 IEEE 802.3 幀等。

管理幀可包括用于與 PHY 層器件之間交換狀態信息,實現控制與配置的管理幀,和用于防止網絡擁塞的暫停幀(Pause Frame)等。

1. 數據幀

1.1 基本幀

基本幀(Base Frame)的結構如下圖所示,各區域說明如下:
在這里插入圖片描述

(1) 幀前序(Preamble):這個區域是:“1”、“0” 交替的 56 bit 數據;

(2) 幀起始符 SOF(Start of Frame Delimiter):固定值為 10101011 的 8 bit 數據,用于表示一幀的開始;

(3) MAC 目的地址與源地址(Destination & Source MAC Address):前三個字節是 IEEE 分配給各產商的地址,后三個字節是個產商自行決定的。源地址總是唯一的,而目的地址可以是單播(Unicast)地址、多播(Multicast)地址或者廣播(Broadcast)地址;

【注】 關于MAC地址,請參考下文。

(4) 幀長度 / 類型(L/T,Length/Type):這個區域占用兩個字節,其功能是用于表示 MAC 幀內不包括任何填充的數據字段長度或 MAC 幀內數據字段的數據類型。若這個區域的取值小于等于 1500 字節,則這個區域表示的是 MAC 幀內數據字段長度(客戶數據區域字節數)。若這個區域的取值大于 1500 字節,則表示客戶數據要到達的上冊協議類型(客戶數據類型區域);

【注】當幀長度 / 類型(L/T)區域只作為幀長度標志區域使用時,稱為 IEEE802.3 幀,則這個區域長度小于或等于 1500 字節;而此區域作為幀類型區域時,則稱其為 Ethernet-II 幀或者 DIX 幀,此時 L/T 的值大于 1500 字節。

(5) MAC 客戶數據(MAC Client Data):即數據段區域,一般在 46~1500 字節之間;

(6) 填充區(Pad):填充區占用的字節數根據需要而定。這個區域的功能是確保幀尺寸不少于 64 字節。當從 MAC 目的地址到幀校驗區整個數據幀尺寸少于 64 字節時,利用該區域將幀尺寸填充到 64 字節。因為尺寸小于 64 字節的幀屬于違法幀,在接收端會被自動丟棄。如果幀尺寸已經達到 64 字節,則該區域占用的字節數應為零;

(7) 幀校驗序列(FCS,Frame Check Sequence):這個區域占用 4 個字節,其功能是用于整個幀的差錯校驗。在幀的源端,從 MAC 的目的地址到填充區在全幀范圍內進行循環冗余校驗(CRC-32)計算,將計算結果放入源幀的此區域中,在幀的接收端,重新計算 CRC-32 的值,并進行對比。若一致則傳輸過程中無誤碼產生,否則幀中有誤碼產生。

這里應明確,MAC 客戶數據區數據最低不能少于 46 個字節,而最高不能大于 1500 字節;網絡 MAC 幀的尺寸最短不能少于 64 字節,而最長不能大于 1518 字節,這里不包括幀前序(Preamble)和幀起始符(SOF,Start of Frame Delimiter)兩個區域,共占用 18 字節。

1.2 虛擬網采用的一種擴展幀結構

IEEE 802.3ac 標準有規范了在以太網上運行的虛擬局域網(VLAN,Virtual Local Area Network)采用的一種擴展幀結構。VLAN 協議允許將標識符或 “TAG” 插入以太網幀結構中,如下圖所示:
在這里插入圖片描述
在上述 VLAN 以太網擴展幀結構中,增加的 VLAN 標記 4 字節分為兩部分。前兩個字節由 “802.1Q 標記類型” 組成,被固定為 0x8100,為預留長度 / 類型區域,主要是賦予 VLAN 標記。其后兩字節分為以下三個功能區域:

(1) 前 3 bit 是用戶優先權標志區,用于對該幀分配的優先級指示;

(2) 最后 1 bit 是格式符合規定的指示符(CFI,Canonical Format Indicator),在以太網幀結構中用于指示路由選擇信息區域(RIF,Routing Information Field);

(3) 剩余 12 bit 是 VLAN 幀標識符,他是以太網 VLAN 幀的唯一標志。加入 VLAN 標記后,使得 802.3ac 標準幀的最大長度由 1518 字節擴大到 1522 字節。

1.3 G bit 以太網的幀結構

在 1988 年,又制定了針對于 G bit 以太網的 IEEE 802.3z 標準規范,其幀結構圖下圖所示:
在這里插入圖片描述

G bit 以太網 IEEE 802.3z 標準規范的擴充幀結構是在原 IEEE 802.3 標準規范的以太網信號的基本幀結構基礎后面增加一個擴充區域,其目的是使幀長最短不少于 512 字節(從目的地址到填充區),從而保證發生的碰撞(沖突)可以傳播到網上的每個節點。擴充區 bit 并非是數據,其作用僅僅是擴大了占用載體最短要求時間。

1.4 幀間間隙

以太網設備必須允許在傳輸幀之間有一個最小空載周期時間,這就是所稱的幀間間隙 IFG(Inter-Frame Gap)或稱為包間間隙 IPG(Inter-Packet Gap)。

其提供的這段間隙時間,使設備得到恢復,以便設備為接收下一幀做必要的準備。IEEE 標準規范幀間的最小間隔為不少于 96 bit 占用的時間,具體如下表所示:
在這里插入圖片描述

2. 管理幀

2.1 基本管理幀

這是用于 PHY(物理層器件)與 STA(站管理實體)之間通信的管理幀(Management Frame),也稱為基本管理幀(Base Management Frame)。ISO/IEC、IEEE 標準規范的有線以太網管理數據流的幀結構,其幀長通常為 8 個字節,即 64 bit,如下圖所示。管理幀前后都可以是空載狀態(IDLE)。
在這里插入圖片描述

(1) 管理幀前序(Preamble):占用 4 個字節,為連續 32 個邏輯 “1”,對應于管理數據的 32 個時鐘周期。管理幀前序用于連續監視管理接口管理,并從而為管理接口給出接收管理數據做準備的時間;若幀前序出現則標志 STA 處理的開始。管理接口有抑制管理幀前序的能力,以便縮短管理幀的長度,從而使 STA 可以盡快訪問管理寄存器。

(2) 管理幀起始符(SOF):占用 2 bit,為固定值 “01”;

(3) 管理幀操作碼(OP):占用 2 bit,10b 表示讀取管理寄存器,01b 表示寫管理寄存器,00b 和 11b 無效;

(4) 管理幀 PHY 地址(PHYAD):占用 5 bit;

(5) 管理幀寄存器地址(REGAD):占用 5 bit;

(6) 幀換向區 TA(Turnaround Field):占用 2 bit;

(7) 管理幀數據(Data):占用 2 個字節,即 16 bit。

2.2 暫停幀

在全雙工通信工作模式下,以太網標準規范為了實現對數據流量的控制,規范了一種所謂的暫停幀。

這是應用發送暫停幀(Pause Frame)的方法,通告所有發送數據的站點暫停發送幀信息,防止鏈路發生擁塞。暫停幀僅適用于全雙工通信,并不適用于半雙工通信。

鏈路兩端都可以向對端發送暫停幀,并且在對端暫停發送狀態時,仍然可以向其發送暫停幀,以便延長對端停發 MAC 幀數據時間。

在全雙工通信模式下,鏈路兩端也可以只有一方支持暫停幀,而另一方不支持。只是不支持的一方無法解釋其收到的暫停幀。可以通過自動協商原理了解對方端是否具備支持暫停幀的能力。

暫停幀的結構圖如下圖所示:
在這里插入圖片描述

(1)目的地址(DA):可以使單播地址,也可以使廣播地址 01-80-C2-00-00-01;

(2)類型區(L/T):固定值 88-08,表示此幀為 MAC 介質介入控制幀;

(3)暫停標志(MAC 操作碼):固定值 00-01,表示此幀為暫停幀;

(4)MAC 控制參數:設定延時時間,取值范圍為 00-00 到 FF-FF,時間單位為時隙(Slot Time);

(5)備用區域:占用 42 bit,無意義。用于使暫停幀長度滿足最小幀的要求。


MAC 地址介紹

網絡設備的 MAC 地址是全球唯一的。MAC 地址長度為 48 比特,通常用十六進制表示。MAC 地址包含兩部分:前 24 比特是組織唯一標識符(OUI,OrganizationallyUniqueIdentifier),由 IEEE 統一分配給設備制造商。

注: 例如,Lattice 的地址為 00-D0-BD。后 24 位序列號是廠商分配給每個產品的唯一數值,由各個廠商自行分配(這里所說的產品可以是網卡或者其他需要 MAC 地址的設備)。

注: 詳細信息請參考:http://standards.ieee.org/develop/regauth/oui/oui.txt

局域網上的幀可以通過三種方式發送。

第一種是廣播,表示幀從單一的源發送到共享以太網上的所有主機。

廣播幀的目的 MAC 地址為十六進制的 FFFFFFFFFFFF,所有收到該廣播幀的主機都要接收并處理這個幀。

廣播方式會產生大量流量,導致帶寬利用率降低,進而影響整個網絡的性能。

當需要網絡中的所有主機都能接收到相同的信息并進行處理的情況下,通常會使用廣播方式。

如下圖所示:

在這里插入圖片描述

第二種是單播,指從單一的源端發送到單一的目的端。

每個主機接口由一個 MAC 地址唯一標識,MAC 地址的 OUI 中,第一字節第 8 個比特表示地址類型。

對于主機 MAC 地址,這個比特固定為 0,表示目的 MAC 地址為此 MAC 地址的幀都是發送到某個唯一的目的端。

在沖突域中,所有主機都能收到源主機發送的單播幀,但是其他主機發現目的地址與本地 MAC 地址不一致后會丟棄收到的幀,只有真正的目的主機才會接收并處理收到的幀。

如下圖所示:
在這里插入圖片描述

第三種是組播,指給一組特定的主機(多播組)發送數據

組播比廣播更加高效,組播轉發可以理解為選擇性的廣播,主機偵聽特定組播地址,接收并處理目的 MAC 地址為該組播 MAC 地址的幀。

組播 MAC 地址和單播 MAC 地址是通過第一字節中的第 8 個比特區分的。組播 MAC 地址的第 8 個比特為 1,而單播 MAC 地址的第 8 個比特為 0。

當需要網絡上的一組主機(而不是全部主機)接收相同信息,并且其他主機不受影響的情況下通常會使用組播方式。

如下圖所示:
在這里插入圖片描述

此外,還有一些特殊的專用 MAC 地址,具體請查閱:

https://standards.ieee.org/products-services/regauth/grpmac/public.html


注:對上文原文中圖片做了清晰度增強,下文做了圖片替換。

原文來源

via:

上文: 以太網掃盲 —— 幀結構(Ethernet Frame Structure)介紹 Felix 發表于 2019/6/15 16:15:36
https://blog.chinaaet.com/justlxy/p/5100064174

下文: 以太網掃盲 ——MAC 地址介紹 Felix 發表于 2019/6/17 15:12:47
http://blog.chinaaet.com/justlxy/p/5100064182

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/44273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44273.shtml
英文地址,請注明出處:http://en.pswp.cn/web/44273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

短視頻矩陣管理系統:如何提升內容質量,幫助企業獲客?

在數字化營銷蓬勃發展的今天,短視頻已成為企業推廣的重要陣地。然而,如何高效管理短視頻內容,提升內容質量,進而幫助企業精準獲客,成為企業亟待解決的問題。短視頻矩陣管理系統應運而生,以其強大的功能和靈…

TCP/IP協議超時重傳,以及應用層超時重傳一文詳解

很多人會有這樣的疑問 TCP/IP協議內置了超時重傳的功能,那為什么連接完全斷開或超時時,應用層代碼段還會進行重傳處理呢? TCP協議的重傳機制 客戶端 服務器| ||---- 數據段1 --…

編程范式之并發編程

目錄 前言1. 并發編程的定義2. 并發編程的特點2.1 任務交替執行2.2 狀態共享與同步2.3 并行執行 3. 并發編程的適用場景3.1 高性能計算3.2 I/O 密集型應用3.3 實時系統 4. 并發編程的優點4.1 提高資源利用率4.2 縮短響應時間4.3 提高系統吞吐量 5. 并發編程的缺點5.1 編程復雜性…

硬盤模式vmd怎么改ahci_電腦vmd改ahci模式詳細步驟

最近有很多網友問,我新買的電腦安裝原版win10或win11找不到驅動器呀,進入第三方pe又找不到硬盤,找到硬盤安裝后又出現安裝藍屏的情況,新機器怎么回事呀?這位網友內心有點崩潰,不知道啥原因。其實這些都是由…

初識c++(類與對象——上)

一、類的定義 1、類定義格式 ? class為定義類的關鍵字,Stack為類的名字,{}中為類的主體,注意類定義結束時后面分號不能省 略。類體中內容稱為類的成員:類中的變量稱為類的屬性或成員變量; 類中的函數稱為類的方法或 者成員函…

損失函數 - Transformer教程

在人工智能和深度學習的領域,Transformer模型已經成為了非常流行的選擇。而在Transformer模型的訓練過程中,損失函數扮演了至關重要的角色。今天,我們就來深入探討一下什么是損失函數,以及它在Transformer中的應用。 什么是損失函…

【Node.js安裝教程】

Node.js安裝教程 第一步:下載 下載鏈接:https://nodejs.org/zh-cn 第二步:安裝 **方法一:**建議安裝在默認路徑 方法二:如果不是默認安裝路徑可能會出現一系列問題:這時可以選擇卸載重裝或者配置環境變量…

kotlin數據類型

人不走空 🌈個人主頁:人不走空 💖系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 Kotlin基本數值類型 基本數據類型包括 Byte、Short、Int、Long、Float、Double 整數類型 類型位寬最小值最大…

安卓微信8.0之后如何利用緩存找回的三天之前不可見的朋友圈圖片

安卓微信8.0之后如何利用緩存找回的三天之前不可見的朋友圈圖片 復習了下安卓程序的知識,我們會了解到,安卓程序清楚數據的時候有兩個選項 一個是清除全部數據一個是清除緩存。 清除全部數據表示清除應用數據緩存。 對于安卓微信8.0之后而言&#xff0…

OTP防重放攻擊

OTP本意是一次性口令,比如郵箱驗證碼,短信驗證碼,或者根據totp或者hotp生成的默認30秒一變的6位數字。 不過開發者要注意,必須要在驗證成功后失效那個驗證碼,不然就會導致重放攻擊。 對于郵箱驗證碼,服務器…

徹底開源,免費商用,上海AI實驗室把大模型門檻打下來

終于,業內迎來了首個全鏈條大模型開源體系。 大模型領域,有人探索前沿技術,有人在加速落地,也有人正在推動整個社區進步。 就在近日,AI 社區迎來首個統一的全鏈條貫穿的大模型開源體系。 雖然社區有LLaMA等影響力較大…

從 ArcMap 遷移到 ArcGIS Pro

許多 ArcMap 用戶正在因 ArcGIS Pro 所具有的現代 GIS 桌面工作流優勢而向其遷移。 ArcGIS Pro 與其余 ArcGIS 平臺緊密集成,使您可以更有效地共享和使用內容。 它還將 2D 和 3D 組合到一個應用程序中,使您可以在同一工程中使用多個地圖和多個布局。 Arc…

【C++雜貨鋪】C++11新特性

目錄 🌈 前言🌈 📁 C11介紹 📁 統一初始化列表 📁 聲明 📂 auto 📂 decltype 📂 返回類型后置 📂 范圍for 📂 模板別名 📂 nullptr &#x1…

服務器使用PC作為代理訪問外網

1、PC上啟動代理,比如nginx 下載nginx:http://nginx.org/en/download.html 修改配置文件,在conf下: http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server…

六、 SpringBoot 配置?件 ★ ?

六、 SpringBoot 配置?件 本節?標1. 配置?件作?2. 配置?件快速??3. 配置?件的格式4. properties 配置?件說明4.1 properties 基本語法4.2 讀取配置?件4.3 properties 缺點分析 5. yml 配置?件說明5.1 yml 基本語法5.2 yml 使?進階5.2.1 yml 配置不同數據類型及 nul…

昇思25天學習打卡營第17天|文本解碼原理--以MindNLP為例

文本解碼就是根據當前已經輸入的內容不斷地預測下一個詞,前期通過大量的文本文章等輸入,讓模型學習好以后,根據已學習的內容,不斷預測下一個詞。就像鸚鵡學舌一樣你不斷的叫他說你好大帥哥,你好大帥哥。后面某一天&…

好用的源代碼加密軟件有哪些?5款源代碼防泄密軟件推薦

源代碼作為軟件產品的核心組成部分,其安全性直接關系到整個軟件系統的安全。源代碼的泄露可能導致企業的技術秘密暴露,商業競爭力下降,甚至可能引發經濟損失和法律責任問題。因此,對源代碼進行加密保護,已經成為企業不…

windows安裝啟動mysql8.0版本的簡單流程

1.下載mysql8.0.25版本 MySQL :: Download MySQL Community Server (Archived Versions) 2.解壓到D盤的mysql文件夾,并修改環境變量 配置環境變量: winr鍵>輸入control system>高級系統設置>點擊環境變量 雙擊path后,新建 將bin目錄粘貼進去,再點擊確定 在cmd命令行…

【JavaScript 報錯】未定義的變量或函數:Uncaught ReferenceError

🔥 個人主頁:空白詩 文章目錄 一、錯誤原因分析1. 變量未定義2. 函數未定義3. 塊級作用域問題 二、解決方案1. 確保變量已定義2. 確保函數已定義3. 正確使用塊級作用域 三、實例講解四、總結 在JavaScript開發中,Uncaught ReferenceError 是一…

C#使用異步方式調用同步方法的實現方法

使用異步方式調用同步方法,在此我們使用異步編程模型(APM)實現 1、定義異步委托和測試方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Task…