侯 睿,何柳婷 ,李 薇,張 嫣
(中南民族大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,武漢 430074)
隨著互聯(lián)網(wǎng)數(shù)據(jù)業(yè)務(wù)量爆炸式的增長(zhǎng),目前基于主機(jī)地址的資源尋址方式已經(jīng)在向基于數(shù)據(jù)信息本身的資源共享方式轉(zhuǎn)變.信息中心網(wǎng)絡(luò)ICN(Information-centric Networking)以數(shù)據(jù)信息內(nèi)容作為轉(zhuǎn)發(fā)和路由的依據(jù),已成為未來(lái)互聯(lián)網(wǎng)的關(guān)鍵體系架構(gòu)并受到世界各國(guó)的高度關(guān)注[1].命名數(shù)據(jù)網(wǎng)絡(luò)NDN(Named Data Networking)作為ICN典型的解決方案之一,具有分組耦合路由等特點(diǎn),目前已從內(nèi)容查找、緩存優(yōu)化、網(wǎng)絡(luò)安全等方面進(jìn)行了廣泛研究[2-4].目前NDN路由研究主要集中于借助智能算法給出優(yōu)化路徑方面.
為了更實(shí)際地掌握NDN路由技術(shù),本文在Linux環(huán)境下,利用Mini-ndn平臺(tái)設(shè)計(jì)并實(shí)現(xiàn)了NDN中基于分級(jí)命名的多場(chǎng)景數(shù)據(jù)路由仿真實(shí)驗(yàn),為NDN試驗(yàn)床的架設(shè)提供了參考.
NDN采用類似URL的層次化結(jié)構(gòu)來(lái)命名特定數(shù)據(jù)內(nèi)容,采用符號(hào)“/”對(duì)名字進(jìn)行層次劃分[5,6],如google/icn/ndn.層次化結(jié)構(gòu)既可以降低規(guī)范命名的工作量,也便于根據(jù)數(shù)據(jù)內(nèi)容進(jìn)行路由聚合以減輕網(wǎng)絡(luò)負(fù)荷,還能夠滿足移動(dòng)性要求[7,8].
在NDN中,內(nèi)容請(qǐng)求者(Subscriber)首先向NDN網(wǎng)絡(luò)發(fā)送interest包請(qǐng)求所需數(shù)據(jù)內(nèi)容,interest包中含有所需數(shù)據(jù)內(nèi)容的名字.NDN路由器收到interest包后,通過(guò)查詢內(nèi)容存儲(chǔ)CS(Content Storage),查找轉(zhuǎn)發(fā)數(shù)據(jù)庫(kù)FIB(Forwarding Interest Base),記錄轉(zhuǎn)發(fā)待定表PIT(Pending Interest Table)等操作,將此interest包發(fā)送至內(nèi)容發(fā)布者(Publisher).Publisher生成響應(yīng)的data包,并將數(shù)據(jù)內(nèi)容存于其中,沿原路將此data包回送至Subscriber,完成數(shù)據(jù)信息交互路由過(guò)程.具體請(qǐng)求響應(yīng)過(guò)程如圖1所示.
圖1 Interest包請(qǐng)求和data包響應(yīng)示意圖Fig.1 Schematic diagram of interest packets′ request and data packets′ response
為了對(duì)NDN基于層次化結(jié)構(gòu)名稱的路由過(guò)程進(jìn)行更切合實(shí)際的研究,本文利用Mini-ndn仿真平臺(tái)對(duì)NDN路由進(jìn)行了仿真實(shí)驗(yàn)[9],結(jié)合仿真結(jié)果給出interest包在NDN中進(jìn)行路由和轉(zhuǎn)發(fā)的機(jī)理,以及最優(yōu)路徑的選取.
建立圖2所示NDN網(wǎng)絡(luò)拓?fù)洌O(shè)定S1和P1分別為Subscriber和Publisher,R1-R3為NDN路由器并分別配置了相應(yīng)的名稱前綴ndn/,ndn/p1-site和ndn/p1-site/p1.
圖2 一對(duì)一通信NDN實(shí)驗(yàn)拓?fù)鋱DFig.2 NDN network topology for point-to-point communication experiment
建立各NDN路由器中的FIB表,由于影響網(wǎng)絡(luò)傳輸速率的因素主要有帶寬、時(shí)延和丟包,所以不失一般性,設(shè)置如表1所示的一對(duì)一通信NDN具體初始化配置.
表1 一對(duì)一通信NDN初始拓?fù)渑渲们闆rTab.1 Point-to-point communication initial topology configuration of NDN
在P1中開啟名為ndnpingserver的進(jìn)程,同時(shí)在其FIB表設(shè)置一個(gè)名為/ndn/p1-site/p1的網(wǎng)絡(luò)前綴表項(xiàng).之后,主機(jī)S1發(fā)送前綴為/ndn/p1-site/p1的interest請(qǐng)求包,因?yàn)樵赑1上開啟了相應(yīng)的ndnping服務(wù)器,所以能對(duì)S1進(jìn)行響應(yīng).在本次實(shí)驗(yàn)中,設(shè)定主機(jī)S1分別發(fā)送1個(gè)和5個(gè)interest包,P1對(duì)所有的interest包皆進(jìn)行了data響應(yīng),實(shí)驗(yàn)結(jié)果顯示能夠ping通,實(shí)驗(yàn)結(jié)果如圖3所示.
圖3 一對(duì)一通信實(shí)驗(yàn)中節(jié)點(diǎn)P1對(duì)S1的interest包響應(yīng)情況Fig.3 Node P1 responds to the interest packet of S1 in point-to-point communication experiment
實(shí)驗(yàn)中,修改interest包從Subscriber到Publisher的時(shí)延為100 ms,丟包率為20%,帶寬不變.設(shè)定主機(jī)S1分別發(fā)送1個(gè)和5個(gè)interest包,節(jié)點(diǎn)P1對(duì)S1的interest包進(jìn)行響應(yīng),得到實(shí)驗(yàn)結(jié)果如圖4所示,不難看出隨著丟包率、時(shí)延的增加,網(wǎng)絡(luò)傳輸性能明顯下降.
圖4 修改配置后P1對(duì)S1發(fā)送的interest包進(jìn)行響應(yīng)Fig.4 Response of P1 to the interest packet of S1 after changing the configuration
由于修改此實(shí)驗(yàn)參數(shù)對(duì)本文中的4個(gè)實(shí)驗(yàn)具有類似的結(jié)果,所以本文只針對(duì)一對(duì)一通信仿真實(shí)驗(yàn)對(duì)參數(shù)進(jìn)行修改和說(shuō)明,其余實(shí)驗(yàn)在此不作詳細(xì)說(shuō)明.
實(shí)驗(yàn)中設(shè)定P1的FIB表中前綴為/ndn/p1-site/p1,此時(shí)讓S1發(fā)送5個(gè)前綴為/ndn/p1-site/s的interest包,實(shí)驗(yàn)結(jié)果顯示不能ping通,見圖5.
建立圖6所示NDN網(wǎng)絡(luò)拓?fù)洌瑸槊總€(gè)NDN路由器配置不同網(wǎng)絡(luò)前綴.圖6中,S1為Subscriber,P1、P2和P3為Publisher,R1-R5為NDN路由器.
圖6 一對(duì)多通信NDN實(shí)驗(yàn)拓?fù)鋱DFig.6 NDN network topology for point-to-multipoint communication experiment
初始化各NDN路由器中的FIB表,設(shè)置一對(duì)多通信NDN具體初始化配置如表2所示.
表2 一對(duì)多通信NDN初始拓?fù)渑渲们闆r
Tab.2 Point-to-multipoint communication initial topology configuration of NDN
連接時(shí)延/ms帶寬/(Mb/s)(S1,P1)(S1,P2)(S1,P3)10100
分別在P1、P2、P3中開啟ndnpingserver進(jìn)程,并在P1、P2和P3的FIB中分別設(shè)置名為/ndn/p1-site/p1、/ndn/p2-site/p2和/ndn/p3-site/p3的網(wǎng)絡(luò)前綴表項(xiàng).之后,在P1、P2和P3上分別開啟ndnping服務(wù)器,使Publisher能對(duì)Subscriber所發(fā)出的interest包進(jìn)行data響應(yīng).本實(shí)驗(yàn)中,讓Subscriber同時(shí)發(fā)送30個(gè)interest包,分別含有名字前綴/ndn/p1-site/p1、/ndn/p2-site/p2和/ndn/p3-site/p3,P1、P2、P3對(duì)收到的interest包分別進(jìn)行data響應(yīng),實(shí)驗(yàn)結(jié)果顯示能夠ping通,分別如圖7、圖8和圖9所示.
圖7 一對(duì)多通信實(shí)驗(yàn)中P1對(duì)S1的interest包進(jìn)行響應(yīng)Fig.7 P1 responds to the interest packet of S1 in point-to- multipoint communication experiment
圖8 一對(duì)多通信實(shí)驗(yàn)中P2對(duì)S1的interest包進(jìn)行響應(yīng)Fig.8 P2 responds to the interest packet of S1 in point-to- multipoint communication experiment
圖9 一對(duì)多通信實(shí)驗(yàn)中P3對(duì)S1的interest包進(jìn)行響應(yīng)Fig.9 P3 responds to the interest packet of S1 in point-to- multipoint communication experiment
建立圖10所示NDN網(wǎng)絡(luò)拓?fù)洌瑸槊總€(gè)NDN路由器配置不同網(wǎng)絡(luò)前綴.圖10中,S1、S2和S3為Subscriber,P1為Publisher,R1-R3為NDN路由器.
其次,初始化各NDN路由器中的FIB表,設(shè)置多對(duì)一通信NDN具體初始化配置如表3所示.
圖10 多對(duì)一通信NDN實(shí)驗(yàn)拓?fù)鋱D Fig.10 NDN network topology for multipoint-to-point communication experiment
連接時(shí)延/ms帶寬/(Mb/s)(S1,P1)(S2,P1)(S3,P1)10100
在P1中開啟ndnpingserver進(jìn)程,實(shí)驗(yàn)中,節(jié)點(diǎn)P1的FIB中設(shè)置名為/ndn/p1-site/p1的網(wǎng)絡(luò)前綴表項(xiàng).在節(jié)點(diǎn)S1、S2、S3上分別發(fā)送前綴為/ndn/p1-site/p1的interest包.之后,在P1中開啟ndnping服務(wù)器,使Publisher能對(duì)Subscriber所發(fā)出的interest包進(jìn)行data響應(yīng).本實(shí)驗(yàn)中,3個(gè)Subscriber分別對(duì)P1發(fā)送了1個(gè)含有名字前綴/ndn/p1-site/p1 的interest包,P1對(duì)收到的interest包分別進(jìn)行了data響應(yīng),實(shí)驗(yàn)結(jié)果顯示能夠ping通,如圖11所示.
圖11 多對(duì)一通信實(shí)驗(yàn)中節(jié)點(diǎn)P1對(duì)S1,S2,S3的interest包進(jìn)行響應(yīng)Fig.11 Node P1 responds to the interest packet of S1,S2,S3 in multipoint-to-point communication experiment
建立圖12所示NDN網(wǎng)絡(luò)拓?fù)?,其中S1和S2為Subscriber,P1,P2,P3為Publisher,R1-R3為NDN路由器.
初始化R1-R3中的FIB表,設(shè)置多對(duì)多NDN具體初始化配置如表4所示.
圖12 多對(duì)多通信NDN實(shí)驗(yàn)拓?fù)鋱D Fig.12 NDN network topology for multipoint-to-multipoint communication experiment
連接時(shí)延/ms帶寬/(Mb/s)(S1,P1)(S1,P2)(S1,P3)10100(S2,P1)(S2,P2)(S2,P3)10100
分別在P1、P2、P3中開啟ndnpingserver進(jìn)程并在其FIB中設(shè)置名為/ndn/p1-site/p1的網(wǎng)絡(luò)前綴,同時(shí)分別開啟ndnping服務(wù)器,使Publisher能對(duì)Subscriber所發(fā)出的interest包進(jìn)行data響應(yīng).實(shí)驗(yàn)中,S1對(duì)3個(gè)Publisher分別發(fā)送10個(gè)含有名字前綴/ndn/p1-site/p1的interest包,3個(gè)Publisher對(duì)收到的interest包分別進(jìn)行了data響應(yīng),實(shí)驗(yàn)結(jié)果顯示能夠ping通,并且S1對(duì)P1、P2、P3發(fā)送數(shù)據(jù)的接收時(shí)間分別為233.326,232.924,233.142 ms,如圖13、圖14、圖15所示.
圖13 多對(duì)多通信實(shí)驗(yàn)中P1對(duì)請(qǐng)求方S1的interest包進(jìn)行響應(yīng)Fig.13 P1 responds to the interest packet of S1 in multipoint-to- multipoint communication experiment
同樣,節(jié)點(diǎn)S2分別對(duì)P1,P2,P3發(fā)送前綴為/ndn/p1-site/p1的interest請(qǐng)求.之后,在P1,P2,P3上分別開啟ndnping服務(wù)器,使Publisher能對(duì)Subscriber所發(fā)出的interest包進(jìn)行data響應(yīng).本實(shí)驗(yàn)中,讓S2對(duì)3個(gè)Publisher分別發(fā)送10個(gè)含有名字前綴/ndn/p1-site/p1的interest包,3個(gè)Publisher對(duì)收到的interest包分別進(jìn)行了data響應(yīng),實(shí)驗(yàn)結(jié)果顯示能夠ping通,并且S2對(duì)P1,P2,P3發(fā)送數(shù)據(jù)的接收時(shí)間分別為234.999,230.124,229.016 ms.
圖14 多對(duì)多通信實(shí)驗(yàn)中P2對(duì)請(qǐng)求方S1的interest包進(jìn)行響應(yīng)Fig.14 P2 responds to the interest packet of S1 in multipoint-to-multipoint communication experiment
圖15 多對(duì)多通信實(shí)驗(yàn)中P3對(duì)請(qǐng)求方S1的interest包進(jìn)行響應(yīng)Fig.15 P3 responds to the interest packet of S1 in multipoint-to-multipoint communication experiment
NDN作為ICN中最具代表性的解決方案之一,被認(rèn)為在下一代互聯(lián)網(wǎng)體系結(jié)構(gòu)的研究中最具可行性.本文通過(guò)對(duì)NDN網(wǎng)絡(luò)多種情形下的路由方式進(jìn)行了系統(tǒng)性仿真實(shí)驗(yàn),對(duì)NDN中的Subscriber/Publisher交互過(guò)程、結(jié)構(gòu)化數(shù)據(jù)命名規(guī)則、interest包在NDN路由器中的CS查找、PIT處理和FIB轉(zhuǎn)發(fā)等過(guò)程,以及data包響應(yīng)過(guò)程有了更直觀的認(rèn)識(shí).結(jié)果表明:在路徑相同的情況下,相同Subscriber對(duì)不同Publisher的數(shù)據(jù)接收時(shí)延也不盡相同,今后可在統(tǒng)計(jì)分析的基礎(chǔ)上,獲取時(shí)延統(tǒng)計(jì)特性以選取最佳路徑.