国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于NDN的高效發(fā)布/訂閱系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2018-03-03 07:36:13謝英英
關(guān)鍵詞:發(fā)布者命名模塊

謝英英,石 澗,雷 凱

(北京大學(xué)深圳研究生院 互聯(lián)網(wǎng)研發(fā)中心,深圳 518055)

0 引 言

命名數(shù)據(jù)網(wǎng)絡(luò)(named data networking, NDN)[1]顛覆了TCP/IP(transmission control protocol/internet protocol)網(wǎng)絡(luò)中IP的主導(dǎo)地位,數(shù)據(jù)名稱取代了IP作為網(wǎng)絡(luò)中的唯一標(biāo)識,網(wǎng)絡(luò)層的數(shù)據(jù)請求、路由、轉(zhuǎn)發(fā)以上層應(yīng)用直接關(guān)心的數(shù)據(jù)名稱作為第一語義,而不用關(guān)心數(shù)據(jù)所在位置,NDN的這一改變解決了當(dāng)今TCP/IP網(wǎng)絡(luò)在內(nèi)容分發(fā)、移動性、網(wǎng)絡(luò)安全等方面的不適應(yīng)性[2],因此成為一種主流的未來網(wǎng)絡(luò)架構(gòu)。除了NDN系統(tǒng)架構(gòu)、擁塞控制、轉(zhuǎn)發(fā)策略等這些NDN傳統(tǒng)的研究方向,NDN下實(shí)際應(yīng)用的設(shè)計(jì)和部署能為驗(yàn)證NDN的架構(gòu)正確性和優(yōu)勢提供真實(shí)的場景和流量,也是當(dāng)前NDN的一大研究熱點(diǎn)。

發(fā)布/訂閱[3]系統(tǒng)廣泛應(yīng)用于分布式計(jì)算、數(shù)據(jù)同步等場景,是多對多異步通信的一種有效解決方案。在發(fā)布/訂閱系統(tǒng)中,發(fā)布者和訂閱者實(shí)現(xiàn)了解耦,但是這種解耦在TCP/IP網(wǎng)絡(luò)下是以復(fù)雜的中間件為代價(jià)的,中間件解決了IP網(wǎng)絡(luò)層拓?fù)浜桶l(fā)布/訂閱應(yīng)用層邏輯拓?fù)洳灰恢聨淼拿堋DN由于具有上下邏輯拓?fù)湟恢滦?、天然適合多播、網(wǎng)內(nèi)緩存、多路徑轉(zhuǎn)發(fā)等特點(diǎn),能有效簡化發(fā)布/訂閱系統(tǒng)的中間件設(shè)計(jì),減少發(fā)布/訂閱系統(tǒng)對網(wǎng)絡(luò)的負(fù)荷、降低往返時(shí)延,改善發(fā)布/訂閱系統(tǒng)的服務(wù)質(zhì)量。

文獻(xiàn)[4-5]是最早提出信息中心網(wǎng)絡(luò)(information centric networking, ICN)中發(fā)布/訂閱解決方案的2篇文獻(xiàn),文獻(xiàn)[4]提出在ICN中提供類似于IP單播的轉(zhuǎn)發(fā)服務(wù)用于發(fā)布/訂閱中更新數(shù)據(jù)的推送,文獻(xiàn)[5]中特定節(jié)點(diǎn)維護(hù)訂閱列表這一數(shù)據(jù)結(jié)構(gòu)以維護(hù)訂閱者多播樹。這方面的早期研究對于信息中心網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)改動較大。近年來,對于信息中心和發(fā)布/訂閱模式結(jié)合的研究主要集中在物聯(lián)網(wǎng)場景下,文獻(xiàn)[6-7]分別是面向車聯(lián)網(wǎng)和移動ad-hoc網(wǎng)絡(luò)場景的信息中心網(wǎng)絡(luò)發(fā)布/訂閱系統(tǒng)解決方案,這些方案考慮到物聯(lián)網(wǎng)數(shù)據(jù)產(chǎn)生的周期性,因此采用訂閱者周期性向發(fā)布者發(fā)送數(shù)據(jù)請求包,輪詢是否有數(shù)據(jù)更新的設(shè)計(jì)方式。這種輪詢的方式只適合于物聯(lián)網(wǎng)這樣周期性產(chǎn)生監(jiān)控?cái)?shù)據(jù)的應(yīng)用場景,對于數(shù)據(jù)產(chǎn)生時(shí)間間隔比較大、數(shù)據(jù)產(chǎn)生周期不規(guī)律的場景不適用,而且周期性地輪詢Interest包會帶來很大的網(wǎng)絡(luò)開銷。因此本文提出的發(fā)布/訂閱系統(tǒng)采用發(fā)布者主動推送數(shù)據(jù)更新的方式進(jìn)行設(shè)計(jì),適用的場景更加廣泛,減少了訂閱者無效數(shù)據(jù)請求對網(wǎng)絡(luò)造成的額外負(fù)荷。

本文的貢獻(xiàn)可總結(jié)為以下4點(diǎn):

