資料鏈路層的三個基本問題
阿新 • • 發佈:2020-12-28
1、封裝成幀
-
概念
在資料的頭部和尾部加上標記,確定幀的範圍
-
圖示
MTU:1500個位元組
-
問題
1、如果使用者只接收到半截幀,會拋棄嗎? 會, 因為是根據幀首部和尾部判斷幀的起始和結束,如果只有一個標記,那麼就會拋棄
2、透明傳輸
-
概念
在傳輸過程中,如果資料內部包含幀頭或幀尾資料,會將這些轉義。而這個過程對於外部是透明的,也就是說外部不知道內部做了這些操作
-
字元填充法
當傳輸的資料內部包含SOH或EOT時,在前面新增ESC轉義。 當傳輸到接收端時,再將這些字元去掉
3、 差錯控制
-
概念
傳輸過程中可能會產生 位元差錯。 1可能變為0,0可能變為1。 為了保證資料傳輸的可靠性,需要採用各種差錯檢測措施
誤位元速率: 在一段時間內,傳輸錯誤的位元佔所傳輸位元總數的比率。與信噪比有關
-
CRC 迴圈冗餘檢測
CRC迴圈冗餘檢測是否產生差錯
大致步驟: 將所要傳輸的資料分組,每組在資料後面攜帶冗餘碼(計算方法見下面)。當接收端收到資料後,除以商量好的編碼,如果結果為0,說明沒有差錯(可能存在問題)
-
CRC計算冗餘碼的過程
1、資料A 後面跟任意長度的位元B,如下為000。組成資料+000 (即A+B)
2、除數比B多一位,如下為1101(這裡稱為C)
3、除以除數得到冗餘碼 D
4、傳輸時,傳輸FCS(幀檢驗序列)(就是 資料+冗餘碼)(A+D)==》 FCS可以通過CRC計算得出
5、接收端收到後, 用 A+D 除以 除數C。如果結果為0,那麼說明中間沒有差錯。否則有錯誤就扔掉
-
CRC小結
CRC是無位元差錯,而不是無傳輸差錯的檢測機制
無位元差錯:凡是接收端資料鏈路層接受的幀都是沒有差錯的,有差錯就被丟棄了
無傳輸差錯: 指在傳輸過程中沒有差錯,需要加入確認和重傳機制
如果本篇部落格有任何錯誤和建議,歡迎大佬們批評指正
我是知逆,我們下期見
Peace