導航:首頁 > 編程大全 > 對等網路數據一致性

對等網路數據一致性

發布時間:2024-10-27 18:08:38

『壹』 有關P2P技術問題

1 P2P技術原理

什麼是對等網路(P2P)技術?P2P技術屬於覆蓋層網路(Overlay Network)的范疇,是相對於客戶機/伺服器(C/S)模式來說的一種網路信息交換方式。在C/S模式中,數據的分發採用專門的伺服器,多個客戶端都從此伺服器獲取數據。這種模式的優點是:數據的一致性容易控制,系統也容易管理。但是此種模式的缺點是:因為伺服器的個數只有一個(即便有多個也非常有限),系統容易出現單一失效點;單一伺服器面對眾多的客戶端,由於CPU能力、內存大小、網路帶寬的限制,可同時服務的客戶端非常有限,可擴展性差。P2P技術正是為了解決這些問題而提出來的一種對等網路結構。在P2P網路中,每個節點既可以從其他節點得到服務,也可以向其他節點提供服務。這樣,龐大的終端資源被利用起來,一舉解決了C/S模式中的兩個弊端。

P2P網路有3種比較流行的組織結構,被應用在不同的P2P應用中。

(1)DHT結構

分布式哈希表(DHT)[1]是一種功能強大的工具,它的提出引起了學術界一股研究DHT的熱潮。雖然DHT具有各種各樣的實現方式,但是具有共同的特徵,即都是一個環行拓撲結構,在這個結構里每個節點具有一個唯一的節點標識(ID),節點ID是一個128位的哈希值。每個節點都在路由表裡保存了其他前驅、後繼節點的ID。如圖1(a)所示。通過這些路由信息,可以方便地找到其他節點。這種結構多用於文件共享和作為底層結構用於流媒體傳輸[2]。

(2)樹形結構

P2P網路樹形結構如圖1(b)所示。在這種結構中,所有的節點都被組織在一棵樹中,樹根只有子節點,樹葉只有父節點,其他節點既有子節點也有父節點。信息的流向沿著樹枝流動。最初的樹形結構多用於P2P流媒體直播[3-4]。

(3)網狀結構

網狀結構如圖1(c)所示,又叫無結構。顧名思義,這種結構中,所有的節點無規則地連在一起,沒有穩定的關系,沒有父子關系。網狀結構[5]為P2P提供了最大的容忍性、動態適應性,在流媒體直播和點播應用中取得了極大的成功。當網路變得很大時,常常會引入超級節點的概念,超級節點可以和任何一種以上結構結合起來組成新的結構,如KaZaA[6]。

2 P2P技術應用現狀

由於能夠極大緩解傳統架構中伺服器端的壓力過大、單一失效點等問題,又能充分利用終端的豐富資源,所以P2P技術被廣泛應用於計算機網路的各個應用領域,如分布式科學計算、文件共享、流媒體直播與點播、語音通信及在線游戲支撐平台等方面。

(1)分布式科學計算

我們知道,許多計算機的CPU資源並不是時刻保持峰值運轉的,甚至很多時候計算機處於「空閑」狀態,比如使用者暫時離開等情況。而P2P技術可以使得眾多終端的CPU資源聯合起來,服務於一個共同的計算。這種計算一般是計算量巨大、數據極多、耗時很長的科學計算。在每次計算過程中,任務(包括邏輯與數據等)被劃分成多個片,被分配到參與科學計算的P2P節點機器上。在不影響原有計算機使用的前提下,人們利用分散的CPU資源完成計算任務,並將結果返回給一個或多個伺服器,將眾多結果進行整合,以得到最終結果。

