以太網 MAC 幀格式

文章目錄

    • 以太網 MAC 幀格式
    • 以太網幀間隔
    • 參考

本文為筆者學習以太網對網上資料歸納整理所做的筆記,文末均附有參考鏈接,如侵權,請聯系刪除。

以太網 MAC 幀格式

以太網技術的正式標準是 IEEE 802.3,它規定了以太網傳輸數據的幀結構,我們可以把以太網 MAC層理解成高速公路,我們必須遵循它的規則才能在上面通行,以太網 MAC 層幀格式如下圖所示
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
以太網傳輸數據時按照上面的順序從頭到尾依次被發送和接收,我們下面進一步解釋各個區域

  • 前導碼(Preamble):為了實現底層數據的正確闡述,物理層使用 7 個字節同步碼(0 和 1 交替(55- 55-55-55-55-55-55))實現數據的同步。
  • 幀起始界定符(SFD,Start Frame Delimiter):使用 1 個字節的 SFD(固定值為 0xd5)來表示一幀的開始,即后面緊跟著傳輸的就是以太網的幀頭。
  • 目的 MAC 地址:即接收端物理 MAC 地址,占用 6 個字節。MAC 地址從應用上可分為單播地址、組播地址和廣播地址。單播地址:第一個字節的最低位為 0,比如 00-00-00-11-11-11,一般用于標志唯一的設備;組播地址:第一個字節的最低位為 1,比如 01-00-00-11-11-11,一般用于標志同屬一組的多個設備;廣播地址:所有 48bit 全為 1,即 FF-FF-FF-FF-FF-FF,它用于標志同一網段中的所有設備。
  • 源 MAC 地址:即發送端物理 MAC 地址,占用 6 個字節。
  • 長度/類型:上圖中的長度/類型具有兩個意義,
    • 當這兩個字節的值小于 1536(十六進制為 0x0600)時,代表該以太網中數據段的長度;
    • 如果這兩個字節的值大于 1536,則表示該以太網中的數據屬于哪個上層協議,
      • 例如 0x0800 代表 IP 協議(網際協議)
      • 0x0806 代表 ARP 協議(地址解析協議)等。
  • 數據:以太網中的數據段長度最小 46 個字節,最大 1500 個字節。最大值 1500 稱為以太網的最大傳輸單元(MTU,Maximum Transmission Unit),之所以限制最大傳輸單元是因為在多個計算機的數據幀排隊等待傳輸時,如果某個數據幀太大的話,那么其它數據幀等待的時間就會加長,導致體驗變差,這就像一個十字路口的紅綠燈,你可以讓綠燈持續亮一小時,但是等紅燈的人一定不愿意的。另外還要考慮網絡I/O 控制器緩存區資源以及網絡最大的承載能力等因素,因此最大傳輸單元是由各種綜合因素決定的。為了避免增加額外的配置,通常以太網的有效數據字段小于 1500 個字節。
  • 填充域,由于協議要求整個 MAC 數據包的長度至少為 64 字節(接收到的數據包如果少于 64 字節會被認為發生沖突,數據包被自動丟棄),當數據段的字節少于 46 字節時,在填充域會自動填上無效數據,以使數據包符合長度要求。
  • 幀檢驗序列(FCS,Frame Check Sequence):為了確保數據的正確傳輸,在數據的尾部加入了 4 個字節的循環冗余校驗碼(CRC 校驗)來檢測數據是否傳輸錯誤。CRC 數據校驗從以太網幀頭開始即不包含前導碼和幀起始界定符。通用的 CRC 標準有 CRC-8、CRC-16、CRC-32、CRC-CCIT,其中在網絡通信系統中應用最廣泛的是 CRC-32 標準。

以太網幀間隔

