新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種協議棧設計和實現

        一種協議棧設計和實現

        作者: 時間:2011-07-07 來源:網絡 收藏

         基于驅動程序的,相比于傳統的基于任務的來說有兩點好處:(1)效率更高;(2)對于有多個棧的系統來說,有更大的兼容性。

        本文引用地址:http://www.104case.com/article/150495.htm

          協議棧是指網絡中各層協議的總和,其形象的反映了一個網絡中文件傳輸的過程:由上層協議到底層協議,再由底層協議到上層協議。使用最廣泛的是英特網協議棧。協議棧是指網絡中各層協議的總和,其形象的反映了一個網絡中文件傳輸的過程:由上層協議到底層協議,再由底層協議到上層協議。使用最廣泛的是英特網協議棧,由上到下的協議分別是:應用層(HTTP,TELNET,DNS,EMAIL等),運輸層(TCP,UDP),網絡層(IP),鏈路層(WI-FI,以太網,令牌環,FDDI等),物理層。

          1 基于任務的方式

          在我們比較兩種方式的技術細節之前,我們必須了解它們。傳統的設計方式包括將協議棧置于實時操作系統或內核之上,但是大多數實時操作系統不提供網絡互連的框架。所以,協議棧的設計者們不得不利用實時操作系統提供的機制--Task.圖1說明了如何利用任務來一個三層間通信的協議。每一層被作為一個單獨的任務,外加任務間通信機制負責傳送數據和控制包上下通過協議棧,程序設計者負責定義層與層之間的接口和一個應用程序接口(API),以利于應用程序員傳送和接收數據。

          在這里存在幾個效率不高的來源:首先,正如圖1中點線所說明的,當包在應用程序、上層的通信協議,以及網絡接口的設備驅動程序之間交換時,下層的操作系統正忙于上下文切換,每一次實時操作系統掛起其中一個任務,恢復執行另一個任務,時間都浪費在存取任務上下文中,考慮到每一個包無論是發還是收,都要通過協議棧的每一層,上下文切換的確造成了巨大的浪費。另外,當數據和控制包在應用程序任務和網絡接口之間流動時,包含此類信息的緩沖區必然重復在任務間通信隊列加入或刪除。然而,這個系統開銷是很大的,這本身是由于系統在隊列操作時必然包括需與中斷和上下文切換隔離的臨界區。因此,不僅時間浪費于隊列操作,而且整個系統對一些重要的事件例如中斷的響應變得延遲。

          2 基于驅動程序的方法

          英文名為Device Driver,全稱為設備驅動程序是一種可以使計算機和設備通信的特殊程序,可以 說相當于硬件的接口,操作系統只有通過這個接口,才能控制硬件設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。 因此,驅動程序被譽為 硬件的靈魂、硬件的主宰、和硬件和系統之間的橋梁等。

          另外一種選擇是將協議棧各層置于實時操作系統之中,圖2說明了基于此種方案,同樣的三層間通信協議是如何實施的。兩者之間的顯著區別在于:各個協議層是作為驅動程序模塊,而不是任務來的。

          另外一個改變在于:協議棧之上還有一個網絡服務模塊。加入這個模塊的目的在于將與協議無關的網絡特性抽象化。也就是說,它將應用程序設計者用來在協議棧間收發數據的應用程序接口(API)標準化,例如:你的嵌入式系統可能需要同時支持基于調制解調器接口的PPP連到一臺遠程計算機和一個紅外接口用來與本地計算機通信。然而程序設計者不必為兩個事件各自編程,它只需用網絡服務模塊提供API與其它計算機進行通信,唯一的區別在于通過哪個網絡接口而已。

        矢量控制相關文章:矢量控制原理

        上一頁 1 2 3 下一頁

        關鍵詞: 實現 設計 協議

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛纳斯县| 永善县| 碌曲县| 临清市| 乌拉特后旗| 广水市| 惠州市| 高平市| 沂源县| 潼关县| 乌什县| 连云港市| 波密县| 体育| 三明市| 温州市| 梨树县| 长春市| 巴彦淖尔市| 逊克县| 方正县| 奎屯市| 靖边县| 溆浦县| 宁城县| 玉林市| 福清市| 迭部县| 英山县| 台东县| 沂水县| 丰原市| 郓城县| 泸西县| 呼和浩特市| 花垣县| 六枝特区| 湘西| 都安| 华亭县| 含山县|