亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NDN的區(qū)塊鏈數(shù)據(jù)同步方法

        2022-12-06 10:29:42馬紅橋楊文忠
        計算機工程與應(yīng)用 2022年23期
        關(guān)鍵詞:架構(gòu)區(qū)塊節(jié)點

        馬紅橋,楊文忠,康 鵬

        新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046

        區(qū)塊鏈技術(shù)在近年來引起了巨大的轟動,數(shù)字加密貨幣——比特幣(Bitcoin)是該技術(shù)的來源。而“比特幣”概念最早來源于2008年由“中本聰”所撰寫的文獻:《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》[1],在其中所闡述的比特幣底層記賬系統(tǒng)即為區(qū)塊鏈技術(shù),這也是區(qū)塊鏈亦被稱作為一種“賬本”技術(shù)的原因。所以在區(qū)塊鏈技術(shù)初期,也即區(qū)塊鏈發(fā)展的第一階段是以比特幣為代表的區(qū)塊鏈1.0。久而久之,許多人將區(qū)塊鏈混淆成為比特幣,但是,比特幣只是區(qū)塊鏈技術(shù)的一種應(yīng)用,其解決了數(shù)字貨幣集中交易的問題,目的是實現(xiàn)以去中心化和絕對安全的方式追蹤金融體系下虛擬代幣的發(fā)行和流動。此后,受到比特幣區(qū)塊鏈的啟發(fā),2013年Vitalik Buterin首次概述了以太坊[2](Ethereum)背后的概念:圖靈完備的通用區(qū)塊鏈——一種能夠被重編程用以實現(xiàn)任意復(fù)雜計算功能的單一區(qū)塊鏈[3]。之后伴隨著以太坊第一個區(qū)塊在2015年被挖出后,開啟了以Ethereum為代表的區(qū)塊鏈2.0時代。自此區(qū)塊鏈也開始脫離“區(qū)塊鏈即比特幣”的固化印象,從而以一項技術(shù)的身份走進大眾視野。并且在此之后,借助以太坊的成功,區(qū)塊鏈技術(shù)受到眾多技術(shù)人員的關(guān)注,發(fā)展成為近年來最具革命性的一項新興技術(shù)而被廣泛應(yīng)用到各種領(lǐng)域場景中,而且在某種程度上其已發(fā)展成為從金融、工業(yè)物流到醫(yī)療保健等廣泛社會領(lǐng)域的信任基石[4]。

        然而不幸的是,現(xiàn)實世界中區(qū)塊鏈技術(shù)的應(yīng)用遇到了重大的技術(shù)挑戰(zhàn),從而阻礙了它在一些其他重要領(lǐng)域的進一步發(fā)展,特別是考慮到系統(tǒng)的整體性能(如時間消耗),區(qū)塊鏈的技術(shù)優(yōu)勢被極大地縮小。時間性能問題可歸為區(qū)塊鏈的可擴展性問題[5],這是因為較差的時間性能阻礙了更多區(qū)塊鏈節(jié)點的加入。其主要包含兩個方面[6],首先是區(qū)塊鏈的低吞吐量造成交易時間過長,其次是區(qū)塊鏈巨大的數(shù)據(jù)容量使得全量數(shù)據(jù)的同步時間過長。而且隨著區(qū)塊鏈技術(shù)的持續(xù)發(fā)展與應(yīng)用,不斷增加的數(shù)據(jù)容量只會使得該問題被無限地放大。

        針對上述問題,近年來的研究熱點都主要集中在推進共識層中的共識算法來提高事務(wù)吞吐量,從而降低交易延遲(如文獻[7-11])。部分研究通過優(yōu)化數(shù)據(jù)層中的數(shù)據(jù)存儲進行解決[4],如文獻[12]引入了一個稱為共識單元的新概念,并提出塊分配問題的解決方案來減少每個節(jié)點的存儲開銷。此外,少量文獻以對立的角度通過壓縮區(qū)塊的大小進行解決,這是因為通過增加“塊”的大小來包含更多的交易,可以間接提高吞吐量,而“塊”的壓縮不僅可以達到同樣的效果,還可以減少存儲開銷,如文獻[13]。

        然而針對可擴展性問題很少有研究從網(wǎng)絡(luò)層(即位于兩層之間)進行,并且共識層和數(shù)據(jù)層的解決方案并不是最佳的解決方案。這是因為共識層作為區(qū)塊鏈的核心,對共識算法的改造很容易引入安全問題,或會犧牲區(qū)塊鏈重要的去中心化屬性,而數(shù)據(jù)層的解決方法顯然如前所說,伴隨著區(qū)塊鏈技術(shù)的火熱應(yīng)用,其只是一種暫時的解決方案。

        因此在該問題現(xiàn)有的研究中,針對網(wǎng)絡(luò)層的極少研究,使其忽略了一個關(guān)鍵性問題,即無論從共識層還是數(shù)據(jù)層對該問題進行研究,其在最終都無法避免底層的數(shù)據(jù)傳輸過程。而且通過理論分析,在區(qū)塊鏈的網(wǎng)絡(luò)層確有改進的空間。

        這是因為現(xiàn)有的區(qū)塊鏈技術(shù)都是在點對點(peer-topeer,P2P)網(wǎng)絡(luò)中基于傳統(tǒng)的TCP/IP網(wǎng)絡(luò)架構(gòu),通過應(yīng)用層多播實現(xiàn)區(qū)塊數(shù)據(jù)的同步及傳輸,然而該架構(gòu)的缺陷在于不同的終端用戶對相同數(shù)據(jù)內(nèi)容的請求是獨立的,由此使得區(qū)塊鏈網(wǎng)絡(luò)中在區(qū)塊同步時會存在大量的冗余流量,從而占用較高的帶寬而導(dǎo)致了較大的數(shù)據(jù)傳輸時延[14]。

        并且如前所述,隨著區(qū)塊鏈技術(shù)的火熱以及以太坊中分布式應(yīng)用程序(decentralized applications,DApps)的流行,區(qū)塊鏈上的交易將爆發(fā)式增長,因此伴隨著時間的推移,必將會使整個區(qū)塊鏈的數(shù)據(jù)容量越來越大(目前,比特幣網(wǎng)絡(luò)完整的賬本數(shù)據(jù)容量占用高達200 GB,并且這個數(shù)字在以每天約0.1 GB的速度不斷增加[15]),由此對區(qū)塊鏈節(jié)點的硬件存儲及數(shù)據(jù)同步時間提出更高的要求,特別是時間要求(在網(wǎng)絡(luò)環(huán)境優(yōu)良前提下,首次啟動時可能需要幾天時間才能完全同步[3],而且預(yù)測后續(xù)會更久,且無上限)。時間的寶貴性使得眾多用戶無法接受漫長的等待,從而放棄加入?yún)^(qū)塊鏈網(wǎng)絡(luò),由此導(dǎo)致前述的節(jié)點擴展性問題。這是一個關(guān)鍵性問題,因為在區(qū)塊鏈網(wǎng)絡(luò)中少量的節(jié)點不能為對應(yīng)場景下的區(qū)塊鏈提供可靠的權(quán)威性,從而失去了原有區(qū)塊鏈的應(yīng)用意義。以報紙銷量為例:由不同媒體機構(gòu)在同一天發(fā)行的不同報紙中,某一媒體發(fā)行的報紙其銷量越高,則說明該媒體發(fā)行的報紙受到眾多讀者的認可,而讀者越多則表明其包含的新聞內(nèi)容更加權(quán)威可信,反觀銷量慘淡的媒體,說明其新聞內(nèi)容,或有不同程度的問題存在,長期下去該媒體機構(gòu)便不再具有存在的意義。將其映射到區(qū)塊鏈環(huán)境中,可以將某一媒體機構(gòu)發(fā)行的所有報紙理解為完整的區(qū)塊鏈賬本,每一天的報紙(即區(qū)塊)記錄每一天的新聞內(nèi)容(即交易),而銷量反映出的讀者量為加入?yún)^(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點數(shù)。因此前述節(jié)點的可擴展性,其重要性不言而喻。

        命名數(shù)據(jù)網(wǎng)絡(luò)[16-17](NDN)是由美國國家科學(xué)基金會于2010年所發(fā)起的未來網(wǎng)絡(luò)架構(gòu)研究方案之一,該方案的主旨為開發(fā)下一代新型網(wǎng)絡(luò)架構(gòu),并取代現(xiàn)有的TCP架構(gòu)[18]。而NDN由于其自適應(yīng)轉(zhuǎn)發(fā)、網(wǎng)內(nèi)存儲及本地多播的優(yōu)勢,使其在眾多方案中脫穎而出,并已成為構(gòu)建未來新型互聯(lián)網(wǎng)體系結(jié)構(gòu)中最具希望的候選者[19],同時其也已被引入為互聯(lián)網(wǎng)新型的網(wǎng)絡(luò)通信范式[20]。通過對其深入地分析與研究,其自有的自適應(yīng)轉(zhuǎn)發(fā)正好可以有效解決上述區(qū)塊鏈技術(shù)中數(shù)據(jù)內(nèi)容請求獨立的問題,同時NDN網(wǎng)內(nèi)存儲及其本地多播優(yōu)勢可以進一步優(yōu)化區(qū)塊鏈網(wǎng)絡(luò)中數(shù)據(jù)同步的傳輸效率問題。由此NDN與區(qū)塊鏈融合的技術(shù)研究吸引了眾多的學(xué)者[21]。

        此外NDN打破傳統(tǒng)TCP架構(gòu)原有以主機為中心的通信模式(數(shù)據(jù)的獲取必須事先獲取數(shù)據(jù)宿主的IP地址),轉(zhuǎn)變?yōu)橐詢?nèi)容為中心的通信模式,使得其只關(guān)注內(nèi)容,這在某種程度上和區(qū)塊鏈的技術(shù)表現(xiàn)相符合,即隱藏交易各方的信息,但卻公開透明交易的內(nèi)容,從而凸顯出二者天然的契合性,進一步說明NDN有可能成為區(qū)塊鏈一種新型的底層網(wǎng)絡(luò)架構(gòu)。由此擴大了基于NDN的區(qū)塊鏈網(wǎng)絡(luò)層的研究。

        在文獻[22]中,作者提出了BlockNDN,一種在NDN網(wǎng)絡(luò)上構(gòu)建區(qū)塊鏈的方案,旨在改善IP制度下區(qū)塊鏈的單點故障和不利于多播的問題,減少傳播延遲和數(shù)據(jù)傳輸開銷。文獻[23]中的作者提出了一種基于NDN的分布式點對點網(wǎng)絡(luò)層,用于區(qū)塊鏈數(shù)據(jù)傳輸。文獻[24]中的作者通過提出DIBN來解決由于流量與P2P上層網(wǎng)絡(luò)中底層網(wǎng)絡(luò)拓撲不匹配而導(dǎo)致大量冗余流量的問題。

        然而這些研究雖探索了NDN與區(qū)塊鏈的初步融合并取得了一些成果,但它們?nèi)匀淮嬖谝恍﹩栴}。如這些方法通過選擇志愿者或種子節(jié)點來執(zhí)行相應(yīng)的功能,這在某種程度上增加了集中化,顯然與區(qū)塊鏈的去中心化設(shè)計原則相背離。此外,由于區(qū)塊鏈節(jié)點隨機生成區(qū)塊,因此在生成區(qū)塊之前,這些方法需通過特定的命名機制向網(wǎng)絡(luò)不斷地廣播興趣請求包來完成同步,由此產(chǎn)生了部分冗余流量,消耗了部分帶寬。

        因此基于以上分析,本文創(chuàng)新性提出一種“NDN+區(qū)塊鏈”的結(jié)構(gòu),旨在解決現(xiàn)有研究中所存在的問題,以期高效實現(xiàn)區(qū)塊鏈底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施從TCP架構(gòu)到NDN架構(gòu)的初步轉(zhuǎn)變,從而進一步解決區(qū)塊鏈技術(shù)的自身限制問題。

        1 區(qū)塊鏈和命名數(shù)據(jù)網(wǎng)絡(luò)

        1.1 區(qū)塊鏈

        首先從數(shù)據(jù)結(jié)構(gòu)角度理解區(qū)塊鏈。類似于其名稱定義,區(qū)塊鏈是一種“鏈”式結(jié)構(gòu),由基于密碼學(xué)方法生成的一系列數(shù)據(jù)塊組成,每個數(shù)據(jù)塊都是塊鏈中的一個塊,塊根據(jù)它們的創(chuàng)建順序有序地迭代鏈接在一起,數(shù)據(jù)鏈的鏈接指針為區(qū)塊頭中的哈希值,該哈希可以唯一標識一個區(qū)塊。由此,通過鏈接到其父塊的哈希,可以創(chuàng)建從最新塊到第一個塊(創(chuàng)世塊)的單向鏈表,從而形成所有塊的鏈式數(shù)據(jù)結(jié)構(gòu),如圖1所示。

        圖1 區(qū)塊鏈數(shù)據(jù)結(jié)構(gòu)Fig.1 Blockchain data structure

        其次,區(qū)塊鏈是一種數(shù)字系統(tǒng),其主要功能是記錄并存儲信息,其中最常見的信息是涉及金融的轉(zhuǎn)賬交易信息,同時區(qū)塊鏈還支持對交易信息進行回溯審計,因此,從功能角度講區(qū)塊鏈實質(zhì)為一個數(shù)據(jù)庫系統(tǒng),然而其與傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)并不相似,這是因為交易信息的記錄是由區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點共同維護更新的,而存儲是在網(wǎng)絡(luò)中的可用節(jié)點之間分布式共享存儲的,顯然這與傳統(tǒng)數(shù)據(jù)庫的中央數(shù)據(jù)存儲方式存在巨大的差異。因此可以將區(qū)塊鏈形式化理解為一個特殊的數(shù)據(jù)庫系統(tǒng)。以Bitcoin為例,圖2為區(qū)塊鏈交易處理過程,該過程也正是其特殊性的表現(xiàn)。其主要過程可以概述[25]為:

        圖2 區(qū)塊鏈交易處理Fig.2 Blockchain transaction processing

        任意用戶發(fā)起一筆轉(zhuǎn)賬交易,在簽名加密后被發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)中等待驗證。驗證由礦工節(jié)點負責(zé),區(qū)塊鏈網(wǎng)絡(luò)中所有的礦工都執(zhí)行同樣的驗證檢查,一旦交易有效,該交易將成為候選新區(qū)塊的一部分(每個礦工都有自己的候選塊),而這也意味著它尚未成為區(qū)塊鏈的一部分。在區(qū)塊鏈中所有節(jié)點都是對等節(jié)點(無主從關(guān)系),從而具有同等權(quán)利向區(qū)塊鏈提交并合并自己的候選區(qū)塊,為了確定應(yīng)該合并哪個節(jié)點的候選區(qū)塊以避免出現(xiàn)混亂,礦工必須提供工作量證明(proof of work,PoW),這一過程也被稱作是共識(consensus),即在去中心化的區(qū)塊鏈網(wǎng)絡(luò)環(huán)境中選擇出唯一一個最大概率不會對網(wǎng)絡(luò)造成損害的節(jié)點進行記賬。第一個解決PoW難題的礦工在將候選區(qū)塊合并到本地區(qū)塊鏈后會將其廣播給其他的礦工節(jié)點,其他礦工節(jié)點驗證該區(qū)塊PoW解決方案的正確性,驗證成功后該候選區(qū)塊的所屬者即第一個解決PoW難題的礦工會獲得固定的“獎勵”,同時該候選新區(qū)塊也將合并到自己的本地區(qū)塊鏈中。從這一刻起,剩余的礦工節(jié)點將停止解決當前候選區(qū)塊的工作量證明,并開始處理下一個區(qū)塊,此工作流一遍又一遍地重復(fù)。

        1.1.1 區(qū)塊鏈節(jié)點

        在區(qū)塊鏈網(wǎng)絡(luò)中,客戶端幫助每個參與者接入?yún)^(qū)塊鏈網(wǎng)絡(luò)從而成為一個區(qū)塊鏈節(jié)點,其客戶端通常為運行區(qū)塊鏈協(xié)議并存儲交易歷史記錄的眾多應(yīng)用軟件之一(如Geth)。然而區(qū)塊鏈的去中心化設(shè)計,使得區(qū)塊鏈節(jié)點成為可能執(zhí)行不同功能的通信節(jié)點,因此在區(qū)塊鏈網(wǎng)絡(luò)中存在不同類型的區(qū)塊鏈節(jié)點,如主要的兩類節(jié)點:全節(jié)點(full node)與輕節(jié)點(light node)或簡單支付驗證節(jié)點(simple payment verification,SPV)。

        全節(jié)點充當區(qū)塊鏈網(wǎng)絡(luò)中的服務(wù)器,其主要任務(wù)是維護其他節(jié)點之間的共識和交易驗證,此外它還存儲完整的區(qū)塊鏈歷史副本,由此可以完成對所有交易的權(quán)威驗證,而這也是區(qū)塊鏈最為安全的驗證方法[26]。但自然地,其給用戶帶來了硬盤空間及時間的高要求,因為隨著時間的推移,交易的累積使得區(qū)塊鏈的數(shù)據(jù)容量越來越大,所以新加入的節(jié)點要想下載完整的區(qū)塊鏈歷史副本從而快速地加入?yún)^(qū)塊鏈網(wǎng)絡(luò)并不是一件容易的事情,即便是在網(wǎng)絡(luò)環(huán)境優(yōu)良的條件下也較困難。相比之下輕節(jié)點便不再有此類問題,其是日常加密操作中使用的另一種類型的區(qū)塊鏈節(jié)點,這些類型的節(jié)點與區(qū)塊鏈通信,并依靠完整節(jié)點為其提供必要的信息,以便與網(wǎng)絡(luò)的當前狀態(tài)同步并能夠參與其中,也即其只能發(fā)送交易。但由于它們不存儲鏈的副本,所以它們僅可查詢最后一個塊的當前狀態(tài),并廣播事務(wù)以進行處理。很顯然,為了方便輕節(jié)點不需要很多資源,這導(dǎo)致其犧牲了安全性。所以全節(jié)點的重要性不言而喻,而其也是在區(qū)塊鏈上執(zhí)行最重要任務(wù)的唯一節(jié)點類型,如挖礦任務(wù)。

        1.1.2 區(qū)塊鏈礦工任務(wù)

        以Bitcoin為例,一旦節(jié)點連接到比特幣網(wǎng)絡(luò),比特幣礦工就會執(zhí)行以下幾項任務(wù):

        (1)與網(wǎng)絡(luò)同步:一旦新節(jié)點加入比特幣網(wǎng)絡(luò),它就會通過其他節(jié)點來請求下載完整的區(qū)塊鏈歷史副本。

        (2)交易驗證:全節(jié)點驗證區(qū)塊鏈網(wǎng)絡(luò)中廣播的交易簽名及其輸出,避免轉(zhuǎn)賬人余額不足出現(xiàn)問題。

        (3)區(qū)塊驗證:礦工和全節(jié)點可以根據(jù)某些規(guī)則評估它們收到的區(qū)塊來驗證它。這包括驗證區(qū)塊中的每筆交易及隨機數(shù)值(區(qū)塊頭中的Nonce值)的正確性。

        (4)創(chuàng)建新區(qū)塊:礦工在驗證完成之后,將這些交易打包,從而發(fā)布一個新區(qū)塊。打包的交易越多其在之后收到的“獎勵”越多。

        (5)執(zhí)行PoW:此任務(wù)是挖礦過程的核心,需要礦工通過計算哈希難題來挖出一個有效的區(qū)塊。該難題的原理為,礦工需要反復(fù)改變隨機數(shù),來計算出區(qū)塊頭中包含的一個32位哈希隨機數(shù),直到生成的哈希隨機數(shù)小于預(yù)定的目標。

        (6)獲取獎勵:一旦礦工解決了哈希難題(PoW),它將新區(qū)塊附加到本地鏈上,并將解決方案傳播到網(wǎng)絡(luò),其他節(jié)點驗證解決方案的正確性,然后礦工獲得固定的“獎勵”。

        1.2 命名數(shù)據(jù)網(wǎng)絡(luò)

        命名數(shù)據(jù)網(wǎng)絡(luò)的優(yōu)勢使其在近年來受到了眾多未來互聯(lián)網(wǎng)研究學(xué)者的青睞。如圖3所示,NDN與傳統(tǒng)TCP網(wǎng)絡(luò)架構(gòu)的關(guān)鍵區(qū)別在于NDN是以內(nèi)容為中心的新型通信模式,而不再是TCP網(wǎng)絡(luò)架構(gòu)以主機為中心的通信模式[27]。具體來說,在TCP網(wǎng)絡(luò)中,要想獲取所需的內(nèi)容數(shù)據(jù),需首先明確內(nèi)容數(shù)據(jù)所在的IP地址,而且數(shù)據(jù)的檢索范圍全部局限于該已知IP地址服務(wù)器中所存儲的數(shù)據(jù);而在NDN中,所有的數(shù)據(jù)內(nèi)容都是通過唯一的名稱進行標識,該名稱遵循預(yù)定的命名規(guī)則具備人類可讀性。如2022年新疆大學(xué)招生宣傳片可以表示為/xju.edu.cn/videos/recruit.mpg/2022/。而網(wǎng)絡(luò)用戶在檢索數(shù)據(jù)內(nèi)容時也可按照命名規(guī)則,輸入帶有語義信息的名稱在全網(wǎng)范圍內(nèi)檢索內(nèi)容數(shù)據(jù),如檢索新疆大學(xué)2021年的招生宣傳片可以表示為/xju.edu.cn/videos/recruit.mpg/2021/。需指出的是檢索范圍是在全網(wǎng)范圍,不再關(guān)心數(shù)據(jù)服務(wù)器的位置。

        圖3 TCP網(wǎng)絡(luò)與NDN網(wǎng)絡(luò)體系架構(gòu)Fig.3 TCP network and NDN network architecture

        1.2.1 NDN通信組件

        NDN的通信可以分為興趣請求包(interest packet)發(fā)出和內(nèi)容數(shù)據(jù)包(content packet)傳回兩個過程,兩種數(shù)據(jù)包中攜帶所檢索內(nèi)容數(shù)據(jù)的名稱,并且整個NDN通信過程都是基于這兩種網(wǎng)絡(luò)數(shù)據(jù)包在運行。在整個通信過程中每個NDN節(jié)點都會在本地維護更新三個信息表[28]:內(nèi)容緩存庫(content store,CS)、待轉(zhuǎn)發(fā)興趣請求表(pending interest table,PIT)、轉(zhuǎn)發(fā)信息表(forwarding information base,F(xiàn)IB)。

        (1)CS:對接收到的內(nèi)容數(shù)據(jù)短時間緩存,以響應(yīng)(也稱作被滿足)后續(xù)到達的相同內(nèi)容數(shù)據(jù)的興趣請求包,因此興趣請求包可以被內(nèi)容生產(chǎn)者或NDN中間節(jié)點的內(nèi)容緩存滿足,也即在NDN網(wǎng)絡(luò)中,數(shù)據(jù)宿主可以為內(nèi)容生產(chǎn)者或是多個NDN中間節(jié)點,因而相較于傳統(tǒng)的TCP/IP網(wǎng)絡(luò)中單一的服務(wù)器數(shù)據(jù)宿主,NDN網(wǎng)絡(luò)的數(shù)據(jù)共享更加高效,并且中間節(jié)點的內(nèi)容緩存使得興趣請求包可以快速地被響應(yīng),一定程度上對網(wǎng)絡(luò)帶寬進行了優(yōu)化,同時縮短了通信時延,進而可以有效地提升數(shù)據(jù)的傳輸效率。

        (2)PIT:存儲所有未被滿足的興趣請求包,也即等待被響應(yīng)后傳回對應(yīng)內(nèi)容數(shù)據(jù)包的興趣請求包。在該信息表中會根據(jù)興趣請求包所包含的內(nèi)容名稱進行匯聚。如果有多個相同的內(nèi)容數(shù)據(jù)請求,則只會轉(zhuǎn)發(fā)一個請求包,剩余以及后續(xù)到達的相同內(nèi)容數(shù)據(jù)的請求包會被匯聚到該表中,用端口號(NDN中用Face表示)標識不同的主機請求。如果被轉(zhuǎn)發(fā)的興趣請求包被滿足而傳回對應(yīng)的內(nèi)容數(shù)據(jù),則該內(nèi)容數(shù)據(jù)會根據(jù)表中匯聚的端口號同時多路徑地傳回,這一轉(zhuǎn)發(fā)機制使得NDN天然支持多播轉(zhuǎn)發(fā)。

        (3)FIB:類似于TCP/IP網(wǎng)絡(luò)中的路由信息表,不同的是FIB中是對內(nèi)容名稱的路由轉(zhuǎn)發(fā)信息,而非數(shù)值型的IP地址。

        1.2.2 NDN路由轉(zhuǎn)發(fā)

        如圖4所示為NDN對兩種數(shù)據(jù)包(興趣請求包、內(nèi)容數(shù)據(jù)包)的路由轉(zhuǎn)發(fā)流程。當NDN中間節(jié)點收到興趣請求包后,將根據(jù)興趣請求包中的內(nèi)容名稱以不同的匹配方式在CS、PIT、FIB三個組件中依次進行查詢,也正是由于對三個組件的查詢使得NDN具備網(wǎng)內(nèi)存儲、本地多播、自適應(yīng)轉(zhuǎn)發(fā)的優(yōu)勢。

        圖4 NDN網(wǎng)絡(luò)數(shù)據(jù)包路由轉(zhuǎn)發(fā)流程Fig.4 NDN network packet routing forwarding process

        興趣請求包到達后,首先在CS中對請求的內(nèi)容數(shù)據(jù)通過名稱以精準匹配的方式進行查詢,如果存在,則直接傳回CS中對應(yīng)的緩存內(nèi)容并丟棄該已被滿足的興趣請求不再進行轉(zhuǎn)發(fā),緩存內(nèi)容的傳回路徑為興趣請求包傳入的反向?qū)ΨQ路徑。如果CS中不存在則在PIT中查詢。如PIT中存在匹配條目,則表明早前收到過同樣的興趣請求包,正在等待被滿足,則需要把該興趣請求包的傳入接口添加到PIT對應(yīng)的Face請求列表中,等待被滿足響應(yīng),同時丟棄該興趣請求包。如果PIT中無命中項,則說明該興趣請求中的內(nèi)容名稱是第一次被請求,則在PIT中新增一條記錄條目后查詢FIB,記錄內(nèi)容為興趣請求包中的內(nèi)容名稱和該興趣請求包傳入的Face標識號。如在FIB中查詢到對應(yīng)的內(nèi)容名稱條目,則表明當前節(jié)點可以處理該興趣請求,這時將根據(jù)FIB對應(yīng)表目的Face列表轉(zhuǎn)發(fā)該興趣請求包,否則表明當前節(jié)點無法處理該興趣請求包,于是將其丟棄。

        相比之下內(nèi)容數(shù)據(jù)包的路由處理則較為簡易,其傳輸路徑即為興趣請求包的傳輸路徑,只是二者的方向相反[29]。此外內(nèi)容數(shù)據(jù)包在傳輸過程中會被存儲在CS中,以快速滿足后續(xù)相同的內(nèi)容請求。

        2 基于NDN的區(qū)塊鏈數(shù)據(jù)同步

        2.1 問題引述

        隨著區(qū)塊鏈技術(shù)發(fā)展得火熱,基于區(qū)塊鏈技術(shù)的應(yīng)用受到了空前的關(guān)注,由此區(qū)塊鏈上的交易也隨之增多,從而間接造成了區(qū)塊鏈的數(shù)據(jù)容量越來越大。因為共識機制及區(qū)塊鏈的冗余備份,區(qū)塊鏈網(wǎng)絡(luò)要求共識節(jié)點需保存全量的區(qū)塊數(shù)據(jù),而同步大量的數(shù)據(jù)是非常消耗時間的,同時也相當耗費帶寬資源,容易造成網(wǎng)絡(luò)擁堵問題,一定程度上降低了用戶體驗度。特別是新加入的節(jié)點,要想短時間內(nèi)同步完所有數(shù)據(jù)從而快速地進入工作狀態(tài)是很難完成的,這使得用戶無心加入?yún)^(qū)塊鏈網(wǎng)絡(luò),導(dǎo)致了節(jié)點可擴展性問題。因此為使區(qū)塊鏈任意節(jié)點可以快速加入系統(tǒng)提升用戶體驗度,并高效穩(wěn)定地工作,需提供一種技術(shù)方法,而該方法的設(shè)計目的在于其可以有效解決上述數(shù)據(jù)同步的問題,極大地減小待同步節(jié)點的數(shù)據(jù)壓力。

        2.2 NDN區(qū)塊鏈架構(gòu)

        現(xiàn)有的區(qū)塊鏈技術(shù)其底層網(wǎng)絡(luò)大多都是在P2P中基于傳統(tǒng)的TCP網(wǎng)絡(luò)架構(gòu)通過應(yīng)用層多播進行傳輸,這使得不同終端節(jié)點對于同一個數(shù)據(jù)內(nèi)容的請求相互獨立,由此使得網(wǎng)絡(luò)帶寬被大量的冗余流量占據(jù),從而導(dǎo)致較高的數(shù)據(jù)傳輸時延,也即2.1節(jié)所描述的問題。因此問題的解決,其關(guān)鍵在于改變底層網(wǎng)絡(luò)架構(gòu),而該新型網(wǎng)絡(luò)架構(gòu)的設(shè)計應(yīng)可以消除同一內(nèi)容數(shù)據(jù)請求的獨立性。

        如1.2節(jié)所述下一代新型網(wǎng)絡(luò)體系架構(gòu)命名數(shù)據(jù)網(wǎng)絡(luò)正具有此方面的優(yōu)勢,其借助自身的三個關(guān)鍵組件(CS、PIT、FIB),實現(xiàn)同一數(shù)據(jù)內(nèi)容請求的高效多播轉(zhuǎn)發(fā),可極大滿足上述問題需求。并且由于NDN其關(guān)注點在內(nèi)容本身而非類似于TCP的主機IP地址,這在某種程度上和區(qū)塊鏈的設(shè)計思想相符合,即將交易方的信息隱藏,但卻公開透明交易中的內(nèi)容。由此本文提出基于NDN的區(qū)塊鏈數(shù)據(jù)同步方法,將NDN與區(qū)塊鏈技術(shù)結(jié)合,利用NDN網(wǎng)內(nèi)緩存及本機多播優(yōu)勢有效解決上述區(qū)塊數(shù)據(jù)同步的效率問題。如圖5所示為所提方法實施的部署架構(gòu)圖,在區(qū)塊鏈節(jié)點同一主機上部署對等的NDN節(jié)點構(gòu)成NDN對等體,每個NDN對等體通過在本機上運行的NDN轉(zhuǎn)發(fā)守護進程(NDN forwarding daemon,NFD)接入至一個公開的或局部的NDN網(wǎng)絡(luò),客戶端通過本地NFD發(fā)送和接收NDN數(shù)據(jù)包。圖5中區(qū)塊鏈節(jié)點身份可以為數(shù)據(jù)落后的非實時節(jié)點即待同步節(jié)點,或是擁有最新狀態(tài)數(shù)據(jù)的實時節(jié)點。

        圖5 NDN區(qū)塊鏈架構(gòu)Fig.5 NDN-blockchain architecture

        2.3 NDN區(qū)塊命名

        由于NDN以不同的通信范式使得網(wǎng)絡(luò)只關(guān)注“是什么”(數(shù)據(jù))而非“在哪里”(IP地址),因此在NDN中數(shù)據(jù)是第一位的,即以名稱標識的內(nèi)容為核心,所以名稱是NDN通信的關(guān)鍵,然而NDN的數(shù)據(jù)命名并不是普通意義的在眾多數(shù)據(jù)中標明出確定唯一的數(shù)據(jù),而是需要遵循預(yù)定的規(guī)則,因此將區(qū)塊鏈與NDN結(jié)合的關(guān)鍵在于如何定義命名規(guī)則。根據(jù)NDN類URL的層次化命名機制及不同的應(yīng)用場景,本文的命名規(guī)則分為最新狀態(tài)興趣請求和區(qū)塊同步興趣請求兩類,如圖6所示。

        圖6 NDN區(qū)塊鏈命名Fig.6 NDN-blockchain name

        兩類不同的命名方式均包含兩個部分,第一部分遵照NDN既定的命名原則,屬于全球可路由的內(nèi)部結(jié)構(gòu)名稱,是固定的,也即為NDN區(qū)塊鏈進行區(qū)塊同步時的專有名稱。第二部分為NDN的命名慣例,是由用戶自主定義的,但需遵從NDN的命名規(guī)范,如為避免錯誤該名稱內(nèi)容應(yīng)唯一地標識一個內(nèi)容數(shù)據(jù),同時為便于檢索應(yīng)具備人類可讀性。因此區(qū)塊號可以作為本部分內(nèi)容。其中圖6(a)用于節(jié)點的狀態(tài)請求,通過該請求,節(jié)點可以獲悉當前區(qū)塊鏈網(wǎng)絡(luò)的最新狀態(tài),從而可以以最新狀態(tài)為依據(jù)通過圖6(b)的名稱完成區(qū)塊同步,具體的同步過程在2.4節(jié)闡述。

        需說明指出的是兩類興趣請求名稱中所包含的區(qū)塊號含義是不同的。在最新狀態(tài)興趣請求中,區(qū)塊號是節(jié)點現(xiàn)有最高區(qū)塊的區(qū)塊號,實時區(qū)塊鏈節(jié)點利用自身的最高區(qū)塊號與該區(qū)塊號進行比較,即可知曉待同步節(jié)點需要哪些區(qū)塊,從而實現(xiàn)區(qū)塊增量更新。而在區(qū)塊同步興趣請求中,區(qū)塊號是節(jié)點所缺區(qū)塊的區(qū)塊號,實時節(jié)點響應(yīng)區(qū)塊同步興趣請求后傳回對應(yīng)的區(qū)塊數(shù)據(jù)。

        2.4 NDN區(qū)塊同步方法

        如圖7所示為NDN區(qū)塊鏈數(shù)據(jù)同步的邏輯結(jié)構(gòu)圖,其包含以下步驟:

        圖7 NDN區(qū)塊鏈數(shù)據(jù)同步流程Fig.7 NDN-blockchain data synchronization process

        區(qū)塊鏈待同步數(shù)據(jù)節(jié)點(新加入或宕機原因重新進入網(wǎng)絡(luò)的節(jié)點)發(fā)現(xiàn)自己已經(jīng)落后于實時區(qū)塊鏈節(jié)點,需要進行數(shù)據(jù)同步,其中由于宕機節(jié)點本地已存有部分數(shù)據(jù),所以只需增量同步。

        因為待同步節(jié)點并不知道當前區(qū)塊鏈的最新數(shù)據(jù)狀態(tài),所以待同步節(jié)點需首先向NDN網(wǎng)絡(luò)發(fā)起最新狀態(tài)興趣請求,該請求攜帶本節(jié)點最高區(qū)塊號,以向網(wǎng)絡(luò)通告自己當前的不完整狀態(tài),如“/eth/blocklateststate/1”。

        NDN任意網(wǎng)絡(luò)節(jié)點收到最新狀態(tài)興趣請求之后,在本地區(qū)塊數(shù)據(jù)中進行比較,如果本地最高區(qū)塊號大于收到的區(qū)塊號,則說明該節(jié)點數(shù)據(jù)狀態(tài)較新,并傳回最高區(qū)塊號信息,也即傳回最新區(qū)塊狀態(tài)信息。節(jié)點收到返回的最高區(qū)塊號信息后,以該狀態(tài)為依據(jù)向全網(wǎng)發(fā)起所缺區(qū)塊的區(qū)塊同步興趣請求,最終完成數(shù)據(jù)的同步更新。

        如果最高本地區(qū)塊號不大于收到的區(qū)塊號,則該任意NDN網(wǎng)絡(luò)節(jié)點非實時區(qū)塊鏈節(jié)點,從而變?yōu)榇焦?jié)點執(zhí)行上述同樣的區(qū)塊同步步驟,實現(xiàn)增量同步,而原先的最新狀態(tài)興趣請求會被其他實時區(qū)塊鏈節(jié)點滿足后執(zhí)行對應(yīng)的步驟。

        需指出的是,由于NDN網(wǎng)絡(luò)具有網(wǎng)內(nèi)存儲功能,即NDN中間節(jié)點會存儲同步過程中傳回的區(qū)塊數(shù)據(jù),同時當中間節(jié)點滿足區(qū)塊同步興趣請求時,可直接將中間節(jié)點緩存的區(qū)塊數(shù)據(jù)傳回,再無需傳輸區(qū)塊同步興趣請求至實時區(qū)塊鏈節(jié)點,從而優(yōu)化其他相似待同步節(jié)點(所缺區(qū)塊號相同的節(jié)點)的數(shù)據(jù)同步效率,進而有效解決前述問題中同一內(nèi)容數(shù)據(jù)請求獨立的問題。

        圖8所示為區(qū)塊增量同步的示例。Alice是新加入網(wǎng)絡(luò)的節(jié)點(只擁有創(chuàng)世區(qū)塊),Bob已經(jīng)斷開連接較長一段時間(擁有部分區(qū)塊),在當前狀態(tài)下,他們由于錯過了很多塊而不是實時網(wǎng)絡(luò)節(jié)點。Cherry和Dave擁有系統(tǒng)生成的全量區(qū)塊(最高區(qū)塊號為80)是實時網(wǎng)絡(luò)節(jié)點,因而其區(qū)塊鏈是一樣的。Alice和Bob將攜帶自身當前狀態(tài)的興趣請求發(fā)送到NDN網(wǎng)絡(luò)。Cherry和Dave收到狀態(tài)請求后返回最新狀態(tài)消息至NDN網(wǎng)絡(luò)。Alice和Bob接收到最新狀態(tài)消息后,以最新狀態(tài)為依據(jù)向NDN網(wǎng)絡(luò)發(fā)送所缺區(qū)塊的同步興趣請求。最終Alice和Bob通過NDN網(wǎng)絡(luò)的自適應(yīng)轉(zhuǎn)發(fā)及網(wǎng)內(nèi)存儲機制高效地實現(xiàn)全量區(qū)塊同步,完成最終同步后Alice和Bob的最長區(qū)塊鏈是一致的,其最高區(qū)塊號為80。

        圖8 NDN區(qū)塊鏈數(shù)據(jù)同步示例Fig.8 NDN-blockchain data synchronization example

        2.5 仿真分析

        為驗證上述所提方法的有效性,本文通過仿真模擬實驗,將NDN與傳統(tǒng)的TCP網(wǎng)絡(luò)進行對比分析,并額外地與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)進行了優(yōu)勢對比分析。

        所有的實驗都在本地計算機集群上進行,每臺計算機都裝配3.1 GHz的i5處理器,8 GB RAM。計算機運行的操作系統(tǒng)是Ubuntu 20.04。實驗開始前須在每臺計算機上成功安裝版本為0.7.1的ndn-cxx庫和版本為22.02的NFD。其中ndn-cxx是基于C++實現(xiàn)NDN平臺的庫,可用于編寫各種NDN應(yīng)用程序。而NDN轉(zhuǎn)發(fā)守護進程(NFD)是NDN體系結(jié)構(gòu)的核心組件,用作軟件路由器,并在網(wǎng)絡(luò)路由器和終端主機上運行,以便完成數(shù)據(jù)的通信交互。此外還需安裝以太坊區(qū)塊鏈平臺的客戶端Go-Ethereum(簡稱Geth)。所有的庫及客戶端都是從源代碼編譯而來的。完成上述準備工作后,根據(jù)前述設(shè)計思想對以太坊源碼改造,圖9為源碼改造成功后兩個區(qū)塊鏈節(jié)點NDN對等體連接成功的運行輸出顯示。

        圖9 區(qū)塊鏈節(jié)點NDN對等體連接日志輸出Fig.9 Blockchain node NDN peer link log output

        仿真實驗的實驗網(wǎng)絡(luò)由8個物理主機組成,分別構(gòu)成8個區(qū)塊鏈節(jié)點或8個區(qū)塊鏈NDN對等體。實驗過程中選取一個主機作為主節(jié)點或NDN關(guān)鍵對等體向其他任意一個主機發(fā)送轉(zhuǎn)賬交易,從而形成交易上鏈的模擬環(huán)境。每當交易產(chǎn)生后區(qū)塊鏈網(wǎng)絡(luò)便會根據(jù)圖2所示的流程對交易進行處理,在此期間會因數(shù)據(jù)同步而產(chǎn)生流量。通過開源工具BitMeter對某個節(jié)點的流量數(shù)據(jù)進行分析,得出如圖10所示的區(qū)塊鏈在不同網(wǎng)絡(luò)架構(gòu)下的網(wǎng)內(nèi)流量占比,也即網(wǎng)絡(luò)的帶寬占用情況。此外仿真結(jié)果還與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)[22]進行了對比。

        圖10 流量分析Fig.10 Traffic analysis

        從圖10中可以看出,在初始階段兩種不同網(wǎng)絡(luò)架構(gòu)下的帶寬利用率相近,但是隨著時間的推移,NDN區(qū)塊鏈表現(xiàn)出較好的效果,這主要是因為數(shù)據(jù)包的累積,使得NDN的網(wǎng)內(nèi)存儲及自適應(yīng)轉(zhuǎn)發(fā)開始發(fā)揮優(yōu)勢,特別是網(wǎng)內(nèi)存儲優(yōu)勢消除了在原有TCP架構(gòu)中存在的冗余流量,從而在一定程度上減少了區(qū)塊同步所消耗的時間。此外,與典型的BlockNDN方法相比較,本文所提出的方法一定程度上進一步優(yōu)化了網(wǎng)絡(luò)帶寬,具體分析其主要原因在于,本文在數(shù)據(jù)同步時,通過最新狀態(tài)興趣請求名稱(圖6(a))只需發(fā)送一個興趣請求包即可獲得當前的網(wǎng)絡(luò)狀態(tài),進而完成大容量數(shù)據(jù)的高效同步,而非BlockNDN因不知下一個區(qū)塊的信息需要不斷地發(fā)送興趣請求包,從而產(chǎn)生了部分冗余流量。

        圖11所示為兩種不同底層網(wǎng)絡(luò)架構(gòu)下,區(qū)塊鏈節(jié)點同步區(qū)塊的耗時情況。從圖中可以看出:初始時由于區(qū)塊數(shù)較少,而且區(qū)塊大多都是第一次被請求,因而NDN網(wǎng)內(nèi)存儲不能滿足區(qū)塊的同步請求,只能由實時區(qū)塊鏈節(jié)點滿足,所以在這一階段NDN并不能發(fā)揮出高效轉(zhuǎn)發(fā)的優(yōu)勢,這與圖10前段的結(jié)果類似。但是隨著時間的增長以及交易的累積使得區(qū)塊數(shù)量越來越多,除新生成的區(qū)塊外,不再存在區(qū)塊被第一次請求的情形,所以NDN網(wǎng)內(nèi)存儲可以滿足后續(xù)的區(qū)塊請求,典型BlockNDN與其相似的對比結(jié)果也可驗證該點,因為其都借助了NDN的轉(zhuǎn)發(fā)優(yōu)勢,該優(yōu)勢不僅可以消除部分冗余流量,還極大地縮短了數(shù)據(jù)傳輸時延,因此在圖中后半段,二者開始出現(xiàn)較為明顯的差異,而且隨著圖中折線的趨勢,可以預(yù)測出隨著后續(xù)時間的持續(xù)推進,也即隨著區(qū)塊數(shù)量的不斷增長,“NDN+區(qū)塊鏈”結(jié)構(gòu)相較于TCP架構(gòu)將呈現(xiàn)出更加明顯的數(shù)據(jù)傳輸優(yōu)勢。

        圖11 區(qū)塊鏈在不同架構(gòu)下區(qū)塊同步時的時間消耗Fig.11 Time consumption of blockchains when block synchronization under different architectures

        3 結(jié)論與展望

        本文考慮到區(qū)塊鏈底層TCP網(wǎng)絡(luò)架構(gòu)帶來的缺陷,從本質(zhì)出發(fā)提出了“NDN+區(qū)塊鏈”結(jié)構(gòu),以期實現(xiàn)區(qū)塊鏈底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施從TCP架構(gòu)到NDN架構(gòu)的轉(zhuǎn)變,用以有效解決區(qū)塊鏈數(shù)據(jù)同步帶來的高時延問題,從而消除區(qū)塊鏈在各領(lǐng)域發(fā)展所面臨的節(jié)點可擴展性這個技術(shù)挑戰(zhàn)。

        該結(jié)構(gòu)的設(shè)計思想在于NDN作為下一代新型網(wǎng)絡(luò)架構(gòu)最具希望的候選者,其在設(shè)計之初就考慮到了TCP架構(gòu)的數(shù)據(jù)傳輸問題,自然從理論角度分析,NDN的引入可以優(yōu)化區(qū)塊鏈底層網(wǎng)絡(luò)架構(gòu)導(dǎo)致的數(shù)據(jù)傳輸效率問題。此外,NDN的關(guān)注點在內(nèi)容本身而非類似于TCP架構(gòu)的IP地址,這與區(qū)塊鏈的技術(shù)表現(xiàn)相符合,即隱藏交易各方的信息,但卻公開透明交易的內(nèi)容,因而再一次表明NDN可以為區(qū)塊鏈技術(shù)提供一定的通信支持。通過仿真實驗的分析,表明“NDN+區(qū)塊鏈”結(jié)構(gòu)確可以替代TCP而表現(xiàn)出優(yōu)異的性能。此外本文所提出的結(jié)構(gòu),創(chuàng)新性地設(shè)計了最新狀態(tài)信息的請求,因而與典型的區(qū)塊鏈NDN網(wǎng)絡(luò)傳輸方法(BlockNDN)相比,表現(xiàn)出較好的帶寬優(yōu)化。

        在未來的工作中,還需進一步將NDN與區(qū)塊鏈技術(shù)進行融合,這包括區(qū)塊及交易的廣播都由NDN進行支持,從而極大優(yōu)化區(qū)塊鏈的吞吐量性能及交易確認時間。而二者融合的關(guān)鍵問題在于如何有效解決區(qū)塊泛洪式的廣播機制和NDN訂閱式的機制之間的融合。

        猜你喜歡
        架構(gòu)區(qū)塊節(jié)點
        基于FPGA的RNN硬件加速架構(gòu)
        CM節(jié)點控制在船舶上的應(yīng)用
        Analysis of the characteristics of electronic equipment usage distance for common users
        功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實踐
        汽車工程(2021年12期)2021-03-08 02:34:30
        基于AutoCAD的門窗節(jié)點圖快速構(gòu)建
        區(qū)塊鏈:一個改變未來的幽靈
        科學(xué)(2020年5期)2020-11-26 08:19:12
        區(qū)塊鏈:主要角色和衍生應(yīng)用
        科學(xué)(2020年6期)2020-02-06 08:59:56
        區(qū)塊鏈+媒體業(yè)的N種可能
        傳媒評論(2018年4期)2018-06-27 08:20:12
        讀懂區(qū)塊鏈
        LSN DCI EVPN VxLAN組網(wǎng)架構(gòu)研究及實現(xiàn)
        国产精品自在在线午夜出白浆| 亚洲天堂av福利在线| 久久久亚洲熟妇熟女av| 一区二区三区亚洲免费| 精品福利一区二区三区| 亚洲av色图一区二区三区| 国产一品二品三品精品在线| 欧美丰满熟妇xxxx性| 日本www一道久久久免费榴莲| 久久综合色鬼| 手机看片福利日韩国产| 久久精品亚洲熟女九色| 国产色第一区不卡高清| 射精区-区区三区| 国产乱人激情h在线观看| 欧美日韩亚洲精品瑜伽裤 | 日本免费一区二区三区在线播放| 国产免费艾彩sm调教视频| 东北妇女xx做爰视频| 欧美日韩一卡2卡三卡4卡 乱码欧美孕交 | 中文字幕一区二区三在线| 一区二区三区在线乱码| 后入内射国产一区二区| 久激情内射婷内射蜜桃| 在线不卡av天堂| 人妻少妇中文字幕久久69堂| 中文字幕精品久久一区二区三区 | 国产极品视觉盛宴| 亚洲精品www久久久| 99在线精品国产不卡在线观看| 91亚洲欧洲日产国码精品| 中文字幕二区三区在线| 日本加勒比精品一区二区视频| 在线视频观看国产色网| 大胸少妇午夜三级| 福利网址在线观看| 亚洲a∨好看av高清在线观看| 天堂网日韩av在线播放一区 | 被黑人猛烈30分钟视频| 永久免费观看的毛片手机视频| 91精品全国免费观看青青|