【計算機網絡入門】初學計算機網絡(六)

目錄

1.回憶數據鏈路層作用

?2. 組幀

2.1?四種組幀方法

2.1.1 字符計數法

2.1.2 字節填充法

2.1.3 零比特填充法

2.1.4 違規編碼法

3. 差錯控制

3.1 檢錯編碼

3.1.1 奇偶校驗碼

3.1.2 CRC(循環冗余校驗)校驗碼

3.2 糾錯編碼

3.2.1 海明校驗碼

3.2.2 海明碼如何糾錯?

3.2.3 海明碼糾錯檢錯能力


1.回憶數據鏈路層作用

?2. 組幀

幀定界

如何讓接收方知道幀的界限?

透明傳輸

接收方如何去除“幀定界”的附加信息,把幀恢復原貌。

2.1?四種組幀方法

2.1.1 字符計數法

使用一個字節記錄幀的長度放在每一個幀開頭的位置

缺點任意一個計數字符出錯,那么后面的幀全部無法定界,和多米諾骨牌一樣

2.1.2 字節填充法

使用控制字符來確定一個幀的開始和結束

缺點:當數據的內容和指定的開始結束內容完全一致,我們該如何區分是數據還是控制字符

改進引入轉義字符,如果控制字符和數據內容完全一致,我們會在數據內容前面加入一個轉義字符表明:這就是普通的數據

????????如果數據的內容和轉義字符一樣,我們就在“數據”之前?再加一個轉義字符,讓接收方知道這是一個數據,當接收方接受到數據之后,需要逆處理去掉轉義字符。

2.1.3 零比特填充法

????????使用特殊的數字作為幀的開頭和結尾(01111110六個一),我們需要對數據部分進行處理,如果有連續五個1就在后面加一個0,這樣一來就不會出現和開始字符或者結尾字符相同的情況了。

使用零比特填充法的協議:PPP,HDLC?

2.1.4 違規編碼法

? ? ? ? 我們定義每個周期的中間必須變化,沒有變化的我們視作“違規”,所以我們只需要讓數據遵守規則,讓幀頭和幀尾的部分違規即可

3. 差錯控制

? ? ? ? 發現幀內部的位錯誤。

3.1 檢錯編碼

接收方發現比特錯誤丟棄幀,通知發送方重傳幀。

3.1.1 奇偶校驗碼

奇校驗:保持(有效信息位和校驗位)1的個數為奇數。

偶校驗:保持(有效信息位和校驗位)1的個數為偶數。

?如果,一下子有兩個二進制位跳位,那么也是會符合偶校驗的規則的,但是我們知道這是錯誤的。

3.1.2 CRC(循環冗余校驗)校驗碼

? ? ? ? 數據發送方、接收方約定一個除數K個信息位+R個校驗位作為被除數,添加校驗位后需要保證除法的余數為0;收到數據后進行除法檢查余數是否為0,若余數非0說明出錯,則進行重傳或糾錯。

??

?

3.2 糾錯編碼

? ? ? ? 由接收方發現并糾正比特錯誤。

????????上面說到奇偶校驗只能察覺到奇數個比特位的錯誤,一旦錯誤的位數是偶數,此方法就會失效,并且不能進行糾錯

3.2.1 海明校驗碼

? ? ? ? 海明碼的思路是基于偶校驗先把所有的數據進行分組,然后每一組有一個校驗位,這樣就能表示很多種狀態,甚至出錯的位置都能夠找到

????????這些狀態最起碼能表示信息位+校驗位出錯的位置,還有一種正確的狀態;加起來就是2的k次方≥n+k+1種狀態。將校驗位按照規定放入2的次方位置上面,信息位依次填入

? ? ? ? 我們把信息位的下標(H3的3,H5的5......)使用二進制表示出來進行分組H1?= P1 = 1101 = H357進行異或,H2 = P2 = 1011 = H367進行異或,H4 = P3 = 0111 = H567異或,分別異或算出校驗位。

?

? ? ? ?

3.2.2 海明碼如何糾錯?

