計(jì)算機(jī)網(wǎng)絡(luò)——應(yīng)用層-P2P文件分發(fā)

計(jì)算機(jī)網(wǎng)絡(luò)系列博文——目錄

P2P對(duì)等體系結(jié)構(gòu)

對(duì)一直開啟的基礎(chǔ)設(shè)施服務(wù)器有最小程度的依賴,成對(duì)間歇連接的主機(jī)(對(duì)等方)彼此直接通信。

P2P文件分發(fā)與C/S文件分發(fā)的對(duì)比

文件分發(fā)模型

  • 將一個(gè)文件分發(fā)給一個(gè)固定的集合。
  • 假定因特網(wǎng)核心帶寬充足,網(wǎng)絡(luò)瓶頸在接入網(wǎng)
  • 服務(wù)器接入鏈路上載速率u_s
  • 對(duì)等方i接入鏈路上載速率u_i
  • 對(duì)等方i接入鏈路下載速率d_i
  • 待分發(fā)文件大小F
  • 要獲得該文件的對(duì)等方數(shù)量N

客戶/服務(wù)器文件分發(fā)

服務(wù)器向每個(gè)客戶發(fā)送文件的一個(gè)副本,服務(wù)器負(fù)擔(dān)大余境,服務(wù)器流量消耗大

D_{cs} = max \{ \frac{NF}{u_s},\frac{F}{d_{min} } \}

對(duì)足夠大的N,分發(fā)時(shí)間隨N線性增加

P2P文件分發(fā)

每個(gè)客戶作為對(duì)等方,可重新分發(fā)它所有的文件的任何部分灌诅。

D{p2p} = max \{ \frac{F}{u_s}, \frac{F}{d_{min}},\frac{NF}{u_s+\sum_{i=1}^{n}u_i}\}

擴(kuò)展性 對(duì)于變量用戶規(guī)模芳来,客戶/服務(wù)器體系的總傳輸時(shí)間是線性的,而P2P體系的總傳輸時(shí)間是亞線性且有上界的猜拾。

BitTorrent協(xié)議

用于文件分發(fā)的流行P2P協(xié)議即舌。

洪流(torrent) 參與一個(gè)特定文件分發(fā)的所有對(duì)等體的集合

文件塊 洪流中的對(duì)等方彼此傳輸?shù)乳L(zhǎng)的文件塊;

追蹤器(tracker) 一個(gè)對(duì)等方加入洪流時(shí)挎袜,向追蹤器注冊(cè)自己顽聂,并周期性地通知追蹤器自己仍在洪流中。追蹤器維護(hù)正在參與洪流的對(duì)等方列表盯仪。
BitTorrent協(xié)議中的追蹤器是分布式的紊搪,即后文中的DHT。

鄰近對(duì)等方 洪流中全景,成功創(chuàng)建TCP連接的一對(duì)對(duì)等方 耀石。

新對(duì)等方A加入洪流時(shí),追蹤器(隨機(jī)地)將洪流的某個(gè)子集中所有對(duì)等方的ip地址發(fā)送給A;
A持有該對(duì)等方列表蚪燕,并試圖與該列表上的所有對(duì)等方創(chuàng)建并行的TCP連接娶牌;
A的鄰近對(duì)等方不斷變動(dòng),舊鄰近對(duì)等方可能離開馆纳,新鄰近對(duì)等方可能與A成功創(chuàng)建TCP連接诗良;
A周期性地詢問鄰近對(duì)等方所持有的塊列表,并根據(jù)列表信息鲁驶,對(duì)A自身當(dāng)前未擁有的塊發(fā)出請(qǐng)求鉴裹;

最稀缺優(yōu)先技術(shù) 對(duì)等方A在決定請(qǐng)求哪些塊時(shí),首先請(qǐng)求那些A的鄰近對(duì)等方中副本最少的塊钥弯,以大致均衡每個(gè)塊在洪流中的副本數(shù)量径荔。

對(duì)換算法 對(duì)等方A決定響應(yīng)鄰近對(duì)等方們的那個(gè)請(qǐng)求。A根據(jù)當(dāng)前向它提供數(shù)據(jù)的鄰居的速率脆霎,給出優(yōu)先權(quán)总处。每個(gè)時(shí)間周期,A根據(jù)優(yōu)先權(quán)決定它向哪些鄰居傳送數(shù)據(jù)睛蛛;每過多個(gè)時(shí)間周期鹦马,A隨機(jī)選出一個(gè)鄰居并向他發(fā)送數(shù)據(jù)。
以上關(guān)于交換的激勵(lì)機(jī)制常被稱為一報(bào)還一報(bào)忆肾。這種激勵(lì)方案能被回避荸频。但事實(shí)上,BitTorrent的生態(tài)比較成功客冈。

分布式P2P體系數(shù)據(jù)庫旭从,DHT

中心式數(shù)據(jù)庫模型
客戶/服務(wù)器體系,中心數(shù)據(jù)庫存儲(chǔ)鍵值對(duì)场仲,客戶可用特定鍵查詢值和悦。

分布式散列表(Distributed Hash Table,DHT)
分布式P2P體系,大量對(duì)等方維護(hù)一個(gè)鍵值對(duì)的表燎窘,每個(gè)對(duì)等方只存儲(chǔ)該表的一個(gè)小子集摹闽。
允許任一對(duì)等方用一個(gè)特定鍵查詢?cè)摲植际綌?shù)據(jù)庫。分布式數(shù)據(jù)庫定位擁有該鍵值對(duì)的對(duì)等方褐健,并返回該鍵值對(duì)付鹿。
允許任一對(duì)等方向數(shù)據(jù)庫中插入新鍵值對(duì)。