1)分析了NDN下實(shí)現(xiàn)發(fā)布/訂閱系統(tǒng)相比于TCP/IP網(wǎng)絡(luò)下實(shí)現(xiàn)發(fā)布/訂閱系統(tǒng)的不同和優(yōu)勢;

2)設(shè)計(jì)了NDN下的一種通用的發(fā)布/訂閱系統(tǒng),并在此基礎(chǔ)上利用NDN的命名機(jī)制針對小塊數(shù)據(jù)傳輸?shù)膱鼍皩ο到y(tǒng)設(shè)計(jì)進(jìn)行優(yōu)化,進(jìn)一步降低了系統(tǒng)對網(wǎng)絡(luò)的負(fù)荷;

3)根據(jù)NDN工作組發(fā)布的NFD-android項(xiàng)目,在Android平臺上實(shí)現(xiàn)了分別代表大塊數(shù)據(jù)和小塊數(shù)據(jù)發(fā)布/訂閱應(yīng)用場景的新聞和天氣信息發(fā)布/訂閱系統(tǒng);

4)對系統(tǒng)進(jìn)行功能驗(yàn)證以及性能評測。

1 背 景

1.1 TCP/IP網(wǎng)絡(luò)下的發(fā)布/訂閱系統(tǒng)

TCP/IP網(wǎng)絡(luò)下的發(fā)布/訂閱系統(tǒng)解決的是多對多異步通信下發(fā)布者和訂閱者之間的解耦問題。解耦是指發(fā)布者發(fā)布數(shù)據(jù)而不需要關(guān)心發(fā)布的數(shù)據(jù)將發(fā)送給哪些訂閱者,訂閱者訂閱數(shù)據(jù)而不需要關(guān)心訂閱的數(shù)據(jù)具體來源于哪個(gè)發(fā)布者。TCP/IP網(wǎng)絡(luò)是基于端到端通信的,為了實(shí)現(xiàn)發(fā)布者和訂閱者之間的解耦,就需要復(fù)雜的中間件。TCP/IP網(wǎng)絡(luò)下的發(fā)布/訂閱系統(tǒng)模型如圖1所示,中間件有訂閱注冊器、發(fā)布匹配器、路由算法等,訂閱注冊器負(fù)責(zé)維護(hù)訂閱者對發(fā)布者的訂閱,發(fā)布訂閱器負(fù)責(zé)將發(fā)布者發(fā)布的信息與訂閱者相匹配,路由算法負(fù)責(zé)在發(fā)布者和訂閱者之間選擇最佳路徑進(jìn)行傳輸[8]。

圖1 TCP/IP網(wǎng)絡(luò)下的發(fā)布/訂閱系統(tǒng)模型Fig.1 Publish/subscribe system model in TCP/IP network

1.2 NDN實(shí)現(xiàn)發(fā)布/訂閱系統(tǒng)的優(yōu)勢

NDN實(shí)現(xiàn)發(fā)布/訂閱系統(tǒng)相比于TCP/IP網(wǎng)絡(luò)更有優(yōu)勢的原因主要在于NDN具有上下拓?fù)湟恢滦浴⒕W(wǎng)內(nèi)緩存、天然適合多播、多路徑路由和轉(zhuǎn)發(fā)這4個(gè)特性。以下將從這4個(gè)方面分別進(jìn)行闡述。

NDN網(wǎng)絡(luò)層拓?fù)浜蛻?yīng)用層邏輯拓?fù)渚哂幸恢滦浴DN采用7層架構(gòu),保留了細(xì)腰沙漏模型,在細(xì)腰處采用命名數(shù)據(jù)取代IP。數(shù)據(jù)命名具有可讀化、層次化的特點(diǎn),例如本系統(tǒng)發(fā)布者之間同步數(shù)據(jù)層的數(shù)據(jù)名稱為”/ndn/broadcast/ChronoSync-0.3/weather/(Digest)”。NDN名稱中攜帶了路由信息,同時(shí)也是數(shù)據(jù)的唯一標(biāo)識[9],這使得NDN在網(wǎng)絡(luò)層具有語義,具有應(yīng)用層與網(wǎng)絡(luò)層的拓?fù)湟恢滦?。與TCP/IP網(wǎng)絡(luò)相比,在NDN中獲取數(shù)據(jù)不需要先獲取數(shù)據(jù)所在位置,減少了中間件的開發(fā),提高了通信效率。以數(shù)據(jù)命名為第一語義也使NDN實(shí)現(xiàn)發(fā)布/訂閱系統(tǒng)可以有效地應(yīng)對節(jié)點(diǎn)移動、拓?fù)鋭討B(tài)變化[10]。

