計算機網絡---數據鏈路層上

文章目錄

  • 1. 數據鏈路層的功能
  • 2. 組幀
    • 2.1 字符填充法
    • 2.2 字節填充法
    • 2.3 零比特填充法
    • 2.4 違規編碼
    • 2.5 總結
  • 3. 差錯控制
    • 3.1 檢錯編碼
      • 3.1.1 奇偶校驗
      • 3.1.2 循環冗余校驗碼(CRC)
      • 3.1.3 總結
    • 3.2 糾錯編碼(海明校驗碼)
    • 3.3 總結
  • 4. 流量控制 & 可靠傳輸
    • 4.1 停止 - 等待協議(S-W)
    • 4.2 后退N幀協議(GBN)
    • 4.3 選擇重傳協議(SR)
    • 4.4 總結
  • 5. 三種協議的信道利用率分析
    • 5.1 S-W
    • 5.2 GBN & SR
    • 5.3 總結

1. 數據鏈路層的功能

在這里插入圖片描述

    1. 數據鏈路層使用物理層提供的**“比特傳輸”**服務
    1. 數據鏈路層為網絡層提供服務,將網絡層的 IP數據報(分組) 封裝成幀,傳輸給下一個相鄰結點

物理鏈路:**傳輸介質(0層)+ 物理層(1層)**實現了相鄰結點之間的“物理鏈路”

邏輯鏈路:數據鏈路層需要基于“物理鏈路”,實現相鄰結點之間邏輯上無差錯的“數據鏈路(邏輯鏈路)”

在這里插入圖片描述

2. 組幀

在這里插入圖片描述

2.1 字符填充法

在這里插入圖片描述
再次強調:首部計數字段所記錄的幀長 = 計數字段長度 + 幀的數據部分長度

2.2 字節填充法

在這里插入圖片描述
總結:

  • 發送方發送:只要遇到特殊字符,如:SOH、EOT、ESC等,就在這個特殊字符前面加上一個ESC(轉義字符)
  • 接收方接收:只要遇到ESC(轉義字符),就丟掉這個ESC,然后跳過一個字符,去接著看跳過字符后面的內容

2.3 零比特填充法

在這里插入圖片描述
總結:

  • 發送:每當遇到連續5個1,就填充一個0
  • 接收:每當遇到連續5個1,就刪掉后面的0

2.4 違規編碼

在這里插入圖片描述

2.5 總結

在這里插入圖片描述

3. 差錯控制

在這里插入圖片描述

3.1 檢錯編碼

3.1.1 奇偶校驗

在這里插入圖片描述

  • 奇校驗碼:有效信息位和校驗位(整個校驗碼)中“1”的個數為奇數
  • 偶校驗位:有效信息位和校驗位(整個校驗碼)中“1”的個數為偶數

在這里插入圖片描述

異或運算,符號:⊕\oplus。運算規則:

    1. 相同為0,相異為1
    1. 無進制加法,進制指二進制,即:0 ⊕\oplus 0 = 0、0 ⊕\oplus 1 = 1、1 ⊕\oplus 0 = 1、1 ⊕\oplus 1 = 0。中間符號就可以理解為+,只不過是無進制的,在組成原理里用異或運算實現CPU加法器

個人覺得用第二種理解能更快得出異或結果

  • 奇偶校驗常用偶校驗,因為偶校驗的硬件實現更簡單:各信息進行異或(模2加)運算,得到的結果即為偶校驗位:

在這里插入圖片描述

再次強調,奇偶校驗只能檢測奇數位錯誤,不能檢測偶數位錯誤

3.1.2 循環冗余校驗碼(CRC)

在這里插入圖片描述

在這里插入圖片描述
例:

在這里插入圖片描述
說明:

在這里插入圖片描述
強調:CRC不是百分百檢錯,但其檢錯率很高,其也有1位的糾錯能力,但實際應用中只用它的檢錯。

3.1.3 總結

在這里插入圖片描述
在這里插入圖片描述

3.2 糾錯編碼(海明校驗碼)

