Mobile IPv6平臺移植步驟
在Mobile IPv6平臺移植過程中,我們通常使用C語言來編寫代碼,可以保持普遍的語言統(tǒng)一性?,F(xiàn)在,我們來了解Mobile IPv6協(xié)議棧的主要部分,那么分為四個功能體: 通用功能體、內(nèi)核功能體、適配層、安全機制。本文主要針對通用功能體進行說明,其余的內(nèi)容將在《Mobile IPv6功能體實現(xiàn)》中進行說明。
MultiPlat Mobile IPv6三個部分的實現(xiàn)都采用大多數(shù)操作系統(tǒng)編譯器支持的標(biāo)準(zhǔn)C語言編寫,這樣可以保持語言的統(tǒng)一性。
通用功能體是協(xié)議棧的主要部分,它包含協(xié)議棧中絕大多數(shù)的代碼,該部分源代碼禁止直接調(diào)用基于平臺的系統(tǒng)函數(shù),采用統(tǒng)一的適配層接口函數(shù)調(diào)用操作系統(tǒng)相關(guān)功能。它是在MultiPlat Mobile IPv6平臺移植過程中保持不變的部分。
內(nèi)核功能體是移植過程的重要部分,移植的主要工作集中在重新編寫這一部分的代碼模塊,它的實現(xiàn)需要根據(jù)實際情況選擇具體的實現(xiàn)方式,我們選擇模塊安裝的方法插入操作系統(tǒng)核心。不建議修改操作系統(tǒng)內(nèi)核源代碼,如修改操作系統(tǒng)源代碼,操作系統(tǒng)升級可能產(chǎn)生新的移植工作,而且大多數(shù)的操作系統(tǒng)為非開源系統(tǒng),修改源代碼并不可行。
適配層起到連接通用功能體與內(nèi)核功能體以及操作系統(tǒng)的橋梁作用,它直接關(guān)系到通用功能體通用性。適配層向通用功能體提供統(tǒng)一的通信接口函數(shù)、線程管理函數(shù)以及定時函數(shù),避免通用功能體直接調(diào)用形式各異的操作系統(tǒng)API函數(shù)。
◆通用功能體實現(xiàn)
通用功能體集中了Mobile IPv6協(xié)議大多數(shù)邏輯處理過程,根據(jù)移動相關(guān)控制命令報文,觸發(fā)操作過程,并維護移動相關(guān)數(shù)據(jù),是移動切換,路由優(yōu)化,移動狀態(tài)數(shù)據(jù)產(chǎn)生和維護的管理過程。通用功能體是MultiPlat Mobile IPv6的核心部分,主要完成以下三個方面的功能:移動設(shè)備發(fā)生移動時根據(jù)相關(guān)網(wǎng)絡(luò)信息發(fā)現(xiàn)新的鏈路,在新的鏈路中注冊得到CoA地址,通知HA和CN并進行綁定,在MN和CN之間建立路由優(yōu)化關(guān)系;產(chǎn)生并定期維護移動狀態(tài)信息(BC和BUL表);將最新的BC和BUL表信息通知內(nèi)核功能體,保持準(zhǔn)確的接收和發(fā)送狀態(tài)。
通用功能體啟動消息處理線程和定時器線程兩個關(guān)鍵線程。消息處理線程是一個循環(huán)監(jiān)聽過程,通過適配層的通信接口得到Mobile IPv6需要處理的MH報文(MH報文是Mobile IPv6定義的移動相關(guān)命令報文)以及ICMP報文,根據(jù)具體報文類型和參數(shù)分別啟動移動切換、RR過程、家鄉(xiāng)注冊、CN注冊等過程、創(chuàng)建并管理BC、BUL表項;定時器線程根據(jù)定時器鏈表定期維護BC、BUL表,調(diào)度其它需要定時操作的過程。
MultiPlat Mobile IPv6不采用RAW SOCKET機制截獲Mobile IPv6需要處理的MH報文以及ICMP報文,而是采用內(nèi)核功能體從NIC驅(qū)動程序上端直接截獲將其存入緩沖區(qū),并通過適配層函數(shù)向通用功能體傳送的方法實現(xiàn),這樣做的原因是不同操作系統(tǒng)RAW SOKET機制存在很多差異,不利于通用功能體代碼通用性,采取自己截獲的方法易于統(tǒng)一接口。
通用功能體代碼在MultiPlat Mobile IPv6中占絕大多數(shù),是協(xié)議棧中最復(fù)雜的處理過程的集合。由于通用功能體需要啟動消息處理線程和定時線程進行管理,并由內(nèi)核截獲的網(wǎng)絡(luò)控制報文驅(qū)動相關(guān)處理。這些過程必定調(diào)用操作系統(tǒng)相關(guān)函數(shù)(包括線程管理函數(shù)、定時函數(shù)以及內(nèi)核通信函數(shù)),這些函數(shù)因操作系統(tǒng)不同而不同,為了使通用功能體程序代碼保持通用性,我們不直接調(diào)用系統(tǒng)相關(guān)函數(shù)。適配層為其定義一套類似的調(diào)用函數(shù),這些函數(shù)對通用功能體保持統(tǒng)一的函數(shù)名稱和參數(shù)格式,以此屏蔽平臺差異。