【筆記】計算機網絡——數據鏈路層

概述

鏈路是從一個結點到相鄰結點的物理路線,數據鏈路則是在鏈路的基礎上增加了一些必要的硬件和軟件實現

數據鏈路層位于物理層和網絡層之間,它的核心任務是在直接相連的節點(如相鄰的交換機,路由器)之間提供可靠且高效的數據傳輸

數據的流動

在這里插入圖片描述

幀的流動

在這里插入圖片描述

一、數據鏈路層的主要功能:

1.封裝成幀

將網絡層傳遞下來的數據包(IP數據報)封裝成幀,添加頭部和尾部信息

結構:| 幀頭 | 數據(Payload) | 幀尾 |;

幀頭:包含物理地址(MAC地址),控制信息(如幀類型);幀尾:包含錯誤檢測碼,頭和尾的一個重要作用就是進行幀定界

幀定界(確定幀的邊界,以便接收端能夠正確地識別和處理數據)的方法:比特填充,字節填充,特殊字符

比特填充:比特填充是一種在幀中插入特定比特模式以實現幀定界的方法,在HDLC(高級數據鏈路控制)協議中,使用了標志字段來標識幀的開始和結束。標志字段的比特模式為01111110。為了防止數據中出現與標志字段相同的比特模式,當數據中連續出現5個1時,發送方會自動插入一個0,這一過程稱為比特填充。接收方在收到數據時會檢查比特序列,如果發現連續5個1后跟一個0,則將該0刪除,以恢復原始數據。

字節填充:字節填充是在幀中插入特定的字節以實現幀定界的方法。在PPP(點對點協議)中,使用了標志字段(flag)來標識幀的開始和結束,通常為0xC0(十六進制)。為了確保數據中不會出現與標志字段相同的字節,當數據中出現與標志字段相同的字節時,發送方會插入一個轉義字符(通常為0xDB),然后將該字節的值轉換為另一個值。接收方在收到數據時會檢查字節序列,如果發現轉義字符,則將后續字節轉換回原始值,并刪除轉義字符。

特殊字符:以太網使用前導碼作為幀的開始標志。前導碼是一個特定的比特模式,通常為10101010,用于同步發送方和接收方的時鐘。前導碼之后是幀的起始定界符(SFD,Start Frame Delimiter),其比特模式為10101011,用于明確標識幀的開始。以太網幀的結束則通過物理層的信號來標識,例如檢測到信號的結束或超時機制

在這里插入圖片描述

2.透明傳輸

透明傳輸是指在數據傳輸過程中,確保數據能夠被準確地傳輸和接收,而不受數據內容本身的影響。換句話說,無論數據中包含什么樣的比特模式或字節序列,都能夠被正確地傳輸和處理。

方法:面向字節的數據鏈路使用字節填充,面向字符的數據鏈路使用比特填充

在這里插入圖片描述

3.差錯控制

在這里插入圖片描述

?循環冗余校驗(CRC)

工作過程

  1. 發送端

    • 將要發送的數據視為一個二進制多項式M(x)

    • M(x)左移n位(n是生成多項式的次數)。

    • 用左移后的M(x)除以生成多項式G(x),得到余數R(x)

    • R(x)附加到原始數據的末尾,形成最終的傳輸數據T(x)

  2. 接收端

    • 接收到數據后,將其視為一個二進制多項式T'(x)

    • T'(x)除以生成多項式G(x),檢查余數是否為零。

    • 如果余數為零,認為數據無錯誤;否則,認為數據傳輸過程中出現了錯誤。

在這里插入圖片描述

?在這里插入圖片描述

?點對點PPP協議:

在這里插入圖片描述

?PPP協議中幀的格式:

在這里插入圖片描述

透明傳輸 :

面向字節的異步鏈路:字節填充法(插入轉義字符)

在這里插入圖片描述

面向比特的同步鏈路:比特填充法

在這里插入圖片描述

差錯檢測:

能夠對接收端收到的幀進行檢測,并立即丟棄有差錯的幀。

工作狀態(不是太懂)

當用戶撥號接入 ISP 時,路由器的調制解調器對撥號做出確認,并建立一條物理連接。

PC 機向路由器發送一系列的 LCP 分組(封裝成多個 PPP 幀)。

這些分組及其響應選擇一些 PPP 參數,并進行網絡層配置,NCP 給新接入的 PC 機

分配一個臨時的 IP 地址,使 PC 機成為因特網上的一個主機。

通信完畢時,NCP 釋放網絡層連接,收回原來分配出去的 IP 地址。接著,LCP 釋放數據鏈路層連接。最后釋放的是物理層的連接。

?在這里插入圖片描述

?媒體接入控制(介質訪問控制)————廣播信道

廣播信道就像一個大房間,信息會被所有人聽到。媒體接入控制(MAC)就是一種規則,用來管理誰在什么時候說話,避免混亂。

數據鏈路層的兩個子層

邏輯鏈路控制LLC子層,媒體接入控制MAC子層。

在這里插入圖片描述

?MAC地址,IP地址以及ARP協議

在這里插入圖片描述

MAC地址

使用點對點信道的數據鏈路層不需要使用地址,使用廣播信道的數據鏈路層必須使用地址來區分各主機

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

?廣播信道的數據鏈路層必須使用地址(MAC)

在這里插入圖片描述

單播MAC地址

在這里插入圖片描述

主機B將單播幀發送出去,主機A和C都會收到該單播幀

主機A的網卡發現該單播幀的目的的MAC地址與自己的MAC地址不匹配,丟棄該幀

主機C的網卡發現該單播幀的目的的MAC地址與自己的MAC地址匹配,接受該幀

廣播 MAC地址

在這里插入圖片描述

?主機B講該廣播幀發送出去,主機A和C都會收到該廣播幀,發現該幀首部中的目的地址字段的內容是廣播地址,就知道該幀是廣播幀,主機A和主機C都接受該幀,并將該幀交給上層處理

多播MAC地址

在這里插入圖片描述

主機A將該多播幀發送出去,主機B,C,D都會收到該多播幀

主機B和C發現該多播幀的目的MAC地址在自己的多播組列表中,主機B和C都會接受該幀

主機D發現該多播幀的目的MAC地址不在自己得多播組列表中,則丟棄該多播幀
給主機配置多播組列表進行私有應用時,不得使用公有的標準多播地址

IP地址

IP地址屬于網絡層的范疇,不屬于數據鏈路層的范疇

在這里插入圖片描述

從網絡體系結構中看IP地址與MAC地址

在這里插入圖片描述

?數據包轉發過程中IP地址與MAC地址變化情況

在這里插入圖片描述

?在這里插入圖片描述

可以看出在數據包轉發過程中MAC地址在不斷的改變,那么我們如何不斷得到新的目標MAC地址呢?

ARP協議(地址解析協議)

在這里插入圖片描述

?在這里插入圖片描述

?

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

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

相關文章

ngx_url_t

