基于OPNET的SCPS-NP協(xié)議仿真設(shè)計(jì)
首先在INIT 態(tài)進(jìn)行初始化設(shè)置,進(jìn)入WAIT 態(tài),然后根據(jù)不同的包流,對(duì)包進(jìn)行封裝或解封裝。SCPS-NP 導(dǎo)頭封裝長(zhǎng)度及格式,由用戶(hù)在節(jié)點(diǎn)屬性中進(jìn)行選擇。提供與空間分包協(xié)議類(lèi)似的服務(wù)時(shí),導(dǎo)頭長(zhǎng)度為4 字節(jié),提供與IPv4 協(xié)議類(lèi)似的服務(wù)時(shí),導(dǎo)頭長(zhǎng)度為20 字節(jié)。
2.2 scps_np 模塊進(jìn)程設(shè)計(jì)
scps_np 模塊主要功能是SCPS-NP 協(xié)議的具體實(shí)現(xiàn)。其進(jìn)程設(shè)計(jì)如圖3 所示。
首先在INIT 態(tài)進(jìn)行初始化設(shè)置,進(jìn)入WAIT 態(tài),當(dāng)數(shù)據(jù)從上層模塊傳來(lái)時(shí),進(jìn)入deliver 態(tài),發(fā)送數(shù)據(jù)到網(wǎng)絡(luò)。當(dāng)數(shù)據(jù)從網(wǎng)絡(luò)中傳來(lái)時(shí),進(jìn)入toup 態(tài),對(duì)接收的數(shù)據(jù)進(jìn)行檢測(cè),將符合協(xié)議標(biāo)準(zhǔn)且目的地址為該節(jié)點(diǎn)的數(shù)據(jù)送入上層進(jìn)行下一步處理,銷(xiāo)毀不滿足條件的包,回到WAIT 態(tài)。若該節(jié)點(diǎn)具有路由功能且包需要轉(zhuǎn)發(fā),進(jìn)入router 態(tài)。在router態(tài),根據(jù)協(xié)議要求,進(jìn)行路由控制過(guò)程,然后根據(jù)用戶(hù)選擇進(jìn)行不同的路由方法。主要有靜態(tài),動(dòng)態(tài),洪路由三種方式。轉(zhuǎn)發(fā)后,回到WAIT 態(tài)。路由信息由模塊router_map 提供。
圖3 scps_np 模塊進(jìn)程結(jié)構(gòu)
2.3 router_map 模塊進(jìn)程設(shè)計(jì)
router_map 模塊的主要任務(wù)是對(duì)路由表的維護(hù)和更新,其進(jìn)程設(shè)計(jì)如圖4 所示。
首先在INIT 態(tài)進(jìn)行初始化設(shè)置,進(jìn)入WAIT 態(tài),當(dāng)用戶(hù)選擇靜態(tài)路由時(shí),在WAIT 保持不動(dòng)。路由信息已靜態(tài)設(shè)置。
當(dāng)選擇動(dòng)態(tài)路由模式時(shí),建立一個(gè)自中斷,每隔一段時(shí)間間隔進(jìn)行一次路由表更新。當(dāng)中斷到來(lái)時(shí),進(jìn)入update 態(tài),根據(jù)此時(shí)的位置信息重新計(jì)算路由。
圖4 router_map 模塊進(jìn)程結(jié)構(gòu)
評(píng)論