摘要:互聯(lián)網(wǎng)技術(shù)考試外地代理(FA )的設計:FA從邏輯上主要包含兩個模塊:一個init模塊,初始化各種參數(shù)和變魚:一個main_loop 模塊,它是一個無限循環(huán),根據(jù)各種事件觸發(fā)進行相應操作流程圖如圖2-6所示。
2.3.3 外地代理(FA )的設計
FA從邏輯上主要包含兩個模塊:一個init模塊,初始化各種參數(shù)和變魚:一個main_loop 模塊,它是一個無限循環(huán),根據(jù)各種事件觸發(fā)進行相應操作流程圖如圖2-6所示。
其中,init模塊包含以下子模塊,見圖2-7。
fa_parse._command Jine
解析輸入的命令行。
load.fa
從配置文件中讀取配置參數(shù),利用讀取的數(shù)值對結(jié)構(gòu)體變量config進行初始化。
check一kemel-support
檢測當前系統(tǒng)是否支持ADV_ROUTING、IPIP、NETLINK,只要對其中的任意一個不 支持,進程退出,不再運行。這3個功能分別是高級路由、ipip隧道和NETLINK系統(tǒng)調(diào)用, 在編譯內(nèi)核的時候需要將它們編進內(nèi)核,或者編譯成模塊,在運行前加載。
init_sockets
初始化套接口。
田2-6 FA的模塊流相圍2-7init模塊流程
init_data
打開路由功能和代理ARP功能,對隧道、綁定、散列表的動態(tài)分配內(nèi)存初始化,設罝具 體信號的處理函數(shù)關系。
init_config_data
初始化FA上用到的各個靜態(tài)變圼。 main_loop模塊包含以下子模塊,如圖2-8所示。
send agent_advs
在第一次進入mainjoop的時候,初始化局部變量之后,立即發(fā)送代理通告,之后進入 真正的無限循環(huán)。
fa_register
處理與上一級FA注冊過程,發(fā)送注冊請求到上一級FA。
check_bindings
檢査綁定是否到期,更新各種計時器,當綁定失效的時候發(fā)送相應倌息。
handle_api
處理經(jīng)dynfa_tool工具輸入的特權(quán)命令和非特權(quán)命令。
handle_reg_msg_packct
處理從每個接U發(fā)送過來的端口號為434的UDP數(shù)據(jù)包。handle_reg_msg
處理從每個接口接收到的使用UDP數(shù)據(jù)包承載的注冊消息。
handle-icmp
處理MN發(fā)送的代理請求消息,驗證代理請求消息合法之后,回復代理通告。
返回目錄:通信工程師互聯(lián)網(wǎng)技術(shù)培訓移動IPv4技術(shù)
通信工程師備考資料免費領取
去領取