麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 網絡協議 > 正文

P2P網絡應用層多播樹的建立及維護的解析

2020-02-18 18:56:27
字體:
來源:轉載
供稿:網友
這篇文章主要為大家介紹了對等網絡P2P網絡應用層多播樹是如何建立的,以及建立后但如何維護?本文講述了P2P網絡的概念,文件時怎么分發的到怎么搜索信息,需要的朋友可以參考下
 
 

  一、什么是對等網絡 P2P

  P2P一般指對等網絡 對等計算(Peer to Peer,簡稱p2p)可以簡單的定義成通過直接交換來共享計算機資源和服務,而對等計算模型應用層形成的網絡通常稱為對等網絡。在P2P網絡環境中,成千上萬臺彼此連接的計算機都處于對等的地位,整個網絡一般來說不依賴專用的集中服務器。網絡中的每一臺計算機既能充當網絡服務的請求者,又對其它計算機的請求作出響應,提供資源和服務。通常這些資源和服務包括:信息的共享和交換、計算資源(如CPU的共享)、存儲共享(如緩存和磁盤空間的使用)等。

  這個定義有點抽象,下面就來簡單地解釋一下。粗略地講,應用程序可以設計成采用客戶機/服務器體系結構或對等體系結構(P2P)。我們日常生活中的許多應用程序,包括web、電子郵件和DNS,都是使用客戶機/服務器體系結構;而文件分發,例如大家熟悉的迅雷下載等,就是使用P2P文件分發的技術,使用的就是對待體系結構(P2P)。

  對于客戶機/服務器體系結構,它要求總是打開的基礎設施服務器。相反,使用P2P體系結構,對總是打開的基礎設施服務器有最小的(或者沒有)依賴,任意間斷連接的主機對都稱為對等方,各個對等方直接通信。對等方并不為服務提供商所有,而是為用戶控制的設備。

  二、P2P文件分發

  下面通過一個具體的應用來研究P2P,這個應用是從單一服務器向大量主機(對等方)分發大文件。

  在客戶機/服務器文件分發中,服務器必須向每個客戶機發送該文件的一個拷貝,這同時給服務器造成了極大的負擔,并且消耗了大量的服務器帶寬。在P2P文件分發中,每個對等方(即對應客戶機/服務器體系結構中的客戶機)都能夠重新分發其所有的該文件的任何部分,從而協助服務器進行分發。

  1、客戶機/服務器體系結構 VS P2P體系結構

  首先我們假設文件的長度為F,服務器上傳的速率為U,下載速率為D,而客戶機有N臺,每臺的上傳速率為ui(i=1、2...N),每臺的下載速率為di(i=1、2...N)。

  由于每一次文件的分發都涉及服務器上傳文件和客戶機(或對等方)下載文件。在下面的討論中,我們假設F、U、D、ui、di均不變,而N,即對等方數量卻是可變的。

  首先,對于客戶機/服務器體系結構,服務器上傳N個文件(因為有N個客戶,每個客戶一個文件的副本)所需要的時間至少為NF/U。而下載速率最小(用dmin表示)的對等方不可能在F/dmin秒內獲得該 文件的所有F比特,所以使用客戶機/服務器體系結構分發文件所需的時間為

  Dcs = max{NF/U,F/dmin}

  即所需要的最小時間由下載文件最長時間和上傳文件中的較大者決定,其實這也是很自然的事,因為分發時間,要不就是服務器上傳這N個文件用時多,要不就是對等方下載這N個文件用時多。然而,我們可以看到NF/U會隨著N的增大而線性增大,而F/dmin卻是個常值。也就是說當N達到一定的程度時,它必然大于F/dmin,也就變成是Dcs的值,即Dcs = NF/U。

  然后,對于P2P體系結構,其中每個對等方都能夠幫助服務器來分發文件。也就是說,當一個對等方接收到文件數據時,它可以利用自己的上載能力重新將數據分發給其他對等方。

  在分發的開始,只有服務器擁有文件。為了使對等方得到該文件,服務器必須經其接入鏈路至少發送一次該文件。因此最小分發時間至少是F/U。因為在P2P體系結構中,服務器發送一次文件就可能不用再次發送了,因為其他對等方可以從擁有該文件的對等方中獲得。

  與客戶機/服務器體系結構相同,下載速率最小的對等方不可能在F/dmin秒之內獲得文件F的所有比特。因此最小的分發時間也可能是F/dmin。

  最后,系統的總上載能力等于服務器的上載速率加上每個對等方的上載速率,即Utotal=U+u1+u2...+uN。系統必須向N個對等方的都交付(上載)F比特,因此總的交付為NF比特。所以最小分發時間至少是NF/(U+u1+u2...+uN)。

  綜上所述,使用P2P體系結構分發文件所需要的時間為

  Dp2p = max{F/U, F/dmin, NF/(U+u1+u2...+uN)}

  即最小分發時間由服務器上傳的時間,對等方下載的最長時間和所有對待方上傳下載的時間來決定。同樣,因為F/U, F/dmin都是常數,所以當N達到一定值后,NF/(U+u1+u2...+uN)就會大于前面的兩者,成為分發文件所需要的時間,即Dp2p = NF/(U+u1+u2...+uN)。從表達式中,我們可以看到,當N的值增大時,由于對等方的數量也能加了,所以U+u1+u2...+uN的值也會隨之增大,所以函數并不像客戶機/服務器體系結構中函數那樣,分發時間會線性地增加,它的曲線與對數函數(如log2N)的曲線相似。所以當N的值較大時,P2P體系結構分發文件所需要時間遠比客戶機/服務器體系結構的小。

  2、BitTorrent——用于文件分發的流行P2P協議

  前面用數學的方法說明了基于客戶機/服務器體系結構和基于P2P體系結構的文件分發所需的時間的差別,下面來說一下,這個P2P文件分發是如何實現的。下面以使用BitTorrent協議為例子說明。

  在BitTorrent中,把參與一個特定文件分發的所有對等方的集合稱為一個洪流。在一個洪流中,對等方彼此下載等長度的文件塊,塊長度通常為256KB。當一個對等方開始加入一個洪流時,它沒有文件塊。但是隨著時間的推移,它將累積到越來越多的文件塊。當它下載文件塊時,也為其他對等方上載多個文件塊。對待方一旦獲得了整個文件,它可以離開洪流,或留在洪流中,為其他對等方上載文件塊。同時,任何一個對等方可以在任何時候離開洪流,以后也可以重新加入洪流。

  這里有二個問題,1)我們的主機或設備加入一個洪流中時如何知道它有哪些對等方,即它如何知道它要向哪些主機請求所需要的文件。2)我們在下載文件時,如果確定我們所需要的文件塊是哪一塊,換句話說就是,文件有很多塊組成,而我們下載時并不按文件原有的順序下載,那么我如何確定我還需要下載哪些塊來讓這個文件變得完整。

  首先回答第一個問題,每個洪流具有一個基礎設施節點,稱為追蹤器。當一個對等方加入洪流時,它向追蹤器注冊,并周期性地通知追蹤器它仍在洪流中。一個特定的洪流可能在任意時刻擁有數以百計或千計的對等方。當一個新的對等方A加入洪流時,追蹤器隨機地從參與對等方集合中選擇一些對等方,并將這些對等方的IP地址發送給A,A持有對等方的這張列表,試圖與該列表上的對等方創建并行的TCP連接,與A成功地創建TCP連接的對等方稱為“鄰近對等方”。隨著時間的推移,其中的一些對待方可能離開,而另一些對等方可能試圖與A創建TCP連接,就像A之前所做的那樣。這樣我們就可以知道我們要下載的文件所在洪流中有哪些的對等方。

  再來回答第二個問題,在任何時刻,每個對等方都具有某文件塊的子集,且不同的對等方具有不同的文件塊子集。A周期性詢問每個鄰近對等方所具有的塊列表并獲得其鄰居的塊列表,因此A將對它當前還沒有的塊發出請求。同時由于在洪流中的每一個對等方既下載又上傳,所以A還應決定它請求的塊應該發送給它的哪些鄰居。通常在請求塊的過程中,使用一種叫最稀罕優先的技術,即根據A沒有的塊從它的鄰居中確定最稀罕的塊(即那些在它的鄰居中拷貝數量最少的那些塊),并優先請求這些最稀罕的塊。這樣做的目的也是很明顯,就是讓每個塊在洪流中的拷貝數量大致相等,這樣同時也能提高總的下載速率,因為下載不會卡在某個文件塊的下載中。

  三、P2P區域搜索信息

  P2P的另一個重要應用就是信息索引,即信息到主機位置的映射。

  為了說明什么是索引,舉個例子說明吧,P2P文件共享系統中有一個索引,它動態地跟蹤這些對等方可供共享的文件。該索引維護了一個記錄,記錄將有關拷貝的信息映射到具有拷貝對等方的IP地址。當一個對等方加入系統時,它通知系統它所擁有的文件索引。當一個用戶希望獲得一個文件時,他搜索索引以定位該文件的拷貝的位置。

  注:P2P文件分發與P2P文件共享還是有一定的區別的,P2P的文件共享有可能發生在不同的時段,例如,現在收到的文件,1小時后才需上傳。P2P的文件共享也有可能發生在不同的文件,例如,需要下載A文件,卻為其他用戶提供B文件。而P2P的文件分發更多是針對單一文件,在下載的同一時間為其他用戶提供上傳服務,這是一個協同處理的過程。

  1、集中式索引

  由一臺大型服務器(或服務器場)來提供索引服務。當用戶啟動P2P文件共享應用程序時,該應用程序將它的IP地址以及可供共享的文件名稱通知索引服務器。索引服務器收集可共享的對象,建立集中式的動態數據庫(對象名稱到IP地址的映射)。

  它有如下的缺點:

  1、單點故障

  2、性能瓶頸

  3、可靠性差

  這種索引方式的特點是:文件傳輸是分散的(P2P的),但定位內容的過程是高度集中的(客戶機/服務器)。

  2、查詢洪泛

  查詢洪泛采用完全分布式的方法,索引全面地分布在對等方的區域中,對等方形成了一個抽象的邏輯網絡,稱為覆蓋網絡。當A要定位索引(例如abc)時,它向它的所有鄰居發送一條查詢報文(包含關鍵字abc)。A的所有鄰居向它們的所有鄰居轉發該報文,這些鄰居又接著向它們的所有鄰居轉發該報文等。如果其中一個對等主與索引(abc)配置,則返回一個查詢命中報文。

  但是這種簡單的方法卻有一個致命的缺點,就是它會產生大量的流量。

  一個解決辦法就是采用范圍受限查詢洪泛。設置一個計數值,對等方向其鄰居轉發請求之前就將對等方的計數字段減1,當一個對等方的計數字段為0時,停止查詢。

  3、層次覆蓋

  該方法結合了集中式索引和查詢洪泛的優點,與查詢洪泛相似,層次覆蓋設計并不使用專用的服務器來跟蹤和索引文件。不同的是在層次覆蓋中并非所有的對等方都是平等的。

  它的示意圖如下:

P2P,網絡應用層,多播樹

  超級對等方(組長對等方)維護著一個索引,該索引包括了其子對等方(普通對待方)正在共享的所有文件的標識符、有關文件的元數據和保持這些文件的子對等方的IP地址。而超級對等方通常也只是一個普通的對等方。超級對等方之間相互建立TCP連接,從而形成一個覆蓋網絡,超級對等方可以向其相信超級對等方轉發查詢,但是僅在超級對等方使用范圍受限查詢洪泛。

  當某對等方進行索引時,它向其超級對等方發送帶有關鍵詞的查詢。超級對等方則用其具有相關文件的子對等方的IP地址進行響應,該超級對等方還可能向一個或多個相鄰的超級對等方轉發該查詢。如果某相鄰對等方收到了這樣一個請求,它也會用具有匹配文件的子對等方的IP地址進行響應。

  與受限查詢洪泛設計相比,層次覆蓋設計允許數量多得多的對等方檢查匹配,而不會產生過量的查詢流量。

  通過這兩種P2P常用應用的介紹,它的定義,結構,搜索方式都有大略的講解了,大家對P2P應該有一定的認識了吧,,謝謝閱讀,希望能幫到大家,請繼續關注VEVB武林網,我們會努力分享更多優秀的文章。



注:相關教程知識閱讀請移步到網絡協議頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费a级毛片永久免费 | 依人在线视频 | 国产精品视频一区二区三区综合 | 久久久三区 | 久久精品国产99国产精品澳门 | 免费毛片小视频 | 久久精品23| 免费看搡女人无遮挡的视频 | 欧美日韩经典在线 | 性欧美xxxx极品摘花 | 久久精品一区二区三区国产主播 | 久久久久免费电影 | 国产精品成人久久久久a级 av电影在线免费 | 免费在线观看成年人视频 | 色就操 | 国内一区| 5xx免费看 | 国产美女做爰免费视 | 日韩视频区 | 免费网址黄 | 日韩毛片在线看 | 一级电影在线观看 | 万圣街在线观看免费完整版 | 成年人视频免费 | 国产免费午夜 | 成人羞羞在线观看网站 | 亚洲精品在线观看网站 | 久久久久久久久久亚洲 | 免费黄色在线 | 欧美日韩爱爱视频 | 一级做a爰性色毛片免费 | 蜜桃网在线观看 | 国产91免费看 | 精品久久久久久久久久中出 | 午夜精品成人 | 成人精品一区二区 | 国产精品免费大片 | 久久成人免费网站 | 91久久线看在观草草青青 | 国产69精品久久久久9999不卡免费 | 日韩黄色成人 |