在這里插入圖片描述

  • 偶校驗:能發現奇數位錯誤,但無法確定是哪一位出錯。即1個校驗位只能攜帶2種狀態信息
  • 基于偶校驗,海明碼的設計思路:將信息位分組進行偶校驗 -> 設計多個校驗位 -> 多個校驗位標注出錯位置。即多個校驗位能攜帶多種狀態信息

在這里插入圖片描述

求解步驟:

在這里插入圖片描述
例:給定信息位 —— 1010

    1. 確定海明碼的位數:2k >= n + k + 1 -> n = 4 -> k = 3
      在這里插入圖片描述
    1. 確定校驗位的分布:校驗位 Pi 放在海明位號為 2i-1 的位置上,信息位按順序放到其余位置

在這里插入圖片描述

    1. 求校驗位的值:
      ①先分組形成校驗關系,即每個數據位用多個校驗位進行校驗,滿足條件:被校驗數據位的海明位號等于校驗該數據位的各校驗位海明位號之和
      在這里插入圖片描述
      ②異或取值:三個分組各自分別進行偶校驗

在這里插入圖片描述
填表如下:

在這里插入圖片描述

    1. 檢錯糾錯
      在這里插入圖片描述
      同理:S3S2S1 = 110,表示第6位出錯,S3S2S1 = 111,表示第7位出錯

上述為從大到小的格式,當然也有從小到大的格式:

在這里插入圖片描述
補充:
在這里插入圖片描述

推論:

    1. S3S2S1 = 000 且全體偶校驗成功 -> 無錯誤
    1. S3S2S1 != 000 且全體偶校驗失敗 -> 有1位錯,糾正即可。但實際上這個推論只能說明是有奇數個位錯誤,如D1D2D4同時出錯時,也滿足這個條件,但實際生活中這是個小概率事件,因為有線鏈路的出錯率本來就低
    1. S3S2S1 != 000 且全體偶校驗成功 -> 有偶數個位錯,需重傳
    1. S3S2S1 = 000 且全體偶校驗失敗 -> 海明校驗碼失效,需重傳,對應D1D2D3同時出錯

3.3 總結

在這里插入圖片描述

4. 流量控制 & 可靠傳輸

在這里插入圖片描述
數據鏈路層的流量控制與可靠傳輸都是基于滑動窗口機制實現的

滑動窗口機制:

在這里插入圖片描述

4.1 停止 - 等待協議(S-W)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.2 后退N幀協議(GBN)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.3 選擇重傳協議(SR)

在這里插入圖片描述
在這里插入圖片描述
特殊的,當發送窗口的大小大于1,接收窗口的大小等于1,且發送窗口的大小+接收窗口的大小 <= 2n,此時又變為了GBN協議

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

4.4 總結

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
強調:

    1. 三種協議都有超時重傳機制、確認幀以及幀的正確編號限制,這是滑動窗口保證可靠傳輸與流量控制的奧妙所在
    1. 都要滿足WT + WR <= 2n。其中SR還規定WT <= WR,一般取WT = WR
    1. GBN采用累積確認的方式,若中間出錯,僅需重傳最后一次收到的確認幀位置之后的所有幀(不包含確認幀位置幀的重傳)
    1. S-W和SR則采用逐幀確認的方式,哪個幀有問題就重傳哪個幀,不同的是,SR檢測收到的幀有差錯,需傳否認幀NAK給發送方,而S-W只需丟棄該幀,等待發送方超時重傳即可,可以看出SR的時間效率高于S-W

5. 三種協議的信道利用率分析

在這里插入圖片描述

5.1 S-W

在這里插入圖片描述

5.2 GBN & SR

在這里插入圖片描述
在這里插入圖片描述

5.3 總結

在這里插入圖片描述

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

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

相關文章

機器學習實戰項目中,回歸與分類模型中該如何科學定義目標變量Y?

前言 在機器學習項目里&#xff0c;目標變量 (Y) 的定義決定了你能解答什么問題&#xff0c;以及模型能給業務帶來什么價值。選擇不當不僅可能導致模型誤差大、偏差嚴重&#xff0c;還可能讓業務決策方向偏離。 本文分兩大場景&#xff1a; 供應鏈項目中的 銷量預測&#xff08…

