數據鏈路層:基本概念

數據鏈路層的定義

對數據鏈路層有對上的網絡層接口. 對下提供物理層的接口.
定義合適的傳輸差錯率
對傳輸流進行管理, 以免快速的傳輸的數據被淹沒. 比如發送端發送信號太快, 接受方接受速度較慢, 此時數據鏈路層就需要提供一定的功能解決這個問題
物理層上傳輸的基本單元是比特, 將其變成一個連續的信號或者信號傳輸. 在鏈路層將數據轉換為一塊一塊的進行傳輸, 每一塊叫做一個數據幀, 傳輸的基本單元叫做數據幀

數據鏈路層功能

將網絡層數據 加上一定的校驗, 使得數據成為一個可靠的數據

相連

兩臺計算機之間有物理介質連接

物理鏈路

兩個節點之間有一個真正的物理節點, 這邊有一個物理層, 那邊有一個物理層, 這邊的二進制比特串可以傳到那邊的物理層.

數據鏈路

通過數據鏈路協議實現數據的可靠傳輸, 兩個數據鏈路層之間就形成了一個數據鏈路, 并且數據的傳輸有正確性保證.

數據鏈路層服務

1. 無確認無連接

在數據傳輸前不用建立數據鏈路收到數據幀不需要給對方一個確認消息

2. 有確認無連接

在數據發送前不需要建立連接, 即不需要建立數據鏈路, 但是對方收到一個數據時必須給發送方發送一個確認消息. 適用于信號傳輸速度延時較長的

3. 有確認有連接

在數據發送之前必須向對方主機打招呼, 必須建立一條完整的數據鏈路, 當對方接收到數據后, 也必須向發送方發送一個確認消息, 例如電話

數據的可靠傳遞

1. 將傳輸信息合成一個幀

(1)字符計數法

每一個幀的首部為幀的長度, 后面為幀的內容. 比如在發送一個幀為 1 2 3 4 時, 此時在幀的首部加上一個 5, 此時接收方接受到這個幀是 5 1 2 3 4, 此時接受方就認為收到的幀的長度是5, 它就再往后接受四個字節的數據幀
這里寫圖片描述
這種方法數據幀的長度一旦被誤讀, 則會產生不可收拾的錯誤

(2)帶字符填充的首尾界填充

在發送一個數據幀的時候, 給數據幀的首部和尾部加上一個特殊的字符 7E 表示幀的結束和開始, 數據幀的內容用是 ASCII 可顯示字符, 但是當數據幀中本來就有一個數據對應的字符是 7E 的時候, 此時傳輸數據幀的時候就在數據 7E 前加上一個 1B, 當接受方接受數據的時候發現數據幀中有一個 1B 的字符, 此時再向后檢測, 此時發現后面是一個 7E, 這是就將 1B 去除, 這樣就達到了數據的準確收發.

(3)帶位填充的首尾標志法

用 01111110 作為幀頭和幀為的標志, 在發送的時候如果幀的內容是中有 6 個連續的 1 的時候, 此時當傳輸到第 6 個 1 的時候就在第五個1后面插入一個 0, 此時就不會出現數據幀的錯誤,接收端在接受的時候對整個幀進行檢測, 如果發現了 5 個 1 后面的第六個二進制數是一個 0, 此時就說明它是在發送端發送的時候加上去的, 此時接受方就將這個 0 去掉, 如果對幀的二進制在進行從頭到尾的掃描時, 發現了有 6 個連續的 1 , 此時就說明這是真的結束標識, 這樣就完成了一個幀的準且發送和接受.
這里寫圖片描述

(4)物理層編碼違例法

用連續的高電平或者連續的低電平表示真的開始和結束

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

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

相關文章

C++的沉迷與愛戀

每年的 09/28 於我都是一個特殊的日子 -- 不只是因為教師節。今年很特殊地沒有普天同慶,那麼我就寫篇文章自己慶祝一下好了。我於今年七月發表了一本著作《多型與虛擬》和一本譯作《深度探索C物件模型》,獲得很大的回響。這些作品都不是針對 C 的完全初學…

Insertion Sort——打表找規律

【題目描述】 Insertion sort is a simple sorting algorithm that builds the final sorted array one item at an iteration.More precisely, insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. At each iteration…

數據鏈路層: 可靠性傳輸 六個協議

可靠性傳輸 1. 差錯控制 發送方將數據幀發送, 但是當發送方發送的是一個 1的時候此時接受方卻接受的是一個 0. (1)校驗 接收方如果幀校驗接受到的幀沒有問題, 則對發送方發送一個肯定性的確認, 當對這個數據幀進行校驗發現這個幀有問題的時候, 此時接受方一種是將這個數據幀…

c語言實現配置文件的讀寫

配置文件的格式如下&#xff1a; key1 value1 key2 value2 . . . 名值對以一個鏈接&#xff0c;一條記錄以換行符分割 頭文件&#xff1a; #include<stdio.h> #include<stdlib.h> #include <string.h> 函數原型&#xff1a; void trim(char *strIn, char *…

Educational Codeforces Round 73 (Rated for Div. 2)

A 很簡單的一個模擬&#xff0c;只要前面的數字有兩個以上就能合成后面的&#xff0c;我們進行一遍合成看能不能出現2048就可以了。 #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<iostream> #include&…

數據鏈路層: HDLC

一. 協議機 發送方和接收方. 同時有限狀態機把協議形式化為一個四元組 (S,M,I,T), 其中你S表示進程和信道可能進入的集合, M 表示數據幀的狀態, I 表示進程的初始狀態, T 表示兩兩狀態之間的轉化. 每個系統狀態可以分為發送狀態, 接受狀態和信道狀態. 把狀態用一個點進行表示,…

