2. 谈网络

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

作者 王齐

计算、通信与人类文明形影不离。不同的时代赋予了计算不同的内涵,也赋予了通信不同的内涵。在每一个时代,计算与通信总是密不可分,相辅相承。计算离不开网络,反之亦然。在今天,计算领域无法突破冯诺伊曼体系,通信领域面临着香农极限。几乎在同一个时间点起步的IT基础设施的两大领域,计算与通信,也几乎在同一个时间点止步不前。

 

在上世纪的四十年代末期,近代IT历史上,出现了两个对电子与电信行业的发展产生深远影响的事件,香农发现了以自己名字命名的三大定律,香农的三大定律奠定了信息论与编码理论的基础,也给人类带来了一个新的词汇比特(Bit)。与此同时肖克利发明了晶体管,晶体管的出现极大促进了计算与通信的发展。

 

晶体管很快应用在电话系统中,也同时出现在计算领域。集成电路的出现进一步加快了现代的计算与通信系统的演进。在Intel的第一个处理器4004正式推出之后,以太网如影随形。计算与网络两大领域,在硅工业的持续进步过程中,在自身与自身的剧烈碰撞与相互繁殖中,持续扩展着各自的应用边界,之至今日的云基础设施。

 


 

1973年,施乐的BobMetcalfe发明以太网,之后DECIntel的加入极大促进了以太网的发展,以太网的第一个版本DIX (DEC Intel Xerox) V11980年正式发布[11]。以太网在陆续战胜FDDI (Fiber Distributed Data Interface)ATM (Asynchronous Transfer Mode)等一系列竞争者之后,一路绝尘。在局域网领域,建立了一个不可匹敌的以太帝国。

 

上世纪末出现的IB (InfiniBand) 试图对以太网发起挑战,却在近期无法看到动摇以太帝国的丝毫可能。IBV1.0版本出现在2000年,设计野心是替代处理器系统的局部总线PCI,互联网中大规模应用的以太网,与SAN (Storage Area Networks)中的FC (Fibre Channel)IB最本分的应用依然在大规模处理器集群应用中。

 

IB从诞生起的十年中备受磨难,Intel不会坐视IBPCI Express总线竞争;比IB诞生更早的FCSAN领域已根深蒂固;无所不能而且无处不在的以太网最后还是将IB挤压至其本分的应用领域,集群服务器。TOP500处理器一直是IB不能失守的最后阵营。IB是学术界的宠儿,在对高性能计算有所追求的领域,IB在许多应用场景中凭借着出色的性能与较低的延时胜出,而在HPC (High Performance Computing)和高性能云计算领域得到的广泛应用[12]

 

IB架构唯美,干净,一秋若水。这个一秋若水缘于在其漫长的发展过程中,一直被忽略也乐于被忽略,没有经受过多的干扰,二十几年前,我第一次去喀纳斯湖,除了震撼外,体会的是寂静而后的肃杀。偶尔为之,别样风景。人的存在会打破自然的静谧,也带来勃勃生机,缺少万物之灵的景色,难抵极境。我喜欢现在这样的,有三两好友陪伴着的喀纳斯。因为人的存在,风景格外精彩。

 


 

以太网精彩世界源自于诸人参与的熙熙攘攘。InfiniBand很少有机会去介入而分享这份精彩。纵观IT史册,能取得流行而大获成功的技术不会唯美,多数是黑大傻粗,成本低廉的。Unix的设计哲学KISS (Keep It Simple and Stupid)在今天无限接近真理。有所长的丑战胜无缺的美发生在此时此刻,而且在不断的演绎进化与升级。

 

以太网从诞生之日起至今日,从未完美过,与优雅ATM (AsynchronousTransfer Mode)相比,始终是下里巴人,直到把阳春白雪的ATM彻底赶出历史舞台。如果IB的所有优点,都能通过以太网进行应用场景微调,或者上层协议补充,IB依然还叫IB,无法更近一步。以太帝国是有日出不穷的缺陷,但是以太帝国还是以太帝国。

 

私有数据中心的兴起,使得以太网与其身后的Ecosystem愈显臃肿。在一个数据中心所使用的传统交换机与路由器中,大多数软件协议栈并没有太多的用武之地,其中许多协议是为了解决广域网存在的各类问题。在广域网技术持续发展,取得显著进步的同时,也不可避免的积累了一系列问题,在解决这些问题的过程中,更多的新协议在持续产生的同时,必须要兼容旧协议。不同厂商因为各自的利益,所提供的网络设备在互联互通上并没有想象中完美。

 

