不管在什么情况下,很多人总会下意识地把“互联网碎片化”想得很糟糕。然而,有时候我们不能给事物简单打上对或错的标签。
在ICANN举办的第75届会议上,大家谈到“互联网碎片化”(Internet Fragmentation)的相关话题。不管在什么情况下,很多人总会下意识地把“互联网碎片化”想得很糟糕。然而,有时候我们不能给事物简单打上对或错的标签。
互联网的诞生由市场驱动
1980年,当时的计算机系统往往由大型机和与之相连的外部设备(例如数据输入设备、打印机等)构成,计算机厂商们售卖各自研发的计算机和相关设备。每个计算机厂商推出的产品都自成体系,而且不同厂商的设备间不一定互相兼容。
假如人们从某个数字设备企业(如IBM、Univac或DEC)那里购买了一套系统方案,那么,他之后大概率只能购买这个厂商的配套设施。如果他想换用其他厂商的某个设备,代价则是更换几乎所有以前买过的设备。因此,更换设备厂商的巨大代价,成为相关企业“锁住”顾客的有效手段,而用户当然不想被“绑架”。很快,用户就会对这种被老产品“挟持”的局面厌烦透顶。
当时,越来越多的人意识到,需要建立一种开放标准来促进计算机领域的发展:只要不同产品都遵循这个开放标准,就应当能互相兼容。这样一来,用户可以用不同厂商的产品组成他们的计算机系统,即便不同厂商的产品之间达不到百分之百的“无缝衔接”,至少也能满足基本的使用需求。
实际上,并没有什么权威机构强力推行计算机行业建立开放标准,但是开放标准的诞生顺应了用户的需求,也引导着计算机厂商改良他们的产品。因此,开放标准被广泛采用是市场驱动的结果,从各自的立场出发,用户和计算机厂商都愿意采用开放标准,因为这对他们有利。事实上,互联网的诞生过程也是如此,人们自愿采用同一套技术标准。在此过程中,既没有强制性规则,也没有强力约束的机制。
互联网用户具有不同偏好,指引着数字设备和服务提供商的行动。每个服务提供商都想满足用户群体的需求,并使服务适用于所有用户。因此,在互联网中,不同用户对某个网络服务进行相同操作会获得同样的结果。这样一来,厂商和用户都具有通用的访问能力。
与通用网络环境相反,碎片化的网络环境体现着一种冲突:不同用户访问相同的服务却可能获得不同的结果。
例如,我在我的浏览器中输入一个网站地址,就可以正常访问该网站,但是你在你的浏览器中即使输入完全相同的地址,也有可能无法正常访问它而被导向完全不同的网站与服务。这种碎片化结果对互联网的价值和实用性是巨大打击。很多情况下,上述网络通信障碍都是意料之外的暂时结果,而当我们谈到“互联网碎片化”时,往往指的是对服务一致性的蓄意破坏。
作为防护手段的碎片化
碎片化可能体现为多种形式。许多国家政府要求其国内的互联网服务提供商对网络进行限制,阻止用户访问某些内容。这种管控也可能应用于内容发布者以及与之相关的内容分发网络。
从国家战略的角度来说,关键网络基础设施对外国的依赖值得关心和担忧。如今地缘政治愈加紧张,网络敌意暗潮汹涌,互联网不免成为国家战略的关注重点。然而,这种国家干预行为的结果,引起了人们对互联网环境的质疑:互联网还具有开放性、一致性和全球可访问性吗?
这样的国家干预措施,可能不仅局限于限制人们访问某些网站和内容以及限制人们使用国外运营的基础设施。
对于网络安全问题,碎片化也是一种应对措施。如果一个网站的唯一功能是用各种恶意软件传染终端主机,那么DNS解析器为什么还愿意帮它解析域名呢?
一些DNS服务提供商已经把对不同网站的区别对待当成自身的竞争优势,例如QUAD9的开放式递归解析器。人们向它输入恶意软件信息,生成一个DNS递归解析服务的黑名单,进而不向相关网站提供解析服务。解析器假设,如果用户使用这些网站提供的服务,那么就会暴露在恶意软件、计算机病毒以及其他潜在的风险中。这种以保护用户为目的的碎片化措施,在互联网通用性的大背景下是好还是坏?
这个争论已经持续了几十年。起初人们建立了基于IP地址的黑名单,用于防范洪水猛兽般的垃圾邮件。如果网络服务提供商能够识别发送垃圾邮件的源头,并禁止所有对这些远程服务器的网络访问,互联网会因此变得更好吗?还有热心的志愿者们维护网络黑名单,然而,把一个IP地址加入或移出黑名单的条件往往是不透明的、主观的,很难确定这种形式的碎片化是否有效。
实际上,垃圾邮件的洪流似乎仍在继续。如果碎片化作为应对措施是为了减少垃圾邮件,那么似乎其效果并不明显。
今天,互联网碎片化,或者说对互联网访问的限制,如同实体商品的贸易限制,对全球经济产生了巨大影响。关于碎片化的讨论也出现在以通用互联网基础设施为主题的论坛中,尤其是互联网域名和地址空间的管理方面。
在此情况下,关于互联网碎片化的讨论聚焦于定义规范和保障措施,并适用于所有服务提供商,以使用户体验一个单一的、无缝衔接的互联网。在此背景下,碎片化与唯一性和全球可访问性背道而驰。下面,我将从互联网名称和地址空间的角度来进一步讨论互联网碎片化这个话题。
互联网地址空间已经碎片化了吗?
尽管这听上去是个简单的问题,但它的答案并不一目了然。
首先,我们可以看到,IPv4的地址空间一共含有43亿个独立的32位地址。但是各种对互联网规模的估测结果表明,互联网上大约有50亿用户,而且可能有300亿到400亿个各种类型的设备。显然,并不是每一个用户都在使用一个唯一的、稳定不变化的IPv4地址访问互联网,而且那些各种各样的设备不可能都具备这样的联网条件。在技术上,解决互联网超载的办法是地址共享,在架构上则是使用用户/服务器架构:用户与服务器建立连接,而非与远程用户建立连接。
那么从点对点的互联网模式的角度看,这种IPv4地址空间的使用方式是不是一种碎片化呢?显然,这确实是某种程度的碎片化。
然而,让我们再进一步。这种碎片化对用户造成不良影响了吗?显然没有!这种用户/服务器架构顺应了互联网的商业规律,满足了互联网的安全原则。尽管不同用户之间可能轮换或共享IP地址,但只要服务交付点的IP地址是固定的,那么对用户而言,整个互联网就仍然是连通的。目前,我们还在研究当互联网服务交付点不再有固定地址时互联网的运行机制。
那么IPv6是否解决了我们在IPv4中看到的碎片化问题呢?也很可能没有。
尽管IPv6地址空间比IPv4大得多,但不是每个用户和每个服务器都能通过IPv6访问互联网。如今,互联网上只有大约1/3的人能使用IPv6。如果我们期待用IPv6实现一致的网络连接,那么未能连接剩下三分之二的人的事实无疑挫败了这个目标。
如果我们把问题限制在IPv6范围内呢?会不会有一个不存在碎片化的整体网络空间?结果也并不一定。
IPv6地址对于终端用户而言并不固定。如果终端用户保持固定的IPv6接口标识,那么当他们的设备在连接外网时经历了一些变化(例如从固定连接变为移动连接),就会导致隐私泄露的风险。
最近,大多数IPv6用户使用私有IP地址,故意混淆这种低阶64位接口标识符以便抵抗流量追踪。也有人观察到,IPv6并不是一个完全连通的网络。可能你拥有一台连接到IPv6网络上的设备,而我也连接到了IPv6网络上,然而我们之间却不能互相发送IPv6数据包。
在用户/服务器架构中,我们都以“用户”的身份去向对方建立连接,然而在用户到用户的路径上可能有一个网络防火墙拒绝了TCP传入连接。可能你的IPv6地址需要通过/64这种比较精细的路由才能到达,而我所在的网络会拒绝太精细的前缀(例如小于/48),也可能是我们双方各自所在的IPv6子网并没有通过IPv6路径连接起来。
从地址的角度看,IPv6是碎片化的。但这不一定会妨碍用户获取互联网上的服务,至少现在不会。其原因在于,根据IPv6双栈过渡计划,在任何情况下,两个IPv6用户的连接中任何断开之处都能用IPv4无缝衔接。互联网服务环境已经设法成功绕过这些问题。
那么,互联网服务环境是如何应对地址空间的碎片化问题的?这依赖于一个连通的、无碎片化的域名空间。如果问题是互联网基础设施中的碎片化水平,那么应当重点关注的是:互联网域名空间在碎片化方面有何表现?
互联网域名空间已经碎片化了吗?
尽管IP地址是IP数据包的一个组成部分,互联网命名系统却是一个应用架构。它的应用本质上定义了域名空间。一组合作运行的应用程序当然也可以定义它们自己的域名空间,但是这会与域名系统(Domain Name System,简称DNS)定义的域名空间不同。我们曾经在20世纪80年代的碎片化的网络环境中见过这个现象,当时每个连接的网络领域都使用自己的域名空间,且这种情况将来也可能出现。
尽管这不是基础互联网技术的内在成分,但是我们都遵循共同的约定,同意使用唯一的域名空间和解析机制。这样做的原因很简单,用户们想要使用一个通信网络来互相传递可访问的资源。为了实现这一点,我们当然需要一个共同的域名空间。如果没有互联网域名空间上的共性,我们就无法互相通讯。互联网域名的一致性符合每个人的利益,符合市场规律,也是域名空间统一、凝聚的最重要原因,因此,就不必再确立保障域名空间无碎片化的强制规则。
如果在互联网内单一的互操作框架下工作符合每个人的利益,那么我们还需要考虑碎片化吗?有什么原因会导致人们打破这种环境呢?
答案之一是,有些服务提供商想要突出自己的竞争优势。为了把自身与其他商家区分开以获取更大的市场份额,他们的产品会在某种程度上偏离已有的技术规范和服务规约,而他们的产品可能不易与用户已安装的产品互操作。换言之,市场上的新兴企业为了把他们的产品和现有企业的产品区别开,可能会导致碎片化的产生。
在其他情况下,这是对现任者设置的隐形障碍的反应。关于域名和访问所谓的“顶级”域名空间,申请者要么是一个公认的国家,要么愿意支付一笔不小的费用,并且等待不确定的时间。如果你不愿意接受这些条件,那么你也可以进入域名碎片化的世界,在另一个域名空间内选择域名(例如TOR、Etherium或GNU名字系统)。从这些替代框架中提取的域名可能更容易获得,但也存在隐患,那就是很少有用户运行支持替代性域名空间的应用,因此,在更容易获取的域名与更容易被访问的域名之间存在着一种权衡。
为什么服务提供商愿意从碎片化的域名空间中获得域名呢?他们不会介意这种域名的可访问性较差吗?
这个问题的答案在于注册域名的低成本。只要服务提供商原来有了一个域名,并且在替代性的域名空间中注册相同或相似域名的代价对服务提供商来说非常小,那么服务提供商参与到这个替代性的域名空间中就没有什么坏处。
此时,随着越来越多的商家基于上述考虑注册了替代性域名,替代性域名空间的运营者希望这种替代性域名空间也会获得越来越多的使用。如果这种趋势持续下去,那么总有一天替代性的域名空间也会占据足够的市场份额,使它从一个碎片化挑战者变为主流域名服务之一。
然而,这并不是一个容易实现的结果。现行的主流域名系统(DNS)从来没有假设它只是众多潜在的域名空间中的一个。DNS根本就没有对不同的域名空间做区分,它规定“使用DNS解析协议,利用IANA根作为解析的源头”。没有“超顶级”域名把不同域名空间的域名映射到不同的解析系统中,甚至不存在一种把给定的域名映射到不同解析空间的机制。由于同一个域名可以用多种不同的方式解析,因此产生不同结果进而引起碰撞的可能性非常高。
某些情况下,我们不得不为限制碎片化付出巨大努力。将Unicode(万国码,一种字符编码方案)引入域名系统以便支持非拉丁语言的域名就是一件非常具有挑战性的事。ASCII(美国信息交换标准代码,一种字符编码方案)所缺少的一切字符在Unicode中都有。
然而,可以使用不同方式来编码相同字符让人感到困惑,相同字形可用不同方式来表达也令人难以捉摸。况且,大小写的区分也缺失了。事实上,域名系统本身不是8位清洁(指一种编码方案,在编码字符时,用到了一个字节中的全部8位,而没有把某些位设置为标志位、特征位等)的。可以采取的措施包括给每种语言的字符集采用新的域名系统环境,或者采用某种办法把Unicode约束到ASCII编码中去。
第一种措施显然会给域名系统带来碎片化的问题,第二种措施则会把应用的行为登记到域名系统中,这是域名系统一直以来尽力避免的一件事。
当前,IDNs(Internationalized Domain Names,国际化域名)的解决办法并不理想。它允许用截然不同的编码序列表示视觉上相同的字符串,从而编码为不同的域名,这使应用程序环境中的用户表现存在很多漏洞。然而,人们赞成IDNs的主要原因是它保持了域名系统的通用性,避免了碎片化。
截至目前,阻止域名空间碎片化的努力基本上是成功的,因此我们能在一个通用性的域名空间中运行互联网。然而,这个结果是有代价的。当前,运营互联网域名系统基础设施的企业数量很少,规模却很大。从长期趋势上来看,它们正变得越来越少,单个公司的规模也在变得越来越大,这无疑导致了中心化。现有企业对域名系统的统治力越强,各种形式的变革就越难。然而,人们更倾向于哪种结果,目前还没有确切答案。
注:本文目的为从技术角度出发为读者传递更多信息,并不代表本平台完全赞同其观点
来源:https://circleid.com
作者:Geoff Huston
翻译:邢云鹏
责编:项阳