樸素設(shè)計(jì)

在所有對(duì)等方中隨機(jī)分布鍵值對(duì)蚜迅,每個(gè)對(duì)等方維護(hù)一個(gè)所有參與對(duì)等方的表舵匾。查詢鍵k時(shí)向所有其他對(duì)等方發(fā)送查詢。維護(hù)鍵k的對(duì)等方向查詢者發(fā)送響應(yīng)谁不。
此方案無擴(kuò)展性坐梯,隨對(duì)等方數(shù)量增多,數(shù)據(jù)庫復(fù)雜性大大增加刹帕。

基于散列的設(shè)計(jì)

為每個(gè)對(duì)等方分配一個(gè)標(biāo)識(shí)符id吵血,id為n比特整數(shù)谎替。
定義將鍵映射到n比特整數(shù)的哈希函數(shù)。

中心問題
定義為對(duì)等方分配鍵的規(guī)則蹋辅。

對(duì)鍵key钱贯,為id最鄰近hash(key)的對(duì)等方分配該鍵值對(duì)。
最鄰近:鍵的最鄰近后繼

插入鍵值對(duì):確定最鄰近該鍵hash的對(duì)等方侦另,而后向該對(duì)等方發(fā)送查詢報(bào)文秩命。
如何確定最鄰近該鍵hash的對(duì)等方?恰當(dāng)組織數(shù)據(jù)庫結(jié)構(gòu)

DHT結(jié)構(gòu)

將DHT組織為連通圖
連通度過高褒傅,每個(gè)對(duì)等方需維護(hù)的鄰居數(shù)過多
連通度過低弃锐,DHT為解析一個(gè)查詢而需轉(zhuǎn)發(fā)的報(bào)文次數(shù)過多

環(huán)形DHT
將對(duì)等方組織為環(huán),每個(gè)對(duì)等方僅與其直接后繼和直接前驅(qū)聯(lián)系殿托。

對(duì)等方收到一個(gè)查詢報(bào)文時(shí)霹菊,判斷是否應(yīng)有自己處理該報(bào)文,若不是碌尔,則將報(bào)文轉(zhuǎn)發(fā)給后繼鄰居

捷徑DHT
以環(huán)形DHT為基礎(chǔ)浇辜,為每個(gè)對(duì)等方維護(hù)適量的捷徑對(duì)等方。

對(duì)等方收到一個(gè)查詢報(bào)文時(shí)唾戚,判斷是否應(yīng)有自己處理該報(bào)文柳洋,若不是,則將報(bào)文轉(zhuǎn)發(fā)給最鄰近該鍵hash的鄰居

研究表明叹坦,DHT可被設(shè)計(jì)為每個(gè)對(duì)等方的鄰居數(shù)和每個(gè)請(qǐng)求的報(bào)文轉(zhuǎn)發(fā)次數(shù)都在O(logN)熊镣,N為對(duì)等方總數(shù)

對(duì)等方擾動(dòng)

P2P體系中,對(duì)等方可不加警示地到來或離去募书。

為處理對(duì)等方擾動(dòng)绪囱,每個(gè)對(duì)等方應(yīng)存儲(chǔ)冗余的鄰居信息。如環(huán)形DHT中每個(gè)對(duì)等方可以同時(shí)存儲(chǔ)第一后繼和第二后繼莹捡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鬼吵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子篮赢,更是在濱河造成了極大的恐慌齿椅,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件启泣,死亡現(xiàn)場(chǎng)離奇詭異涣脚,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寥茫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門遣蚀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事芭梯∠找” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵玖喘,是天一觀的道長(zhǎng)胰耗。 經(jīng)常有香客問我,道長(zhǎng)芒涡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任卖漫,我火速辦了婚禮费尽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘羊始。我一直安慰自己旱幼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布突委。 她就那樣靜靜地躺著柏卤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪匀油。 梳的紋絲不亂的頭發(fā)上缘缚,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音敌蚜,去河邊找鬼桥滨。 笑死,一個(gè)胖子當(dāng)著我的面吹牛弛车,可吹牛的內(nèi)容都是我干的齐媒。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼纷跛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喻括!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贫奠,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤唬血,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后叮阅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刁品,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年浩姥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挑随。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勒叠,死狀恐怖兜挨,靈堂內(nèi)的尸體忽然破棺而出膏孟,到底是詐尸還是另有隱情,我是刑警寧澤拌汇,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布柒桑,位于F島的核電站,受9級(jí)特大地震影響噪舀,放射性物質(zhì)發(fā)生泄漏魁淳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一与倡、第九天 我趴在偏房一處隱蔽的房頂上張望界逛。 院中可真熱鬧,春花似錦纺座、人聲如沸息拜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽少欺。三九已至,卻和暖如春馋贤,著一層夾襖步出監(jiān)牢的瞬間赞别,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來泰國(guó)打工配乓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留氯庆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓扰付,卻偏偏與公主長(zhǎng)得像堤撵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羽莺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 我總覺得無論是決定考研還是就業(yè)实昨,還是決定考哪所院校,做選擇的過程都是很復(fù)雜的盐固,要考慮很多因素荒给,不是突然決定的,所以...
    秘耳閱讀 108評(píng)論 0 0
  • 那天傍晚刁卜,結(jié)束得很早志电,只有一個(gè)兩三個(gè)孩子還在等待著父母的到來,我很輕松』着浚現(xiàn)在門口看著車來車往發(fā)呆挑辆,遠(yuǎn)遠(yuǎn)地望見他騎車...
    劉忙不盲閱讀 371評(píng)論 2 2