????????我們現在的三個分組求出來對應的三個校驗位,也就是每組四個比特(3個信息位1個校驗位)直接進行異或,得數是0則沒有錯誤

?????????若此時P2跳變成0,我們第二組異或就會為1,由低位到高位就是010->也就是十進制的2,即海明碼的第二位出現了錯誤

3.2.3 海明碼糾錯檢錯能力

????????海明碼可以1位糾錯,2位檢錯;做到這樣的結果我們只需要增加一位作為整體偶校驗;我們就會出現以下三種情況。

①校驗方程=0且全體偶校驗成功(0):完全正確。

②校驗方程≠0且全體偶校驗失敗(1):有一位錯誤,可以定位找到。

③校驗方程≠0且全體偶校驗成功(0):有兩位錯誤,無法定位,申請重傳。

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

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

相關文章

yolo位姿估計實驗

目錄 介紹實驗過程 2.1 數據集下載 2.2 模型和數據配置文件修改 2.3 模型訓練參考鏈接 1. 介紹 1.1 簡介 YOLOv8-Pose是基于YOLOv4算法的姿勢估計模型,旨在實現實時高效的人體姿勢估計。姿勢估計在計算機視覺領域具有重要意義,可廣泛應用于視頻監控、…

極簡Redis速成學習

redis是什么? 是一種以鍵值對形式存儲的數據庫,特點是基于內存存儲,讀寫快,性能高,常用于緩存、消息隊列等應用情境 redis的五種數據類型是什么? 分別是String、Hash、List、Set和Zset(操作命…

大語言模型學習--本地部署DeepSeek

本地部署一個DeepSeek大語言模型 研究學習一下。 本地快速部署大模型的一個工具 先根據操作系統版本下載Ollama客戶端 1.Ollama安裝 ollama是一個開源的大型語言模型(LLM)本地化部署與管理工具,旨在簡化在本地計算機上運行和管理大語言模型…

【OpenCV C++】以時間命名存圖,自動檢查存儲目錄,若不存在自動創建, 按下空格、回車、Q、S自動存圖

文章目錄 // 保存圖像的函數 void saveImage(const cv::Mat& frame) {// 生成唯一文件名auto now = std::chrono::system_clock::

【JavaEE】線程安全

【JavaEE】線程安全 一、引出線程安全二、引發線程安全的原因三、解決線程安全問題3.1 synchronized關鍵字(解決修改操作不是原子的)3.1.1 synchronized的特性3.1.1 synchronized的使用事例 3.2 volatile 關鍵字(解決內存可見性) …

Vue核心知識:動態路由實現完整方案

在Vue中實現動態路由,并結合后端接口和數據庫表設計,是一個復雜的項目,需要多個技術棧和步驟的配合。以下將詳細描述整個實現過程,包括數據庫設計、后端接口設計、前端路由配置以及如何實現動態路由的功能。 目錄 一、需求分析二…

自媒體多賬號如何切換不同定位才能做得更好

一、選擇稀缺增長的賽道,避開內卷紅海 1.職場賽道 ● 細分方向:公務員/體制內經驗分享、自由職業指南、遠程辦公技巧。例如,通過采訪自由職業者或分享遠程工作體驗,快速積累精準粉絲。 ● 優勢:職場人群需求明確&…

基于SpringBoot的校園二手交易平臺(源碼+論文+部署教程)

運行環境 校園二手交易平臺運行環境如下: ? 前端:Vue ? 后端:Java ? IDE工具:IntelliJ IDEA(可自行更換) ? 技術棧:SpringBoot Vue MySQL 主要功能 校園二手交易平臺主要包含前臺和…

iPhone 鏡像 連接錯誤

重置連接 defaults delete com.apple.ScreenContinuity打開 iPhone 鏡像 參考 mac鏡像iPhone無法連接報錯個人經歷的 iPhone 鏡像 bug 與部分解決辦法

Qt基礎入門-詳解

前言 qt之路正式開啟 💓 個人主頁:普通young man-CSDN博客 ? 文章專欄:C_普通young man的博客-CSDN博客 ? 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有問題 評論區見📝 🎉歡迎大家點贊&#x1f44…

Unity 優化封裝常用API和編輯器擴展工具包

資源名:WXTools 文章目錄 MeshRenderEditorSpriteGroupToolWXEditorUtilsComponentUtilsDataUtilsGameObjectUtilsRigidbodyUtilsStringUtilsTransformUtilsVectorUtilsWXTools 內容包括: MeshRenderEditor mesh擴展 SpriteGroupTool SpriteGroup操作…

python學習第三天

條件判斷 條件判斷使用if、elif和else關鍵字。它們用于根據條件執行不同的代碼塊。 # 條件判斷 age 18 if age < 18:print("你還是個孩子&#xff01;") elif age 18:print("永遠十八歲&#xff01;") else:print("你還年輕&#xff01;")…

ThinkPHP使用phpword讀取模板word文件并添加表格

1.安裝phpword包composer require phpoffice/phpword 2.模板文件結構 如上圖框住的是要替換的文本和要復制表格樣式 實現代碼 <?phpnamespace app\api\logic;use PhpOffice\PhpWord\Element\Table; use PhpOffice\PhpWord\SimpleType\TblWidth; use PhpOffice\PhpWord\…

(原創)用python語言基于paddleocr構建批量識別實現紙質和電子的增值稅專用發票程序

文章目錄 1. 說明2. 準備工作3. 代碼3.1 導入庫&#xff1a;3.2 遍歷發票指定處理方式3.3 發票識別相關函數3.4 發票字段定位函數3.6 識別記錄相關函數3.6 識別結果校驗3.7 文件預處理等其他函數3.8 main主函數 1. 說明 1.1 以paddle識別引擎為基礎的增值稅發票識別程序&#…

DeepSeek搭配Excel,制作自定義按鈕,實現辦公自動化!

今天跟大家分享下我們如何將DeepSeek生成的VBA代碼&#xff0c;做成按鈕&#xff0c;將其永久保存在我們的Excel表格中&#xff0c;下次遇到類似的問題&#xff0c;直接在Excel中點擊按鈕&#xff0c;就能10秒搞定&#xff0c;操作也非常的簡單. 一、代碼準備 代碼可以直接詢問…

解決顯示器在高刷條件下花屏的問題

起因是家里的顯示器好久沒用之后&#xff0c;100HZ的刷新率下會花屏&#xff0c;在75HZ的情況下就正常顯示&#xff0c;在網上找了一圈感覺是硬件問題解決不了 于是想了想如果我用90HZ呢&#xff1f;不過原始的情況下沒有自定義刷新率的選擇&#xff0c;不過amd和nvida控制面板…

IP-----雙重發布

目錄 6.雙重發布 1.重發布的作用 2.部署條件 1.必須存在ASBR 2.種子度量值 3.重發布的規則 4.重發布的數量 5.重發布的場景 1.場景和規則 2.直連和靜態 3.動態RIP 4.動態OSPF 5.更改開銷值 6.重發布的問題1 7.重發布的問題2 1.流量 2.前綴列表 3.偏移列表 4…

藍橋杯試題:DFS回溯

一、題目要求 輸入一個數組n&#xff0c;輸出1到n的全排列 二、代碼展示 import java.util.*;public class ikun {static List<List<Integer>> list new ArrayList<>();public static void main(String[] args) { Scanner sc new Scanner(System.in);…

Ruby基礎

一、字符串 定義 283.to_s //轉為string "something#{a}" //定義字符串&#xff0c;并且插入a變量的值 something//單引號定義變量 %q(aaaaaaaaa) // 定義字符串&#xff0c;&#xff08;&#xff09;內可以是任何數&#xff0c;自動轉義雙引號%Q("aaaaa"…

基于提示驅動的潛在領域泛化的醫學圖像分類方法(Python實現代碼和數據分析)

摘要 醫學圖像分析中的深度學習模型易受數據集偽影偏差、相機差異、成像設備差異等導致的分布偏移影響&#xff0c;導致在真實臨床環境中診斷不可靠。領域泛化&#xff08;Domain Generalization, DG&#xff09;方法旨在通過多領域訓練提升模型在未知領域的性能&#xff0c;但…