P2P發(fā)展

先拋開區(qū)塊鏈漫雕,只講P2P还绘,對P2P了解后稽穆,再慢慢解開區(qū)塊鏈對P2P的應(yīng)用。

P2P發(fā)展歷史

本文是從《P2P對等網(wǎng)絡(luò)原理及應(yīng)用》和網(wǎng)上資料總結(jié)出來

第一代 - 集中式P2P

  • 拓補(bǔ)圖


    image.png
  • 實(shí)現(xiàn)原理
    選擇一個節(jié)點(diǎn)作為中心節(jié)點(diǎn)米丘,使所有其他節(jié)點(diǎn)和這個中心節(jié)點(diǎn)建立星形拓?fù)浣Y(jié)構(gòu)剑令。每個節(jié)點(diǎn)把自己的資源索引信息存儲在中心節(jié)點(diǎn),從而中心節(jié)點(diǎn)擁有全網(wǎng)的資源索引信息拄查。當(dāng)某個節(jié)點(diǎn)需要獲取某個資源時吁津,向中心節(jié)點(diǎn)提交關(guān)鍵字/索引,中心節(jié)點(diǎn)定位出能夠提供內(nèi)容服務(wù)的節(jié)點(diǎn)堕扶,請求節(jié)點(diǎn)與這些節(jié)點(diǎn)分別建立傳輸通道碍脏,實(shí)現(xiàn)并行傳送∩运悖可以看出典尾,它在路由查詢(內(nèi)容路由)上,與傳統(tǒng)系統(tǒng)架構(gòu)并無區(qū)別糊探,P2P主要體現(xiàn)在請求節(jié)點(diǎn)從其他多個節(jié)點(diǎn)并行獲得數(shù)據(jù)上钾埂。

  • 優(yōu)點(diǎn)
    集中式結(jié)構(gòu)非常簡單,是最容易實(shí)現(xiàn)的一種方式科平,而且維護(hù)簡單褥紫,資源發(fā)現(xiàn)效率高。

  • 缺點(diǎn)

    • 因為所有資源索引都保存在中心節(jié)點(diǎn)瞪慧,很容易形成單點(diǎn)故障髓考,中央索引服務(wù)器的癱瘓容易導(dǎo)致整個網(wǎng)絡(luò)的崩潰,因此可靠性和安全性較低弃酌。
    • 隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大氨菇,對中央索引服務(wù)器進(jìn)行維護(hù)和更新的費(fèi)用將急劇增加,所需成本較高妓湘。
    • 中央索引服務(wù)器的存在常引起版權(quán)問題上的糾紛查蓉,服務(wù)提供商容易被追究法律責(zé)任。
  • 典型應(yīng)用:
    Mp3共享軟件 Napster


    image.png

第二代 - 純分布式P2P

  • 拓?fù)鋱D


    image.png
  • 實(shí)現(xiàn)原理
    這種結(jié)構(gòu)不需要中心節(jié)點(diǎn)多柑,是一種純分布式的機(jī)制奶是。一個新加入的節(jié)點(diǎn)和P2P網(wǎng)絡(luò)中的某個節(jié)點(diǎn)間隨機(jī)建立連接通道,從而形成一個隨機(jī)的拓?fù)浣Y(jié)構(gòu)竣灌。當(dāng)一個節(jié)點(diǎn)需要進(jìn)行內(nèi)容路由時聂沙,將請求的信息通過隨意拓?fù)浞汉槌鋈ィ沟萌W(wǎng)點(diǎn)節(jié)點(diǎn)都收到路由查詢消息初嘹。接到查詢消息的節(jié)點(diǎn)進(jìn)行檢索判斷是否擁有相應(yīng)資源及汉,如有則進(jìn)行查詢響應(yīng)。
    關(guān)鍵原理
    1.小世界模型


    image.png

    “小世界網(wǎng)絡(luò)模型”屯烦,也叫“六度分割”坷随,就是從人群中任意挑選兩個陌生人房铭,他們要達(dá)到彼此認(rèn)識的最短關(guān)系鏈數(shù)是6。
    有幾個參數(shù)需要關(guān)注:

    • 概率P(0-1):節(jié)點(diǎn)以較小的概率將邊的一端移到另一個隨機(jī)選取的位置上
    • L長度(上面的6):也就是兩個節(jié)點(diǎn)相連的最少邊長度的平均數(shù)
    • 節(jié)點(diǎn)的度:也就是平均每個節(jié)點(diǎn)的鄰居節(jié)點(diǎn)(朋友)數(shù)量
    • 集團(tuán)化系數(shù)C:某個人的兩個朋友有可能互相是朋友温眉,表示一種重疊特征