NDN天然適合多播場景與發(fā)布/訂閱系統(tǒng)中廣泛存在的發(fā)布者與訂閱者之間的一對多的關(guān)系相契合,這種上下邏輯拓?fù)涞囊恢滦钥捎行У亟档拖到y(tǒng)對網(wǎng)絡(luò)的負(fù)荷、減少發(fā)布者的開銷。轉(zhuǎn)發(fā)請求表(pending interest table,PIT)記錄節(jié)點(diǎn)接收到的Interest包的名稱以及入接口,具有相同名稱的Interest包在PIT中會聚合成一條記錄了多個(gè)入接口的PIT條目。在發(fā)布/訂閱系統(tǒng)中,當(dāng)多個(gè)訂閱者向發(fā)布者請求相同數(shù)據(jù)時(shí),發(fā)布者只需要發(fā)送一個(gè)數(shù)據(jù)包就能滿足多個(gè)訂閱者的數(shù)據(jù)請求,在TCP/IP網(wǎng)絡(luò)中則需要為每一個(gè)訂閱者的IP單獨(dú)發(fā)送一個(gè)數(shù)據(jù)包。

NDN的中間節(jié)點(diǎn)可以將流經(jīng)它的Data包緩存到內(nèi)容存儲庫(content store,CS)中,并且能夠作為此后相應(yīng)Interest包的回復(fù)。在發(fā)布/訂閱系統(tǒng)中,NDN的網(wǎng)內(nèi)緩存相當(dāng)于把發(fā)布者發(fā)布的數(shù)據(jù)儲存到離訂閱者更近的網(wǎng)絡(luò)節(jié)點(diǎn)上,當(dāng)緩存命中時(shí),可以有效降低訂閱者獲取更新數(shù)據(jù)的時(shí)延,改善用戶體驗(yàn),而且重復(fù)數(shù)據(jù)包的傳輸路徑縮短了,減輕了網(wǎng)絡(luò)負(fù)荷,有利于改善整體網(wǎng)絡(luò)狀況。

NDN的多路徑路由和轉(zhuǎn)發(fā)特性增加了節(jié)點(diǎn)的連通性,可以有效挖掘數(shù)據(jù)包從源端到目的地的最短路徑,增強(qiáng)發(fā)布/訂閱系統(tǒng)應(yīng)對網(wǎng)絡(luò)故障的健壯性。轉(zhuǎn)發(fā)信息表(forwarding information base,F(xiàn)IB),PIT,CS和接口(Face)是NDN節(jié)點(diǎn)的4個(gè)主要組成部分。FIB可以為一個(gè)命名前綴提供多個(gè)轉(zhuǎn)發(fā)接口,而且NDN能夠根據(jù)轉(zhuǎn)發(fā)策略實(shí)時(shí)地、單跳地為Interest包選擇多個(gè)Face進(jìn)行轉(zhuǎn)發(fā),相比于IP的單一最佳路徑路由,NDN的多路徑路由和轉(zhuǎn)發(fā)特性更有利于實(shí)現(xiàn)高效的發(fā)布/訂閱系統(tǒng)。

2 發(fā)布/訂閱模式設(shè)計(jì)

本節(jié)首先提出了一種通用的發(fā)布/訂閱模式設(shè)計(jì),然后針對小塊數(shù)據(jù)傳輸?shù)膱鼍埃肗DN Interest包名稱中可以攜帶一定量數(shù)據(jù)的特點(diǎn),提出了一種適合小塊數(shù)據(jù)傳輸場景的優(yōu)化設(shè)計(jì),相比于通用的發(fā)布/訂閱模式,將發(fā)布者發(fā)布更新數(shù)據(jù)的通信過程縮短了一半。

2.1 通用情況下的發(fā)布/訂閱模式設(shè)計(jì)

通用情況下的發(fā)布/訂閱模式是指同時(shí)適用于大塊數(shù)據(jù)傳輸和小塊數(shù)據(jù)傳輸?shù)陌l(fā)布/訂閱模式。要實(shí)現(xiàn)的是多個(gè)發(fā)布者和多個(gè)訂閱之間的發(fā)布/訂閱活動,這可以剖解為2部分:一個(gè)發(fā)布者和多個(gè)訂閱者之間的發(fā)布和訂閱活動,這部分的設(shè)計(jì)將在2.1.1部分具體介紹;多個(gè)發(fā)布者之間的全數(shù)據(jù)集同步,這部分是利用NDN工作組提出的ChronoSync協(xié)議[11]實(shí)現(xiàn)的,將在2.1.2部分具體介紹。每個(gè)部分都從命名設(shè)計(jì)和通信協(xié)議設(shè)計(jì)2個(gè)部分具體闡述。

2.1.1 發(fā)布者和訂閱者之間的通信

發(fā)布者和訂閱者之間的通信可以根據(jù)功能分為四大類:連接控制、訂閱管理、推送通知和拉取數(shù)據(jù)。對這四大通信類型的數(shù)據(jù)包的命名分別進(jìn)行設(shè)計(jì),如圖2所示。四大通信類型消息的命名前綴相同,用于數(shù)據(jù)包在網(wǎng)絡(luò)中的路由。命名中第2部分為FaceUri,有利于系統(tǒng)與本機(jī)的FaceUri進(jìn)行比對,判斷是否是發(fā)給自己的數(shù)據(jù)包。命名中還加入了時(shí)間戳,用于區(qū)分同一用戶不同時(shí)刻發(fā)送的相同類型數(shù)據(jù)包。名稱的最后一部分是數(shù)據(jù)類型,這里的數(shù)據(jù)類型根據(jù)應(yīng)用場景而不同,比如在新聞信息發(fā)布/訂閱系統(tǒng)中,這里的數(shù)據(jù)類型可能是一類新聞,比如財(cái)經(jīng)新聞、科技新聞、娛樂新聞等。