以太網相鄰兩幀之間的時間間隔,即幀間隙(IFG,InterpacketGap)。幀間隙的時間就是網絡設備和組件在接收一幀之后,需要短暫的時間來恢復并為接收下一幀做準備的時間,IFG 的最小值是 96 bit time,即在媒介中發送 96 位原始數據所需要的時間,在不同媒介中 IFG 的最小值是不一樣的。不管 10M/100M/1000M 的以太網,兩幀之間最少要有 96bit time,IFG 的最少間隔時間

計算方法如下:

  • 10Mbit/s 最小時間為:96*100ns = 9600ns;
  • 100Mbit/s 最小時間為:96*10ns = 960ns;
  • 1000Mbit/s 最小時間為:96*1ns = 96ns。

參考

  • https://blog.csdn.net/yindq1220/article/details/138027595
  • 正點原子《開拓者之FPGA開發指南V3.2》
  • LwIP應用開發實戰指南—基于STM32

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

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

相關文章

pycharm配置鏡像源【pycharm最新版(23.2.5及以上)方法】

經常遇到pycharm中無法安裝或者安裝慢的問題,糾結了好久,終于找到這個解決辦法了。 為什么要配置鏡像源: 因為Python的包管理工具pip一般從PyPI(Python Package Index)下載安裝包,但是PyPI位于國外&#x…

駕馭 DeepSeek 科技之翼,翱翔現代學習新天際

在當今這個信息爆炸的時代,學習的方式和途徑正在經歷著前所未有的變革。人工智能技術的飛速發展,為我們的學習帶來了全新的機遇和挑戰。DeepSeek 作為一款強大的大語言模型,憑借其卓越的性能和豐富的功能,為現代學習注入了新的活力…

科普:WOE編碼與One-Hot編碼

WOE編碼是業務邏輯與統計建模的結合,適合強業務導向的場景; One-Hot編碼是數據驅動的特征工程,適合追求模型性能的場景。 編碼方式核心價值典型案例WOE編碼保留變量預測能力,適配線性模型銀行違約預測邏輯回歸One-Hot編碼釋放特征…

Python----數據分析(Pandas一:pandas庫介紹,pandas操作文件讀取和保存)

一、Pandas庫 1.1、概念 Pandas是一個開源的、用于數據處理和分析的Python庫,特別適合處理表格類數 據。它建立在NumPy數組之上,提供了高效的數據結構和數據分析工具,使得數據操作變得更加簡單、便捷和高效。 Pandas 的目標是成為 Python 數據…

Type-C:智能家居的電力革命與空間美學重構

在萬物互聯的時代浪潮中,家居空間正經歷著從功能容器到智慧終端的蛻變。當意大利設計師安東尼奧奇特里奧提出"消失的設計"理念二十年后,Type-C充電技術正以潤物無聲的方式重塑著現代家居的形態與內核,開啟了一場靜默的居住革命。 【…

C++ 左值(lvalue)和右值(rvalue)

在 C 中,左值(lvalue)和右值(rvalue)是指對象的不同類別,區分它們對于理解 C 中的表達式求值和資源管理非常重要,尤其在現代 C 中涉及到移動語義(Move Semantics)和完美轉…

【含文檔+PPT+源碼】基于SpringBoot和Vue的編程學習系統

項目介紹 本課程演示的是一款 基于SpringBoot和Vue的編程學習系統,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系統 3.該項…

關于新奇的css

