微型化IPv6協議棧
前面我們對IPv6協議在嵌入式方面的一些主要協議類型進行了簡單的說明和介紹,相信大家已經對整個系統中包含的協議類型有了一定的了解了。現在,我們主要討論系統中的精簡IPv6協議棧。
IPv6協議棧的精簡協議棧
精簡的核心是“微型化”,我們對協議棧進行協議模塊裁減和單個協議簡化。
IPv6協議模塊裁減
協議模塊裁減是指在保障基本通信功能的前提下盡可能去掉一些協議模塊,節省系統資源。網絡接口層我們只考慮802.3以太網協議(CSMA/CD,MAC,LLC),不考慮面向CAN,RS-232,RS-485,射頻,藍牙等相關的支持模塊。接入方式上只考慮用路由器接入方式,不考慮撥號連接方式,去掉和撥號連接方式相關的面向點對點連接的PPP協議和SLIP協議,這兩個協議在網絡接口層占用的代碼量比較多;IP層只實現基本的報頭,不實現擴展報頭,去掉基于認證頭和封裝安全載荷頭選項的IPsec協議,安全控制交給其他層。ICMPV6和ND是核心協議必須保留;傳輸層TCP和UDP可以全部實現也可以只實現一種,考慮的適應性,本設計中都給予實現。因此協議模塊裁減后要實現的核心協議族為802.3,IPv6,ICMPV6,ND,TCP,UDP。
單個協議簡化
單個協議簡化是指以單個協議為目標,進行功能和數據結構的簡化。對IPv6協議來說,只接收,發送報文,不支持報文的分片與重組,不支持擴展報頭選項,對可靠連接傳輸來講,包過大得不到確認,會根據擁塞控制機制和重傳機制,減少數據分組長度,進行重新發送,對大多數應用來說這不會產生其他嚴重問題。
對ICMPV6來說,只實現錯誤報文中的目的不可達報文,信息報文中的應答回復報文,不實現超時報文,報文過大報文和應答請求報文,一般包過大,超時報文由路由器實現,應答請求報文用于主動測試中發起測試的PC機一端。對鄰居發現ND模塊來說,只實現鄰居請求和鄰居應答報文,嵌入式設備剛接入網絡,它可以靜態的等待網絡上路由器定時發送的路由公告報文,而不是主動發送路由請求報文來獲取,不需實現路由請求/路由應答報文。
嵌入式設備連接的鄰居接點,路由一般簡單,傳輸量少,不需重定向報文來進行路由定向。簡化的大塊在TCP,TCP是整個協議簇中最復雜,代碼量最多的協議。
它的功能模塊有:滑動窗口,流量控制,擁塞控制,TCP連接狀態機,往返時間估計,重傳協議。
本IPv6協議棧的目標是有操作系統支持的嵌入式系統,速度和存儲量比8位和16位單片機都有提高,不必采用分配固定緩沖區的形式進行接收一幀處理一幀,可以考慮采用分配一個較大的緩沖區實現滑動窗口機制,用來提高傳輸效率,實驗證明,傳輸效率的提高是明顯的,往返時間估計和重傳機制比較簡單,代碼量不大,可以實現,TCP狀態機表示TCP進程通信的狀態遷移,是TCP的核心必須實現,可以不實現流量控制機制,因為流量不是很大。
因此TCP模塊實現的功能有:TCP有限自動機,滑動窗口,往返時間估計,重傳協議。
忽略流量控制與擁塞控制模塊,在可靠連接中,當因擁塞而發生數據丟失的時候,發送方收不到確認就采用重傳機制重發數據。



