通用情況下,發(fā)布/訂閱模式可以采用發(fā)布者推送數(shù)據(jù)更新通知,然后訂閱者拉取數(shù)據(jù)的形式,數(shù)據(jù)類型放在名稱中,而數(shù)據(jù)具體內(nèi)容放在Data包的內(nèi)容中。當(dāng)發(fā)布者有新的信息產(chǎn)生時(shí),通過檢索本地維護(hù)的訂閱列表,確定需要向哪些訂閱者推送psync-notify Interest包,而新產(chǎn)生信息的類型包含在psync-notify Interest包的名稱中,訂閱者接收到psync-notify Interest包之后通過解析名稱得知發(fā)布者有數(shù)據(jù)更新,然后發(fā)送一個(gè)內(nèi)容為空的Data包作為回復(fù)。緊接著訂閱者發(fā)送psync-get Interest包來獲取更新數(shù)據(jù)的內(nèi)容。 類似的,對于訂閱者訂閱信息和取消訂閱信息這2個(gè)功能,也是通過將訂閱信息的類型放在subscribe Interest和unsubscribe Interest包的名稱中實(shí)現(xiàn)的,發(fā)布者接收到興趣包之后,解析名稱以獲取訂閱或者取消訂閱信息的類型,然后更新本地的訂閱列表。

圖2 通用情況發(fā)布/訂閱系統(tǒng)命名Fig.2 Naming scheme for common publish/subscribe system

2.1.2 發(fā)布者之間的通信

整個(gè)被觀察數(shù)據(jù)集可以由多個(gè)發(fā)布者共同維護(hù),因此需要進(jìn)行發(fā)布者之間的全數(shù)據(jù)集同步,為了實(shí)現(xiàn)分布式的發(fā)布者同步功能,利用NDN工作組發(fā)布的ChronoSync協(xié)議進(jìn)行設(shè)計(jì)。發(fā)布者之間的通信涉及3個(gè)過程:建立連接、同步數(shù)據(jù)層同步數(shù)據(jù)集摘要、應(yīng)用層獲取應(yīng)用數(shù)據(jù)。

對每個(gè)通信過程的數(shù)據(jù)包分別進(jìn)行命名設(shè)計(jì),如表1所示。連接層命名用于在一個(gè)局域網(wǎng)中的發(fā)布者之間建立連接,互相之間獲取對方的FaceUri, FaceUri作為后續(xù)建立發(fā)送興趣包的Face接口的依據(jù)。m_username是用戶輸入的發(fā)布者用戶名,m_session是用戶進(jìn)入系統(tǒng)的時(shí)間,m_username和m_session一起作為區(qū)分不同發(fā)布者的身份標(biāo)識。獲取m_FaceUri是發(fā)布者之間建立連接通信過程的真正目的。m_module用于區(qū)分具體應(yīng)用,在本文實(shí)現(xiàn)的天氣信息和新聞信息發(fā)布/訂閱系統(tǒng)中可以是news或者weather,用于區(qū)分是News模塊還是Weather模塊的發(fā)布者之間的通信。同步數(shù)據(jù)層命名中/ndn/broadcast/ChronoSync-0.3作為廣播包的路由前綴,Digest是發(fā)布者全數(shù)據(jù)集摘要,反映了發(fā)布者目前同步過的全部數(shù)據(jù)。應(yīng)用數(shù)據(jù)層命名中/m_userame/m_module/RandomString/作為路由前綴,其中,RandomString是10位的隨機(jī)字符串,每個(gè)發(fā)布者的隨機(jī)字符串都不同。Seq_num是發(fā)布者目前最新發(fā)布數(shù)據(jù)的序列號,發(fā)布者從序列號0開始發(fā)布數(shù)據(jù),序列號提供了發(fā)布者目前發(fā)布的數(shù)據(jù)總數(shù)信息。

表1 發(fā)布者之間同步的命名Tab.1 Naming scheme in synchronization between publishers

發(fā)布者連接WIFI之后對局域網(wǎng)內(nèi)所有可能存在的IP進(jìn)行Ping操作,一旦某個(gè)IP能Ping通,則以這個(gè)IP為FaceUri建立Face接口,從這個(gè)Face接口發(fā)送連接Interest包,對方收到連接請求包之后將自己保存的FaceUri列表放在Data包的數(shù)據(jù)區(qū),對連接Interest包進(jìn)行回復(fù)。發(fā)布者A接收到這個(gè)連接回復(fù)Data包之后對數(shù)據(jù)區(qū)進(jìn)行解析獲取FaceUri,更新本地維護(hù)的FaceUri列表,成功建立連接。