世界最著名的P2P分布式科學計算系統非「SETI@home」項目莫屬。SETI@home項目(簡稱為S@H或SETI),由美國加利福尼亞大學伯克利分校在1999年發起,是至今最成功的分布式計算項目。SETI@home通過分析從射電望遠鏡傳來的數據來搜尋地外文明,這在不少科幻迷甚至是很多普通大眾眼裡都是一個「很酷」的應用。SETI的早期版本截至2005年已經吸引了543萬用戶,分析了大量積壓數據。正如宇宙的浩瀚一般,需要計算的數據(即存在宇宙空間的無數無線電信號)也是海量的。可以說,這幾百萬台終端組成了一個目前最快的高性能計算機都望塵莫及的「超級計算機」。

(2)文件共享

要問一百個網友目前中國最流行的文件下載方式,恐怕99個都會回答是「BT」。「BT」是BitTorrent[7]的簡稱,是一種依賴P2P方式將文件在大量互聯網用戶之間進行共享與傳輸的協議,對應的客戶端軟體有BitTorrent、BitComet和BitSpirit等。由於其實現簡單、使用方便,在中國用戶之間被廣泛使用。BitTorrent中的節點在共享一個文件時,首先將文件分片並將文件和分片信息保存在一個流(Torrent)類型文件中,這種節點被形象地稱作「種子」節點。其他用戶在下載該文件時根據Torrent文件的信息,將文件的部分分片下載下來,然後在其他下載該文件的節點之間共享自己已經下載的分片,互通有無,從而實現文件的快速分發。由於每個節點在下載文件的同時也在為其他用戶上傳該文件的分片,所以整體來看,不會隨著用戶數的增加而降低下載速度,反而下載的人越多,速度越快。

BitTorrent是一種無結構的網路協議。除了BitTorrent之外,還有不少著名的無結構化的P2P文件共享協議,典型的有Gnutella[8]和KaZaA[6]。

Gnutella協議是一種最典型的完全分布式、無等級結構的P2P網路模型。網路中的節點隨機連接若干個其他節點,稱之為「鄰居」。這種結構能夠很好地適應P2P網路中節點頻繁加入與離開的動態特性,因為任意一個節點都可以被新加入的節點作為「鄰居」而連接,任意一個「鄰居」也可以隨意地離開網路。同時,這種加入節點和離開節點的選擇是節點間的獨立行為,隨機分布於網路之中。所以說Gnutella的網路具有健壯性、實時性、可靠性、負載平衡等優勢。

在Gnutella網路中存在以下問題:

冗餘消息多,對帶寬的消耗存在一定的浪費。Gnutella網路協議採用泛洪式(Flooding)消息傳播機制,這種消息傳播機制產生了呈指數級增長的冗餘消息。據統計,P2P軟體白天佔Internet上運行帶寬的40%~70%,晚上有時能達到80%。
搜索效率低,可擴展性差。Gnutella網路的搜索協議將所有資源與節點統一對待,沒有考慮節點的性能差異,也沒有利用查詢成功的歷史經驗,使得搜索效率低下。

KaZaA協議中節點大體上也是無結構連接的。但是在KaZaA協議中存在一種「超級節點」。這種「超級節點」其實是來源於各個普通的客戶端節點,但它們一般具有計算能力強、接入帶寬大、在線時間穩定等特點。在KaZaA協議中,超級節點承擔著部分伺服器的任務,如管理部分普通節點,負責搜索消息的轉發等。每一個節點上線後會尋找一個超級節點掛靠,並和原先掛靠在該超級節點下的其他普通節點隨機相連,組成一個小的無結構網路。普通節點的共享文件索引匯報給所掛靠的超級節點。因而,KaZaA網路大體上可以看作是兩層的無結構網路,上層是超級節點組成的無結構網路;下層是普通節點組成的多個無結構網路,按所掛靠的超級節點分成多個簇。當普通節點發起文件搜索請求時,將請求消息發給所掛靠的超級節點,超級節點從自己存儲的共享文件索引信息中查找區域內符合條件的文件,同時將搜索請求轉發給若干個其他超級節點,由它們返回其區域內搜索結果。如果需要,這個轉發過程可以執行多步以獲得更大范圍內的搜索結果。這樣的混合式結構對異構的終端節點「分而治之」,可以充分利用一些能力較強的終端節點來擔任「小」伺服器的角色,可謂是「人盡其才,物盡其用」。

