共用方式為


編碼和譯碼的數據

若要透過電話線路等通訊媒體傳送數據,數據必須 串行化,也就是轉換成以序列方式在線路上傳輸的一個和零字串。 串行化必須以這樣一種方式,讓接收數據的計算機可以將數據轉換成其原始格式。 串行化如何完成,稱為 通訊協定,並由軟體和數據傳輸硬體控制。 有數個層級會轉換數據。 下圖顯示通訊協定層的大幅簡化檢視。

通訊協定層

上圖顯示 [計算機] 上的應用層 #1,將數據傳送至編碼/譯碼層(通常由文字字元和數字的組合所組成)。 編碼/譯碼層會將數據編碼為計算機位元組數據流。 在最低層級的硬體層中,硬體會將數據的位元組轉換成一個和零的序列數據流,而該數據流會透過該行傳輸至電腦 #2。 計算機 #2 的硬體層會將 1 和 0 轉換成計算機位元組,並將它們傳遞至編碼/譯碼層以進行譯碼。 編碼/譯碼層會將位元組譯碼回其原始格式,並將數據傳遞至應用層。

接受的軟體設計原則是使用 抽象概念,也就是以一般參數描述問題或對象的程式,而不是描述解決問題所需的所有詳細數據,或描述物件的所有詳細數據。 使用抽象概念,設計工具可以指定具有特定質量的軟體物件,而不必擔心對象在軟體程式代碼中實際實作的方式。 這種做法會讓實作保持開啟。 它也會簡化規格,並讓您能夠說明實作物件時可以證明的物件公理。 然後,當物件在另一個較高層級的物件中使用時,就可以假設這些公理。 抽象是大多數當代軟體規格的標誌。

大多數 通訊協定 牽涉到大量的抽象概念。 較高層的物件會以抽象方式定義,並打算使用較低層的對象來實作。 例如,一層的服務可能需要在計算機之間傳輸特定抽象物件。 較低層級層可以使用編碼規則,將抽象物件轉換成一個和零的字串。

指定要串行傳輸之抽象物件的一個常見方法稱為 「抽象語法表示法一」(ASN.1)。 ASN.1 定義於 CCITT 建議 X.208。 一組 ASN.1 規則,代表一個和零的字串這類物件,稱為 辨別編碼規則 (DER),並定義於 CCITT 建議 X.509第 8.7 節。 這些是 CryptoAPI 目前使用的編碼方法。

如需編碼/譯碼函式的詳細資訊,請參閱 物件編碼和譯碼函式