HTTP是中心化的超文本传输协议,运行中心服务器给整个网络提供服务。但伴随着互联网的发展和数据的日益膨胀,它的缺点也越来越凸显:
网络拥堵:所有的用户访问数据都会连接中心服务器,当用户量足够大时,很容易出现网络拥堵。随着5G的发展,网络传输可以让网络请求到达服务器的过程变快了,但服务器处理请求能力一定。当网络请求足够多时,服务器是无法正常速度处理数据的,结果你发出的请求响应会延后推迟。这好比高速公路,5G类似高速公路提速了,但车到收费站时,还是得一辆一辆通过,后来的车辆等待的时间会较长。
服务器成本高昂:中心化服务器的维护成本极其高昂。服务器的运行环境及维护工程师的要求极高。同时为了保证网络的稳定性和安全性,很多公司都会有多个异地机房和服务器作为备份。
数据安全得不到真正的保障:数据都被存在中心服务商上,虽然常常存有多个备份的服务器,但这些服务器都出现问题的情况下,整个网络就是瘫痪的。一个网络如果不能正常被访问,那是致命的。同时我们的数据被存储在中心服务器上,如果服务器被黑客攻击或者服务器自己作恶,那我们的数据将会受到很大的威胁。虽然http已经改进成https安全加密模式,但真正的安全还是无法满足的。
网络传输浪费资源:由于大家请求数据都是到中心服务器获取,那么中心化服务器上的流量是巨大的,公司会花费较大资金用于此处。尤其是一些重复文件的传输。比如,鸟叔的“江南style”这个视频,累计被播放30亿次,假设这个文件100MB大小,则播放这个视频浪费300Petabytes(1P=1,000,000GB)的网络流量,按照0.01USD/GB算CDN成本,谷歌将支付300W美金给ISP服务商。但是家用的带宽,大多时间都是闲置的,或者利用率较低。这些家用带宽,就是边缘流量。与其花费大量的流量用于中心化数据传输,还不如好好利用家用的边缘流量。
网络传输速度慢:使用HTTP协议每次需要从中心化的服务器下载完整的文件(网页, 视频, 图片等), 速度慢, 效率低。
为很好的解决上边的问题,IPFS应运而生。IPFS的数据分布式存储,以及容错机制,让每个节点参与并一起维护生态的稳定和安全。接下来,我参照上边问题,分析下IPFS是如何解决这些问题的,以及解决后的效果是什么。
解决网络拥堵问题:IPFS采用分布式存储冗余机制,数据在被存储到网络时,按照大小256k切割成多份碎片,然后备份多份。然后将数据碎片根据需求关系(接下来的内容有讲解)上传到对应的其他节点上。当数据被检索时,最先存储数据碎片的节点就像种子一样,其他节点获得数据后,也会给网络提供数据。也就是网络中,谁有数据就会给网络提供数据。这样数据再热,也不会产生拥堵的情况。
系统运行成本极低:因为没有中心服务器的维护,成本可想而知。
数据的安全性得到保证:数据被切割成n个碎片(256k),然后被存储到网络中的多个节点中,同时还有备份节点存储。这样,任何人截取到的数据都是不全的,仅是碎片而已,无法拼凑出数据。同时碎片备份式存储,当有节点挂机时,备份节点会顶替服务。为了让数据更加安全,存储节点可以设置多个备份。最终保证你数据的安全性。只要存储你数据的节点存在,你的数据将永远不会丢失。
网络传输依靠分布式的节点,很好的利用边缘流量,有效的解决了流量的浪费。
下载速度快, 不再依赖主干网, 中心化服务器:整个IPFS系统是一个分布式的文件存储系统, 那么在下载相关数据的时候, 将从多个节点同时下载, 相比于HTTP从中心服务器的下载速度要快很多, 大家都用过P2P下载(比如: 迅雷, BitTorrent), IPFS下载过程跟这个类似.
IPFS技术目前还处于概念阶段,真正有效的应用很少,所以技术还需要接受各种考验,以及时间的打磨,相信在不远的将来会代替现在的http,当然这也是IPFS的设计愿景。