background: linear-gradient(154deg, #07070915 30%, hsl(var(--primary) / 30%) 48%, #07070915 64%); filter: blur(100px); background: linear-gradient(154deg, #07070915 30%, hsl(var(--primary) / 30%) 48%, #07070915 64%); 這是一個線性漸變背景設置,角度…

Maxscript如何通過單擊現有按鈕添加新按鈕?

創建一個按鈕,你可以單擊它,然后添加一個新按鈕。 你必須創建一個動態UI,使用maxscript UI元素,將卷展欄構建為字符串,然后評估該字符串并打開新的卷展欄以更新你的UI;使用RolloutCreator(請參閱幫助文件)幫助您構建卷展欄,并打開新的卷展欄以更新您的UI,看下面的示…

Android控件Selector封裝優化指南:高效實現動態UI效果

本文詳細介紹了如何在Android開發中優化selector的封裝,涵蓋Button、TextView、ImageView、CheckBox、RadioButton等常見控件的動態效果實現。通過結合Material Design組件、矢量圖、Ripple效果以及動畫Selector,提供了一套現代化、高性能的解決方案&…

pytest+allure+jenkins

本地運行參考:pytestallure 入門-CSDN博客 jenkins運行如下: 安裝插件:allure 配置allure安裝目錄 配置pytest、allure 環境變量 配置流水線 進行build,結果如下 ,點擊allure report 查看結果

C#核心筆記——(五)框架概述

.NET Ftamework中幾乎所有功能都是通過大量的托管類型提供的。這些類型組織在層次化的命名空間中,并打包為一套程序集,與CLR一起構成了.NET平臺。 有些.NET類型是由CLR直接使用的,且對于托管宿主環境而言是必不可少的。這些類型位于一個名為…

phpstudy+phpstorm+xdebug【學習筆記】

配置PHPStudy 配置PHPSTORM phpstorm選擇PHP版本 配置DEBUG 設置服務器 編輯配置 學習參考鏈接::https://blog.csdn.net/m0_60571842/article/details/133246064

Vue:Vue+TS學習筆記

文章目錄 前文Vue 3學習 Vue3 的重要性變更內容 底層邏輯選項式 API 和組合式 API體驗組合式 API很多鉤子組件通信 和 TS 結合開發為什么要用 TS? 正式上手 Vuets 開發給 ref 添加類型標記。ref, reactive, computed 綜合代碼模板引用類型傳值寫法 解決問題: 第三方包想要有類…

ACwing—01背包(暴力bfs+dp+遞歸+記憶化搜索算法)

問題 有 N件物品和一個容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的體積是 vi,價值是 wi。 求解將哪些物品裝入背包,可使這些物品的總體積不超過背包容量,且總價值最大。 輸出最大價值。 輸入格式 第一行兩個整數&#xff0c…

洛谷 P2801 教主的魔法 題解

之前學過 莫隊 算法,其運用了分塊思想;但是我居然是第一次寫純種的分塊題目。 題意 給你一個長度為 n n n 的序列 a a a(一開始 ? a i ∈ [ 1 , 1000 ] \forall a_i\in[1,1000] ?ai?∈[1,1000])。要求執行 q q q 次操作&…

leetcode 75.顏色分類(荷蘭國旗問題)

題目描述 題目分析 本題是經典的「荷蘭國旗問題」,由計算機科學家 Edsger W. Dijkstra 首先提出。 要想單獨解決這道題本身還是很簡單的,統計0、1、2的數量然后按順序賦值,或者手寫一個冒泡排序,whatever。 但是在這一題中我們主…

rc4算法簡單介紹及實現

0. 介紹 RC4是一種流密碼&#xff0c;但因為安全性問題已經被棄用。 1. 算法描述 1.1 初始化 Key為生成的隨機密鑰&#xff1a;1-256B S為一數組&#xff1a;256B T為輔助數組&#xff1a;keylenB for (int i 0;i < 256;i) {S[i] i;T[i] S[i % keylen]; }1.2 初始化…

OpenEuler20.3 安裝 Elasticsearch7.17

1、下載elasticsearch wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz.sha512 shasum -a 512 -c elasticsea…

單元測試知識總結

&#x1f345; 點擊文末小卡片 &#xff0c;免費獲取軟件測試全套資料&#xff0c;資料在手&#xff0c;漲薪更快 一、什么是單元測試&#xff1f; 單元測試是指&#xff0c;對軟件中的最小可測試單元在與程序其他部分相隔離的情況下進行檢查和驗證的工作&#xff0c;這里的…