建立連接之后,發(fā)布者A和發(fā)布者B向網(wǎng)絡(luò)中廣播同步數(shù)據(jù)層Interest包,同步數(shù)據(jù)層Interest包中包含了發(fā)布者目前的全數(shù)據(jù)集摘要Digset1,當(dāng)發(fā)布者A發(fā)布新的數(shù)據(jù)之后,發(fā)布者A的全數(shù)據(jù)集摘要更新為Digest2,這時(shí)同步數(shù)據(jù)層Interest包得到滿足,發(fā)布者A回復(fù)一個(gè)數(shù)據(jù)區(qū)存放了新產(chǎn)生數(shù)據(jù)名稱的同步數(shù)據(jù)層Data包。這就是發(fā)布者之間同步數(shù)據(jù)層同步數(shù)據(jù)集摘要的完整過程。

發(fā)布者B接收到同步數(shù)據(jù)層Data包之后,提取數(shù)據(jù)區(qū)的內(nèi)容得到新產(chǎn)生數(shù)據(jù)的名稱,然后以這個(gè)名稱發(fā)送應(yīng)用數(shù)據(jù)層Interest包,發(fā)布者A對這一應(yīng)用數(shù)據(jù)層Interest包回復(fù)帶有相應(yīng)數(shù)據(jù)的應(yīng)用數(shù)據(jù)層Data包。至此,發(fā)布者A與發(fā)布者B之間完成了一次全數(shù)據(jù)集同步,接下來,發(fā)布者A和發(fā)布者B分別向網(wǎng)絡(luò)中廣播數(shù)據(jù)集摘要為Digest2的同步數(shù)據(jù)層Interest包,進(jìn)入下一輪的全數(shù)據(jù)集同步過程。

2.2 小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式優(yōu)化設(shè)計(jì)

在小塊數(shù)據(jù)傳輸?shù)膱鼍跋?,由于要傳輸?shù)臄?shù)據(jù)比較小,因此可以將數(shù)據(jù)作為Interest包的名稱的一部分,采用發(fā)布者主動推送數(shù)據(jù)的形式。發(fā)布者和訂閱者之間的通信可以簡化為3個(gè)過程:連接控制、訂閱管理和發(fā)布推送。對3個(gè)通信過程的命名設(shè)計(jì)如表2所示,與通用情況的命名設(shè)計(jì)不同的是,直接將數(shù)據(jù)類型和數(shù)據(jù)內(nèi)容附加在名稱的后面,使得發(fā)布者推送數(shù)據(jù)成為可能。比如在天氣信息發(fā)布/訂閱系統(tǒng)中,數(shù)據(jù)類型可以是城市名稱,數(shù)據(jù)內(nèi)容為對應(yīng)城市的溫度。

當(dāng)發(fā)布者有新的信息產(chǎn)生時(shí),通過檢索本地維護(hù)的訂閱列表,確定需要向哪些訂閱者推送Psync Interest包,而新產(chǎn)生信息的類型以及內(nèi)容就包含在Psync Interest包的名稱中,訂閱者接收到Psync Interest包之后通過解析名稱就可以獲取推送的內(nèi)容,然后發(fā)送一個(gè)內(nèi)容為空的Data包。訂閱者回復(fù)一個(gè)內(nèi)容為空的Data包的目的有2個(gè):①告知發(fā)布者自己已經(jīng)接收到了推送數(shù)據(jù),②解除Psync Interest包對中間路由器中PIT資源的占用。連接控制和訂閱管理2個(gè)通信過程和通用情況的相應(yīng)通信過程類似,因此不再贅述。

表2 小塊數(shù)據(jù)發(fā)布/訂閱模式的命名設(shè)計(jì)Tab.2 Naming scheme in publish/subscribe model for small chunk of data

3 系統(tǒng)實(shí)現(xiàn)與評測

3.1 系統(tǒng)實(shí)現(xiàn)

本系統(tǒng)在Android平臺上對NDN工作組發(fā)布的NFD-android項(xiàng)目進(jìn)行二次開發(fā),根據(jù)本文提出的發(fā)布/訂閱通信協(xié)議和NDN工作組提出的ChronoSync協(xié)議實(shí)現(xiàn)了一個(gè)NDN下的發(fā)布/訂閱系統(tǒng),該系統(tǒng)功能由分別代表小塊數(shù)據(jù)和大塊數(shù)據(jù)傳輸?shù)腤eather模塊和News模塊實(shí)現(xiàn),這兩大模塊實(shí)現(xiàn)了三大功能:小塊數(shù)據(jù)傳輸下發(fā)布者與訂閱者之間的發(fā)布/訂閱、大塊數(shù)據(jù)傳輸下訂閱者與發(fā)布者之間的發(fā)布/訂閱、發(fā)布者之間的全數(shù)據(jù)集同步。

基于Android的命名數(shù)據(jù)網(wǎng)絡(luò)發(fā)布/訂閱系統(tǒng)架構(gòu)如圖3所示,Android操作系統(tǒng)層包括Linux內(nèi)核、系統(tǒng)類庫、運(yùn)行時(shí)、應(yīng)用程序框架層,除此之外還包括用于支持在Android系統(tǒng)中開發(fā)NDN應(yīng)用的JNDN通用庫,而JNDN通用庫由用C++編寫的cryptopp庫、ndn-cxx庫、nfd庫等組成,cryptopp庫是一個(gè)加密類庫,ndn-cxx是實(shí)現(xiàn)了命名數(shù)據(jù)網(wǎng)絡(luò)協(xié)議的C++類庫,nfd是用C++實(shí)現(xiàn)的命名數(shù)據(jù)網(wǎng)絡(luò)轉(zhuǎn)發(fā)守護(hù)進(jìn)程。

Android應(yīng)用層劃分為2層,底層為基本服務(wù)模塊,包括General模塊、Faces模塊、Routes模塊和Logcat模塊,這些模塊提供了對NFD運(yùn)行情況的控制和統(tǒng)計(jì),便于查看和調(diào)試,涉及到NFD的底層代碼和JNI機(jī)制的調(diào)用;上層為發(fā)布/訂閱模式的具體實(shí)現(xiàn)層,包括News模塊和Weather模塊,它們分別實(shí)現(xiàn)了命名數(shù)據(jù)網(wǎng)絡(luò)在大塊數(shù)據(jù)和小塊數(shù)據(jù)情況下的發(fā)布/訂閱功能,News模塊和Weather模塊內(nèi)部又分為2個(gè)模塊:ChronoSync實(shí)現(xiàn)了發(fā)布者之間的全數(shù)據(jù)集同步,PLSync和PSSync分別實(shí)現(xiàn)了適合于大塊數(shù)據(jù)和小塊數(shù)據(jù)傳輸?shù)陌l(fā)布者和訂閱者之間的部分?jǐn)?shù)據(jù)集同步。

3.2 系統(tǒng)功能評測

針對系統(tǒng)的News模塊和Weather模塊均考慮到3種應(yīng)用場景:多個(gè)發(fā)布者、一個(gè)發(fā)布者和多個(gè)訂閱者、多個(gè)發(fā)布者和多個(gè)訂閱者。因此,測試用的3種網(wǎng)絡(luò)拓?fù)淙鐖D4所示。測試過程中,為了盡可能單獨(dú)測試每個(gè)功能,在每一個(gè)應(yīng)用場景下又設(shè)計(jì)了若干個(gè)不同的測試用例,測試用例匯總?cè)绫?所示。

測試結(jié)果顯示,本系統(tǒng)實(shí)現(xiàn)了全部的預(yù)定功能,具體有:發(fā)布者之間、發(fā)布者和訂閱者之間建立連接、斷開連接;發(fā)布者發(fā)布信息;訂閱者訂閱信息、取消訂閱信息;發(fā)布者與訂閱者進(jìn)行部分?jǐn)?shù)據(jù)集同步;發(fā)布者與訂閱者進(jìn)行全數(shù)據(jù)集同步;對訂閱者錯(cuò)誤的容錯(cuò)處理。

圖3 系統(tǒng)總體架構(gòu)圖Fig.3 system architecture

圖4 系統(tǒng)功能測評網(wǎng)絡(luò)拓?fù)鋱DFig.4 Network topologies for system functional test

表3 測試用例匯總表Tab.3 Summary of test cases

3.3 系統(tǒng)性能測評

在ndnSIM 2.4模擬器上對設(shè)計(jì)的2種發(fā)布/訂閱協(xié)議進(jìn)行性能測評,評測所用網(wǎng)絡(luò)拓?fù)錇橐粋€(gè)3級樹狀拓?fù)?如圖5所示),根節(jié)點(diǎn)作為發(fā)布者,4個(gè)葉節(jié)點(diǎn)分別作為訂閱者。發(fā)布者有15個(gè)主題可供訂閱者訂閱,每個(gè)訂閱者隨機(jī)訂閱n個(gè)主題,發(fā)布者每次隨機(jī)選取一個(gè)主題發(fā)布內(nèi)容,總共發(fā)布m次。實(shí)驗(yàn)統(tǒng)計(jì)隨著n和m的變化,通用情況下的發(fā)布/訂閱模式、小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式下2個(gè)測評指標(biāo)的變化,2個(gè)評測指標(biāo)為:①系統(tǒng)效率,即傳輸?shù)男畔?shù)與網(wǎng)絡(luò)所有節(jié)點(diǎn)傳輸?shù)陌倲?shù)的比值,傳輸一個(gè)信息指訂閱者的一次訂閱或者取消訂閱、發(fā)布者的一次發(fā)布;②從發(fā)布者發(fā)布數(shù)據(jù)到訂閱者接收到數(shù)據(jù)的時(shí)延,訂閱者所接收到數(shù)據(jù)的來源可以是發(fā)布者也可以是網(wǎng)絡(luò)內(nèi)緩存。實(shí)驗(yàn)參數(shù)統(tǒng)計(jì)見表4。

3.3.1 系統(tǒng)效率

實(shí)驗(yàn)統(tǒng)計(jì)通用情況下的發(fā)布/訂閱模式、小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式在訂閱比例不同(即n=5和n=10時(shí)),隨著發(fā)布次數(shù)m的增加,網(wǎng)絡(luò)內(nèi)所有節(jié)點(diǎn)傳輸包的總數(shù)N的變化,由此得到系統(tǒng)效率的變化,系統(tǒng)效率的計(jì)算公式為

圖5 實(shí)驗(yàn)拓?fù)鋱DFig.5 Network topology for simulation

表4 實(shí)驗(yàn)參數(shù)表Tab.4 Simulation parameters

實(shí)驗(yàn)結(jié)果如圖6所示,從實(shí)驗(yàn)結(jié)果可以得到以下結(jié)論:1)小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式比通用情況下的發(fā)布/訂閱模式的系統(tǒng)效率高。這是因?yàn)樵谠O(shè)計(jì)上小塊數(shù)據(jù)傳輸場景的發(fā)布模式充分利用了傳輸數(shù)據(jù)小的特點(diǎn),巧妙利用NDN的命名機(jī)制,使數(shù)據(jù)發(fā)布的通信過程相對于通用情況下的發(fā)布/訂閱模式減半;2)訂閱比例越高,通用情況下的發(fā)布/訂閱模式系統(tǒng)效率越高,小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式系統(tǒng)效率基本不變。這是因?yàn)橛嗛啽壤礁?,不同訂閱者訂閱相同主題的可能性越高,發(fā)布者發(fā)布數(shù)據(jù)時(shí),部分訂閱者更有可能從網(wǎng)絡(luò)緩存中得到數(shù)據(jù),因此系統(tǒng)效率有提升;3)訂閱比例一定的時(shí)候,發(fā)布次數(shù)越多,通用情況下的發(fā)布/訂閱模式系統(tǒng)效率有所降低,小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式系統(tǒng)效率有所提高。

3.3.2 接收時(shí)延

實(shí)驗(yàn)統(tǒng)計(jì)在n=10時(shí),通用情況下的發(fā)布/訂閱模式和小塊數(shù)據(jù)傳輸場景的發(fā)布/訂閱模式的訂閱者接收時(shí)延,實(shí)驗(yàn)結(jié)果如圖7所示,小塊數(shù)據(jù)傳輸場景下訂閱者的接收時(shí)延明顯低于通用情況下訂閱者的接收時(shí)延,這是因?yàn)楫?dāng)發(fā)布者發(fā)布數(shù)據(jù)時(shí),通用情況下訂閱者經(jīng)過兩輪Interest-Data傳輸之后接收到所發(fā)布的數(shù)據(jù),小塊數(shù)據(jù)場景下訂閱者經(jīng)過一輪Interest-Data傳輸之后就接收到所發(fā)布的數(shù)據(jù)。

圖6 系統(tǒng)效率實(shí)驗(yàn)結(jié)果圖Fig.6 Simulation results for system efficiency

圖7 接收時(shí)延實(shí)驗(yàn)結(jié)果圖Fig.7 Simulation results for system delay

4 總結(jié)和未來工作

本文提出了一種NDN下的通用的發(fā)布/訂閱模式通信協(xié)議,充分利用了NDN的上下拓?fù)湟恢滦?、天然適合多播、具有網(wǎng)內(nèi)緩存、多路徑路由和轉(zhuǎn)發(fā)的特性。在此基礎(chǔ)上,針對小塊數(shù)據(jù)傳輸?shù)膱鼍?,利用NDN命名機(jī)制對通用的發(fā)布/訂閱模式通信協(xié)議進(jìn)行了優(yōu)化,使發(fā)布者發(fā)布更新數(shù)據(jù)的通信過程簡化一半。以天氣信息和新聞信息的發(fā)布/訂閱分別作為大塊數(shù)據(jù)和小塊數(shù)據(jù)傳輸?shù)膽?yīng)用場景,將設(shè)計(jì)的2種發(fā)布/訂閱通信協(xié)議在Android平臺實(shí)現(xiàn),實(shí)現(xiàn)了一個(gè)NDN下高效的天氣信息和新聞信息發(fā)布/訂閱系統(tǒng),該系統(tǒng)支持多發(fā)布者和多訂閱者的分布式發(fā)布和訂閱活動。

本文還分析了TCP/IP網(wǎng)絡(luò)和NDN網(wǎng)絡(luò)實(shí)現(xiàn)發(fā)布/訂閱模式的區(qū)別,對本文后續(xù)的工作有所幫助。本文的下一步工作將從實(shí)驗(yàn)數(shù)據(jù)測量與對比角度出發(fā),對TCP/IP下的發(fā)布/訂閱模式和本文設(shè)計(jì)的發(fā)布/訂閱模式進(jìn)行對比,量化分析TCP/IP網(wǎng)絡(luò)下的發(fā)布/訂閱系統(tǒng)和本文實(shí)現(xiàn)的發(fā)布/訂閱系統(tǒng)在數(shù)據(jù)包傳輸跳數(shù)、往返時(shí)延、數(shù)據(jù)請求比等指標(biāo)上的表現(xiàn)。

