去中心化技術與P2P框架分享

2021-10-17 14:12:39 字數 3301 閱讀 4629

為了更好的理解去中心化的概念,我們先來理解傳統的中心化網路。

圖1 傳統中心化網路拓撲圖

在傳統的中心網路中,不論是b/s還是c/s,都是一種星型結構。

中心化節點為伺服器,每乙個客戶端只能與伺服器通訊。伺服器是對所有客戶端提供服務。

如果客戶端要與客戶單進行通訊,需要經過伺服器進行路由處理,才能把資料路由到另外乙個客戶端。

圖2 去中心化網路拓撲圖

在去中心化網路中,每個客戶端都是平等的,沒有客戶端與伺服器之分,客戶端之間互相提供服務,不存在「特殊」身份。

客戶端之間互動連線,每個客戶端對外提供服務,同時也使用其他客戶端提供的服務。我們稱這些客戶端為節點。

去中心化,不僅解除了中心化伺服器絕對控制帶來的風險,也提高了網路傳輸效率,並去除了中心化伺服器資料路由的壓力。

圖3 快播網路拓撲圖

快播伺服器不儲存資源內容,只儲存資源鏈結。

p2p :peer-to-peer , 點對點。軟體層應用為點對點通訊、資料互動。

在私網與外網通訊的過程中, 私網與公網連線的邊沿節點被稱為路由器。

比如私網內部網路為 192.168.1.1 的網路,路由器的公網 ip 為 112.93.114.32,伺服器的公網 ip 位址為120.93.24.180。

圖4 私網與公網通訊拓撲圖

由於全球網路通訊機器增加, ipv4 位址緊缺, 所以提出了 nat 的理論, 通過公網 ip 位址與埠對映到私網機器的 ip 位址與埠。 這樣就能通過少量的公有 ip 位址能夠代表較多的私有 ip 位址,有助於減緩可用 ipv4 位址的耗盡。

圖5 nat工作拓撲圖

私網–>公網

私網機器的乙個網路程序,與公網伺服器120.93.24.180機器通訊,nat路由器為每乙個網路程序分配乙個網路ip位址與埠,用於與公網伺服器通訊。

公網–>私網

公網伺服器與私網內的網路進行通訊,也是通過nat路由器分配的網路ip位址與酸口進入私網到達網路程序。

(一)靜態轉換(static nat)

圖6 nat靜態轉換拓撲圖

特點:

(二)動態轉換(dynamic nat)

圖7 nat動態轉換拓撲圖

與靜態轉換不同的是,這裡的公網ip是從ip池中的取出來的,私網ip與公網ip的對應關係並不是一成不變。

公網ip位址資料量略少於私網機器數量的時候,可以採用該動態轉換方式。

(三)埠位址對映(port address translation,pat)

圖8 nat埠位址對映拓撲圖

改變私網內機器傳送到公網資料報的源埠並進行埠轉換。

目前該種方式應用的最廣泛。

nat種類

從 nat 的技術實現角度, 可以分為三種,靜態轉換( static nat),動態轉換( dynamicnat), 埠位址對映( port address translation, pat)。

從 nat 的功能, 可以分為四種: 完全錐型 nat( full cone nat), 對稱 nat( symmetricnat), ip 限制錐型 nat(ip restricted cone nat),埠限制錐形 nat( port restrictedcone nat)。這裡不再做詳細闡述。

圖9 nat種類

圖10 網路穿透

開始啟動的時候,私網內的客戶端程序都需要連線到伺服器,然後在nat上產生公網對映記錄,伺服器會把該公網對映記錄資訊發給有需要的外網訪問端,外網訪問端通過公網對映記錄的資訊就可以與私網內的機器進行資料互動。

以圖10為例:

1> 私網機器b傳送報文到公網伺服器a的過程中,在nat路由器上產生了一條記錄(112.93.14.56:43891)。

2> 私網機器c傳送報文到公網伺服器a的過程中,在nat路由器上產生了一條記錄(170.93.14.56:5566)。

3> 私網機器c可以傳送報文資料給公網對映記錄(112.93.14.56:43891),使得私網機器b能收到該報文。

網路穿透的型別有:穿透完全錐型nat,穿透限制錐型nat,穿透對稱nat等。

網路穿透沒法在應用軟體上實現,都是路由器硬體出廠的時候就已經設定好的。我們可以根據自己的需要購買不同功能的路由器。

問題p2p為什麼要講到nat?

網路穿透,需要穿透閘道器(也被稱為打洞),而穿透閘道器需要用到nat。

問題圖10中,網路穿透的資料主要是在b和c之間進行互動,伺服器a的作用是什麼?

幫助找到對方的閘道器ip位址與埠,用於資料互動。

問題為什麼網路穿透資料傳輸採用udp協議?tcp可不可以?

實現、應用難易角度考慮:

1)udp:只需要知道對端的ip和埠,呼叫send對端就可以收到資料,實現容易。

2)tcp:使用tcp也可以,但是比較複雜。因為它是基於連線的,滑動視窗的值都應該對應得上的。

用資料傳輸的一般不用tcp,但是用於通知公網ip位址和埠用於傳輸的可以用tcp。

P2P技術與應用

p2p即peer to peer,稱為對等連線或對等網路,p2p技術主要指由硬體形成連線後的資訊控制技術,其代表形式是軟體。技術背景 p2p起源於最初的聯網通訊方式,如在建築物內pc通過區域網互聯,不同建築物間通過modem遠端撥號互聯。其中建立在tcp ip協議之上的通訊模式構成了今日網際網路的基...

基於以太坊的去中心化 P2P 交易協議

在swap中,我們一直在思考發展以太坊代幣交易生態系統的最佳方式。今天,我們滿懷喜悅,發布swap 供各位同仁參閱 swap white 我們的設計的背後有兩種力量 去中心化 p2p 點對點 去中心化允許使用者用一種 去信任化 的方式來交換價值,而非依賴於乙個中心機構的安全性 道德觀和盡職調查。p2...

P2P技術原理

組織結構 點對點技術又稱對等網際網路絡技術,是一種網路新技術,依賴網路中參與者的計算能力和頻寬,而不是把依賴都聚集在較少的幾台伺服器上。p2p網路通常用於通過adhoc連線來連線節點。這類網路可以用於多種用途,各種檔案分享軟體已經得到了廣泛的使用。p2p技術也被使用在類似voip等實時 業務的資料通...