王蘇勇,劉彥明(.解放軍93886部隊,烏魯木齊 830005;.西安電子科技大學通信工程學院,西安 7007)
基于NS2的MIPv6協(xié)議RRP仿真研究
王蘇勇1,劉彥明2
(1.解放軍93886部隊,烏魯木齊 830005;2.西安電子科技大學通信工程學院,西安 710071)
MIPv6(Mobile IPv6)是基于IPv6移動互聯(lián)網(wǎng)的基本支持協(xié)議,為了保證MN(Mobile Node)與CN(Corre鄄spondent Node)通信時的正常及安全,MIPv6添加了返回路由可達過程 (Return Routability Procedure,簡稱RRP),CN通過RRP來確定是否能夠使用MN的轉(zhuǎn)交地址和家鄉(xiāng)地址訪問MN。如果RRP建立失敗,CN將不能接受MN的綁定更新,也不能直接發(fā)送分組到移動節(jié)點的轉(zhuǎn)交地址。RRP通過兩對消息(HoTI和HoT,CoTI和CoT)分別測試目的地址是家鄉(xiāng)地址和轉(zhuǎn)交地址的分組能否到達MN,并據(jù)此決定是否可以接收來自MN的綁定。
網(wǎng)絡(luò)仿真是研究網(wǎng)絡(luò)協(xié)議的有力工具。NS2是目前常用的網(wǎng)絡(luò)仿真軟件,它實現(xiàn)了很多網(wǎng)絡(luò)協(xié)議的仿真,但其官方版本并不支持對MIPv6協(xié)議仿真。2001 年Thierry Ernst根據(jù)“draft-ietf-mobileip-ipv6-11.txt”,發(fā)布了Mobiwan補丁程序?qū)S2進行擴展,通過該補丁可以利用NS2仿真研究MIPv6協(xié)議。
不過現(xiàn)在的MIPv6協(xié)議[1](RFC6275)是2011改進的,和最初版本相比改動很大。因此,Mobiwan不能完全仿真RFC6275所規(guī)定的協(xié)議。武漢大學高科技研究與發(fā)展中心擴展了Mobiwan來完善對MIPv6的仿真,但是對MIPv6的RRP仿真仍存在著一些問題,例如MN從一個外地網(wǎng)絡(luò)切換到另一個外地網(wǎng)絡(luò)時RRP經(jīng)過幾次才能建立成功。筆者在此基礎(chǔ)上進行了改進,改進后能夠正常完成RRP,符合MIPv6協(xié)議。
1.1Mobiwan 中的CN和MN結(jié)構(gòu)
在NS2中,當節(jié)點收到一個數(shù)據(jù)包后,分類器會檢查它的域,通常是它的目的地址或者源地址,NS2中的節(jié)點使用了多種不同類型和作用的分類器[2]。經(jīng)武漢大學擴展后的Mobiwan節(jié)點結(jié)構(gòu)圖如圖1和圖2所示,當CN發(fā)送數(shù)據(jù)包時它首先會經(jīng)過bache_clsfr分類器檢查綁定緩存,判斷目的地址是否與本節(jié)點建立了路由優(yōu)化注冊綁定:若是已經(jīng)路由優(yōu)化綁定,CN會由src_clsfr分類器將數(shù)據(jù)包引向src_rt模塊,將數(shù)據(jù)包添加第二類路由擴展頭后將數(shù)據(jù)包發(fā)向MN的轉(zhuǎn)交地址。否則,CN會將數(shù)據(jù)包發(fā)到MN的家鄉(xiāng)地址。
MN中的bache_at_home和bache_roaming分類器分別為其在家鄉(xiāng)和漫游時使用,dst_hdr模塊用于處理“家鄉(xiāng)地址目的地選項擴展頭”。若是發(fā)送的數(shù)據(jù)包,dst_hdr會把家鄉(xiāng)地址登記在該擴展頭中家鄉(xiāng)地址選項,并用轉(zhuǎn)交地址替換IP報頭中的目的地址;若是接收的數(shù)據(jù)包,dst_hdr會用登記在家鄉(xiāng)地址選項中的家鄉(xiāng)地址來替換IP報頭中的目的地址。
圖1 CN的結(jié)構(gòu)圖
1.2Mobiwan 中的RRP工作機制
當節(jié)點發(fā)送數(shù)據(jù)包時先經(jīng)過bache_clsfr分類器來檢查綁定緩存,如果其中有要發(fā)送數(shù)據(jù)包的目的地址綁定關(guān)系,則將其引入到sr_clsfr,否則直接傳送到clas鄄sifier_hier。當MN發(fā)生切換時,MN向CN發(fā)送HoTI(家鄉(xiāng)測試初始消息),當CN收到HoTI后將回復HoT(家鄉(xiāng)測試消息)[3]。HoT的源地址是CN的地址,目的地址是MN的家鄉(xiāng)地址,但是由于其發(fā)送的數(shù)據(jù)包首先經(jīng)過bache_clsfr,但此時舊的綁定關(guān)系還未過期,在綁定緩存中登記的是MN的舊轉(zhuǎn)交地址,這樣會將數(shù)據(jù)包引入到sr_clsfr,經(jīng)過src_rt模塊后,目的地址會被替換為MN的舊的轉(zhuǎn)交地址。如果這樣發(fā)送HoT,因為此時MN已經(jīng)發(fā)生切換,轉(zhuǎn)交地址已然改變,它自然收不到由CN發(fā)來的HoT,導致RRP過程失敗,然后重復進行RRP,直至原先的綁定關(guān)系過期[4-5]。
從家鄉(xiāng)網(wǎng)絡(luò)切換到外地后,由于之前CN的綁定緩存中已不存在MN的家鄉(xiāng)地址與轉(zhuǎn)交地址綁定關(guān)系,也就不會出現(xiàn)上述情況。同樣,在MN與MN間的RRP中有類似問題[6]。
事實上,當CN向MN回復HoT時,經(jīng)過bache_clsfr后不應引向src_clsfr分類器,或者不要經(jīng)過src_rt模塊處理,而是應該直接送到classifier_hier分類器,這樣才算合理。
根據(jù)上述對Mobiwan中的RRP機制分析,修改了CN和MN的接收函數(shù)以實現(xiàn)正確的RRP機制。
2.1CN和MN之間的RRP仿真改進
修改mipv6.cc中的MIPv6Agent(CN、MN、BS等節(jié)點的基類),使當CN向MN回復HoT時,經(jīng)過bache_clsfr后不引向src_clsfr,而是直接到classifier_hi鄄er,在MIPv6Agent中添加如下c++代碼:
圖2 MN的結(jié)構(gòu)圖
其中tcl.evalf("%s clear-reg%d",name_,entry-> haddr)是在c++中引用tcl函數(shù)來處理,名義上為清除緩存中的綁定,實際上是改變此綁定中的分類器指向,當經(jīng)過bache_clsfr后不引向src_clsf。這樣處理后,CN 向MN發(fā)送HoTI只需經(jīng)一次RRP就可以成功。
2.2MN和MN之間的RRP機制仿真改進
上述CN的修改沒有在CN的接收函數(shù)中改動是因為CN的接收函數(shù)繼承自基類,它沒有定義自己的接收函數(shù)。但對于MN來說,有著自己的接收函數(shù),并且MN牽扯到很多分類器,直接按上述CN的處理方式的話會很容易改變原先的機制,因此要在MNAgent的接收函數(shù)中處理,故使用了下面處理方法:
當緩存中綁定關(guān)系的生存時間設(shè)為0后,MN中有entry->expire()
圖4 改進前CN到MN1數(shù)據(jù)包延遲
3.1仿真場景介紹
如圖3所示,仿真場景拓撲范圍是1600×800,各節(jié)點坐標已標示。MN1的家鄉(xiāng)代理是BS1,MN2的家鄉(xiāng)代理是BS8,兩移動節(jié)點初始位置在各自家鄉(xiāng)代理附近,然后MN1移動到BS2附近,再然后向BS4附近移動,同時MN2移動到BS5附近,仿真時間共100s。設(shè)置了兩個通信過程:CN和MN2分別向MN1發(fā)送基于UDP協(xié)議的恒定比特流數(shù)據(jù)包,兩個通信過程均是從第10s開始,到100s結(jié)束。
3.2仿真結(jié)果分析
圖3 MIPv6仿真拓撲圖
圖5 改進后CN到MN1數(shù)據(jù)包延遲
圖6 改進前MN2到MN1數(shù)據(jù)包延遲
根據(jù)仿真的結(jié)果畫出了改進前后MN1接收數(shù)據(jù)包延遲圖。首先看CN到MN1的數(shù)據(jù)包延遲,圖4和圖5所畫第一次切換(圖中中斷處)是MN1從家鄉(xiāng)網(wǎng)絡(luò)切換到BS2所屬外地網(wǎng)絡(luò);第二次切換是MN1從BS2所屬外地網(wǎng)絡(luò)切換到BS4所屬外地網(wǎng)絡(luò)。可以看到:改進前第一次切換時間大約有1s,在正常范圍內(nèi),第二次切換切換時間則長達8s左右,明顯不合實際情況。而改進后的第二次切換由于多了路由優(yōu)化時間,和第一次切換相比略微延長,也在1s左右,屬正常范圍。
MN2到MN1的數(shù)據(jù)包延遲如圖6和圖7所示:第一次切換是由于MN1由其家鄉(xiāng)網(wǎng)絡(luò)切換到BS2所屬外地網(wǎng)絡(luò);第二次切換是MN2由其家鄉(xiāng)網(wǎng)絡(luò)切換到BS5所屬外地網(wǎng)絡(luò);第三次切換是MN1由BS2所屬外地網(wǎng)絡(luò)切換到BS4所屬外地網(wǎng)絡(luò)。同樣可以看到改進前后前兩次切換均正常,但改進前第三次切換時間也長達8s左右,不合實際情況,而改進后的第三次切換時間則有1s左右,在正常范圍之內(nèi)。
圖7 改進后MN2到MN1數(shù)據(jù)包延遲
網(wǎng)絡(luò)仿真是網(wǎng)絡(luò)研究部署不可或缺的重要環(huán)節(jié),當前MIPv6中MN和MN之間的RRP仿真研究很少,MIPv6中的RRP機制可以保障MN和CN,以及MN和MN之間通信時的安全,因此,MIPv6的RRP仿真實現(xiàn)和改進具有重要意義。本文通過分別在MIPv6Agent和MNAgent的接收函數(shù)中收到HoTI后增加相應的判斷處理過程,從而巧妙地改變節(jié)點中分類器的指向,改進了MIPv6的RRP仿真。經(jīng)驗證改進后的Mobwian能夠正確的仿真出RRP,對MIPv6的研究工作具有重要意義。
[1]C.Perkins,D.Johnson,J.Arkko.Mobility Support in IPv6,IETF RFC6275[S],2011.
[2]Thierry Ernst.MobiWan:A NS-2.1b6 Simulation Platform for Mobile IPv6 in Wide Area Networks[EB/OL].http://www.inrialpes.fr/planete/mobiwan/,2001-6-1.
[3]秦冀,姜雪松.移動IP技術(shù)與NS-2模擬[M].北京:機械工業(yè)出版社,2006:291-300.
[4]Teerawat Issariyakul.Introduction to Network Simulator NS2[M].Springer,2011:10-109.
[5]于斌,孫斌,溫暖,王繪麗,陳江鋒.NS2與網(wǎng)絡(luò)模擬[M].北京:人民郵電出版社,2007:70-108.
[6]Ruoshan Kong,Huaibei Zhou.Extensions to Mobiwan According to RFC 3775 Based on NS2[S].2007 International Symposium on Computer Science and Technology(ISCST 2007),May 2007:998-1001。
Return Routability Procedure;NS2;Mobiwan;Simulation
Research on the Simulations for RRP of MIPv6 Based on NS2
WANG Su-yong1,Liu Yan-ming2
(1.The 93886 Troops of the PLA,Urumqi830005;2.School of Communication Engineering,Xidian University,Xi'an 710071)
1007-1423(2016)06-0025-05
10.3969/j.issn.1007-1423.2016.06.006
王蘇勇(1983-),男,山東濟寧人,碩士研究生,研究方向為通信系統(tǒng)與網(wǎng)絡(luò)仿真
2015-12-25
2016-02-15
網(wǎng)絡(luò)仿真是研究網(wǎng)絡(luò)技術(shù)的有效途徑。為了正確仿真MIPv6協(xié)議的返回路由可達過程,對Mobiwan補丁進行改進。首先研究返回路由可達過程在NS2中的仿真機制,通過修改其中處理接收數(shù)據(jù)包的函數(shù),對返回路由可達過程的仿真進行改進。通過此改進方案,使NS2能夠正確仿真通信對端和移動節(jié)點以及移動節(jié)點和移動節(jié)點之間的返回路由可達過程。最后通過搭建仿真場景,對改進方案進行驗證。
返回路由可達過程;NS2;Mobiwan;仿真
劉彥明(1966-),男,陜西綏德人,博士,教授,研究方向為空間測控通信與網(wǎng)絡(luò)、嵌入式系統(tǒng)
Network simulation is an effective way to research network technology.In order to simulate RRP of MIPv6,makes improvement of the patch named Mobiwan.At first studies the simulation mechanisms of Return Routability Procedure on NS2.Through changing the function which dealing with the received packets,improves the simulation of Return Routability Procedure.By the improved proposals,the NS2 can simulate the Return Routability Procedure between the Correspondent Node and the Mobile Node correctly,as well as between the Mobile Node and the Mobile Node.At last,verifies the improved proposals by constructing the simulation scenes.