除了這些無結構的P2P文件共享協議之外,幾乎所有的DHT網路都可以並已經用來實現文件共享的應用,如Chord、Pastry、KAD、CAN等應用。

(3)流媒體直播

曾經人們以為P2P做文件共享最合適,但現在大家發現P2P模式是如此適合於流媒體直播,以至於研究熱點在很短的時間內迅速轉移到P2P的流媒體上來。中國最早的P2P流媒體直播軟體應該算香港科技大學計算機系研究的Coolstreaming[5]、華中科技大學集群與網格計算湖北省實驗室研究的AnySee[9]以及清華大學的Gridmedia等系統。

Coolstreaming是一款基於網狀無結構網路拓撲的流媒體直播軟體,中文名叫做「酷流」。在Coolstreaming中,每個節點通過登錄伺服器(BS)進入網路,並得到一些鄰居列表。每個節點和鄰居之間共享媒體數據。Coolstreaming中節點共享媒體數據是基於一種稱作「數據驅動」的機制。首先,對於節點緩沖區內所擁有的數據,使用一種「緩沖映射表」(Buffer Map)來進行標記:對於每一秒的媒體內容,如果節點已經從節目源或鄰居處獲取,則標記該秒數據為「1」,否則標記為「0」。這樣,一個80秒長度的緩沖區就對應一個80位長度的緩沖映射表。其次,節點之間以「心跳」(Heartbeat)方式定期交換各自的緩沖映射表,通過比對得到自己沒有而鄰居擁有的數據位,然後根據數據調度演算法,選擇合適的鄰居,請求得到相應的數據。Coolstreaming採取全網狀結構組織網路中的節點,每個節點連接20個左右的鄰居,在定期交換緩沖映射表的同時,還要交換自己的鄰居列表。這樣,在一個鄰居離開時,可以從它最近提供的鄰居列表中選擇一個連接數沒有達到上限的鄰居作為「替補」鄰居進行連接。最早期的Coolstreaming是採取隨機選取鄰居的策略,即從BS上隨機返回一些當前在線的節點列表,然後隨機從中選擇一些節點進行連接,在選擇「替補」鄰居時也是隨機的。這樣做同時又可以達到一定程度的負載平衡效果,因為每個節點連接的鄰居數基本是均勻的。但是這樣做的缺點也是明顯的,兩個距離很遠、連接很差的節點也可能被調度成為鄰居,大大影響的系統的服務質量。

華中科技大學集群與網格計算湖北省重點實驗室是中國最早研究P2P流媒體直播的小組之一,它所研發的AnySee軟體期望能夠使得用戶在網上任何時候任何地點都能觀看多媒體直播節目。

AnySee的第一個版本基於樹狀結構:節目源是一個多播樹的根節點,之後的節點被調度為其「兒子」或子樹。每個節點向其父節點索要數據,並將數據提供給多個子節點。這樣的結構可以使得節點快速加入到網路中,並且可以根據IP鄰近原則構建起一棵IP多播樹,使得節點加入位置都是和自己IP鄰近的節點,從而優化服務質量。之後AnySee推出第二個版本,結合了原有的樹狀結構和流行的網狀結構,使得「控制數據走樹,媒體數據走網」,既能幫助節點快速定位到加入點,又能實現一定程度的負載均衡,並緩解了原有純樹狀結構中底層節點和頂層節點之間播放時差較大的問題。最近的AnySee版本已經取消了樹的結構,演化成了優化的網狀結構(如圖2所示),即每個節點維護一定數量的鄰居成員,並從中選出最合適的「夥伴」節點與之交換數據。夥伴的數量既有上限又有下限,在不滿足下限時,節點會不斷尋找新的合適節點加入夥伴列表;在達到下限時,節點停止主動尋找夥伴的過程,但可以接受其他節點將其加入夥伴列表的請求;在達到上限時,節點不再和新的節點建立夥伴關系。

