封裝成幀就是在一段資料的前後部分新增首部和尾部,這樣就構成了乙個幀。接收端在收到物理層上交的位元流後,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束。
mtu:最大傳送單元,幀的資料部分的極限大小(具體大小和協議有關)。
資料鏈路層的幀長:從幀首部到幀尾部之間的長度。
封裝成幀有四種方法:1.字元計數法 2.字元填充法 3.零位元填充法 4.違規編碼法
而這四種方法首先要遵守的原則,就是透明傳輸。
透明傳輸是指不管所傳資料是什麼樣的位元組合,都應當能夠在鏈路上傳送。因此,鏈路層就「看不見」有什麼妨礙資料傳輸的東西。
當所傳資料中的位元組合恰巧與某乙個控制資訊完全一樣時,就必須採取適當的措施,使收方不會將這樣的資料誤認為是某種控制資訊。這樣才能保證資料鏈路層的傳輸是透明的。
解釋略有點抽象,舉個栗子:
如圖所示,sou為開頭,eot為結尾,透明傳輸就是要保證soh到eot之間的所有資料都能正確傳送,要能保證在幀資料部分中遇到了eot之類的控制欄位而不為所動。
值得一提的是:當傳送的幀都是文字檔案組成時(文字檔案的字元都是從鍵盤上輸入的,都是ascii碼,不管從鍵盤上輸入什麼字元都可以放在幀裡傳過去,即實現了透明傳輸)
下面介紹一下四種封裝成幀的方法:
很簡單的一種封裝方法,它通過在幀首部使用乙個計數字段(第乙個位元組,八位)來表明幀內字元數。
如圖所示,每個幀首部都加了個數字,表明自己要發幾個字元。這種方法就叫做字元計數法。
缺點也很顯然,如果幀首部的數字突變了,就會造成毀滅性的連鎖反應。
字元填充法是一種常用的方法,通過在關鍵字段前增加乙個轉義字元,使得在資料傳輸過程中忽略掉資料部分中的控制字。
這種方法的原理近似於c語言中的』『字元。比如,要輸出』]'字元,就要printf("]")一樣。
接收端接收到這樣加過轉義字元的幀後,會自動脫去轉移字元。
這種方法蠻特別,如圖所示,曼徹斯特編碼只有 「高-低」 "低-高"兩種,所以可以用「高-高」,「低-低」來定界幀的起始和眾之。
一般而言,由於位元組計數法中 count欄位的脆弱性(其值若有差錯將導致災難性後果)及字元填充實現上的複雜性和不相容性,目前較普遍使用的幀同步法是位元填充和違規編碼法。
封裝成幀和透明傳輸
封裝成幀就是在一段資料的前後部分新增首部和尾部,這樣就構成了乙個幀。接收端在收到物理層上交的位元流後,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束。mtu 最大傳送單元,幀的資料部分的極限大小 具體大小和協議有關 資料鏈路層的幀長 從幀首部到幀尾部之間的長度。封裝成幀有四種方法 1....
封裝成幀和透明傳輸
幀首部使用乙個計數字段 第乙個位元組,八位 來標明幀內字元數。缺點 雞蛋裝在乙個籃子裡,乙個計數字段發生錯誤,所有資料都錯誤。1.當傳送的幀是由文字組成時 文字檔案的字元都是從鍵盤上輸入的,都是ascii碼 不管從鍵盤上輸入什麼字元都可以放在幀裡傳過去,即透明傳輸。2.當傳送的幀是由非ascii碼的...
3 1 2 封裝成幀和透明傳輸
3.1.2 封裝成幀和透明傳輸 1.封裝成幀 1.概念 就是在一段資料的前後部分新增首部和尾部,這樣就構成了乙個幀。接收端在收到物理層上交的位元流後,就能根據首部和尾部的標記,從收到的位元流中識別幀的開始和結束。2.幀同步 接收方應當能從接收到的二進位制位元流中區分出幀的起始和終止。3.組幀的四種方...