定義在 src/core/ngx_inet.h typedef struct {ngx_str_t url;ngx_str_t host;ngx_str_t port_text;ngx_str_t uri;in_port_t port;in_port_t default_port;in_port_t …

搜廣推校招面經五十四

美團推薦算法 一、手撕Transformer的位置編碼 1.1. 位置編碼的作用 Transformer 模型沒有顯式的序列信息(如 RNN 的循環結構),因此需要通過位置編碼(Positional Encoding)為輸入序列中的每個位置添加位置信息。位置…

網絡爬蟲【爬蟲庫urllib】

我叫不三不四,很高興見到大家,歡迎一起學習交流和進步 今天來講一講爬蟲 urllib介紹 Urllib是Python自帶的標準庫,無須安裝,直接引用即可。 Urllib是一個收集幾個模塊來使用URL的軟件包,大致具備以下功能。 ● urlli…

LabVIEW棉花穴播器排種自動監測系統

一、項目背景與行業痛點 1. 農業需求驅動 我國棉花主產區,種植面積常年超250萬公頃,傳統人工播種存在兩大核心問題: 效率瓶頸:人均日播種面積不足0.5公頃,難以匹配規模化種植需求; 精度缺陷:人…

解決diffusers加載stablediffusion模型,輸入prompt總是報錯token數超出clip最大長度限制

1. StableDiffusion1.5 在加載huggingface中的擴散模型時,輸入prompt總是會被報錯超過clip的最大長度限制。 解決方案:使用compel庫 from diffusers import AutoPipelineForText2Image import torch import pdb from compel import Compeldevice torc…

jmeter配件元素

jmeter配件元素 CSV Data Set Config名詞解釋測試場景Recycle on EOF:False配置測試結果 Recycle on EOF:True配置測試結果 Sharing mode:All Threads配置測試結果 Sharing mode:Current thread group配置測試結果 Sharing mode:Current thread配置測試結果 HTTP Header Manage…

Navicat SqlServer 設置自增主鍵

Navicat是一款優秀的數據庫管理工具&#xff0c;可以連接很多類型的數據庫。使用它可以極大的提高工作效率。 Navicat 不能設置SqlServer自增字段&#xff0c;只能通過sql語句來實現 建表時設置 create table <表名> ( <字段1-主鍵> int identity (1,1) primar…

Elasticsearch搜索引擎 3(DSL)

Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;語句來定義查詢條件&#xff0c;其JavaAPI就是在組織DSL條件。 1.DSL查詢 葉子查詢&#xff08;Leaf query clauses&#xff09;&#xff1a;在特定的字段里查詢特定值&#xff0c;屬于簡單…

final 在 java 中有什么作用?

final 在 java 中有什么作用&#xff1f; 修飾變量 修飾基本數據類型變量&#xff1a; 當用final修飾基本數據類型變量時&#xff0c;該變量就變成了常量&#xff0c;其值在初始化后不能被改變。 final int num 10; // num 20; // 這行代碼會導致編譯錯誤&#xff0c;因…

Dubbo/Hession2序列化Immutable類型的集合異常問題

問題排查 根據堆棧信息可見&#xff0c;dubbo使用默認的hession2進行序列化時出現了異常&#xff0c;異常堆棧根原因為&#xff1a;null array 位于java.util.CollSer#readResolve方法中&#xff0c;即在序列化集合時&#xff0c;集合數組為空。 向上追溯jdk.internal.ref…

目標檢測任務,如何區分兩個相近似的目標

首先&#xff0c;要了解清楚檢測的場景下&#xff0c;肉眼能否區分出目標的差異性。 如果可以區分&#xff0c;那觀察數據周圍背景的差異是否較大&#xff0c;可以先通過添加樣本來提升模型的檢測精度。添加樣本時一定要注意&#xff0c;樣本標注的準確性&#xff0c;樣本的豐…

Java面試黃金寶典1

1. 8 種基本數據類型 整數類型 byte&#xff1a; 它是最小的整數類型&#xff0c;占用 1 個字節&#xff08;8 位&#xff09;。在一些對內存使用要求極高的場景&#xff0c;比如嵌入式系統開發、數據傳輸時對數據量有嚴格限制的情況&#xff0c;會使用 byte 類型。例如&#x…

OSGEarth

OSGEarth 基于 OpenSceneGraph 構建的一個擴展庫&#xff0c;專門用于地球科學和地理信息系統&#xff08;GIS&#xff09;數據的可視化。它允許開發者創建逼真的三維地球模型&#xff0c;并在其上展示各種地理空間數據。 高端一點的表述 基于三維引擎osg開發的三維數字地球…

Word 小黑第34套

對應大貓34 設置第二頁水印&#xff0c;取消第一頁的&#xff1a;取消第二頁頁眉鏈接&#xff0c;刪除第一張水印圖片&#xff08;delete&#xff09; 調整水印圖片&#xff1a;點開頁眉頁腳 雙擊圖片 可以調整 郵件合并 -創建標簽 橫標簽數3 豎標簽5 表布局 -查看網格線 插…

2.5.1 io_uring

文章目錄 2.5.1 io_uring1. 對比1. select、poll、epoll 對比表格2. 關鍵特性說明&#xff1a;3. 應用場景 2. 異步io1. 頻繁copy2. 如何做到線程安全 3. io_uring1. 實現2. 關鍵點&#xff1a;3. 問題1. Reactor 與 Proactor 的三點不同2. epoll 與 io_uring 的區別 2.5.1 io_…

K8S學習之基礎三十六:node-exporter部署

Prometheus v2.2.1 ? 編寫yaml文件&#xff0c;包含創建ns、configmap、deployment、service # 創建monitoring空間 vi prometheus-ns.yaml apiVersion: v1 kind: Namespace metadata:name: monitoring# 創建SA并綁定權限 kubectl create serviceaccount monitor -n monito…

為什么“連接斷開可能導致鎖未釋放”

目錄 兩種典型場景可能導致鎖未及時釋放1. **數據庫未及時檢測到連接斷開**2. **應用程序未正確處理事務** 為什么說“可能因連接斷開導致死鎖”&#xff1f;如何避免此類問題&#xff1f;總結 在大多數數據庫實現中&#xff0c;如果持有鎖的連接&#xff08;或會話&#xff09…

【實戰指南】基于DevExpress輕量化主題實現WPF應用性能升級

DevExpress WPF擁有120個控件和庫&#xff0c;將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序&#xff0c;這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

【C++多線程】C++異步線程池提交任務的寫法和解釋

// 提交任務到線程池 template<class F, class... Args> auto ThreadPool::enqueue(F&& f, Args&&... args) -> std::future<typename std::result_of<F(Args...)>::type> {using return_type typename std::result_of<F(Args...)>…

CSS 屬性選擇器詳解

CSS 屬性選擇器詳解 引言 CSS(層疊樣式表)是網頁設計中的重要組成部分,它用于控制網頁元素的樣式和布局。屬性選擇器是CSS選擇器的一種,它允許開發者根據元素的特定屬性來選擇和樣式化元素。本文將詳細講解CSS屬性選擇器的概念、語法以及常用屬性選擇器的使用方法。 一、…