【 C/C++ 算法】入門動態規劃-----一維動態規劃基礎(以練代學式)

每日激勵&#xff1a;“不設限和自我肯定的心態&#xff1a;I can do all things。 — Stephen Curry” 緒論?&#xff1a; 本章是動態規劃算法的基礎入門篇&#xff0c;我將通過三道簡單題 一道中等難度的一維動態規劃題來帶你對動態規劃有個初認識&#xff0c;并基本了解動…

深入對比Tomcat與Netty:HTTP請求從網卡到Controller的全鏈路追蹤

我們日常用Spring Boot寫的RestController&#xff0c;感覺上就是一個簡單的方法&#xff0c;但它背后其實有一套復雜的網絡服務在支撐。一個HTTP請求到底是怎么從用戶的瀏覽器&#xff0c;穿過層層網絡&#xff0c;最終抵達我們代碼里的Controller方法的&#xff1f;理解這個過…

GO學習記錄十——發包

記錄下不同平臺的發包操作和期間遇到的問題 1.命令&#xff1a; $env:GOOSlinux $env:GOARCHamd64 go build -o release/HTTPServices-linux第一行&#xff0c;配置平臺&#xff0c;linux、windows 第二行&#xff0c;配置部署服務器的處理器架構 第三行&#xff0c;輸出目標文…

貪心算法與動態規劃

1. 什么是貪心算法&#xff1f; 貪心算法是一種在每一步選擇中都采取在當前狀態下最好或最優&#xff08;即最有利&#xff09;的選擇&#xff0c;從而希望導致結果是全局最好或最優的算法。 核心思想&#xff1a;“每步都貪心地選擇眼前最好的&#xff0c;不去考慮整個未來的長…

學會“讀網頁”:生成式 AI 在足球賽事信息整理中的實戰

逐步教程&#xff08;Step-by-Step&#xff09; — 適合初學者與教學類文章 背景&#xff08;為什么要這樣做&#xff09; 對于足球迷、資訊編輯與數據分析師來說&#xff0c;最快、最準確把握一場比賽的核心信息至關重要&#xff1a;比分、關鍵事件&#xff08;進球、點球、紅…

BM3D 圖像降噪快速算法的 MATLAB 實現

BM3D 圖像降噪快速算法的 MATLAB 實現1. 快速 BM3D 算法流程&#xff08;概述&#xff09;步驟操作加速技巧① 分組塊匹配 堆疊FFT 互相關② 協同濾波3D 變換 硬閾值FFT 沿第三維③ 聚合加權平均稀疏矩陣累加 2. 核心函數&#xff08;單文件版&#xff09; 保存為 bm3d_fast.…

Go的schedt調度(runtime/proc.go)

1. 創建go的入口函數// Create a new g running fn. // Put it on the queue of gs waiting to run. // The compiler turns a go statement into a call to this. func newproc(fn *funcval) {gp : getg()pc : sys.GetCallerPC()systemstack(func() {newg : newproc1(fn, gp, …

Ubuntu 服務器配置轉發網絡訪問

配置文檔&#xff1a;Ubuntu 服務器轉發網絡訪問 一、網絡拓撲以以下網絡拓撲為示例Ubuntu 服務器&#xff08;兩個網卡&#xff09; eth1 10.66.71.222 &#xff08;接入內網&#xff09;eno1 192.168.2.100 &#xff08;直連相機&#xff09; 相機ip 192.168.2.1 Windows 客…

為什么企業需要高防IP

1. 抵御日益猖獗的DDoS攻擊 現代DDoS攻擊規模已突破Tbps級別 傳統防火墻無法應對大規模流量攻擊 高防IP采用分布式清洗中心&#xff0c;可輕松抵御300Gbps以上的攻擊流量 2. 保障業務連續性 網絡中斷1小時可能造成數百萬損失 高防IP確保服務99.99%可用性 智能切換機制實…

CSS基礎 - 選擇器備忘錄 --筆記5