2.泛洪原理


image.png

請求節(jié)點(diǎn)要尋找資源缸匪,必須要向全網(wǎng)進(jìn)行廣播,這就是泛洪技術(shù)类溢。
泛洪有兩個弊端:

  • 泛洪循環(huán)凌蔬,如下圖,查詢消息從1-2-4-3-1形成一個環(huán)路闯冷。


    image.png

    可以通過設(shè)置TTL限制(就是在節(jié)點(diǎn)之間轉(zhuǎn)發(fā)最大跳數(shù))和利用樹形結(jié)構(gòu)消除環(huán)路來解決問題砂心。


    image.png
  • 響應(yīng)消息風(fēng)暴,大量的節(jié)點(diǎn)向請求節(jié)點(diǎn)響應(yīng)信息蛇耀,瞬間讓請求節(jié)點(diǎn)癱瘓辩诞,這個問題非常致命。


    image.png
  • 優(yōu)點(diǎn)
    這種網(wǎng)絡(luò)完全隨機(jī)纺涤,不需要按照某種規(guī)定去構(gòu)建译暂,實(shí)現(xiàn)起來簡單,在小范圍內(nèi)查詢性能較好撩炊;
    一般不提供性能保證秧秉,但容錯性好,支持復(fù)雜的查詢衰抑,并受結(jié)點(diǎn)頻繁加入和退出系統(tǒng)的影響小。

  • 缺點(diǎn)
    除了上面的防洪問題荧嵌,還有查詢的結(jié)果不保證呛踊,查詢速度較慢,對網(wǎng)絡(luò)帶寬的消耗非常大啦撮,并由此帶來可擴(kuò)展性差等問題谭网。

  • 典型應(yīng)用
    采用這種拓?fù)浣Y(jié)構(gòu)最典型的案例便是Gnutella(音譯:紐特拉)。準(zhǔn)確地說赃春,Gnutella不是特指某一款軟件愉择,而是指遵守Gnutella協(xié)議[3]的網(wǎng)絡(luò)以及客戶端軟件的統(tǒng)稱。目前基于Gnutella網(wǎng)絡(luò)的客戶端軟件非常多织中,著名的有Shareaza锥涕、LimeWire和BearShare等。

    image.png

第三代 - 混合式P2P

  • 拓補(bǔ)圖


    image.png
  • 實(shí)現(xiàn)原理
    混合式P2P網(wǎng)絡(luò)是指局部上呈現(xiàn)集中式狭吼,整體上表現(xiàn)分布式的組織結(jié)構(gòu)层坠。以KazaA為例介紹這種網(wǎng)絡(luò)結(jié)構(gòu),主要有兩類節(jié)點(diǎn):超級節(jié)點(diǎn)(SN)和普通節(jié)點(diǎn)(ON)刁笙。整個網(wǎng)絡(luò)有兩級結(jié)構(gòu)破花,第一級是由SN組成的分布式拓?fù)浣Y(jié)構(gòu)谦趣,每個SN大概有40個SN鄰居;第二級是ON與SN組成的星形集中式結(jié)構(gòu)座每,每個SN下面有100多個ON前鹅。一個節(jié)點(diǎn)加入網(wǎng)絡(luò)成為SN還是ON,是根據(jù)節(jié)點(diǎn)的CPU峭梳、內(nèi)存舰绘、網(wǎng)絡(luò)帶寬等資源決定。全網(wǎng)的資源索引存儲在所有的SN節(jié)點(diǎn)延赌,當(dāng)一個ON需要下載某個文件時除盏,會向其父SN節(jié)點(diǎn)發(fā)送查詢請求,父節(jié)點(diǎn)再通過泛洪方式在SN組成的網(wǎng)絡(luò)平面內(nèi)進(jìn)行泛洪廣播挫以,由SN返回資源存儲的位置信息者蠕。

  • 優(yōu)點(diǎn)
    結(jié)合了集中式和純分布式的優(yōu)缺點(diǎn),提供了更好的性能掐松,可擴(kuò)展性較好踱侣,組網(wǎng)方式更加靈活,容易管理大磺;根據(jù)節(jié)點(diǎn)的能力決定功能抡句,具有高度適應(yīng)性。

  • 缺點(diǎn)
    超級點(diǎn)依賴性大杠愧,易于受到攻擊待榔,容錯性也受到影響。

  • 典型應(yīng)用
    KaZaa是當(dāng)前世界最流行的幾款P2P文件共享軟件之一流济。

第四代 - 結(jié)構(gòu)化P2P

  • 拓補(bǔ)圖


    image.png
  • 實(shí)現(xiàn)原理
    結(jié)構(gòu)化P2P網(wǎng)絡(luò)與純分布式網(wǎng)絡(luò)的結(jié)構(gòu)是一樣的锐锣,沒有中心節(jié)點(diǎn)。但是相對于純分布式結(jié)構(gòu)的節(jié)點(diǎn)網(wǎng)絡(luò)是隨機(jī)組建的绳瘟,結(jié)構(gòu)化P2P網(wǎng)絡(luò)讓所有節(jié)點(diǎn)按照某種結(jié)構(gòu)進(jìn)行有序組織如形成一種環(huán)形網(wǎng)絡(luò)或樹形網(wǎng)絡(luò)雕憔,將資源的索引信息也進(jìn)行有序組織并按照某種規(guī)律保存在相應(yīng)節(jié)點(diǎn),從而避免了消息的泛洪問題糖声。
    舉個簡單的例子推演結(jié)構(gòu)化網(wǎng)絡(luò)的實(shí)現(xiàn):
    資源空間斤彼,代表P2P網(wǎng)絡(luò)所有資源的集合,每個資源都有一個資源索引<資源編號蘸泻,資源名稱琉苇,資源存儲節(jié)點(diǎn)ip端口>,資源編號是對資源的唯一標(biāo)志悦施,比如1翁潘,2,3歼争,4等
    節(jié)點(diǎn)空間拜马,即P2P網(wǎng)絡(luò)所有節(jié)點(diǎn)的集合渗勘,每個節(jié)點(diǎn)也有一個編號作為唯一標(biāo)志,比如1俩莽,2旺坠,3,4等
    加入有一種方法扮超,可以讓資源的編號與節(jié)點(diǎn)的編號完全一一對應(yīng)取刃,即剛好N個資源和N個節(jié)點(diǎn),且編號剛好都是從1-N出刷,那么重要讓資源i存放在節(jié)點(diǎn)i上璧疗,某個節(jié)點(diǎn)請求資源i,只需要找到節(jié)點(diǎn)i即可馁龟。
    怎么找到節(jié)點(diǎn)i呢崩侠,如果有一種網(wǎng)絡(luò)節(jié)點(diǎn)拓?fù)鋱D,使得鄰居之間節(jié)點(diǎn)編號有一定規(guī)則坷檩,如按照大小排成一個鏈表却音,并且讓每個節(jié)點(diǎn)除了保存距離近的節(jié)點(diǎn),還保存一些相距稍遠(yuǎn)的節(jié)點(diǎn)信息矢炼,那么請求節(jié)點(diǎn)在搜索節(jié)點(diǎn)i時系瓢,可以根據(jù)自己的節(jié)點(diǎn)編號與節(jié)點(diǎn)i的關(guān)系大致判斷節(jié)點(diǎn)i的位置,從而把請求信息首先發(fā)給距離節(jié)點(diǎn)i較近的節(jié)點(diǎn)句灌。這樣就能形成一種更好的搜索效果夷陋。

這就是DHT算法,結(jié)構(gòu)化P2P的核心思想胰锌。


