位元組填充和位元填充的區別
位元組填充和位元填充的區別可以從以下幾個方面進行比較:
什麼是位元組填充和位元填充?
**位元組填充**是一種機制,用於將由可能包含保留值(例如幀定界符)的位元組序列組成的訊息轉換為不包含保留值的另一個位元組序列。
**位元填充**是在要傳輸的訊息中插入一個或多個非資訊位的一種機制,目的是為了打破訊息序列,實現同步。
位元組填充和位元填充的目的
在資料鏈路層,來自物理層的位元流被劃分為資料幀。資料幀可以是固定長度的,也可以是可變長度的。在可變長度幀中,每個要傳輸的幀的大小可能不同。因此,使用一種位元模式作為定界符來標記一個幀的結束和下一個幀的開始。但是,如果該模式出現在訊息中,則需要加入機制來避免這種情況。
兩種常見的方法是:
**位元組填充** - 在訊息中填充一個位元組以與定界符區分開來。這也被稱為面向字元的幀。
**位元填充** - 在訊息中填充任意長度的位元模式以與定界符區分開來。這也被稱為面向位元的幀。
位元組填充和位元填充中的資料鏈路層幀
資料鏈路幀包含以下部分:
**幀頭** - 包含幀的源地址和目標地址。
**有效載荷欄位** - 包含要傳送的訊息。在位元填充中,它是一個可變的位元序列,而在位元組填充中,它是一個可變的資料位元組序列。
**尾部** - 包含錯誤檢測和糾錯位。
**標誌** - 標誌是幀定界符,表示幀的開始和結束。在位元填充中,標誌由定義開始位和結束位的位元模式組成。它通常為8位,包含六個或更多連續的1。在位元組填充中,標誌是一個位元組,表示協議相關的特殊字元。
位元組填充與位元填充的機制
位元組填充機制
如果標誌位元組的模式存在於訊息位元組序列中,則應該有一種策略來防止接收方將該模式視為幀的結束。在這裡,一個特殊的位元組,稱為跳脫字元 (ESC),會在訊息中每個與標誌位元組模式相同的位元組之前填充。如果在訊息位元組中找到ESC序列,則會在其之前填充另一個ESC位元組。
位元填充機制
在這裡,定界標誌序列通常包含六個或更多連續的1。大多數協議使用8位模式01111110作為標誌。為了在序列相同的情況下區分訊息和標誌,在訊息中填充單個位元。每當訊息中出現0位元後跟五個連續的1位元時,就在五個1位元的末尾填充一個額外的0位元。當接收方收到訊息時,它會移除五個1位元之後填充的0位元。然後將未填充的訊息傳送到上層。