是时候再次去中心化了:以分布式为生命的互联网如今正在被谷歌、脸书等进行中心化改造

任何研究互联网技术的人都很清楚分布式算法对于互联网设计和运维的重要性,路由协议是其中的一个典型例子。

我曾学习过基于链路状态算法的路由协议的工作原理,惊叹于该方法的巧妙:

每个路由器都将其本地网络视图告诉其邻居节点;而他的邻居节点将泛洪这些更新,直到每个路由器都拥有完整的网络拓扑图。然后每个路由器运行相同的最短路径算法以最大程度上确保无环路路由。

正是这种精巧的算法给予我的震撼,以及理解这些算法如何工作而带来的有趣挑战,使我在接下来的三十年里成为了一个“互联网工作者”。

去中心化的想法已经牢固地融入到了互联网的架构中。关于互联网原始设计的权威论文是David Clark于1988年发表的《DARPA 互联网协议的设计哲学》。

在该文中,他提出互联网设计目标必须要优先保证的几点,我们能够找到“即使网络或网关掉线,互联网通信必须能够继续进行”以及“互联网必须允许其资源能够进行分布式管理”等陈述。

第一个目标直接引出网络不能出现单点故障的议题,而第二个目标则更多地说明了网络运营为何必须去中心化。

去中心化的理念

牢固地融入了互联网的架构中

上世纪90年代后期,当时我在开发MPLS的团队工作,我们坚信每个算法都必须完全去中心化。

MPLS流量工程 (TE) 和MPLS-BGP VPN均设计为使用完全分布式算法,没有中央控制点。

就流量工程而言,我们很早就意识到集中式算法可能更接近于最佳解决方案,但鉴于路由最根本的分布式性质,我们找不到任何将这些集中式算法交到用户手中的办法。

最终,集中式算法可以做得更好的思潮在软件定义网络中站稳了脚跟。

谷歌的B4和微软的SD-WAN都找到了一种改进 MPLS-TE的方法,方法是使用集中式路径选择算法,使用 SDN 控制器将集中计算的路径推送到实现分布式数据平面的路由器。

MPLS VPN 现在面临着 SD-WAN 解决方案的严峻挑战,SD-WAN 使用集中控制VPN隧道创建的方法,以提供比MPLS在操作上更简单的解决方案。

许多坚信分布式网络架构的人难以接受SDN,因为集中控制的概念与我们所坚信的关于最佳网络设计实践的一切都大相径庭。

促使我加入SDN 阵营的是,我意识到利用网络社区之外的想法和思路,也可以构建具有集中控制特点的可扩展、高容错的网络。

例如,Paxos和Raft等共识算法位于大多数SDN控制器的核心,这使它们能够扩展和容忍组件故障。

SDN实现了控制逻辑的集中化,而不会引入扩展瓶颈或单点故障等缺陷。并且它产生了实质性的好处:例如能够开放网络范围的API,大大简化了网络配置问题,并为自动化网络供应开辟了道路。

SDN实际上也没有降低互联网的去中心化程度:仍然有成百上千的ISP,域名系统仍然是分散的,自治系统仍然是相互独立管理的。

谷歌、Facebook和Twitter等平台……向数十亿用户展示了一个相当单一的互联网视图

但是中心化有一个值得关注的方面:即那些决定互联网使用人数的超级信息平台。

虽然从技术的角度来看,谷歌、Facebook和Twitter等平台都是经过精心设计的分布式系统,但它们向数十亿用户展示了一个相当单一的互联网视图。

a16z的Chris Dixon的一篇博客文章很好地体现了我们在互联网上所接受的实际服务变得越来越集中这一观点。

我最喜欢的漫画家之一Oatmeal很好地说明了类似的观点:“2021年,人们的社交在互联网上进行。”

Dixon和Oatmeal都指出了将过多控制权交给大型平台的缺点。例如,中央平台可以突然改变政策,让用户远离某些创作者提供的内容。

还有更多技术示例表明,对单一平台的广泛依赖导致互联网服务广泛性的不可用。

例如,2021年的中断事件对依赖CDN的网站(如纽约时报和亚马逊)产生了全球性的影响;几天后,Akamai的一次中断也产生了类似的影响;Cloudflare在2020年的服务失效也是一个影响深远的例子。

Cloudflare有一个有趣的博客,人们在其中讨论了另一个影响较大的中断,这可以追溯到Raft在某些设置和故障条件下未能选出领导者等问题。本质上,分布式算法中的缺陷造成了单点故障。

值得一提的是,Clark在1988年发表的互联网哲学论文中指出:

虽然当路由器和网关出现故障时互联网仍然可以工作,但为满足第一目标,许多服务和网站在它们所依赖的平台(例如 CDN)出现故障时将失效。

实际上,单点故障已在不知不觉中被引入。虽然互联网的分布式管理仍然存在,但我们所依赖的大部分服务都由少数实体所管理的。

其中一些问题相比来说更容易解决,Oatmeal的漫画指出,订阅电子邮件服务是绕过“内容守门人”的一种方式。也许开始使用多个CDN提供商将成为最佳实践。

据称,区块链可能会导致互联网更加去中心化。去中心化金融是区块链如何分散历史性集中职能的好例子。

不可替代的代币(NFT)为艺术家和创作者在没有中央实体(唱片公司、流媒体服务、拍卖行)的情况下接触他们的观众提供了可能的途径。

与此同时,人们对于区块链和加密货币超越当前投机阶段的长期潜力,存在大量合理的怀疑。

随着控制数十亿互联网用户的几家大型互联网公司的崛起,互联网发展的钟摆似乎正在朝着中心化的方向努力,如果不是开始向相反方向摆动的话,这个进程不会显示出放缓的迹象。

去中心化是互联网架构的支柱,是其成功的基础,我希望我们迄今为止为互联网去中心化所做的努力至少有一些会成功。

作者:Bruce Davie,是Computer Networks: A Systems Approach和相关的Systems Approach系列书籍的作者之一

翻译:杨望、马鸣宇

责编:郑艺龙

(0)

相关推荐