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