点对点架构模式
? ? ? ? ? ? ? ? ? ? ? ?點對點模式
?
點對點模式,即Peer-to-Peer模式,在這種模式中,單個組件被稱為對等點。對等點可以作為客戶端,從其他對等點請求服務,也可以作為服務器,為其他對等點提供服務。對等點可以充當客戶端或服務器的角色,并且可以隨時間動態地更改其角色。每個節點既可以從其他節點得到服務,也可以向其他節點提供服務。
?
?
? ? ? ?2.限定條件
l?運用內存來管理交換資料,大幅度提高性能
l?適用于小規模的網路,維護容易
l?不用投資大量金錢在服務器的軟,硬體設備
l?許多P2P網絡一直受到懷有各種目的的人的持續攻擊,如中毒攻擊(提供內容與描述不同的文件),在數據中插入病毒(如,下載或傳遞的文件可能被感染了病毒或木馬),垃圾信息(如在網絡上發送未請求的信息--不一定是拒絕服務攻擊),過濾(網絡運營商可能會試圖禁止傳遞來自P2P網絡上的數據)等等
l?音樂,電影等資料的版權問題
? ? ? ? ?3.解決什么問題
?????共享包含各種格式音頻,視頻,數據等的文件是非常普遍的,實時數據(如IP電話通信、Anychat音視頻)也可以使用P2P技術來傳送。
有些網絡和通信渠道,像Napster,OpenNAP,和IRC @find,一方面使用了C/S結構來處理一些任務(如搜索功能),另一方面又同時使用P2P結構來處理其他任務。而有些網絡,如Gnutella和 Freenet ,使用P2P結構來處理所有的任務,有時被認為是真正的P2P網絡。盡管Gnutella 也使用了目錄服務器來方便節點得到其它節點的網絡地址。
? ? ? ? ?4.解決方案
P2P網絡是指位于同一網絡中的每臺計算機都彼此對等,各個節點共同提供網絡服務,不存在任何“特殊”節點,每個網絡節點以扁平(flat)的拓撲結構相互連通。
P2P網絡的節點之間交互連接、協同,每個節點在對外提供服務的同時也使用網絡中其他節點所提供的服務,每個節點即是服務端又是客戶端。
?
?
? ? ? ? ? 5.實例
分析比特幣網絡:一種去中心化、點對點的網絡架構
中心化網絡
為了更好的理解P2P網絡,我們先來看看傳統的中心化模型:
?
?
這是一種典型的星型(“中心化”)結構,我們常見B/S及C/S網絡架構就是這種模型,C1 、C2 、C3等之間沒法直接的連接,C節點如果要連接必須要通過中心化S節點做為橋梁。
中心化節點充當服務者、中介作用,比如我們沒有辦法把資金直接從一個人轉移給另一個人,必須通過銀行這個中介。
P2P網絡模型除應用于比特幣網絡,使用廣泛的BT下載就是基于P2P網絡。
P2P網絡不僅僅去除了中心化帶來的風險(中心化可能作惡),還可以提高傳輸的效率。(中心化網絡當能也有優點)
????為了能夠加入到比特幣網絡,比特幣客戶端會做一下幾件事情:
l?節點會記住它最近成功連接的網絡節點,當重新啟動后它可以迅速與先前的對等節點網絡重新建立連接。
l?節點會在失去已有連接時嘗試發現新節點。
l?當建立一個或多個連接后,節點將一條包含自身IP地址消息發送給其相鄰節點。相鄰節點再將此消息依次轉發給它們各自的相鄰節點,從而保證節點信息被多個節點所接收、保證連接更穩定。
l?新接入的節點可以向它的相鄰節點發送獲取地址getaddr消息,要求它們返回其已知對等節點的IP地址列表。節點可以找到需連接到的對等節點。
l?在節點啟動時,可以給節點指定一個正活躍節點IP, 如果沒有,客戶端也維持一個列表,列出了那些長期穩定運行的節點。這樣的節點也被稱為種子節點(其實和BT下載的種子文件道理是一樣的),就可以通過種子節點來快速發現網絡中的其他節點。
?
BT下載
?
BT 首先在上傳端把一個文件分成了 Z 個部分,甲在服務器隨機下載了第 N 個部分,乙在服務器隨機下載了第 M 個部分,這樣甲的 BT 就會根據情況到乙的電腦上去下載乙已經下載好的 M 部分,乙的 BT 就會根據情況到甲的電腦上去下載甲已經下載好的 N 部分,這樣就不但減輕了服務器端的負荷,也加快了用戶方(甲乙)的下載速度,效率也提高了,更同樣減少了地域之間的限制。比如說丙要連到服務器去下載的話可能才幾K,但是要是到甲和乙的電腦上去下載就快得多了。所以說用的人越多,下載的人越多,大家也就越快,BT 的優越性就在這里。而且,在你下載的同時,你也在上傳(別人從你的電腦上下載那個文件的某個部分),所以說在享受別人提供的下載的同時,你也在貢獻。
?
轉載于:https://www.cnblogs.com/xxdcxy/p/9076822.html
總結
- 上一篇: Java Web学习总结-文件下载
- 下一篇: 华中科技大学 计算机组成原理 上机实验1