【Linux網絡】數據鏈路層

數據鏈路層

用于兩個設備(同一種數據鏈路節點)之間進行傳遞。

認識以太網

  • “以太網” 不是一種具體的網絡,而是一種技術標準;既包含了數據鏈路層的內容,也包含了一些物理層的內容。例如:規定了網絡拓撲結構,訪問控制方式,傳輸速率等;
  • 例如以太網中的網線必須使用雙絞線;傳輸速率有 10M,100M,1000M 等;
  • 以太網是當前應用最廣泛的局域網技術;和以太網并列的還有令牌環網,無線 LAN 等;

以太網幀格式

以太網的幀格式如下所示:
在這里插入圖片描述

  • 源地址和目的地址是指網卡的硬件地址(也叫 MAC 地址),長度是 48 位,是在網卡出廠時固化的;
  • 幀協議類型字段有三種值,分別對應 IPARPRARP
  • 幀末尾是 CRC 校驗碼。

認識MAC地址

  • MAC 地址用來識別數據鏈路層中相連的節點;
  • 長度為 48 位,及 6 個字節。一般用 16 進制數字加上冒號的形式來表示(例如: 08:00:27:03:fb:19);
  • 在網卡出廠時就確定了,不能修改。mac 地址通常是唯一的(虛擬機中的 mac 地址不是真實的 mac 地址,可能會沖突;也有些網卡支持用戶配置 mac 地址)。

認識MTU

MTU 相當于發快遞時對包裹尺寸的限制。這個限制是不同的數據鏈路對應的物理層產生的限制。

  • 以太網幀中的數據長度規定最小 46 字節,最大 1500 字節,ARP 數據包的長度不夠 46 字節,要在后面補填充位;
  • 最大值 1500 稱為以太網的最大傳輸單元(MTU),不同的網絡類型有不同的 MTU;
  • 如果一個數據包從以太網路由到撥號鏈路上,數據包長度大于撥號鏈路的 MTU 了,則需要對數據包進行分片(fragmentation);
  • 不同的數據鏈路層標準的 MTU 是不同的;

MTU對IP協議的影響

由于數據鏈路層 MTU 的限制,對于較大的 IP 數據包要進行分包。

  • 將較大的 IP 包分成多個小包,并給每個小包打上標簽;
  • 每個小包 IP 協議頭的 16 位標識(id) 都是相同的;
  • 每個小包的 IP 協議頭的 3 位標志字段中,第 2 位置為 0,表示允許分片,第 3 位來表示結束標記(當前是否是最后一個小包,是的話置為 1,否則置為 0);
  • 到達對端時再將這些小包,會按順序重組,拼裝到一起返回給傳輸層;
  • 一旦這些小包中任意一個小包丟失,接收端的重組就會失敗。但是 IP 層不會負責重新傳輸數據;
    在這里插入圖片描述

MTU對UDP協議的影響

讓我們回顧一下 UDP 協議:

  • 在網絡層 UDP 多攜帶的數據超過 1472(1500 - 20(IP 首部) - 8(UDP 首部)),那么就會產生多個 IP 數據報。
  • 這多個 IP 數據報有任意一個丟失,都會引起接收端網絡層重組失敗。那么這就意味著,如果 UDP 數據報在網絡層被分片,整個數據被丟失的概率就大大增加了。

MTU對于TCP協議的影響

讓我們再回顧一下 TCP 協議:

  • TCP 的一個數據報也不能無限大,還是受制于 MTU。TCP 的單個數據報的最大消息長度,稱為 MSS(Max Segment Size);
  • TCP 在建立連接的過程中,通信雙方會進行 MSS 協商;
  • 最理想的情況下,MSS 的值正好是在 IP 不會被分片處理的最大長度(這個長度就是受制于數據鏈路層的 MTU);
  • 雙方在發送 SYN 的時候會在 TCP 頭部寫入自己能支持的 MSS 值;
  • 然后雙方得知對方的 MSS 值之后,選擇較小的作為最終 MSS;
  • MSS 的值就在 TCP 首部的 40 字節變長選項中 (kind=2);

