區塊鏈
挖礦,比特幣,EOS,以太坊

IPFS: NAT traversal(NAT穿越)

138

微信圖片_20180621152449.jpg
IPFS是一個p2p網絡,那么一定繞不開的一個問題就是NAT穿越。之前的文章里面也提到過IPFS網絡連通性使用的ICE NAT穿越框架,本文簡單介紹一下什么是NAT。
為什么有NAT技術?NAT主要用來緩解全球的IPv4地址不夠用的情況,IPv4地址最多能提供2^32個(4,294,967,296),現在IPv4已經變得非常緊張了,IPv6發展了這么多年,一直沒能取代IPv4的地位,IPv6可以容納的地址數量是是2^128,可以給地球上的每一粒沙子分配一個ip地址(萬物互聯的物聯網必須要使用ipv6)。
什么是 NAT(Network Address Translation,網絡地址轉換)?NAT允許內網計算機共享一個公網ip地址(這樣就可以達到節約ip地址了作用了),NAT對于p2p網絡、VoIP電話、視頻游戲等需要客戶端作為服務端進行通信的應用非常重要,如果沒有NAT這些應用,甚至都不能正常工作。
首先放一張圖(圖是小編隨手畫的,好像挺難看),這是我們現在大多數使用路由器的網絡結構。路由器右邊是內網,計算機A、B、C使用的是內網ip,路由器左側是公網,路由器使用的是公網IP,通常情況下,公網計算機M是無法訪問內網計算機A、B、C的。
微信圖片_20180621152452.jpg
NAT大致分為兩大類:圓錐形和對稱型

一、圓錐形又分為三種1.Full Cone:計算機A鏈接公網計算機M后,NAT打開一個端口,以后公網上任何發送到這個端口的數據(不限于M)都可以訪問到A,這個時候任何從公網上發過來的數據都可以通過該端口到達內網計算機A,只限制的端口,沒有限制ip地址。
2.Address Restricted Cone:內網計算機A通過路由器鏈接了外網計算機M,NAT打開一個端口,這個時候外網計算機M(只限于M)可以通過任何端口和內網計算A進行通信。限制了ip地址,沒有限制端口。
3.Port Restricted Cone:內網計算機A通過路由器鏈接了外網計算機M,NAT打開一個端口,M可以通過這個端口跟A進行通信,這種即限制了ip地址又限制了端口。
二、Symmetric NAT(對稱形)對稱型NAT和圓錐形不同的地方在于:1.圓錐形NAT對于同一臺內網計算機,無論與那一臺的外網服務器通信,NAT所分配的端口不變。2.對稱型NAT對于同一臺內網計算機與不同的外網計算機通訊會分配不同的端口號,對稱型NAT一般不能用于p2p軟件。
NAT的實現有很多種:STUN:Session Traversal Utilities for NATTURN:Traversal Using Relays around NATICE: Interactive Connectivity Establishment……
具體的協議工作方式不在本文的談論范圍,有興趣的讀者可以參考一下資料https://en.wikipedia.org/wiki/NAT_traversalhttp://www.eyeball.com/standards/stun-turn-ice/
最后是我們的重點:IPFS 和 ICE NAT traversal
IPFS網絡采用是 ICE NAT traversal框架來實現的NAT通信;
ICE不是一個協議,而是一個框架(framework),整合STUN、TURN和其他類型的NAT協議,該框架可以讓客戶端利用各種NAT方式打通網絡,從而完成NAT通信,這對于IPFS的p2p網絡非常重要。
根據小編的測試結果:IPFS的p2p網絡適應性非常強,在各種復雜的網絡環境下都可以輕松實現NAT通信,以后使用ipfs和挖礦的讀者在網絡設置上面會減少很多麻煩了。


 

贊(0)

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
p3试机号99