【計算機網絡】3數據鏈路層①

這篇筆記專門講數據鏈路層的功能。

2.功能

數據鏈路層的主要任務是讓幀在一段鏈路上或一個網絡中傳輸。

2.1.封裝成幀(組幀)

解決的問題:①幀定界②幀同步③透明傳輸

實現組幀的方法通常有以下種。

2.1.1.字符計數法

原理:在每個幀開頭,用一個定長計數字段來記錄該幀所含的字節數(包含計數字段自身所占用的字節)。

問題:任何一個計數字段出錯,都會導致后續所有幀無法定界。

2.1.2.Byte填充法

原理:使用特定字節來定界一幀的開始與結束。控制字符表示幀的開始;控制字符表示幀的結束。

信息位中如果出現特殊字符(控制字符,控制字符,轉義字符),則發送方要在轉義字符之前填充一個轉義字符來加以區分,接收方要做逆處理。

2.1.3.0bit填充法

在數據鏈路層早期使用的協議中,便是采用這種比特填充的首尾標志法來實現透明傳輸的。

原理:零比特填充法允許數據幀包含任意個數的比特。它使用一個特定的比特串來標志一幀的開始和結束。

為了不使數據字段中出現的比特流被誤判為幀的首尾標志,需要對數據部分做一些處理:發送方需要對幀的數據部分進行處理,每當遇到連續,就填充;接受方需要對幀的數據部分進行逆處理,每當遇到連續,就刪掉后面的

2.1.4.違規編碼法

在物理層進行比特編碼時,常采用違規編碼法。

局域網 標準就采用了這種方法。

原理:使用“違規信號”,表示幀的開頭、結尾。

例如,采用曼徹斯特編碼時,使用“中間不跳變”作為“違規信號”,標記幀的開頭、結尾。

2.2.差錯控制

差錯控制的目標是發現并解決一個幀內部的“位錯”。

這里的“位錯”指的是比特差錯(傳輸差錯中的一種),即比特在傳輸過程中可能產生差錯,可能變成也可能變成


常利用編碼技術進行差錯控制。

差錯控制機制編碼技術(實現差錯控制機制的具體技術方法)
自動重傳請求(Automatic Repeat reQuest,ARQ):當接收方檢測到差錯時,就設法通知發送方重發,直到收到正確的數據為止。檢錯編碼
向前糾錯(Forword Error Correction,FEC):接收方不但能發現差錯,而且能確定錯誤的位置并加以糾正。糾錯編碼

2.2.1.檢錯編碼

檢錯編碼都采用冗余編碼技術,核心思想是在信息位(幀的“數據部分”)被發送前,按某種關系附加一定的校驗位(為了給幀的“數據部分”檢錯/糾錯而附加的一些冗余比特,在信息位的首部或尾部添加),構成一個符合某一規則的碼字后發送。

當要發送的有效數據變化時,相應的冗余位也隨之變化,使得碼字遵從不變的規則。接收方根據收到的碼字是否仍符合原規則來判斷是否出錯。常見的檢錯編碼有奇偶檢驗碼和循環冗余碼。

奇偶校驗碼是奇校驗碼和偶校驗碼的統稱。

1??組成

奇偶校驗碼由位信息位和位校驗位組成。檢驗位的取值()將使整個檢驗碼中的個數為奇數或偶數。

2??約定

發送方和接收方先共同約定是采用奇校驗還是偶校驗。

3??發送方求校驗位

奇校驗碼:附加一個檢驗位后,位的碼字中的個數為奇數。

偶校驗碼:附加一個檢驗位后,位的碼字中的個數為偶數。

4??接收方檢錯

如果發送方和接收方共同約定采用奇校驗的規則,那么接收方的數據鏈路層收到幀之后會檢查這個幀的校驗位和信息位里含有的是不是奇數個。如果是奇數個,就認為沒有錯誤;如果不是奇數個,就認為有錯誤。

