共用方式為


編碼和解碼的資料

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

通訊協定層

上圖顯示電腦 #1 上的應用層 #1 傳送要傳輸的資料 (,通常由) 到編碼/解碼層的一些文字字元和數位組合所組成。 編碼/解碼層會將資料編碼成電腦位元組資料流程。 在最低層級的硬體層中,硬體會將資料的位元組轉換成一個和零的序列資料流程,而該資料流程會透過這一行傳輸至電腦 #2。 電腦 #2 的硬體層會將一個和零轉換成電腦位元組,並將其傳遞至編碼/解碼層以進行解碼。 編碼/解碼層會將位元組解碼回其原始格式,並將資料傳遞至應用層。

接受的軟體設計原則是使用 抽象概念,也就是以一般參數描述問題或物件的程式,而不是描述解決問題所需的所有詳細資料,或描述物件的所有詳細資料。 使用抽象概念,設計工具可以指定具有特定品質的軟體物件,而不需要考慮物件在軟體程式碼中實際實作的方式。 這種作法會讓實作保持開啟。 它也會簡化規格,並讓您能夠陳述有關實作物件時可證明之物件的基數。 當物件在另一個較高層級的物件中採用時,就可以假設這些十六進位。 抽象概念是大多數現代軟體規格的標誌。

大部分 的通訊協定 都牽涉到良好的抽象概念。 較高層的物件會以抽象方式定義,而且是要使用較低層的物件來實作。 例如,一層的服務可能需要在電腦之間傳輸特定抽象物件。 較低層級層可以使用編碼規則,將抽象物件轉換成一和零的字串。

指定要串列傳送之抽象物件的常見方法之一,稱為 抽象語法標記法一 (ASN.1) 。 ASN.1 定義于 CCITT 建議 X.208中。 一組 ASN.1 規則,用來表示這類物件,例如 1 和零的字串,稱為可辨別編碼規則 ( DER) ,並在 CCITT 建議X.509第 8.7 節中定義。 這些是 CryptoAPI 目前使用的編碼方法。

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