協定疊

電腦的網絡控制軟件

協定疊(英語:Protocol stack),又稱協議堆疊,是計算機網路協定套件的一個具體的軟體實現。

協定套件中的一個協定通常是只為一個目的而設計的,這樣可以使得設計更容易。因為每個協定模塊通常都要和上下兩個其他協定模塊通訊,它們通常可以想像成是協定疊中的層。最低級的協定總是描述與硬體的物理交互。每個高級的層次增加更多的特性。用戶應用程式只是處理最上層的協定。(參見OSI模型

在實際中,協定疊通常分為三個主要部分:媒體,傳輸和應用。一個特定的作業系統或平台往往有兩個定義良好的軟體接口:一個在媒體層與傳輸層之間,另一個在傳輸層和應用程式之間。

媒體到傳輸接口定義了傳輸協定的軟體怎樣使用特定的媒體和硬體(「驅動程序」)。例如,此接口定義的TCP/IP傳輸軟體怎麼與乙太網硬體對話。這些接口的例子包括WindowsDOS環境下的ODI英語Open Data-Link InterfaceNDIS

應用到傳輸接口定義了應用程式如何利用傳輸層。例如,此接口定義一個網頁瀏覽器程序怎樣和TCP/IP傳輸軟體對話。這些接口的例子包括Unix世界中的伯克利套接字和微軟的Winsock

通用協定疊描述

T ~ ~ ~ T
[A]     [B]_____[C]

想像一下,3台電腦: A,B,C。A和B 都有無線電設備,並可以通過合適的網路協定(如 IEEE 802.11)通訊。C和B通過電纜連接來交換數據(例如乙太網。但是,不能用這兩項協定直接在A和C之間傳輸信息,因為這些電腦在概念上是連接在不同的網路上的。因此,需要一個跨網路協定來連接它們。

你可以結合這兩個網路來建立一個更強大的第三個網路協定,能夠控制無線和有線傳輸。但是一個更簡單的辦法是不改變這兩個協定並在這兩個協定之上建立一個協定(例如IP)。這樣就形成了兩個協定疊。網間協定和基礎協定通訊,兩個不同類型的基礎協定不會直接通訊。

參見