如果發送方和接收方共同約定采用偶校驗的規則,那么接收方的數據鏈路層收到幀之后會檢查這個幀的校驗位和信息位里含有的是不是偶數個。如果是偶數個,就認為沒有錯誤;如果不是偶數個,就認為有錯誤。

5??硬件實現

在現實應用中,偶校驗碼要比奇校驗碼更常用,原因是偶校驗很容易用簡單的異或門實現。

偶校驗的硬件實現:各信息進行異或(模加)運算,得到的結果即為偶校驗位。

⊕:異或(模2加)    0 ⊕ 0 = 0       0 ⊕ 1 = 1        1 ⊕ 0 = 1          1 ⊕ 1 = 0

求偶校驗位:

1⊕0⊕0⊕1⊕1⊕0⊕1=0  

1⊕0⊕1⊕0⊕1⊕1⊕1=1  

進行偶校驗(所有位進行異或,若結果為1說明出錯):  

0⊕1⊕0⊕0⊕1⊕1⊕0⊕1=0

1⊕1⊕0⊕1⊕0⊕1⊕1⊕1=0   

1⊕1⊕0⊕1⊕0⊕1⊕1⊕0=1  (可以檢測出奇數位錯誤)

1⊕1⊕0⊕1⊕0⊕1⊕0⊕0=0  (無法檢測出偶數位錯誤)

6??奇偶校驗碼僅能檢測出奇數位錯誤,無糾錯能力。

數據鏈路層廣泛使用循環冗余碼(Cyclic Redundancy Code,CRC)檢錯技術。

1??循環冗余校驗碼由位信息位和位校驗位組成。

2??發送方和接收方先共同約定一個生成多項式(要求最低位必須為)

生成多項式可用位位串【除數】表示,位位串可視為階數為的多項式的系數序列。

=信息碼的長度

=生成式多項式最高次冪=

3??發送方求校驗位:生成

發送方基于待發送的位信息位和,計算出位校驗位(幀檢驗序列)。


信息碼左移位,低位補

對移位后的信息碼,用生成多項式進行模除法,產生余數。

由于除數有位,所以我們會取被除數的高位與除數先“商”一次。

除法取商的方式比較特別,我們只看被除數的最高位,如果是,就先商

之后再對后位進行模減(效果與模加相同)的運算,得到余數。

再將被除數的后面一位補到余數的低位。此時的余數最高位是,商

以此類推。

最后得到的余數為校驗位。

對應的碼為

4??接收方檢錯:檢驗

接收方收到數據和冗余碼后,通過來計算收到的數據和冗余碼是否產生差錯。

收到位數據,與生成多項式模除,計算位余數。

余數為,說明無錯誤;余數非,說明出錯。


發送:        記為

接收:        用進行模除,余數為,代表沒有出錯。

接收:        用進行模除,余數為,代表可能是出錯。

5??檢錯糾錯能力

①可檢測出所有奇數個錯誤;

②可檢測出所有雙比特的錯誤;

③可檢測出所有小于等于校驗位長度的連續錯誤;

④若選擇合適的生成多項式,且,則可糾正單比特錯。

對于確定的生成多項式,出錯位與余數是相對應的。


為什么叫循環冗余碼?

因為將對應的位串,會發現得到的余數在循環。


循環冗余碼(CRC)是具有糾錯功能的,只是數據鏈路層僅使用了它的檢錯功能,檢測到幀出錯則直接丟棄,是為了方便協議的實現,因此本節不介紹CRC的檢錯功能。 

2.2.2.糾錯編碼

海明校驗碼

奇偶校驗碼只有個校驗位,只能攜帶種狀態信息(對/錯)。

海明碼有多個校驗位,能攜帶多種狀態信息(對/錯,錯在哪)

海明碼的設計思路是將信息位分組進行偶校驗→多個校驗位→多個校驗位標注出錯位置

1??確定海明碼的位數

為有效信息的位數,為檢驗位的位數,則信息位和檢驗位應滿足

海明碼位數 成立,則滿足條件。

設信息位為,共位;檢驗位為,共位;

對應的海明碼為

2??確定檢驗位的分布