以太网的使用过于广泛,这个广泛在带给以太网无限空间的同时,也带给设计者不小的麻烦。以太网所面对的问题绝不是TCP/IP协议栈的低效,不是存储转发模式带来的延迟,不是吞吐量不足,不是流控机制,也不是QoS。这些问题在理论上全部可以解决。

 

以太网所面临的主要问题在于自身使用的过于广泛,参与者过于众多,Ecosystem过于强大。这使得以太帝国在长期以来只能有变化而无真正变革。治大国如烹小鲜,基于以太网的网络基础架构设计者,对任何一个微小调整都会陷入”什么是权衡,什么是掣肘,什么是不得已,什么是怎样做都是错的”,这样深重的哲学思考中。

 


 

Internet网络组成的复杂程度已经不能用任何词汇去描述。从最末梢的移动设备,引申到2G3GLTE (Long Term Evaluation)IP RUN到核心网;从最末端的PC机,引申到Wi-Fi、交换机,各级路由器到骨干网。即便我们不去讨论国家级的网络基础设施这样的深重话题,一个大型跨国公司的网络拓扑结构也足以复杂到令人无法直视。

 

网络设备价格始终居高不下,但是对于许多应用场景而言,这些昂贵的网络设备所提供的多如牛毛的Feature,除了必不可少的硬件通路部分,只有部分功能真正有用。在交换机与各类路由器中,硬件成本所占比例很低,其售价的多数是为了补贴软件上的投入。这些盈篇满籍的软件投入,所体现更多的是商业利益,而非技术驱动所带来的需求。

 

移动互联网的兴起重置了网络基础设施的发展轨迹。承载着数以亿计用户的互联网应用背后,是庞大的数据中心。互联网数据中心的野蛮成长,逐步触发了云计算与云存储技术的诞生与发展,云时代的到来对网络基础设施提出了新的挑战。来自这个领域的精英,首先面对的挑战是理解已有的网络基础设施。摆在这些人面前的第一道难关不是温习基础的网络经典著作,而是去理解在他们眼中,毫无道理,不知所云,只能死记硬背的几千种RFCITU制定的协议。

 

RFCITU标准已多如牛毛,从TCP/IPOSPFBGPIGMPSTP多达几千种。这些协议无法消除不同提供商的网络设备,在数据交换层面上的统一;在控制与管理层面每家厂商的做法更加不会相同。最为重要的是,传统的交换机与路由器并不能满足一些新增的业务需求。

 

一个新增协议,从制定、讨论、发布到实际部署的周期之长,使得最有耐心之人亦无法忍受。这些协议是否被接受,在很多情况下并无至深的理论依据,所遵循的只是质朴的商业丛林法则。

 


 

人类文明得以持续向前的动力,在某种程度上,是因为总有一些不安现状的精英们,敢于持续地挑战现有的丛林法则,并创建新的秩序。这些精英通常是近乎强迫症的完美主义者。他们的病态只有两种解药可救,一是融入旧的体制用时间与精力换取空间,或是另辟蹊径。待到直面成千上万,不知所云的网络协议时,他们最终选择另辟蹊径。

 

基础网络设施在经历了最初爆发期之后,步履蹒跚。网络运营商与设备制造商,在各种商业利益,甚至是在国与国的利益间周旋,腾挪空间有限,这种空间有限所带来的直接后果是各种类型的低效,这一低效使得在这个行业的精英进一步流失,使这个行业事实上止步不前;也进一步使得这个行业持续发生着各类并购重组,使得从事这个行业的公司总量在逐步缩小。

 

一个曾在华为数通的朋友与我讲,我们打败甚至打死了一个又一个对手,却也每况愈下。我的回答是你们熬死了一个又一个对手,对手是自己打败了自己,他们的精英不是英雄迟暮,就是转行做了其他事情,只有你们坚持了下来。这种坚持对这个产业是一种维持,也使得依靠自身驱动带给这个产业的创新乏善可陈。

 

这些问题使得SDN (Software Define Network)的出现顺理成章。我们很难将SDN定义为一种新技术。从上世纪七八十年代至今,IT基础设施始终处于高速螺旋的上升阶段,我们在并不算长的四十年间,在同一片领域完成了多次迭代,以至于在信息科学领域,几乎很难再次出现诸如Shannon的”A Mathematical Theory of Communication“这类革命性文章。SDN并不例外。

 


 

2007年,MartinCasado在他的博士毕业论文《ArchitectureSupport for Security Management in Enterprise Network》中,提出目前的企业网规模较大,运行着各类网络应用与协议栈,对网络安全配置管理带来了一系列问题。在这些企业内,网络安全策略由复杂的路由、桥接策略以及ACL表、包过滤等机制组成,导致整个网络管理的复杂性,并带来的一些网络安全问题。

 

为此Martin Casado提出了一种理想化的网络架构,称作SANE解决这些问题。在SANE中,控制器通过其分发能力对请求转发的数据流进行授权,SANE交换机仅仅负责报文的转发。SANE介绍了一种全新的网络分层,并且该设计可以很容易扩展到几十甚至几百个网络节点[15]

 

我不认为当时的Martin Casado能够真正理解,这个世界的基础网络设施可以复杂到何等程度,强大如Stanford这样的世界级院校,搭建一个诸如Intel这样跨国企业的网络环境也很困难,更不用说运行其上承载的各类应用。也许当时的Martin Casado只是认识到了这些网络的复杂性,见识到了多如牛毛的网络协议栈与诸多术语后,决定不再去理解,而另辟蹊径。

 

在此后的第二年,Nick McKeown et al. ACM SIGCOMM上发布了一篇题为《OpenFlow: enablinginnovation in campus networks[16]的论文,正式提出了OpenFlow的概念。这两篇论文宣告了SDN的诞生。

 


 

SDN诞生后,这一新型的网络设计框架首先得到了互联网厂商的热捧。2011年,GoogleFaceBookMicrosoftYahoo等厂商成立了ONF (Open Networking Foundation),聚焦于OpenFlow技术标准[17]2012年,Linux内核集成了OVS (Open vSwtich)[18]20134月,以思科为首的网络厂商如梦初醒,成立ODL(OpenDayLight),致力于开源的SDN控制器框架的实现,这个框架的名称也被称为OpenDayLight[19]

 

思科类传统网络设备提供商的参与,在某种程度上极大促进,也极大制约了SDN的进一步发展。网络设备提供商的参与,使得SDN技术有机会进入国家层面的网络基础设施领域;也因为这些既有利益的获得者首先也是既有投资的保护者,他们的参与使得SDN技术在遵循商业原则的前提下在迟钝且平缓的演进,不再是一个剧烈的变革。

 

即便如此,SDN的发展依然超乎了Martin的想象,以至于Martin在回答什么是SDN时,总是在回答”I actually don’t know whatSDN means anymore, to be honest“。或许Martin认为,SDN在容纳着各类不完美的不断前行中,已物是人非,偏离了至清至澈的论文轨迹。

 

20162月,Martin Casado离开VMware加入著名的风险投资公司Andreessen Horowitz并成为合伙人[20]。如同Andy Robin离开Android,这些创始人的离开无论是因为什么外因,最重要的内因依然是,他们认为在这个领域他们已经完成了历史使命。或者说在Martin Casado的内心深处,SDN尚未开始,就已经结束。

 


 

SDN所解决的最重要的问题首先是解耦,分离底层硬件与网络操作系统。无论是思科的IOS  (Internetwork OperatingSystem),还是华为的VRP (VersatileRouting Platform)都是耗费了成千上万人年的产品。我们在购买这些传统路由器的时候,都在为这些人年埋单。在多数应用场景,我们所购买的路由器使用的仅是IOSVRP提供的极少数功能。而且IOSVRP虽然在尽最大可能包罗万象,依然无法解决所有问题,一些用户的自定义需求依然无法得到满足。

 

通常网络设备在逻辑上分为控制平面(Control Plane)和数据通路(Data Plane)。其中控制平面的主要由两大部分组成。一是设备硬件资源的维护,包括网络端口状态的扫描和系统的初始化与监控等;二是运行网络协议,如BGPOSPFISISARP等。网络设备通过运行这些网络协议,生成用于数据通路的各类查找表。

 

