封裝成幀
- 為了提高幀的傳輸效率,應當使
幀的資料部分的長度盡可能大些,- 幀的資料部分才是真要傳輸的資料,幀頭和幀尾是為了實作資料鏈路層功能而額外添加的,
- 考慮到差錯控制等多種因素,每-種資料鏈路層協議都規定了幀的資料部分的長度.上限,即
最大傳送單元MTU(Maximum Transfer Unit),

封裝成幀
封裝成幀是指資料鏈路層給上層交付的協議資料單元添加幀頭和幀尾使之成為幀,
- 幀頭和幀尾中包含有重要的控制資訊,
- 幀頭和幀尾的作用之一就是
幀定界,

發送方的資料鏈路層將上層交付下來的協議資料單元封裝成幀后,還要通過物理層將構成幀的各位元,轉換成電信導發送到傳輸媒體,
**接收方的資料鏈路層如何從物理層交付的位元流中提取出一個個的幀?**任何判斷那一段是一個幀?

-
下面是是PPP幀的格式,在其
幀頭和幀尾中,各包含有一個長度為1位元組的標志欄位,其作用就是幀定界,假設發送方發送的是PPP幀,位元流中紅色部分是幀定界標志,那么接收順萬的資料鏈路層就可以依據幀定界標志,從物理層交付的位元流中提取出一個個的幀,

注意:并不是每一種資料鏈路層協議的幀都包含有幀定界標志,
比如:以太網版本2的MAC幀格式,在其幀頭和幀尾中,并沒有包含幀定界標志,那么,接收方又是如何從物理層交付的位元流中提取出一個個的以太網幀呢?
- 實際上,以太網的資料鏈路層封裝好MAC幀后,將其交付給物理層,物理層會在MAC項前面添加8位元組的前導碼,然后再將位元流轉換成電信導發送,
- 前導碼中的前7個位元組為前同步碼,作用是便接收萬的時鐘同步,
- 之后的1位元組為幀開始定界符,表明其后面是跟著的就是MAC幀,
- 另外,以太網還規定了幀間可隔時間為96位元的發送時間,
- 因此,MAC幀并不需要幀結束走界符,
注意:幀間間隔整有其它作用,

透明傳輸
透明傳輸:是指資料鏈路層對上層交付的傳輸資料沒有任何限制,就好像資料鏈路層不存在一樣,
-
轉義字符是一種特殊的控制字特,其長度為1個位元組,十進制值為27,而并不是E、S以及C這3個學字符, -
面向位元組的物理鏈路使用字節填充(或稱字符填充)的方法實作透明傳輸,發送方資料鏈路層收到其上層交付的協議資料單元,給其添加幀頭和幀尾使其成為幀,其中都包含了,幀定界標志,也就是一個得定數值,
如果在上層交付的協議資料單元中,恰好也包含了這個特定數值,接收方不能確接收該幀,
- 接收方接收到第一個幀定界標志時,認為這是幀的開始,當接收方再次接收到幀定界標志時,會誤認為幀結束了,
- 如果資料鏈路層不采取其他措施,來避免接收方對幀是否結束的誤判,就不能稱為透明傳輸,
資料鏈路層對上層交付的協議資料單元有限制,其內容不能包含幀定界符,
很顯然,這樣的資料鏈路層沒有什么使用價值,所以,各種資料鏈路層協議,一定會想辦法來解決這個問題,
例如:
- 在發送幀之前,對幀的資料部分進行掃描,每出現一個幀定界符,就在其前面插入一個轉義字符,
- 接收方資料鏈路層在物理層交付的位元流中提取幀,遇到第一個幀定界符時,認為這是幀的開始;當遇到轉義字符時就知道,其后面的1位元組內容雖然與幀定界符相同,但它是資料而不是定界符,剔除轉義字特后將其后面的內容作為資料繼續提取,
- 當再次提取到幀定界符時,表明這是幀的結束,
在上層交付給資料鏈路層的協議資料單元中,既包含了幀定界符,又包含了轉義字符,應該怎么處理?

方法仍然是至發送幀之前,對幀的資料部分進行 掃描,
- 每出現一個幀定界符或轉義字符,就在其前面插入一個轉義字符,
-
面向位元的物理鏈路使用位元填充的方法實作透明傳輸,-
是某個點對點協議的幀,為簡單起見,在幀首部和尾部中,僅給出了幀定界標志,而未給出其他控制欄位,
而在幀的資料部分,出現了兩個幀定界標志,但它們實際上是資料,而不是幀定界,

-
在發送前,可以
采用零位元填法,對資料部分進行掃描,每5個連續的位元1后面就插入1個位元0,這樣就確保了幀定界在整個幀中的唯一性,也就可以實作透明傳輸,

-
接收方的資料鏈路層,從物理層交付的位元流中提取幀時,
將幀的資料部分中的每5個連續的位元1后面的那個位元0剔除即可,

-
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/317862.html
標籤:其他