規定檢驗位在海明位號為的位置上,其余各位為信息位,因此有:

的海明碼位號為 ,即

的海明碼位號為,即

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

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

相關文章

[區塊鏈lab2] 構建具備加密功能的Web服務端

實驗目標: 掌握區塊鏈中密碼技術的工作原理。在基于Flask框架的服務端中實現哈希算法的加密功能。 實驗內容: 構建Flash Web服務器,實現哈希算法、非對稱加密算法的加密功能。 實驗步驟: 哈希算法的應用:創建hash…

藍橋杯之前綴和

一維前綴 解題思路 看到“區間之和”問題,直接想到“前綴和” 前綴和的核心公式: sum[i]sum[i?1]a[i] 利用前綴和求區間和 [l,r] 的公式: 區間和sum[r]?sum[l?1] 解題步驟模板 輸入數組: 讀取數組長度 n 和查詢次數 m。 讀…

【學習筆記】計算機網絡(八)—— 音頻/視頻服務

第8章 互聯網上的音頻/視頻服務 文章目錄 第8章 互聯網上的音頻/視頻服務8.1概述8.2 流式存儲音頻/視頻8.2.1 具有元文件的萬維網服務器8.2.2 媒體服務器8.2.3 實時流式協議 RTSP 8.3 交互式音頻/視頻8.3.1 IP 電話概述8.3.2 IP電話所需要的幾種應用協議8.3.3 實時運輸協議 RTP…

【WRF運行】解決metgrid生成文件太大無內存!

目錄 方法:改變工作目錄運行 metgrid.exe參考由于我的運行內存過小,當研究區較大時,metgrid生成文件內存太大,導致每次運行都報錯,此時可更改工作目錄(空余文件夾)以運行 metgrid.exe(并非必須在wrf安裝目錄下運行!!!)。 metgrid.exe 本身不支持直接通過參數或 nam…

基于 Django 進行 Python 開發

基于 Django 進行 Python 開發涉及多個方面的知識點,以下為你詳細介紹: 1. Django 基礎 項目與應用創建 借助django-admin startproject project_name來創建新的 Django 項目。利用python manage.py startapp app_name創建新的應用。項目結構 理解項目各文件和目錄的作用,像…

【sylar-webserver】8 HOOK模塊

文章目錄 知識點HOOK實現方式非侵入式hook侵入式hook ??? 覆蓋系統調用接口獲取被全局符號介入機制覆蓋的系統調用接口 具體實現C 模板成員函數繼承 和 成員函數指針類型匹配 ?????FdCtx 和 FdManager ??判斷socket的小技巧FdCtxFdManager connect hook ?do_io模板 …

SpringAI+DeepSeek大模型應用開發——1 AI概述

AI領域常用詞匯 LLM(LargeLanguage Model,大語言模型) 能理解和生成自然語言的巨型AI模型,通過海量文本訓練。例子:GPT-4、Claude、DeepSeek、文心一言、通義干問。 G(Generative)生成式: 根據上…

SpringBoot 基本原理

SpringBoot 為我們做的自動配置,確實方便快捷,但一直搞不明白它的內部啟動原理,這次就來一步步解開 SpringBoot 的神秘面紗,讓它不再神秘。 目錄 SpringBootApplication 背后的秘密 Configuration ComponentScan EnableAutoC…

2025.4.17總結

工作:今天對需求的測試設計進行了完善,然后,對測試設計進行了評審,最后提了個問題單。 反思這個過程,要說不足的地方,就是評審的時候總覺得自己吐字不清晰,表達能力早就想提升了,但…

2021-11-14 C++三七二十一數

緣由c編程怎么寫&#xff0c;緊急求解-編程語言-CSDN問答 void 三七二十一數() {//緣由https://ask.csdn.net/questions/7566632?spm1005.2025.3001.5141int n 0, a 0, b 0, p 1;std::cin >> n;while (n--){std::cin >> a >> b;while (a<b){if (a %…

大模型面經 | DeepSpeed中ZeRO-1、ZeRO-2和ZeRO-3的區別是什么?

大家好,我是皮先生!! 今天給大家分享一些關于大模型面試常見的面試題,希望對大家的面試有所幫助。 往期回顧: 大模型面經 | 春招、秋招算法面試常考八股文附答案(RAG專題一) 大模型面經 | 春招、秋招算法面試常考八股文附答案(RAG專題二) 大模型面經 | 春招、秋招算法…

spring boot 文件上傳

1.編寫文件上傳的表單頁面 <!DOCTYPE html> <html lang"en" xmlns:th"http://www.thymeleaf.org"> <head><meta charset"UTF-8"><meta http-equiv"Content-Type" content"text/html; charsetUTF-8&qu…

機器學習核心算法全解析:從基礎到進階的 18 大算法模型

在機器學習領域&#xff0c;算法模型是解決實際問題的核心工具。 不同的算法適用于不同的數據場景和任務需求&#xff0c;理解它們的原理與應用是掌握機器學習的關鍵。 以下將詳細解析 18 個核心算法模型&#xff0c;涵蓋監督學習、無監督學習、集成學習和深度學習等多個領域…

5G網絡切片:精準分配資源,提升網絡效率的關鍵技術

5G網絡切片&#xff1a;精準分配資源&#xff0c;提升網絡效率的關鍵技術 隨著5G技術的廣泛應用&#xff0c;網絡切片&#xff08;Network Slicing&#xff09;作為其核心創新之一&#xff0c;正在改變傳統網絡架構。它通過將物理網絡劃分為多個邏輯網絡&#xff08;切片&…

Spring Boot中Excel處理完全指南

文章目錄 1. Excel處理基礎知識1.1 為什么需要在應用中處理Excel文件&#xff1f;1.2 Java中的Excel處理庫介紹1.2.1 Apache POI1.2.2 EasyExcel1.2.3 JExcel1.2.4 Apache POI SXSSF 1.3 Spring Boot中集成Excel處理 2. 在Spring Boot中集成Excel處理庫2.1 集成Apache POI2.1.1…

Elasticsearch 8.18 中提供了原生連接 (Native Joins)

作者&#xff1a;來自 Elastic Costin Leau 探索 LOOKUP JOIN&#xff0c;這是一條在 Elasticsearch 8.18 的技術預覽中提供的新 ES|QL 命令。 很高興宣布 LOOKUP JOIN —— 這是一條在 Elasticsearch 8.18 的技術預覽中提供的新 ES|QL 命令&#xff0c;旨在執行左 joins 以進行…

2025年滲透測試面試題總結-拷打題庫03(題目+回答)

網絡安全領域各種資源&#xff0c;學習文檔&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具&#xff0c;歡迎關注。 目錄 2025年滲透測試面試題總結-拷打題庫03 一、Windows與Linux系統提權思路 Windows提權 Linux提權 二、…

【華為】OSPF震蕩引起CPU占用率高怎么解決?

原創&#xff1a;廈門微思網絡 現象描述 如圖所示&#xff0c;Switch_1、Switch_2、Switch_3和Switch_4配置了OSPF協議&#xff0c;發現Switch_1設備的CPU占用率高&#xff0c;ROUT任務占用率明顯高于其他任務并且產生路由震蕩。 故障組網圖 原因分析 網絡中IP地址沖突導致…

Everything 安裝教程與使用教程(附安裝包)

文章目錄 前言一、Everything 介紹二、Everything 安裝教程1.Everything 安裝包下載2.選擇安裝文件3.選擇安裝語言4.接受許可協議5.選擇安裝位置6.配置安裝選項7.完成安裝 三、Everything 使用教程1.啟動軟件2.簡單關鍵詞搜索3.按類型搜索 前言 在日常使用電腦時&#xff0c;隨…

極狐GitLab CI/CD 流水線計算分鐘數如何管理?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 計算分鐘管理 (PREMIUM SELF) 在極狐GitLab 16.1 中&#xff0c;從 CI/CD 分鐘數重命名為計算配額或計算分鐘數。 管理員可…