[1] ZHANG L, AFANASYEV A, BURKE J, et al. Named data networking[J]. Acm Sigcomm Computer Communication Review, 2014, 44(3):66-73.

[2] 雷凱.信息中心網(wǎng)絡(luò)與命名數(shù)據(jù)網(wǎng)絡(luò)[M].北京:北京大學(xué)出版社,2015.

LEI Kai. Information centric networking(ICN) and named data networking(NDN)[M]. Beijing:Peking University Press, 2015.

[3] 汪錦嶺.面向Internet的發(fā)布/訂閱系統(tǒng)的關(guān)鍵技術(shù)研究[D].深圳:中國科學(xué)院研究生院(軟件研究所),2005.

WANG Jinling. Research on Key Technologies in Internet-scale Publish/Subscribe Systems[D]. Shenzhen: Institute of Software, Chinese Academy of Sciences, 2005.

[4] CARZANIGA A, PAPALINI M, WOLF A L. Content-based publish/subscribe networking and information-centric networking[C]//ACM SIGCOMM Workshop on Information-Centric Networking. Toronto, Ontario, Canada: ACM, 2011:56-61.

[5] CHEN J, ARUMAITHURAI M, JIAO L, et al. COPSS: An Efficient Content Oriented Publish/Subscribe System[C]//ACM/IEEE Symposium on Architectures for Networking & Communications Systems. Brooklyn, Ny, USA: IEEE, 2011:99-110.

[6] DRIRA W, FILALI F. A Pub/Sub extension to NDN for efficient data collection and dissemination in V2X networks[C]// IEEE, International Symposium on A World of Wireless, Mobile and Multimedia Networks. Sydney, NSW, Australio: IEEE, 2014:1-7.

[7] DETTI A, TASSETTO D, MELAZZI N B, et al. Exploiting content centric networking to develop topic-based, publish-subscribe MANET systems[J]. Ad Hoc Networks, 2015, 24:115-133.

[8] 馬建剛,黃濤,汪錦嶺,等.面向大規(guī)模分布式計(jì)算發(fā)布訂閱系統(tǒng)核心技術(shù)[J].軟件學(xué)報(bào),2006,17(1):134-147.

MA Jiangang, HUANG Tao, WANG Jinling, et al. Underlying techniques for large-scale distributed computing oriented publish/subscribe system[J]. Journal of Software, 2006, 17(1):134-147.

[9] JACOBSON V L, SMETTERS D K, THORNTON J D, et al. Networking named content[C]// conference on emerging network experiment and technology. Rome, Italy: ACM, 2009: 1-12.

[10] 樸雪威,鄭亦哲,雷凱.命名數(shù)據(jù)網(wǎng)絡(luò)中的移動管理技術(shù)綜述[J].計(jì)算機(jī)應(yīng)用研究,2017,34(4):961-964.

PU Xuewei, ZHENG Yizhe, LEI Kai. Survey of mobility management technologies based on named data networking[J].Application Research of Computers, 2017, 34(4):961-964.

[11] ZHU Z, AFANASYEV A. Let’s ChronoSync: Decentralized dataset state synchronization in Named Data Networking[C]//IEEE International Conference on Network Protocols.[S.l.]: IEEE, 2014:1-10.

(編輯:魏琴芳)

猜你喜歡
發(fā)布者命名模塊
28通道收發(fā)處理模塊設(shè)計(jì)
“選修3—3”模塊的復(fù)習(xí)備考
命名——助力有機(jī)化學(xué)的學(xué)習(xí)
有一種男人以“暖”命名
東方女性(2018年3期)2018-04-16 15:30:02
為一條河命名——在白河源
散文詩(2017年17期)2018-01-31 02:34:08
廣告發(fā)布者的著作權(quán)審查義務(wù)問題研究
加權(quán)映射匹配方法的站內(nèi)搜索引擎設(shè)計(jì)
選修6 第三模塊 International Relationships
集成水空中冷器的進(jìn)氣模塊
uddiKey及其分配策略研究
南宁市| 桂林市| 德昌县| 贵州省| 若尔盖县| 北碚区| 庆安县| 织金县| 石柱| 武夷山市| 延寿县| 驻马店市| 缙云县| 万宁市| 礼泉县| 洛浦县| 柯坪县| 固原市| 班戈县| 丁青县| 蒲江县| 忻城县| 鱼台县| 栾川县| 明溪县| 卢龙县| 乐山市| 山东省| 莲花县| 安塞县| 赣州市| 海淀区| 剑河县| 昭觉县| 通榆县| 宁乡县| 丰原市| 叶城县| 呼伦贝尔市| 祥云县| 武山县|