MSS和MTU的關系

在這里插入圖片描述

查看硬件地址和MTU

使用 ifconfig 命令,即可查看 ip 地址,mac 地址,和 MTU;

局域網細節

  • 為了避免局域網中數據碰撞問題,要保證任何時刻只有一臺主機在使用局域網資源
  • 如果碰撞了,涉及到碰撞主機怎么辦?
    • 碰撞檢測,碰撞避免(對臨界資源的保護)
  • 整個局域網,被稱為碰撞域

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

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

相關文章

【打破信息差】萌新認識與入門算法競賽

閱前須知 XCPC萌新互助進步群2??:174495261 博客主頁:resot (關注resot謝謝喵) 針對具體問題,應當進行具體分析;并無放之四海而皆準的方法可適用于所有人。本人尊重并支持每位學習者對最佳學習路徑的自主選擇。本篇所列訓練方…

logrotate按文件大小進行日志切割

? 編寫logrotate文件,進行自定義切割方式 adminip-127-0-0-1:/data/test$ cat /etc/logrotate.d/test /data/test/test.log {size 1024M #文件達到1G就切割rotate 100 #保留100個文件compressdelaycompressmissingoknotifemptycopytruncate #這個情況服務不用…

2025認證杯二階段C題完整論文講解+多模型對比

基于延遲估計與多模型預測的化工生產過程不合格事件預警方法研究 摘要 化工生產過程中,污染物濃度如SO?和H?S對生產過程的控制至關重要。本文旨在通過數據分析與模型預測,提出一種基于延遲估計與特征提取的多模型預測方法,優化閾值設置&a…

前端精度問題全解析:用“挖掘機”快速“填平精度坑”的完美解決方案

寫在前面 “為什么我的計算在 React Native 中總是出現奇怪的精度問題?” —— 這可能是許多開發者在作前端程序猿的朋友們都會遇到的第一個頭疼問題。本文將深入探討前端精度問題的根源,我將以RN為例,并提供一系列實用解決方案,讓你的應用告別計算誤差。 一、精度問題的…

2024 睿抗機器人開發者大賽CAIP-編程技能賽-本科組(國賽) 解題報告 | 珂學家

前言 題解 2024 睿抗機器人開發者大賽CAIP-編程技能賽-本科組(國賽)。 國賽比省賽難一些,做得汗流浹背,T_T. RC-u1 大家一起查作弊 分值: 15分 這題真的太有意思,看看描述 在今年的睿抗比賽上,有同學的提交代碼如下&#xff1…

hghac和hgproxy版本升級相關操作和注意事項

文章目錄 環境文檔用途詳細信息 環境 系統平臺:N/A 版本:4.5.6,4.5.7,4.5.8 文檔用途 本文檔用于高可用集群環境中hghac組件和hgproxy組件替換和升級操作 詳細信息 1.關閉服務 所有數據節點都執行 1、關閉hgproxy服務 [roothgdb01 tools]# system…

userfaultfd內核線程D狀態問題排查

問題現象 運維反應機器上出現了很多D狀態進程,也kill不掉,然后將現場保留下來進行排查。 排查過程 都是內核線程,先看下內核棧D在哪了,發現D在了userfaultfd的pagefault流程。 uffd知識補充 uffd探究 uffd在firecracker與e2b的架構下使…

深入解析:構建高性能異步HTTP客戶端的工程實踐

一、架構設計原理與核心優勢 HTTP/2多路復用技術的本質是通過單一的TCP連接并行處理多個請求/響應流,突破了HTTP/1.1的隊頭阻塞限制。在異步編程模型下,這種特性與事件循環機制完美結合,形成了高性能網絡通信的黃金組合。相較于傳統同步客戶…

根據臺賬批量制作個人表

1. 前期材料準備 1)要有 人員總的信息臺賬 2)要有 個人明白卡模板 2. 開始操作 1)打開 人員總的信息臺賬,選擇所需要的數據模塊; 2)點擊插入,選擇數據透視表,按流程操作&…