除了學術界對P2P流媒體直播的研究外,中國還涌現了很多成功的P2P流媒體直播商業產品,如PPLive、PPStream、沸點和TVAnts等,其中以PPLive最為有名。PPLive目前擁有數百個頻道,在2006年「超級女聲」決賽期間,頻道觀看人數達到十萬人,可以說是把P2P發揮到了極限。此外,國外也有不少對P2P流媒體直播的研究,如SplitStream[10]等。

(4)流媒體點播

由於觀看直播節目時用戶不能選擇觀看指定片段,所以在人們熱烈研究P2P流媒體直播時,已有人開始將目光轉向P2P流媒體點播服務。目前成功推出P2P流媒體點播的機構還不多,典型的有GridCast[11]系統、PPStream點播系統。GridCast也是一款由華中科技大學集群與網格計算湖北省重點實驗室於2005年12月份成功研發並投入使用的對等視頻點播系統,具有支持多人共享點播片段、跟蹤(Tracker)伺服器用戶引導、環狀結構內容組織等特點。由於一個點播頻道的人數往往不會太多,所以在用戶進行視頻錄放(VCR)操作時(即前後拖動播放點、暫停/繼續播放等操作),能否快速將用戶定位到觀看該點節目的其他用戶處就成了P2P點播技術的關鍵。為了實現快速定位,GridCast中採取了一種同心圓環的媒體內容組織結構。在每一個節目頻道里,媒體內容按指數遞增的區間進行劃分,例如一個一個半小時的電影節目,可劃分成[0, 5]、(5, 15]、(15, 35]、(35, 75]和(75, END=90]幾段,其單位為分鍾。每個節點記錄幾個正在觀看各個段之間內容的節點。這樣,在和AnySee類似的網狀結構中,可以定期交換這種分段記錄,從而,在某個用戶拖動觀看點時,可以快速定位到相應段的記錄節點處,並從這些節點當時所觀看的區間內得到大量備用記錄以請求該區間媒體數據。此外,GridCast還根據用戶習慣對數據調度策略進行優化。

(5)IP層語音通信

IP層語音通信(VoIP)是一種全新的網路電話通信業務,它和傳統的PSTN電話業務相比有著擴展性好、部署方便、價格低廉等明顯的優點。在全球范圍內的VoIP應用中,由於通信各方可能處於不同的網路狀況下,所以採取少數幾個伺服器來進行話音包中轉不僅存在壓力過大的問題,還可能無法為指定通信雙方提供滿意的通話質量保證。所以採取P2P技術動態自適應地根據通信雙方網路進行鏈路控制與消息轉發是可行的解決方案。

目前風靡全球的Skype[12]即是一款典型的P2P VoIP軟體。Skype由於能夠提供清晰的語音質量和免費的服務,使用起來又方便快捷,所以吸引了全球數千萬的用戶,每天在線用戶達500萬人,並且注冊用戶數每天增加15萬。基本上,Skype採取類似KaZaA的拓撲結構,在網路中選取一些超級節點。在通信雙方直連效果不好時,一些合適的超級節點則擔當起其中轉節點的角色,為通信雙方創建中轉連接,並轉發相應的語音通信包。

(6)網路游戲平台

大型網路在線游戲和網路對戰游戲是不少「網蟲」的至愛。但由於伺服器能力有限,大型網路在線游戲往往需要限制場景人數或者不斷增加伺服器,而網路對戰游戲也必須局限在區域網內進行或者依賴獨立的伺服器端程序及機器實現Internet上的電子競技。目前,已有研究人員將P2P技術引入網路游戲和網路游戲支撐平台中。

