什麼是計算機網路中的位元組填充?


位元組填充的目的

在資料鏈路層,來自物理層的位元流被分成資料幀。資料幀可以是固定長度的,也可以是可變長度的。在可變長度幀中,要傳輸的每個幀的大小可能不同。因此,使用一種位元模式作為分隔符來標記一個幀的結束和下一個幀的開始。但是,如果該模式出現在訊息中,則需要加入機制來避免這種情況。

兩種常見的方法是:

  • 位元組填充 - 在訊息中填充一個位元組以與分隔符區分開來。這也被稱為面向字元的幀。

  • 位元填充 - 在訊息中填充任意長度的位元模式以與分隔符區分開來。這也被稱為面向位元的幀。

面向字元幀中的幀

在面向字元的協議中,訊息被編碼為 8 位字元,使用像 ASCII 這樣的編碼。

一個幀包含以下部分:

  • 幀頭 - 包含幀的源地址和目的地址。

  • 有效載荷欄位 - 包含要傳送的訊息。

  • 尾部 - 包含錯誤檢測和錯誤校正位。

  • 標誌 - 幀開頭和結尾處的 1 位元組 (8 位) 標誌。它是一個協議相關的特殊字元,表示幀的開始和結束。

Oriented Framing

位元組填充機制

如果標誌位元組的模式存在於訊息位元組中,則應該有一種策略,使接收方不會將該模式視為幀的結束。在面向字元的協議中,採用的機制是位元組填充。

在位元組填充中,一個稱為跳脫字元 (ESC) 的特殊位元組在訊息中每個與標誌位元組具有相同模式的位元組之前被填充。如果在訊息位元組中找到 ESC 序列,則會在其之前填充另一個 ESC 位元組。

Byte Stuffing Mechanism

更新於:2019年7月30日

26K+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告