《AI大模型應知應會100篇》第65篇:基于大模型的文檔問答系統實現

第65篇:基于大模型的文檔問答系統實現 📚 摘要:本文詳解如何構建一個基于大語言模型(LLM)的文檔問答系統,支持用戶上傳 PDF 或 Word 文檔,并根據其內容進行智能問答。從文檔解析、向量化、存儲到…

RTK哪個品牌好?2025年RTK主流品牌深度解析

在測繪領域,RTK 技術的發展日新月異,選擇一款性能卓越、穩定可靠的 RTK 設備至關重要。2025 年,市場上涌現出眾多優秀品牌,本文將深入解析幾大主流品牌的核心競爭力。 華測導航(CHCNAV):技術創…

SpringCloud微服務開發與實戰

本節內容帶你認識什么是微服務的特點,微服務的拆分,會使用Nacos實現服務治理,會使用OpenFeign實現遠程調用(通過黑馬商城來帶你了解實際開發中微服務項目) 前言:從谷歌搜索指數來看,國內從自201…

pgsql14自動創建表分區

最近有pgsql的分區表功能需求,沒想到都2025年了,pgsql和mysql還是沒有自身支持自動創建分區表的功能 現在pgsql數據庫層面還是只能用老三樣的辦法來處理這個問題,每個方法各有優劣 1. 觸發器 這是最傳統的方法,通過創建一個觸發…

math toolkit for real-time development讀書筆記一三角函數快速計算(1)

一、基礎知識 根據高中知識我們知道,很多函數都可以用泰勒級數展開。正余弦泰勒級數展開如下: 將其進一步抽象為公式可知: 正弦和余弦的泰勒級數具有高度結構化的模式,可拆解為以下核心特征: 1. 符號交替特性 正弦級…

uni-app 中適配 App 平臺

文章目錄 前言? 1. App 使用的 Runtime 架構:**WebView 原生容器(plus runtime)**📌 技術棧核心: ? 2. WebView Native 的通信機制詳解(JSBridge)📤 Web → Native 調用&#xf…

SpringBoot基礎(靜態資源導入)

靜態資源導入 在WebMvcAutoConfiguration自動配置類中 有一個添加資源的方法: public void addResourceHandlers(ResourceHandlerRegistry registry) { //如果靜態資源已經被自定義了,則直接生效if (!this.resourceProperties.isAddMappings()) {logg…

基于OpenCV的人臉識別:LBPH算法

文章目錄 引言一、概述二、代碼實現1. 代碼整體結構2. 導入庫解析3. 訓練數據準備4. 標簽系統5. 待識別圖像加載6. LBPH識別器創建7. 模型訓練8. 預測執行9. 結果輸出 三、 LBPH算法原理解析四、關鍵點解析五、改進方向總結 引言 人臉識別是計算機視覺領域的一個重要應用&…

ElasticSearch重啟之后shard未分配問題的解決

以下是Elasticsearch重啟后分片未分配問題的完整解決方案,結合典型故障場景與最新實踐: 一、快速診斷定位 ?檢查集群狀態 GET /_cluster/health?pretty # status為red/yellow時需關注unassigned_shards字段值 ? 2.查看未分配分片詳情 …

CSS- 3.1 盒子模型-塊級元素、行內元素、行內塊級元素和display屬性

本系列可作為前端學習系列的筆記,代碼的運行環境是在HBuilder中,小編會將代碼復制下來,大家復制下來就可以練習了,方便大家學習。 HTML系列文章 已經收錄在前端專欄,有需要的寶寶們可以點擊前端專欄查看! 點…

Git/GitLab日常使用的命令指南來了!

在 GitLab 中拉取并合并代碼的常見流程是通過 Git 命令來完成的。以下是一個標準的 Git 工作流,適用于從遠程倉庫(如 GitLab)拉取代碼、切換分支、合并更新等操作。 🌐 一、基礎命令:拉取最新代碼 # 拉取遠程倉庫的所…