目錄基礎選擇器組合器偽類選擇器屬性選擇器選擇器可以選中頁面上的特定元素并為其指定樣式。 CSS有多種選擇器。 基礎選擇器 標簽選擇器 – tagname&#xff1a;匹配目標元素的標簽名。優先級是0,0,1。如&#xff1a;p、h1、div類選擇器 – .class&#xff1a;匹配class屬性中…

自動駕駛中的傳感器技術46——Radar(7)

衛星雷達&#xff08;又稱為分布式雷達&#xff09;主要講當前雷達的雷達信號處理計算以及雷達目標相關的一些感知算法都遷移到中央域控進行&#xff0c;雷達端基本只負責數據采集&#xff0c;這樣做的影響如下&#xff1a; 雷達端成本與功耗降低&#xff1b; 雷達端采樣得到的…

【論文閱讀】Diff-Privacy: Diffusion-based Face Privacy Protection

基于擴散模型的人臉隱私保護方法——DiffPrivacy&#xff0c;解決了兩類人臉隱私任務&#xff1a;匿名化&#xff08;anonymization&#xff09;和視覺身份信息隱藏&#xff08;visual identity information hiding&#xff09;。1. 研究背景隨著人工智能和大數據技術的普及&am…

React 原理篇 - 深入理解虛擬 DOM

一、什么是虛擬 DOM&#xff1f; 在前端開發中&#xff0c;“虛擬 DOM” 是一個高頻出現的術語&#xff0c;尤其在 React 生態中被廣泛討論。但很多開發者對它的理解往往停留在 “JS 對象” 這個表層認知上。 實際上&#xff0c;虛擬 DOM 是一種編程概念—— 在這個概念里&…

對匯編的初理解

此處是一個簡單的函數&#xff0c;里面將調用了一個函數add&#xff08;&#xff09;函數這里是函數的原型這里是調用lcd函數產生的匯編語言&#xff0c;翻譯過來就是r11&#xff0c;r0cnt(r4cnt,前文有提及)&#xff0c;然后調用add函數&#xff0c;此處BL是指會回到指令的下一…

《Python 自動化實戰:從零構建一個文件同步工具》

《Python 自動化實戰:從零構建一個文件同步工具》 一、開篇引入:為什么我們需要文件同步? 你是否有過這樣的困擾: 公司電腦和家里電腦上都有工作項目,每次更新都要手動復制? U 盤頻繁傳輸文件,不僅麻煩還容易出錯? 項目文件夾動輒幾 G,每次同步都耗時長、效率低? 在…

工業相機與鏡頭的靶面尺寸詳解:選型避坑指南

在機器視覺系統中&#xff0c;相機與鏡頭的靶面尺寸匹配是一個非常關鍵卻又經常被忽略的細節。選錯了&#xff0c;不但影響圖像質量&#xff0c;還可能導致畫面“黑角”、視野不符、鏡頭浪費等問題。 今天我們就用通俗易懂的方式&#xff0c;聊一聊相機與鏡頭靶面尺寸的那些事兒…

使用 Go 和 go-commons 實現內存指標采集并對接 Prometheus

文章目錄一、準備工作二、編寫內存采集代碼三、運行 Exporter四、接入 Prometheus五、可擴展思路總結在運維和監控領域&#xff0c;資源指標采集 是必不可少的一環。CPU、內存、磁盤、網絡這些系統資源&#xff0c;需要實時采集并上報到監控系統中。 本文以 內存指標采集 為例&…

webrtc弱網-IntervalBudget類源碼分析與算法原理

一、核心功能 IntervalBudget 類用于基于時間窗口的帶寬預算管理。它根據設定的目標比特率&#xff08;kbps&#xff09;和一個固定時間窗口&#xff08;500ms&#xff09;&#xff0c;計算在該時間窗口內可用的字節數&#xff08;即“預算”&#xff09;&#xff0c;并支持預…

深度學習基本模塊:RNN 循環神經網絡

循環神經網絡&#xff08;RNN&#xff09;是一種專門用于處理序列數據的神經網絡架構。與處理空間數據的卷積神經網絡&#xff08;Conv2D&#xff09;不同&#xff0c;RNN通過引入循環連接使網絡具有"記憶"能力&#xff0c;能夠利用之前的信息來影響當前的輸出&#…