Miller_Rabin算法

為了測試一個大整數是不是素數&#xff0c;我們不能夠使用傳統的測試是否有因子的方法&#xff0c;因為那樣的時間復雜度至少也是O(n)O(n)O(n)&#xff0c;空間復雜度是O(n)O(n)O(n)&#xff08;使用線性篩數法&#xff09;&#xff0c;時間復雜度還好說&#xff0c;空間復雜度…

bob-tong 字符串函數之Strtok()函數

https://www.cnblogs.com/Bob-tong/p/6610806.html Strtok()函數詳解&#xff1a; 該函數包含在"string.h"頭文件中 函數原型&#xff1a; char* strtok (char* str,constchar* delimiters ); 函數功能&#xff1a; ??切割字符串&#xff0c;將str切分成一個個子…

數據鏈路層:SLIP(串型線路IP) PPP(點對點協議)

SLIP 沒有差錯控制, 傳輸時必須知道對方IP, 傳輸使用于低速業務 19.2k.應用非常受限 PPP協議 1. PPP協議功能 處理錯誤檢測 支持多協議(IP, IPX, DECnet 等) 連接時允許協商 IP 地址 允許身份驗證 2. PPP 的組成 串型鏈路上封裝數據報, 即支持異步鏈路也支持面向 比特…

Honeycomb——BFS

【題目描述】 傳送門 【題目分析】 看起來很復雜好像還要建圖什么的&#xff0c;其實直接在原圖上BFS就可以了&#xff0c;設置一下方向數組&#xff0c;然后直接跑就可以了。 【AC代碼】 #include<cstdio> #include<cstring> #include<algorithm> #inc…

C語言中strspn()函數和strcspn()函數的對比使用

C語言strspn()函數&#xff1a;計算字符串str中連續有幾個字符都屬于字符串accept 頭文件&#xff1a;#include <string.h> strspn() 函數用來計算字符串 str 中連續有幾個字符都屬于字符串 accept&#xff0c;其原型為&#xff1a; size_t strspn(const char *str, con…

Codeforces Round #587 (Div. 3)

A 只要每兩個都不一樣就可以&#xff0c;一旦出現兩個一樣的就改一個。 #include<cstdio> #include<cstring> #include<algorithm> #include<climits> #include<cctype> #include<queue> #include<set>using namespace std;typede…

信道分配 以太網

1.頻分復用 將信道分為多個頻帶, 用戶得到某個頻帶后,在通信的過程中, 自始至終都都占用這個信道.即頻分復用中, 所有用戶同時占用不同頻帶的信道 2. 時分信道 將時間劃分為一段一段的等長時分復用幀, 每個用戶在不同時間占用相同的數據幀 3. CSMA/CD 載波監聽多點接入/碰撞…

strpbrk函數

http://blog.csdn.net/tommy_wxie/article/details/7554332 函數原型&#xff1a;extern char *strpbrk(char *str1, char *str2) 參數說明&#xff1a;str1待比較的字符串&#xff0c;str2為指定被搜索的字符串。 所在庫名&#xff1a;#include <string.h> …

網絡層網絡層服務及其 IP 地址

ARP 協議功能 將 IP 地址通過廣播(一個網段, 不能跨路由器), 目標 MAC 地址是FFFFFFFF 解析目標IP地址的 MAC 地址. IP 協議 網絡層的一個協議, 是一個協議的統稱, 包括 ARP(地址解析協議) 協議, ICMP(網絡控制報文協議) 協議, IGMP(網際組管理協議) 協議. 其中 ICMP 和 IG…

隨機生成1024個數,存入一段內存,用指針實現獲取1024個數的最大數地址,最小數地址

http://blog.csdn.net/itcastcpp//details/39277193 題目&#xff1a;隨機生成1024個數&#xff0c;存入一段內存&#xff0c;用指針實現獲取1024個數的最大數地址&#xff0c;最小數地址&#xff0c;具體實現如下&#xff1a; [cpp] view plaincopy #include<stdlib.h> …

UVa11134

【題目分析】 覺得是一道挺考驗貪心掌握程度的題目&#xff0c;我就算知道是要用貪心而且肯定和區間有關&#xff0c;肯定要進行一下排序什么的我還是沒有找到合適的貪心策略。 經過大佬的博客后我才明白如何進行貪心。 如果沒有任何提示看這道題&#xff0c;首先&#xff0…

傳輸層:IP 地址解析 路由轉發

IP 地址與硬件地址 1. 地址解析 通過IP地址將其如何轉換為 MAC 地址.解決同一個局域網上的主機或路由的 IP 地址和硬件地址的映射問題. 即以太網上除了主機還有路由. 即如果發出的請求所有的主機都沒有做出相應, 那么該以太網上的路由會對其做出響應. (1) 以太網內部主機與…

UVa11582

一個數學問題,一旦出現循環確定循環節以后就能解決問題啦. 加上一個快速冪取模.需要注意的是數據范圍是264,所以必須用unsigned long long才能解決問題. 覺得板子還是要會自己寫,否則不同的題目具體有一些小的改變就會束手無策. 還有就是發現如果每次初始化數組的話就會超時,所…

輸入一個單向鏈表,輸出該鏈表中倒數第K個結點

http://blog.csdn.net/itcastcpp/article/details/39274891//尹成 單鏈表操作 #include <iostream> using namespace std; class LinkList;struct LinkNode { public:LinkNode(int value 0):m_value(value),pNext(NULL){}~LinkNode(){pNext NULL;}friend class LinkList…