新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > IPv4/IPv6雙協議棧實現方案解析

        IPv4/IPv6雙協議棧實現方案解析

        作者: 時間:2012-05-09 來源:網絡 收藏

        3.3 6模塊

        6[2]模塊主要包括兩部分的功能,一是負責從網絡接口層接收6數據包,對數據包進行一定的處理后發送給上層處理模塊(TCP或ICMPv6)。二是從上層接收數據,進行報文的選路,封裝IPv6報頭后將數據報發送給網絡接口層。

        3.3.1 ICMPv6[3]的簡化分析

        ⑴ICMPv6信息報文

        嵌入式設備只需作為Ping的接收端,所以不需要發送回顯請求報文和處理回顯應答報文。為了讓客戶端可以測試網絡狀態以及測試使用,必須支持接收請求報文和發送相應的應答報文。

        ⑵ICMPv6錯誤報文

        由于嵌入式設備不會作為路由轉發設備,所以需要實現發送端口不可達報文,同時要支持超時報文通告對端超時錯誤。在BSD中,IP層沒有發送參數問題報文, ICMPv6無需支持處理參數問題報文。

        3.3.2鄰居發現協議(NDP)的簡化分析

        NDP[4]是IPv6協議的一個基本組成部分,它用于地址解析、鄰居發現以及路由器及網絡參數發現。本不支持路由功能,所以無需實現發送路由器通告報文,但必須接受路由器通告報文,以完成路由發現功能。同時支持鄰居通告和鄰居請求報文的接收和發送,以實現地址解析和重復探測。

        3.4 TCP模塊

        在TCP之上實現有限的WEB服務,可以對該協議的實現機制作相應的簡化及優化。

        3.4.1 TCP模塊的擴展

        TCP對IPv4和IPv6報文的處理過程沒有任何的不同,但是由于IPv4和IPv6地址結構不同,需要對使用IP地址的部分進行擴展。

        ⑴數據結構擴展

        PCB是用來記錄每個TCP連接狀態的,包括本地IP地址和遠程IP地址,擴展時使用union結構添加IPv6地址,同時添加標識位區別連接。

        ⑵操作擴展

        在TCP處理過程中包括輸入時對IP地址和端口號的匹配,輸出時校驗和的計算和路由的查找。由于對IPv4和IPv6報文調用相同的處理函數,需要在實現時在這幾個函數的處理過程中加入對相應PCB中標識位的判斷。

        3.4.2 簡化TCP狀態機

        TCP的面向連接和可靠性傳輸等特性決定了每一個標準的TCP狀態機龐大而且復雜,對于嵌入式應用,可以根據需要進行簡化。

        建立連接分為主動打開和被動打開,本設計作為監聽狀態的服務器端,僅實現被動打開。在設計中去掉了CLOSED狀態,讓它一開始就處于LISTEN狀態,等待對方發起連接。

        斷開連接分為主動斷開和被動斷開,從安全性的角度考慮,本設計僅實現主動斷開連接。當服務器發送完數據時,向客戶機發送關閉連接請求。

        通過以上分析,根據特定的應用不失一般性的裁減掉復雜和冗余的機制,除去標準狀態機中的客戶端部分,簡化連接的建立和關閉過程,就得到如圖2所示的簡化的TCP狀態機模型。


        圖2 簡化TCP有限狀態機



        關鍵詞: IPv 協議棧 實現方案

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 日喀则市| 罗定市| 新郑市| 盘锦市| 大田县| 永嘉县| 于田县| 开江县| 赤城县| 延寿县| 承德市| 澜沧| 大竹县| 鞍山市| 武平县| 凉山| 长葛市| 阜新市| 大方县| 浙江省| 区。| 滁州市| 山阳县| 额尔古纳市| 阳新县| 中卫市| 河曲县| 沙坪坝区| 盱眙县| 岳阳县| 贺兰县| 黑水县| 北京市| 东港市| 林口县| 霍州市| 榆中县| 黄平县| 泰顺县| 黔南| 炉霍县|