面向字元的幀定界和麵向位元的幀定界
幀定界是資料鏈路層的功能,其中網路層的資料包被封裝成幀。資料幀可以是固定長度的,也可以是可變長度的。在可變長度幀定界中,要傳輸的每個幀的大小可能不同。因此,使用一段位元模式作為分隔符來標記一個幀的結束和下一個幀的開始。
兩種型別的可變大小幀定界是:
- 面向字元的幀定界
- 面向位元的幀定界
面向字元的幀定界
在面向字元的幀定界中,資料以位元組序列的形式傳輸,來自 8 位編碼系統(如 ASCII)。面向字元的幀定界中幀的組成部分包括:
幀頭 - 它包含幀的源地址和目標地址,以位元組形式表示。
有效載荷欄位 - 它包含要傳遞的訊息。它是一系列可變的資料位元組。
幀尾 - 它包含用於錯誤檢測和糾錯的位元組。
標誌 - 標誌是幀定界符,用於指示幀的開始和結束。它是一個 1 位元組,表示協議相關的特殊字元。

面向字元的協議適用於文字傳輸。標誌被選擇為不用於文字編碼的字元。但是,如果協議用於傳輸多媒體訊息,則訊息位元組序列中可能會存在標誌位元組的模式。為了防止接收方將該模式視為幀的結束,使用位元組填充機制。在此,在訊息中每個與標誌位元組模式相同的位元組之前都填充一個稱為跳脫字元 (ESC) 的特殊位元組。如果在訊息位元組中找到 ESC 序列,則在其前面填充另一個 ESC 位元組。
面向字元的幀定界的一個問題是它給訊息增加了過多的開銷,從而增加了幀的總大小。另一個問題是最近使用的編碼系統具有 16 位或 32 位字元,這與 8 位編碼衝突。
面向位元的幀定界
在面向位元的幀定界中,資料以位元序列的形式傳輸,上層可以將其解釋為文字和多媒體資料。
面向字元的幀定界中幀的組成部分包括:
幀頭 - 它包含表示幀的源地址和目標地址的位元。
有效載荷欄位 - 它包含要傳遞的訊息。它是一系列可變的位元。
幀尾 - 它包含錯誤檢測和糾錯位元。
標誌 - 標誌是充當幀定界符的位元模式,用於指示幀的開始和結束。它通常為 8 位,包含六個或更多連續的 1。大多數協議使用 8 位模式 01111110 作為標誌。

面向位元的協議適用於傳輸任何位元序列。因此,訊息中可能存在標誌位元的模式。為了防止接收方將其視為幀的結束,使用位元填充機制。當訊息中 0 位元後面跟著五個連續的 1 位元時,在五個 1 的末尾填充一個額外的 0 位元。當接收方收到訊息時,它會在每個五個 1 的序列之後刪除填充的 0。然後,未填充的訊息被髮送到上層。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP