链网设计的基要属性之二:可控性 | 火星号精选
区块链互联网系列 (7)
2019年3月22日
网络技术真的像我们所知的一样好吗?
一场无声的革命正在推翻网络行业现有的技术路线。我们不该被许多新技术亮丽的新闻稿所迷惑, 而相信网络技术不仅健康且蓬勃发展。12年前,斯坦福大学开始了这运动,这是个名为“清洁板岩”(Clean Slate) 的互联网项目。他们的信念是当时的互联网存在重大缺陷,需要一种全新的设计理念和设计途径, 如果传统的渐进和向后兼容的风格不被打破,互联网就不会真正有效率。
这运动后来发展成两个相连趋势: SDN (software-define networking) 和NFV (network function virtualization)。如今,谷歌已经为其庞大的广域网 (WAN) 设置了整体化和网络内控制。我们将用“整体化”来表示整个网络操作或部署的概念。整体化控制不必是中心化控制,但要考虑全部网络状况。许多SDN的支持者实际上相信中心化控制,但我们反对:中心化带来太多问题,系统可以在非中心化控制的情况下进行全系统控制。
因着SDN,越来越多的专家和公司考虑在WAN网络中构建电路交换或虚拟电路网络。几年前,这样的发展是不可想象的,因为IP是数据报技术,而不是路径技术。今天一些公司,包括谷歌,正在考虑应用整体化流量工程。比如将max-min速率分配应用于全球网络,甚至应用多商品流优化 (multi-commodity flow optimization) 计术来全局控制所有流量的速率和路径。对于许多人而言,这种发展走的是历史倒车,因为这些技术都是20-40年前的旧技术。
为什么呢?谷歌给的原因如下:
-
网络技术多半是专有扩展, 专有管理,而缺乏便携性
-
协议变来越复杂
-
差不多所有协议仅提供有限的控制
从用户的角度来看,以下的缺陷很清楚:
-
QoS (服务质量, quality of service) 在40年内从未真正实现过,无论我们尝试了什么
-
无论带宽有多大,加载网页仍有令人不快的延迟
-
尽管每一代新技术都能解决一些旧问题,但总会带来新问题,并增加成本;更糟糕的是,一些旧问题仍然在那里
从我们的角度来看,从表面上看,问题是协议和标准有太多重叠,矛盾而且无效。
从根本上说,互联网受到以下3个原因的困扰:
-
太多间接无法直接改变错误行的机制:缺乏可控性
-
太多信息不充分的反馈机制:缺乏可观察性
-
太多不协调甚致相互冲突的协议和机制: 缺乏可结构性
互联网问题可以从对MEC (mobile edge computing) 和CDN (content distribution network) 看出来。MEC 和CDN 其实是不合理的技术之一。这里的想法是将内容推送到用户端以获得高吞吐量和低延迟。但是他们忘了这从根本上违反了互联网目的。互联网主要目的之一是共享;远程服务器可以向各地用户提供内容服务。但MEC和CDN的技术却将服务器从网络的远端推送到用户端以获得QoS。结果是:在用户端复制服务器不仅增加成本,还使原始服务器和用户之间的网络变成无用。但今天,5G要大规模部署MEC,CDN业务蓬勃发展;这意味着,互联网共享远程服务器资源的目标是失败的。
网络行业有个真实和隐藏的病症:从一开始,互联网的目标之一就是允许企业赚钱,这也造成网络公司推出新技术的真正动机,是为赚钱而不是让普通民众能更有效率地使用网络。
如何从根本上改善互联网
互联网的历史给了我们很好的教训,并非所有互联网的设计都是合理的。我们常以为每新一代互联网都解决了旧问题,其实不然。真相是:大部分改进来自通信和CPU的速度的提高。就投资回报而言,目前互联网的渐进式改进其实划不来。
如果要从根本上提高互联网质量,我们必须把两门学科加在一起来: (1) 控制理论 (control theory) 或称系统科学 (systems science), (2) 计算机科学 (computer science)。控制理论是经过时间考验的;事实证明,差不多每一个领域都能应用控制理论,而且结果都是高效率而低成本。这包括各种传统工业,生态系统,运输系统,生物系统,经济系统等。不幸的是,由于历史原因,计算机科学与控制理论没有太多互动。事实上,控制理论能解决ICT行业的许多问题,已经是半公开的秘密。谷歌,微软,许多网络公司,和美国国防部都试图采用同样的方法。
从控制理论和计算机科学,我们可以推出3个属性做下一代互联网的基础。这三个最基要的属性也戴表3个最基本的设计原则:可观察性 (observability),可控性 (controllability),和可结构性 (structurability)。在这三个属性中,可观测性和可控性是控制理论的两大支柱,而可结构性是计算机和网络结构 (architecture) 的核心理论。
为了实现真正飞跃式的改进,新的区块链互联网必须遵循以下3个基要属性:
1. 足够可观察性:在适当的位置,选择足够的反馈信息,并将其发送给控制器的能力
2. 足够可控性:在适当的位置,选择足够的控制,并将其发送到控制致动点的能力
3. 足够可结构性:在足够的可观察性和足够的可控性之间,进行适应性权衡的能力
根据这3个属性,互联网的3个基本设计原则都有缺陷,因为缺少至少一个或多个关键属性:
1. 端到端 (E2E 或end-to-end)设计:缺乏可控性,可观察性,和可结构性
2. 数据报 (datagram) 路由:缺乏可结构性和可控性
3. TCP传输速率控制:缺乏可控性和可观察性
我们将根据这三个属性来解决互联网基本原理的问题。
之前在链网第6篇[1-6]中,当完全可观察性不可能或太昂贵时,我们提出了足够可观察性的新概念。本文中,当完全可控性不可能或太昂贵时,我们也提出一个类似的新概念:足够可控性。
在本文中,我们将重点关注互联网的可控性。
可控性和足够可控性
可控性有许多定义,一简单定义是:通过适当输入,在有限的时间内,将动力系统从任何初始状态引导到任何最终状态的能力。在大多数系统中,可控性不是系统的原始属性,外加的人工控制机制是必须的。理论上,可控性在数字系统中比在非数字系统中更容易实现。原因是在数字系统中,设计者通常只需要植入一些软件控制机制。
以上的定义的可将称为完全可控性。完全可控性虽好,但通常是不切实际的,因为它实施起来可能太昂贵或实际上是不可能的。在大多数情况下,甚至没有必要实现完全可控性;例如,迫使数据包以最差的路径通过网络以引起最大的拥塞。
因此,在实践中,我们所需要的只是部分可控性:迫使系统进入所期望的状态,即原设计目标。这种有限的可控性,我们称之为足够的可控性。我们可以这样定义它:假设系统在一组允许状态内启动,则存在一个控制决策,使系统状态移动到一组所期望的状态之内。
互联网缺乏可控性
当我们将互联网视为一个控制系统时,我们感到震惊。因为从基础开始,互联网就被设计成没有完整可控性。问题出在端到端的设计原则:E2E设计只考虑连接的2个端点,互联网的其余部分被视为一个黑盒子。然而互联网是一个互联的系统,组件系统的性能明显受到其他连接组件系统的影响。假设互联网的其余部分表现良好,又受到各种协议和标准的约束,这样互联网的表现可能是好的,整个系统也许是可控的。然而,互联网其余部分的良好表现仅仅是一个假设,而且永远不可能实现。
现在让我们看看互联网的一个基础,即IP路由。它假设网络中所有的路由器根据一致的路由表来发送数据包。但实际上,在大型网络中,保证全网络路由表的一致性是不可能的。更糟糕的是,现代路由器允许添加一些路由规则 (routing rule)。通常这些规则只是个补丁,添加它们的的时侯,工程师并不做详细的事前分析,全网络与分析与测试几乎完全不做。不要忘记,全系统分析和测试违反了E2E设计。这些规则通常解决一个问题,但同时又造出一个新问题。更糟糕的是,在系统有一些变化或更多规则被修改了之后,新问题才浮现。在那时,最初添加的规则已经被遗忘了;虽然在添加新规则之时,这些新问题根本不存在。因此,添加规则的IP路由系统是不可控制和不可预测的。这是个基础性问题,很难解决。解决这问题的方法很多,其一就是应用控制理论,让严格的数学分析来保证和证明可控性和可预测性。
让我们用MIT阿里扎德教授 (Alizadeh) 提供的数据中心例子[7]做示范(图1):
图1: 路由规则示例
在此图中,为了保护数据中心安全,工程师在主路由器 (R1, R3)上输入了2个路由规则:在芝加哥数据中心 R1:“丢弃nyc-FO - > *”,在nyc数据中心R3:“丢弃chi-FO - > *”。Chi代表芝加哥数据中心,而nyc代表纽约数据中心,FO代表前台办公室。
图2: 路由规则导致问题
在图2中,该公司增加了一个nyc和chi数据中心之间的直接链接。但是,工程师忘记修改R1和R3的路由规则。由此,从chi前台的数据包可以直接进入nyc数据中心,从而违反了数据中心的安全规则。
端到端原则也是商业方法
端到端原则也是一种商业方法而不仅是控制系统方法。E2E意味着系统设计者放弃全系统控制,而仅依靠端点的控制系统。E2E允许各类型的企业参与构建互联网,这导致互联网呈指数级增长,而使许多公司获得巨额利润。
如果互联网是由传统电话公司来建设,那么他们就会采用不同的方式。首先,由于整个系统都在他们的控制下,他们必须优化整个系统,否则如果使用端到端方法,他们的成本会增加而性能会降低。这是显而易见的,因为整个系统(整体)优化总是优于组件(局部)优化。
其次,因为电话公司是受监管的企业,他们对整个国家负责:他们要确保互联网能够长期为人民服务,不能只为公司的利润而服务。40年前,美国选择以局部优化方式来发展互联网,藉E2E容许各种企业在不考虑长期和整体效率的情况下来构建组件。这里面有商业考量,这方式对各类企业好处很多;这样的互联网就会反复出现各种问题,他们可以不断创造问题和解决问题的商业循环,藉此而赚更多钱。但从长远来看,这种做法使总体成本更高,用户必须长期承受互联网的低性能。
可控性大型设施必整体化
随着互联网発展,一些网络巨头就出现了,如谷歌,脸书,亚马逊,微软,等等。这些大公司开始感受到与电话公司相同的压力。比如,在2010 谷歌成为了地球上第二大互联网载体。以谷歌为例,他们发现了一个奇怪现象:单位数据成本随着额外的规模而上升,这与规模经济的正常商业逻辑相矛盾。
谷歌认为基本问题是:
-
现今的互联网协议和设备被设计为多盒子的集合,但不是整个系统
-
现今的互联网协议和设备以节点为中心,但不是以系统为中心
-
现今的互联网协议和设备的设计是为了提高可行性和适应最坏情况,而不是最佳性能
因此,问题的关键是当前的互联网协议和设备不能使整个系统可控。端到端原则使得整个互联网无法从事全系统控制和优化,而分布式控制使得所有控制机制不能协调。结果是所有新技术都只解决一些症状,但不能根治全系统真正的病因。谷歌吸取了教训,因为他们的系统大到一个程度,他们必须进行整体化控制,以便取得最低成本和最高效率。
我们也可以从类比中吸取教训。互联网是个大型基础设施,而所有大型基础设施都做整体化的系统规划,系统管理,和系统控制,如:全国运输系统,全国电网系统,和全国电信系统。与互联网最相似的国家基础设施是国家交通系统,而所有国家的交通系统都是集中规划和管理的。虽然互联网也是一个大规模的基础设施,但人们总认为整体化控制和整体化管理是大逆不道的。但这种想法却是一个盲点。
谷歌问题的核心在於分布式控制和端到端设计缺乏可控制性和确定性。这就解释了为什么单位成本随着规模的上升而增加:如果不实施整体化控制和管理,那么谷歌总要假设最糟糕的情况,而做过度供应。
足够可控性应用1:路由
在传统的OSPF路由算法中,网络拓扑被泛洪到OSPF区域中的所有节点。然后,每个节点必须基于拓扑计算到所有目的地的最短路径,见下图:
图3: OSPF分布式路由计算
OSPF存在许多问题。 第一:来自其他节点的反馈成本很高,因为每当拓扑有变化时,每个节点都必须将新拓扑信息对整个区域进行泛洪。第二:在每个节点做高度重复的计算,因为在每个节点都要算所有点对点的最短路径。第三:在每个节点的路由决策永远不是最优的,因为计算不考虑全网络实际情况。第四:路由是不可控的,因为每个节点计算的最短路径可以随时改变,也没方法来指定某特定路径。所以从全系统的角度来看,OSPF是一种低效且浪费的路由控制。从控制的角度来看,它缺乏全系统的可控性。
斯坦福大学着名控制理论教授斯博伊德 (Boyd) 最近发表了一篇论文[8],该论文使用了基于多商品流优化的全系统路由。因着使用整个系统优化数据包的传送,上述4个OSPF相关的问题都消失了。Boyd使用一混合电路交换和数据包路由的网络做模拟。他的模拟网络如下所示:
图4: Boyd混合电路交换分组路由网络
他的方法仍然不构成完全可控性,因为他不允许数据包以完全任意的方式通过网络。但他的方法可以被认定达成了足够可控性。他的模拟结果如下所示:
图5: Boyd足够可控作法的数据包丢弃概率
一个重要的路由性能指标是丢包概率。当网络负载增加时,数据包丢弃概率将上升。在负载率1.33和1.67之间的负载水平,最佳方法RT-OptRR和HIST-OptRR的丢弃概率比OSPF小10倍。 这意味着,当应用整个系统优化时,足够可控性可以实现巨大的性能改进。
足够可控性应用2:流量控制
在互联网中,协议难以分析和优化,因为协议由分布在不同位置的许多设备实现。所有协议都被绑在4种限制中:本地/远程网络API,本地/远程操作系统,路径中的网络情况,以及许多协议和标准的要求规范。在网络环境中,即使在本地节点内,2个设备之间的所有操作都被会延迟,而且延迟大多不可预测。由於延迟不可预测,软件能进入无限多种角落情况。因此,证明一个协议的正确性通常不可能。这就是为什么专家说网络编程很难。这也是为什么网络系统的完全可控性实际上也不可能。
但幸运的是,在数字系统中,我们通常有足够的自由去选择有限形式的可控性来满足我们的目的。在下文中,我们将使用TCP作为示例。在TCP中,数据包发送受到着名的ACK时钟机制的限制,如下图所示:
图6: TCP ACK时钟机制
根据ACK自计时,发送方不能改变其发送窗口(缓冲区)大小,除非它从接收方收到一个ACK。这是TCP设计师自我强加的条件,原因是发送方只应发送接收缓冲区能接受的数据量。从控制理论来看,完全可控的TCP通道应该容许发送方随时发送任何数据量。所以TCP通道不是完全可控的。但TCP已经在互联网上服务了大约35年。
因此,有限的可控性仍有其实用性,但问题在于有限可控性是否带来好性能。众所周知TCP在现代网络中性能不佳。今天,几乎在所有情况下,接收缓冲区空间不是瓶颈,因此,ACK时钟已径成为一个过时的自我设限,阻止了TCP实现更高的性能。
谷歌认识到ACK时钟的局限性,设计了一种基于瓶颈带宽的发送机制。这新机制实现於谷歌的BBR (一种TCP变体)[9],如下图所示:
图7: 谷歌 BBR数据包调步机制
BBR选择了一种新的有限可控性,允许发送方根据估计的瓶颈带宽发送数据,而不再受ACK包的限制。而且发送是根据既定速率来定时。这种机制具有足够的可控性:只要遵守既定速率,发送者就可以随意发送。虽然这种可控性有其限制,但它实现了BBR设计目标,因此也是一种足够可控性。
根据谷歌,BBR实现比 TCP数据速率高出25倍的改进。这表明足够的可控性是一个有用的概念。关键是选择适当的可控性来满足设计目标。
然而,BBR的足够可控性仍然不够好。正如我们在之前的文章中指出的那样,BBR具有高重传率;与其他TCP替换产品相比,其对TCP改进25倍比不上FileCatalyst 的1000倍改进。这表明我们需要仔细选择足够的可控性。足够控性的选择会对最终产品的性能产生很大影响。
参考文献
[1]. 蔡维德 & Kevin Tsai,“TCP 端到端设计又旧又多毛病:区块链互联网系列 (1)”
https://mp.weixin.qq.com/s/AyDG063nq7FKy9MEKZOxfg
[2]. 蔡维德 & Kevin Tsai,“区块链互联网需要新协议:区块链互联网系列 (2)”
https://mp.weixin.qq.com/s/vvA4u7LiIMfkzCTI04VSzw
[3]. 蔡维德 & Kevin Tsai,‘’链网需要网内控制和监控:区块链互联网系列 (3)”
https://mp.weixin.qq.com/s/u8r1NM0GderFDVsScw6Q4A
[4]. 蔡维德 & Kevin Tsai,“链网会是复杂网络,掌控时间将是关键技术:区块链互联网系列 (4)”
https://mp.weixin.qq.com/s/slRinMxNnhdW5BTRBLhaFg
[5]. 蔡维德 & Kevin Tsai,‘’链网应考虑采用路径模型:区块链互联网系列 (5)”
https://mp.weixin.qq.com/s/UZlod05SU4qSOS4Dh_bjlQ
[6]. 蔡维德 & Kevin Tsai,“链网设计的基要属性之一:可观察性区块链互联网系列 (6)”
https://mp.weixin.qq.com/s/3NrzTxkn7yRMouDOWiZVTA
[7].Mohammad Alizadeh “Lecture 14: Software Defined Networking”
https://people.csail.mit.edu/alizadeh/courses/6.888/slides/lecture14.pdf
[8].Ping Yin, Steven Diamond, Bill Lin, Stephen Boyd, “Network Optimization for Unified Packet and Circuit Switched Networks,” 9 Aug 2018
https://arxiv.org/pdf/1808.00586.pdf
[9].Neal Cardwell, et al. “BBR Congestion Control: IETF 100 Update: BBR in shallow buffers,” Nov 13, 2017
https://datatracker.ietf.org/meeting/100/materials/slides-100-iccrg-a-quick-bbr-update-bbr-in-shallow-buffers
作者:
蔡维德
北航数字社会与区块链实验室,天德科技 ,国家大数据(贵州)综合试验区区块链互联网实验室, 天民(青岛)国际沙盒研究院, 赛迪(青岛)区块链研究院
Kevin Tsai
University of California at Irvine 名誉教授,美国麻省理工学院本硕博,区块链网络专家