网络设备的数据通路则使用这些查找表,尽最大的可能性快速地进行报文转发。对于一些交换机和路由器以外的网络设备,如DPI、防火墙、Load Balancer类设备,数据通路的设计稍有不同,这些设备偏向于根据控制平面配置的策略决定如何处理网络报文。

 


 

SDN理论正式定型以前,每个网络设备同时具备控制平面和数据通路。对于性能要求高的企业级设备,控制平面采用的是专用CPU,以及围绕该CPU的存储、总线、和外设来实现。数据通路多采用专用ASIC,并作为一个外设连接到控制平面的CPU

 

对于家用级别的设备,如Wireless Access Point而言,数据通路和控制平面往往做在同一个以嵌入式 CPU 为核心的系统中。Linux是最常见的针对家用设备的操作系统。控制平面的程序,如DHCP服务器、Web服务器、IptablesNAT等运行在Linux的用户层。Linux 的内核负责报文转发。在这样的小设备中,Linux用户层和内核之间的Netlink,有时也加上一些POSIX API做辅助,构成了数据通路和控制平面的通信方式。

 

SDN的核心思想是,进一步分离网络设备的数据通路和控制平面,并定义两者之间的通信标准。这个思想解决了很多实际存在的问题,首先是数据通路设备和控制平面设备可以分别演化;其次是在不同的应用场景中,对数据通路的性能和控制平台的 Scaling 要求各有不同,设计者可以针对应用环境来自由搭配。对于网络设备的用户和运营商来说,更为关键的一点是 SDN 体系结构减轻了对硬件厂商的依赖。

 

SDN出现之前,用户购买的网络设备,由于每个厂商设备的配置方法不同,其上控制平面的协议设计并不相同,彼此间很难做到完全兼容。这使得用户在初期选定了某个厂商的产品,后续更新的时候有时也必须继续选择该厂商的产品,否则前期网络运营获得的经验和固定下来使用方式都将失效。

 


 

SDN把数据通路设备仅仅定义为一个必须支持公开接口的黑盒子,而控制平面的程序通过这个公开的接口对数据通路设备编程。采用这种方法,传统硬件厂商提供的一系列控制平面的程序失去了原有的作用。用户只需要维护自己的控制平面程序就可以保证网络运营的连续性。数据通路设备可以随时随意进行更换。

 

SDN引入了Flow Table。在传统的交换机与路由器中,每支持一种新的协议,不是在固有表中添加表项,就是添加一张新的表格。网络世界经过了几十年的发展,在传统路由器与交换机中已经积累了过多的表项。Flow Table的引入在提高了端口控制灵活度的同时,对所有表项进行了归一化处理,这也使得SDN网络有机会从逻辑上实现集中管理。SDN使用的集中管理策略,与传统网络设备采用的自适应管理,原本谈不上孰优孰劣。只是事物发展螺旋上升中的不同状态。

 

SDN的出现,依然为本已死气沉沉的网络基础设施带来了一丝活力,SDN在持续着辉煌的同时,也在按照几乎不可控制的态势引入更多的功能。但是当我们从整个网络基础架构的更上层俯视SDN时,却很难体会得出SDN是一次颠覆性变革的结论。整个网络基础架构并无根本的变化,只是一次管理策略的调整与重构,路由器与交换机内部基础的缓冲管理与算法几乎丝毫未变。

 

事实上SDN的前缀软件定义SD (Software Design)更加令人关注,在SDN崭露头角后不太长的一段时间里,各类软件定义风起云涌,有软件定义云计算,软件定义数据中心,软件定义存储,软件定义基础设备,直到Software Design Everything。在这些种类繁杂的软件定义中,恐怕最有共性的一件事情莫过于把之前配置各类设备所使用CLI (Command Line Interface)方式,换成了RESTful API

 

本已停滞不前的x86处理器一夜间重回中心,似乎x86处理器重新强大到了无所无能。NFV (Network FunctionVirtualization)的提出,进一步神话了x86处理器与其下的虚拟化部件。却在有意无意中无视x86 XEON处理器自从Nehalem起,在微架构层面的创新已乏善可陈的事实。即将大规模推广的KabyLake仅在计算层面上,与Nehalem相比并无质得提高。x86处理器在计算领域完败于GPU之后,Kaby Lake所做出的选择是重归这个公司的起点,存储。

分类目录 未分类.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。