P2P 工作方式概述
·在 P2P 工作方式下,所有的音頻/視頻文件都是在普通的互聯(lián)網(wǎng)用戶之間傳輸。
1 具有集中目錄服務(wù)器的 P2P 工作方式
·Napster 最早使用 P2P 技術(shù),提供免費(fèi)下載 MP3 音樂。
·Napster 將所有音樂文件的索引信息都集中存放在 Napster 目錄服務(wù)器中。
·使用者只要查找目錄服務(wù)器,就可知道應(yīng)從何處下載所要的 MP3 文件。
·用戶要及時(shí)向 Napster 的目錄服務(wù)器報(bào)告自己存有的音樂文件。
·Napster 的文件傳輸是分散的,文件的定位則是集中的。
Napster 的工作過程
1.用戶 X 向 Napster 目錄服務(wù)器查詢(采用客戶服務(wù)器方式)誰(shuí)有音樂文件 MP3#。
2.Napster 目錄服務(wù)器回答 X:有三個(gè)地點(diǎn)有文件 MP3#,即 A, B 和 C(給出了這三個(gè)地點(diǎn)的 IP 地址)。于是用戶 X 得知所需的文件 MP3# 的三個(gè)下載地點(diǎn)。
3.用戶 X 可以隨機(jī)地選擇三個(gè)地點(diǎn)中的任一個(gè)。假定 X 向 A 發(fā)送下載文件 MP3# 的請(qǐng)求報(bào)文。雙方都使用 P2P 方式通信。
4.對(duì)等方 A(現(xiàn)在作為服務(wù)器)把文件 MP3# 發(fā)送給 X。
集中式目錄服務(wù)器的缺點(diǎn)
·可靠性差。
·會(huì)成為性能的瓶頸。
2 具有全分布式結(jié)構(gòu)的 P2P 文件共享程序
·Gnutella 是第二代 P2P 文件共享程序,采用全分布方法定位內(nèi)容的 P2P 文件共享應(yīng)用程序。
·Gnutella 與 Napster 最大的區(qū)別:不使用集中式的目錄服務(wù)器,而是使用洪泛法在大量 Gnutella 用戶之間進(jìn)行查詢。
·為了不使查詢的通信量過大,Gnutella 設(shè)計(jì)了一種有限范圍的洪泛查詢,減少了傾注到互聯(lián)網(wǎng)的查詢流量,但也影響到查詢定位的準(zhǔn)確性。
·第三代 P2P 文件共享程序采用分散定位和分散傳輸技術(shù)。例如 KaZaA,電騾 eMule,比特洪流 BT (Bit Torrent) 等。
使用 P2P 的比特洪流 BT 主要特點(diǎn)
·BitTorrent 所有對(duì)等方集合稱為一個(gè)洪流 (torrent)。
·下載文件的數(shù)據(jù)單元為長(zhǎng)度固定的文件塊 (chunk)。
·基礎(chǔ)設(shè)施結(jié)點(diǎn),叫做追蹤器 (tracker)。
·A 和對(duì)等方建立了 TCP 連接。所有與 A 建立了 TCP 連接的對(duì)等方為相鄰對(duì)等方(neighboring peers)。
相鄰關(guān)系是邏輯的,對(duì)等方的數(shù)目是動(dòng)態(tài)變化的
對(duì)等方之間互相傳送文件數(shù)據(jù)塊
BT 協(xié)議
問題:哪些文件塊是首先需要向其相鄰對(duì)等方請(qǐng)求的?
方法:A 使用最稀有的優(yōu)先 (rarest first) 的技術(shù),首先向其相鄰對(duì)等方請(qǐng)求對(duì)應(yīng)的文件塊。
稀有:如果 A 所缺少的文件塊在相鄰對(duì)等方中的副本很少,那就是“很稀有的”。
問題:在很多向 A 請(qǐng)求文件塊的相鄰對(duì)等方中,A 應(yīng)當(dāng)向哪些相鄰對(duì)等方發(fā)送所請(qǐng)求的文件塊?
方法:凡當(dāng)前以最高數(shù)據(jù)率向 A 傳送文件塊的某相鄰對(duì)等方,A 就優(yōu)先把所請(qǐng)求的文件塊傳送給該相鄰對(duì)等方。
3 ?P2P 文件分發(fā)的分析
從互聯(lián)網(wǎng)傳送數(shù)據(jù)到主機(jī),叫做下載 (download);
從主機(jī)向互聯(lián)網(wǎng)傳送,則稱為上傳 (upload) 或上載。
有 N 臺(tái)主機(jī)從服務(wù)器下載一個(gè)大文件,其長(zhǎng)度為 F bit。
假定主機(jī)與互聯(lián)網(wǎng)連接的鏈路的上傳速率和下載速率分別為 ui 和 di ,單位都是 bit/s。
客戶-服務(wù)器方式下分發(fā)的最短時(shí)間分析:
·從服務(wù)器端考慮,所有主機(jī)分發(fā)完畢的最短時(shí)間 Tcs 不可能小于 NF/us ;
·下載速率最慢的主機(jī)的下載速率為 dmin,則 Tcs 不可能小于 F/dmin ?。
·由此可得出所有主機(jī)都下載完文件 F 的最少時(shí)間是: Tcs=max( NF/us,F(xiàn)/dmin )。
P2P 方式下分發(fā)的最短時(shí)間分析:
·初始服務(wù)器文件分發(fā)的最少時(shí)間不可能小于 F/us ;
·下載文件分發(fā)的最少時(shí)間不可能小于 F/dmin ;
·上載文件分發(fā)的最少時(shí)間不可能小于 NF/uT ,其中是 uT ?是上傳速率之和。
·所有主機(jī)都下載完文件 F 的最少時(shí)間的下限是: Tp2p >= max( F/us , F/dmin, NF/uT ?)
時(shí)間比較
·設(shè)所有的對(duì)等方的上傳速率都是 u,并且 F/u = 1 小時(shí)。
·設(shè)服務(wù)器的上傳速率 us = 10u。
·當(dāng) N = 30 時(shí),
? ? ? ? 1.P2P 方式:最少時(shí)間的下限是 0.75 小時(shí) < 1 小時(shí)(不管 N 多大)。
? ? ? ? 2.客戶服務(wù)器方式:最少時(shí)間是 3 小時(shí)。
4 ?在 P2P 對(duì)等方中搜索對(duì)象
·Napster 在一個(gè)集中式目錄服務(wù)器中構(gòu)建查找數(shù)據(jù)庫(kù),簡(jiǎn)單,但性能上有瓶頸。
·Gnutella 是一種采用全分布方法定位內(nèi)容的 P2P 文件共享應(yīng)用程序,它解決了集中式目錄服務(wù)器所造成的瓶頸問題。但 Gnutella 是在非結(jié)構(gòu)化的覆蓋網(wǎng)絡(luò)中采用查詢洪泛的方法進(jìn)行查找,因此查找的效率較低。
·現(xiàn)在廣泛使用的索引和查找技術(shù)叫做分布式散列表 DHT (Distributed Hash Table)。
·DHT 也可譯為分布式哈希表,由大量對(duì)等方共同維護(hù)。
·廣泛使用的 Chord 算法是美國(guó)麻省理工大學(xué)于 2001 年提出的。
基于 DHT 的 Chord 環(huán)
·分布式散列表 DHT 利用散列函數(shù),把資源名 K 及其存放的結(jié)點(diǎn) IP 地址 N 都分別映射為資源名標(biāo)識(shí)符 KID 和結(jié)點(diǎn)標(biāo)識(shí)符 NID。
·Chord 把結(jié)點(diǎn)按標(biāo)識(shí)符數(shù)值從小到大沿順時(shí)針排列成一個(gè)環(huán)形覆蓋網(wǎng)絡(luò)。
·每個(gè)資源由 Chord 環(huán)上與其標(biāo)識(shí)符值最接近的下一個(gè)結(jié)點(diǎn)提供服務(wù)。
通過指針表加速 Chord 表查找
·為了加速查找,在 Chord 環(huán)上可以增加一些指針表(finger table),又稱為路由表或查找器表。
·對(duì)于結(jié)點(diǎn) N4,其指針表的第 2 列第 i ?行根據(jù)(N4 + 2i – 1)計(jì)算得出其后繼結(jié)點(diǎn)。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-826474.html
歡迎一起學(xué)習(xí)~文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-826474.html
到了這里,關(guān)于P2P 應(yīng)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!