協議棧

計算機網路協議套件的軟體實現

協議棧(英語:Protocol stack),又稱協議堆疊,是計算機網路協議套件的一個具體的軟體實現。協議套件中的一個協議通常是只為一個目的而設計的,這樣可以使得設計更容易。因為每個協議模塊通常都要和上下兩個其他協議模塊通信,它們通常可以想象成是協議棧中的層。最低級的協議總是描述與硬體的物理交互。每個高級的層次增加更多的特性。用戶應用程序只是處理最上層的協議。(參見OSI模型)

簡介


在實際中,協議棧通常分為三個主要部分:媒體,傳輸和應用。一個特定的操作系統或平台往往有兩個定義良好的軟體介面:一個在媒體層與傳輸層之間,另一個在傳輸層和應用程序之間。
媒體到傳輸介面定義了傳輸協議的軟體怎樣使用特定的媒體和硬體(“驅動程序”)。例如,此介面定義的TCP/IP傳輸軟體怎麼與乙太網硬體對話。這些介面的例子包括Windows和DOS環境下的ODI和NDIS。
應用到傳輸介面定義了應用程序如何利用傳輸層。例如,此介面定義一個網頁瀏覽器程序怎樣和TCP/IP傳輸軟體對話。這些介面的例子包括Unix世界中的伯克利套接字和微軟的Winsock。

通用描述


想象一下,3台電腦:A,B,C。A和B都有無線電設備,並可以通過合適的網路協議(如IEEE802.11)通信。C和B通過電纜連接來交換數據(例如乙太網。但是,不能用這兩項協議直接在A和C之間傳輸信息,因為這些電腦在概念上是連接在不同的網路上的。因此,需要一個跨網路協議來連接它們。
你可以結合這兩個網路來建立一個更強大的第三個網路協議,能夠控制無線和有線傳輸。但是一個更簡單的辦法是不改變這兩個協議並在這兩個協議之上建立一個協議(例如IP)。這樣就形成了兩個協議棧。網間協議和基礎協議通信,兩個不同類型的基礎協議不會直接通信。