分佈式課程筆記--02分佈式系統進程和通訊

overlay network

(邏輯上得網絡,邏輯與物理不一致):覆蓋網絡,應用層網絡。P2P就是一種覆蓋網絡P2P是集中分散分形概念的同行對等覆蓋網絡,網絡覆蓋就是指用戶能夠接收到網絡信號的範圍。
在這裏插入圖片描述

缺點:邏輯與物理不一致,優化會有問題。
P2P技術 :純點對點網絡沒有客戶端或服務器的概念,只有平等的同級節點,同時對網絡上的其它節點充當客戶端和服務器。
這種網絡設計模型不同於客戶端-服務器模型,在客戶端-服務器模型中通信通常來往於一箇中央服務器。可以作爲雲計算系統,用k-v 存儲,使用在p2p哈希中。
幾種p2p技術應用:

Napster:

在這裏插入圖片描述

應用於廣域網,用k-v 存儲,需要解決數據一致性得問題
Napster是一款可以在網絡中下載自己想要的MP3文件的軟件。它同時能夠讓自己的機器也成爲一臺服務器,爲其它用戶提供下載。是一種在線音樂服務,最初由西恩·帕克創建的文件共享服務。Napster是第一個被廣泛應用的點對點(Peer-to-Peer,P2P)音樂共享服務
在這裏插入圖片描述

對客戶端:
1:連接Napster得服務器
2:上傳你想要分享得文件
3:服務器(只起索引作用)去維護一個<文件名,ip地址,大小>的目錄,但是服務器是不存儲文件內容得。
可以有效解決服務端得壓力。還會牽扯到相應得算法,去找到最近得host
缺點:會嚴格依賴服務器,安全性低。
集中式服務器是擁塞的源頭,集中式服務器是單點故障不安全:
明文信息和passwds napster.com聲明對用戶的版權侵犯負責"間接侵權"

Gnutella

:(無結構的p2p,沒辦法優化,只能泛洪)(效率低,需要週期性的維護信息)是一種文件共享網絡
完全拋棄了服務器得概念
在這裏插入圖片描述
具體怎麼通訊呢:
在這裏插入圖片描述
Gnutella曾經是一種純粹的基於洪泛式請求(query flooding)協議。早期的Gnutella 0.4版使用5種不同的數據包種類,即是:(使用query flooding,則爲了防止消息一直在網絡中不停地轉發,就會添加ttl(給它一個生命週期–)字段或者跳數hops++)
ping:用於發現網絡中的節點
pong:用於回覆ping消息
query:用於尋找某一個文件search for a file
query hit:用於回覆query消息
push:用於處於防火牆後的服務器的下載請求
以上不同消息包的定義主要是爲了處理Gnutella網絡中的搜索功能。
文件傳輸功能是由HTTP協議實現的。
爲了避免重複的傳輸,每個對等點維護一個最近收到的消息列表查詢被轉發給所有鄰居,除了接收到的peer每個查詢(通過DescriptorID標識)只轉發一次QueryHit只路由回peer,從peer接收到的查詢具有相同的DescriptorlD具有相同的DescriptorID和負載描述符(msg類型,例如,查詢)的副本將被刪除,QueryHit將使用DescriptorID刪除未看到的查詢(類似於路由表的維護)
chord System(Structured Peer-to-peer,有結構,可以優化)

BitTorrent(混合架構)

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
Decentralized與distriButed的區別。
Decentralized相比集中式協議,改動不大。方便移植。
distriButed:人人都是服務器,相當於沒有服務器,所有的協議都要改變。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章