3.2 封裝成幀


封裝成幀是指數據鏈路成把上層丟下來的加幀頭和幀尾。

幀頭和幀尾含有重要的信息。作用之一就是幀定界

思考這樣的一個問題:我們發送方發到接收方了,那接收方如何從一大堆0101比特流中知道一個幀並且提取出來?

 

 

實際上,幀頭和幀尾帶有醒目的標志,各占一個字節。我們看下面點對點的傳輸

 

 

 

需要說明的是,並不是每一種幀都包含標志。

比如以太網V2的MAC幀格式

 

 

那么接收方在這種網絡下又是如何提取出幀的呢?

實際上我們在概述的時候講過,物理層看網絡是什么,如果是以太網,就加上8字節的前導碼。前導碼中的前7個字節為前同步碼,作用是使接收方的時鍾同步。之后的一字節為幀開始定界符。表明其后面緊跟着的就是MAC幀。

 

 

另外啊:以太網還規定了幀間間隔時間為96比特的發送時間。因此MAC幀並不需要幀結束定界符。

 

透明傳輸是指數據鏈路層對上層交付的數據沒有任何限制,就好像數據鏈路層不存在一樣。

我們的幀標志是一個數值,如果我們網絡層傳到數據鏈路層剛好含有相同的數值,那接收方還能收到正確的幀嗎?

  • 不能

那么數據鏈路層是如何解決這個問題的呢?網絡層傳來的時候,他加了幀頭幀尾掃描一遍標志,如何出現相同的那就加上一個ESC標志轉義字符(1個字節,10進制值為27),告訴我們的接收方跳過掃描這玩意。這是數據不是定界符。

 

 

那再來思考這樣一種情況,上層傳下來的即包含轉移字符,又包含和定界符相同的數字。這個又該怎么處理呢?

  • 也是相同的處理方法,還是加轉義字符。

上面我們將的都是面向字節的物理鏈路使用字節填充(或稱字符填充)的方法實現透明傳輸。

面向比特的物理鏈路使用比特填充的方法實現透明傳輸。

為了簡單起見,在幀首部和尾部中,僅給出了幀定界標志。而未給出其他控制字段。

 

 

現在幀的數據部分出現兩個和標志一樣的,那我們該怎么處理呢?

在發送前可以采用0比特填充法對數據部分進行掃描,每5個連續的比特1后面就插入一個比特0。這樣就確保了幀定界的唯一性。

 

 

 

最后還要提醒大家。為了提高幀的傳輸效率,應當使幀的數據部分的長度盡可能大些。

 

 

但是考慮到差錯控制等因素,數據鏈路層的協議也規定了幀的數據部分的長度上限。最大傳送單元MTU

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM