時間:2023-07-28|瀏覽:265
在我們日常上網使用APP刷朋友圈、微博時,我們都在使用HTTP協議。HTTP是一種基于TCP/IP的計算機應用層協議,從服務器將超文本數據傳輸到本地瀏覽器,然后本地瀏覽器或APP進行渲染呈現給用戶。這種網絡環境構成了CS或BS架構,最終注入了像BAT這樣的大型網絡服務提供商。
互聯網平臺提供的網絡服務經歷了三種模式的迭代歷程。第一種模式是集中化,例如早期的12306,由于無法分散去做,只有一個中心服務群來承載所有買票的流量,導致承載壓力非常大。第二種模式是分散集群,類似于O2O百團大戰時各個網站需要建立不同區域下的服務群,它們的IDC機房會將相同的服務在一個局域內分散,從而減輕了中心服務器的壓力。
這兩種模式都存在一些弊端。在第一種模式中,服務高度依賴中心網絡。大公司或創業公司無法容忍宕機,系統穩定性必須達到99.9%才算合格,而保證這一點需要付出巨大的運維成本。在第二種模式中,數據存儲存在丟失的風險。電纜被挖斷或員工刪除數據都是潛在的隱患。此外,這兩種模式的帶寬成本相對較高,會造成帶寬資源的浪費。
IPFS希望成為第三種模式。它希望構建一個點對點的網絡拓撲,顛覆HTTP所代表的分布關系。IPFS具有內容可尋址的特點,通過文件內容生成唯一的哈希標識,從而在一定程度上節約了空間開銷的成本。HTTP協議使用域名尋址,最終映射到底層的IP地址和文件目錄。它不關心是否存在相同的文件,但內容尋址會通過唯一的標識去訪問,并提前檢驗這個標識是否已經存儲過。如果已經存儲過,則直接從其他節點讀取,無需重復存儲,從而在一定程度上節約了空間。
舉個具體的例子,假設我想要觀看電影《環太平洋》。如果小明之前下載過這部電影并啟動了IPFS節點,他會得到一個哈希指紋b,并將這個視頻文件加入IPFS網絡并發布到公共網關,得到一個稱為/IPFS/b的路徑名。他將哈希指紋和路徑名告訴我,我只需啟動本地節點向該網關發送尋址PIN請求。IPFS會自動索引分布式哈希表中的哈希值,找到指紋b對應的節點列表。由于大的視頻通常不會完全存在一個節點上,可能會分片存儲在其他子節點上,IPFS會并行抓取這些節點列表,并由本地的管理器將它們拼成完整的文件。并行的速度遠遠快于直接下載完整文件的速度,所以我很快就能在本地的瀏覽器上觀看電影,并可以繼續與其他人分享。
IPFS的架構將在下文進行解析,但由于篇幅有限,我們將在后續文章中進行詳細介紹。