时间:2023-07-28|浏览:176
在我们日常上网使用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的架构将在下文进行解析,但由于篇幅有限,我们将在后续文章中进行详细介绍。