image.png
  • 優(yōu)點(diǎn)
    網(wǎng)絡(luò)自組織肌稻,自適應(yīng)和可拓展性強(qiáng),不需要中心節(jié)點(diǎn)匕荸。使用結(jié)構(gòu)化算法,查詢效率高枷邪;

  • 缺點(diǎn)
    DHT這類結(jié)構(gòu)最大的問題是DHT的維護(hù)機(jī)制較為復(fù)雜榛搔,尤其是結(jié)點(diǎn)頻繁加入退出造成的網(wǎng)絡(luò)波動(Churn)會極大增加DHT的維護(hù)代價。DHT所面臨的另外一個問題是DHT僅支持精確關(guān)鍵詞匹配查詢东揣,無法支持內(nèi)容/語義等復(fù)雜查詢践惑。

  • 典型應(yīng)用
    最經(jīng)典的案例是Tapestry,Pastry嘶卧,Chord和CAN尔觉。


    image.png

    image.png

四種網(wǎng)絡(luò)結(jié)構(gòu)比較

image.png

區(qū)塊鏈?zhǔn)褂玫腜2P類型 - 結(jié)構(gòu)化P2p

P2P技術(shù)

對于文件下載,流媒體領(lǐng)域芥吟,關(guān)鍵技術(shù):

  1. 文件索引獲日焱(下載種子)
  2. 內(nèi)容路由(找到那些節(jié)點(diǎn)有目標(biāo)下載文件)
  3. 內(nèi)容傳送(實(shí)時专甩,非實(shí)時)

對于區(qū)塊鏈,關(guān)鍵的技術(shù)點(diǎn)是:

  1. NAT穿越
  2. 節(jié)點(diǎn)發(fā)現(xiàn)
  3. 節(jié)點(diǎn)通信(下次分享)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钉稍,一起剝皮案震驚了整個濱河市涤躲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贡未,老刑警劉巖种樱,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異俊卤,居然都是意外死亡嫩挤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門消恍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岂昭,“玉大人,你說我怎么就攤上這事哺哼∨迥ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵取董,是天一觀的道長棍苹。 經(jīng)常有香客問我,道長茵汰,這世上最難降的妖魔是什么枢里? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮蹂午,結(jié)果婚禮上栏豺,老公的妹妹穿的比我還像新娘。我一直安慰自己豆胸,他們只是感情好奥洼,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晚胡,像睡著了一般灵奖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上估盘,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天瓷患,我揣著相機(jī)與錄音,去河邊找鬼遣妥。 笑死擅编,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播爱态,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼谭贪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肢藐?” 一聲冷哼從身側(cè)響起故河,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎吆豹,沒想到半個月后鱼的,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痘煤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年凑阶,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片衷快。...
    茶點(diǎn)故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡宙橱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蘸拔,到底是詐尸還是另有隱情师郑,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布调窍,位于F島的核電站宝冕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏邓萨。R本人自食惡果不足惜地梨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缔恳。 院中可真熱鬧宝剖,春花似錦、人聲如沸歉甚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纸泄。三九已至赖钞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刃滓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工耸弄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咧虎,地道東北人。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓计呈,卻偏偏與公主長得像砰诵,于是被迫代替她去往敵國和親征唬。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評論 2 355

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

  • NAT穿越方案目前有: STUN TURN ICE 其它技術(shù):ALG茁彭、UPnP总寒、Midcom、Full Proxy...
    jection閱讀 3,969評論 1 2
  • Teredo 原理概述 http://www.ipv6bbs.cn/thread-144-1-1.html (出處...
    我是葉問小盆友閱讀 1,970評論 0 1
  • 我喜歡曲線理肺。 因為它有柔韌度摄闸,遇到困難,懂得調(diào)整方向妹萨,繼續(xù)向前年枕。那道曲線,經(jīng)過低谷之后乎完,仿佛一個笑臉勛章熏兄,是稱贊,...
    韓小妖in首爾閱讀 1,187評論 4 19
  • 午餐時間树姨,樓下遛彎摩桶,初秋時節(jié),北京最美麗的季節(jié)帽揪,微微秋風(fēng)拂面而來硝清,陽光不算刺眼,但灑在臉上暖暖的台丛,雙眸也沾染了一絲...
    大妍妍Sunny閱讀 203評論 0 1