目前較為成功的P2P游戲平台是華中科技大學集群與網格計算湖北省重點實驗室推出的PKTown[13]系統。PKTown系統是一個支持多種網路對戰游戲的P2P平台。P2P網路對戰游戲平台的難點在於將嚴格延時約束的節點聚集在一起,這由對戰游戲本身要求所決定:延時是影響對戰游戲用戶體驗的關鍵因素。在眾多在線用戶中,如何將新加入用戶調度到周圍都是延時鄰近的環境中去呢?PKTown也是採取GridCast中出現過的指數增長的同心圓環方式,很好地解決了這個問題。

PKTown不需要改變游戲本身的代碼,而是將用戶和Internet鄰居組建成一個虛擬區域網,將游戲發出的通信包截獲後負載上虛擬區域網的地址,轉發出去,游戲進程接收到之後認為是來自同一區域網的游戲包,則可以正常進行游戲。目前PKTown支持魔獸爭霸、星際爭霸和反恐精英幾款游戲,已經在高校范圍內進行公測,並成功舉辦華中科技大學第三屆Race War游戲大賽,用戶反應良好。

3 結束語

自P2P技術從1999年出現之後,現在已經發展繁榮起來。前文中提到的很多技術都已經趨近成熟,如拓撲構建和內容分發等相關技術。由於P2P架構靈活,適用面廣闊,所以將P2P應用到新領域的現象層出不窮,P2P的軟體產品也如雨後春筍一般爆炸性增長。

通過本文的描述可以看出,P2P蹬基本原理是容易實現的,人們的研究方向也由基礎架構的構建和維護及優化演算法等桎梏中擺脫出來,開始深入到P2P技術的根本性問題中去。最新的研究成果表明,不少研究人員已經開始將重心轉入到覆蓋層網路的節點延時聚集研究、覆蓋網之間(Inter-Overlay)優化研究、P2P支撐平台研究以及P2P安全方面的研究等方面。相信隨著對P2P技術研究的不斷深入,人們能夠對P2P計算有一個更深入的認識並解決目前P2P領域中大部分科學問題。可以預見,P2P所帶來的技術創新和應用創新還將繼續。

『貳』 網路模式是什麼意思

網路模式通常是指網路中各個節點之間相互連接的方式和模型。在計算機網路中,網路模式可以是客戶端-伺服器模式、對等網路模式、星型網路模式等。每種網路模式都有其自身的優缺點和適用場景。例如,客戶端-伺服器模式適用於需要集中控制和管理的場景,而對等網路模式則適用於分散式的、去中心化的場景。
網路模式還可以指網路通信協議中規定的數據傳輸模式。例如,在TCP/IP協議中,數據傳輸模式可以是面向連接的或無連接的。面向連接的傳輸模式意味著傳輸數據之前必須要建立一個連接,確保數據的可靠性和一致性,而無連接傳輸則不需要建立連接,數據也不保證完全可靠。不同的傳輸模式適用於不同的應用場景。
最近幾年,由於雲計算和物聯網的興起,新的網路模式不斷涌現。例如,邊緣計算和霧計算模式將計算和存儲資源盡可能地靠近終端用戶,在更大程度上滿足了用戶對實時性和安全性的需求;區塊鏈模式則採用去中心化的方式保證數據的安全性和透明度。隨著技術的不斷進步和人們對網路的需求越來越高,網路模式也將不斷更新和演進。

『叄』 什麼是分布式系統

分布式系統,是音視頻領域的一種顯示控制系統,通過它可以實現系統內內任意音視頻信號的自由切容換,大屏顯示以及坐席控制等功能。分布式系統由若干個獨立的功能節點組成,並且依靠網路連接。系統中所有節點都是對等的,並且可以在空間上隨意分布,可以是不同的機房,甚至是不同的城市,通過遠距離的數據交互來實現整體系統的功能。很高興能為你提供幫助

閱讀全文

與對等網路數據一致性相關的資料

熱點內容
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114
文件夾的相片如何列印出來 瀏覽:84

友情鏈接