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