继Netfilter conntrack,Linux Bridge之后又是一个半景,依然如故,我不会在文中罗列技术规范和细节,仅仅是希望本文可以帮助人们理解以太网到底是什么,为什么如此成功。

0.动机,愿景以及声明

前端时间帮朋友解决一个编码问题,碰到了全双工这个概念,正好写了一个程序,实现了类似CDMA那种沃尔什编码,即从一个混合信号中分离中自己要的那部分,然而代码是好写的,往线缆上一放就全乱了,这是电学原理决定的。就这么说吧,请看下图:

请问P点的电压是多少?很简单的一个问题,是不是?是的。
       好吧,由此我想到了以太网1000BASE-T的全双工原理问题,觉得挺有意思,一发不可收拾,就想写一篇文章来科普一下以太网的发展历史,这期间也感谢华为著名主音吉它手的帮助。
       以上就是我写本文的动机。
       那么写点感言吧。我记得刚刚进入郑州大学读大专后,有一次我老婆特意跑到学校去看我,跟我一起去上课,该节课的内容是制作网线,分为交叉,直连线,其实无非就是1/3和2/6线序对调一下,还要背下来那一堆线对的颜色序,我本来是可以在这里显摆一下的,但涉嫌卖弄就算了,其实直到现在,我还是能把线序颜色背下来的,我做线做的是手艺,而不是科技,不光如此,我说我可以最大化水晶头附近的抗干扰性能(毕竟那一段是撸直了的),你信么?反正我老婆当时觉得可高大上了...我们大专跟普本科班不一样,我们一开始就是实践,不会讲什么原理,也不会讲什么编程。我们第一节网络课大致说了下TCP/IP的概念,第二节课就教做网线了,我的那些理论以及编程知识都是后面补的,主要是利用周末,晚上的时间自学或者请教别人。
       但是时隔十多年了,我依然会记得大专时的那两年,并且我不会忘掉那两年所学的那些简单且实用的东西。我敢肯定,科班的人80%以上做了程序员以后根本就没有做过网线,不知道网线钳,测线仪怎么用,而我最近一次做网线是半年前。当然,这种活儿体现不出什么技术含量,比较低级,也不值得炫耀。
       问题的另一端,80%的程序员知道以太网的发展史吗?如果知道的话,对你将非常重要。如果你知道100Mbps以太网是如何进化到1000Mbps以太网的,那么即便你不看10Gbps的规范,你也基本能把它猜的八九不离十,如果你恰好又有足够的资源,那么可能第一块100Gbps卡就出自你手,借古知今,让你知道进化道路上多种可能性,这是无比重要的!
       所以我有必要把以太网的历史描述一番,谨以为抛砖引玉,希望能对自己和希望了解这方面的人有所帮助。这是我写本文的愿景。
       有了动机和愿景,我还要有一段声明,本文中几乎不会有技术规范名称和术语,比如IEEE802.3ab/ae,568A/568B等,之所以这样,我想的是要用最简单的通用语言来讲述一个故事,而不是描述一个技术规范。在涉及到4B/5B,64B/66B编码的时候,我也不会给出编码细节,只是给出一种思路,我知道,这种细节都是可以查得到的,我希望的效果是举一反三,得其意而忘其形,仅此而已。

1.关于分组交换

什么是分组交换?分组交换的核心在于两点:
理论上:统计复用
操作上:存储转发

其中统计复用是非常复杂的,它有别于固定的时分复用,时分复用的核心是 时隙划分,载波,以及信号调制,然而统计复用的核心则是 多服务台排队理论,这是数学范畴里一个非常复杂的理论。
       对于传统的时分复用载波网络,要想发送一帧数据,必须等待分配给自己的时隙到来才可发送,并且发送的长度固定,如果所有的帧不足以填充所有的时隙,那么在这些空闲的时隙里,发送的就是空载波。对于统计复用网络,想发一个数据帧,随时都可以发,但是该帧如何通过信道,则需要仲裁,这种仲裁是符合排队理论里的原则的,如果没有要发送的帧,则链路便处于空闲状态。
       那么以太网是什么?
       以太网当然是一种分组交换的网络,在统计复用的层面上,各个站点表现为随时可以发送帧,在存储转发的层面上,体现了一种仲裁方式,最初,各个站点一起参与仲裁,后来出现了集中式的仲裁设备,即以太网交换机。这种仲裁方式的不同显然是以太网所经历的两个世代的核心特征。让我们继续下去。

2.第一代共享总线以太网

以太网刚刚诞生的时候,速率为10Mbps,其首要的目标其实并不是实现什么 “存储转发”以证明自己是一个分组交换网络,而是 “如何随时把帧直接发出去”。至于出现了以太网交换机实现了直观的分组交换动作,那是后来的事了,出现交换机其实是为了解决一个仲裁问题。仲裁什么呢?很简单,只要是共享资源型结构,都需要仲裁谁可以占用资源。
       第一代以太网为了直接发送帧,所有的站点都连接在一条共享的总线上,是为 总线型以太网。这个时候没有什么单独的仲裁设备,所有的站点都参与仲裁过程,机制是由一种叫做CSMA/CD的协议完成的,它的感官视图如下:

以下我们看一下该协议在时间序列上如何运作,先看一下有冲突的情形:

再看下如果没有冲突,即成功发送帧的情形:

值得注意的是。CSMA/CD可能采用了一个不太恰当的名字,以至于人们总是将“冲突”视作一件不好的事情。事实上, 捕获到冲突仅仅表明总线型以太网的仲裁机制正在正常发挥作用,而不是发生了什么坏事!所以,如果有人问“能否避免冲突或者减少冲突”之类的问题,你除了反讽一句之后完全可以拒绝回答这类问题。造成这种误解的原因完全是因为冲突一词自带了贬义,仅此而已。
       共享式以太网通过CSMA/CD仲裁机制直接发送数据帧,不带存储转发机制,我们接下来可以看到,随着以太网规模的发展壮大,亟需一种更加高效的资源仲裁机制的出现,那么以太网交换机千呼万唤始出来。

剧透:CSMA/CD与双线全双工

后面我们会面临一个问题,1000Mbps以太网的1000BASE-T标准是如何让信号在一对双绞线上双向全双工传输的呢?这理解起来可能有点困难,假设共地的情形,这意味在一个线缆两端同时输入电流脉冲,然后两边分别要能收到对端的输入脉冲信号:

当我们看到了CSMA/CD的原理之后,会发现这两端的两个信号到了线缆中间肯定会“冲突”,结果就是两个信号叠加在一起,然后两边收到的是完全相同的两信号叠加的结果,其实只要信号脉冲放在线缆上,就会快速传播到线缆的任何地方,途中所遇其它信号,便快速与之叠加融合,然而技巧也这正是在这里,如果说“冲突”是一种信号相加的话,那么只需要在接收端执行信号相减,便可以获得对端的信号,原理上很简单。这也是1000BASE-T的全双工基本原理。
       那么为什么共享式以太网没有用这种机制还原信号呢?因为这种方式还原信号有个前提,那就是线缆必须有且只有两个线端,如果线端超过两个,为了还原一个信号,就不得不用总信号减去所有除了需要的信号之外的其它信号,这是一个无解的问题,因为这不是一个非我即你的问题。举个例子,如果只有我和你两个人,那么如果闻到一股屁味,一定可以知道是谁放了屁,但是如果有三个人或者三人以上,便没有任何办法知道是谁放了屁。

3.交换式以太网

第一代的共享式以太网采用了一种分布式仲裁方式,那么仲裁的效率自然就取决于网络的规模。在分布式仲裁中,每台主机均参与仲裁过程,自然而然会随着主机的增多而增加仲裁的成本。这简直是一个真理。在IP路由中,我们可以看到类似的事实,分布式的距离矢量协议RIP无法适应大规模(大于16跳)的网络,而统一链路状态全局视图的OSPF,IS-IS等就则可以应对更大规模的网络。
       从CSMA/CD的原理可以看出,随着主机的增加,冲突会增加,自然而然的方案就是降低仲裁的成本,最显然的措施就是 将仲裁从分布式改为集中式,将所有的仲裁过程汇聚于一个仲裁点。
       完成这种汇聚的第一步就是消除共享,大家同时拉一条独享的线缆到集中仲裁点即可,这个集中仲裁点就是交换机。交换机拥有集中式全局视图,仲裁效率更高,如果说第一代以太网的共享资源是总线的话,那么交换式以太网需要仲裁的共享资源则是交换机端口。我们看一下交换机的原理:

这样,所有的主机站点都可以同时把数据帧发到交换机,然后由交换机决定先转发谁的数据帧,转发到哪里,其余暂时不被选中转发的数据帧如何处置这些事宜。我们来看一个转发实例:

作为对比,我们来看一下传统的时分复用载波(可能是SDH,但不一定)网络中同样的转发过程:

可以看到,交换机的帧缓存机制是根本,在帧缓存的机制之上,可以灵活配置帧队列调度的策略,它完全不同于时分复用的载波网络,在后者中,没有帧缓存的过程,每一个帧到达时,均会被即时安排到一个特定的时隙中传输,或者在时隙满载的情况下被丢弃,这就是统计复用以太网和传统时分复用载波网络的根本区别。
       在出现了交换机之后,以太网进入了交换式时代,这是一次根本性的蜕变。从此就踏上了一个持续进化的正道!我们先从传输介质开始,然后看看传输信道的特点,最终俯瞰一下以太网的进化历程。

附:类比PCI/PCIe总线

如果你对PCI总线比较感兴趣且熟悉的话,你会发现PCI总线经历了和以太网几乎一模一样的历程,也是从总线拓扑逐步进化到了PCIe交换式星形拓扑。由于此处本文刚刚开始,不便剧透太多,然而还是忍不住多说一句,后面我们会看到,以太网在从100Mbps进化到1000Mbps以及10Gbps,40Gbps的过程中,PCI总线也在用同样的方式进化,它们共同的方法就是加法优化,即将多条带宽相对较低的链路汇聚成一条带宽很高的链路,双绞线是使用多个线对,PCIe则是使用多个Lane,我们经常听说PCIe是x1,x8,x16的,意思是说它合并了1个,8个,16个信道,这也是一个通用的优化方案,倒不是说英雄所见略同,而是成功的道路往往只有一条。

4.传输介质-同轴电缆与双绞线

在以太网出现之初,它使用了同轴电缆,这实际上是最直接的方式,这是CSMA/CD这种分布式仲裁机制使然,你看看任何总线结构,不都是一条信号线一条地线吗?包括电灯都是如此。简单来讲,同轴电缆就是为总线型拓扑量身定做的线缆,因为新的站点接入这种总线非常简单!

注意,在总线以太网时代,没有交换机的概念,当时所谓的网桥只是为了桥接两条总线而已,一般而言网桥都有很少的端口,所以说绝大部分情况下,站点都是直接接入总线的,而不是将站点直接接入到网桥的某个端口。如何将站点接入总线呢?非常简单。我们以前看的有线电视使用的就是同轴电缆,不知你有没有“偷过信号”,即不交钱看有线,这个在上世纪90年代很火爆,操作也很简单,就是一根针扎进同轴总线内芯,另一根针接到外芯,两根针分别接入自家的另一根同轴电缆的内外芯即可!这样就把一个站点接入到总线了。当然这是非常规的方式,正确的做法应该使用一个叫做连接器的东西,原理跟上面的两根针很类似,总之,把站点用线缆接入线缆而不是接入设备端口,使用同轴电缆非常方便。

当这种同轴传输介质确实可以传输人们所期望的0,1二进制流的时候,人们就不再仅仅满足于能传输即可,这是人的欲望使然。人们希望传输效果更好!
       还是旧瓶装新酒,交换式以太网利用了双绞线!一方面是因为同轴电缆虽然适合于站点接入总线线缆,却不适合于站点接入设备端口,而双绞线则非常适合,你看看水晶头就知道了(将新站点接入双绞线却不是容易的,一方面是因为双绞线的线对太多,另一方面会影响双绞线抗干扰特性,当你把一条线从中间拨开的时候,就已经破坏了绞距离)。另一方面是因为双绞线是一种现成的线缆,可以让交换式以太网快速部署变成现实。
       什么是双绞线?其实就是电话线。这玩意儿是亚历山大.贝尔在1881年的时候申请的专利介质,此后便用了100多年,一直到现在。我找了一幅图:

请注意,这个双绞线并不是TCP/IP网络的产物,它是100多年前贝尔发明的,希望IT科班的不要误解以为只有计算机才是高科技。我们来看一下这个双绞线有何神奇之处。总的来讲,双绞线用朴素的物理方式成功抵御了电磁干扰,这是怎么做到的呢?
       传统的电话线是一对双绞线,显然它的双绞是为了抵抗外界的干扰,请看下图:

而双绞线可以以不同的绞距多个线对编织,比如我们常见的5类双绞线,那么这些线对之间是如何抗干扰的呢?请看下图:

只要有中学的物理基础,就能理解双绞线为什么可以抗干扰,不管是外界的干扰,还是多线对之间的干扰。这在现代人看来确实是一种非常朴素的抗干扰方案,即便是在100多年前也确实谈不上是高科技,然而就是这种朴素的方案让人们受惠了100多年。我一向倾向于认为凡是伟大的科技都是简单朴素的。
       看完了双绞线,我们来看一种为双绞线助力的稍微显点科技含量的不那么朴素的方案,这也是一种抗干扰的手段,这就是差分编码技术。

5.传输信道-差分信道

差分编码的原理非常简单,就是利用了一个水涨船高的事实。
       按照数字编码原则,如果我们把二进制0编码为电压+5V,1编码为电压+10V,那么如果外来噪声使得整体电压提高了5V,那么本来会被解码为0的+5V被提高到了+10V,被解码为了1,这就出现了问题,这个问题的根源在于电压参考点是大地,而大地是一个绝对的参照点。如果不以大地作为参照点,而是另一条导线上的相对电压为参考点是不是就能解决问题呢?答案是肯定的,如果有干扰,那么干扰源不但干扰了本条导线上的电压,而且也把同样强度的干扰加载到了另一条导线上,那么两条导线上的电压差是不变的,这就是差分编码的原理:

只需要将一路信号变换为相位相反的两路信号即可,这在电路实现上非常简单。
       在双绞线上传输差分信号,朴素的方案和电子的方案合力,构建了以太网的简单,成熟,直接且便宜的物理层,这是以太网成功的根本。

6.以太网进化三大件总结

到此为止,我们看到了交换式以太网的核心组成构件,它们是 以太网交换机,双绞线,差分信号。在这三大件的基础上,以太网蹒跚起步。

以太网交换机

以太网交换机这是分组交换的核心实施设备,交换机的出现类似火车变成了私家轿车,原来要传输一个帧要同时满足两个条件,一是有剩余的时隙空闲,二是要等到分配给自己的时隙,现在对于主机站点而言,随时发送,帧被发往交换机这个核心仲裁设备,一切都交给交换机的调度子系统,多个完整的数据帧排队发出。

双绞线

说实话,最开始的时候,人们对双绞线传输以太网帧是持怀疑态度的。论电气特性的方方面面,双绞线都不如同轴电缆。不要以为双绞线的绞距拥有抗干扰的神奇特征,其实同轴电缆无需将线缆绞绕在一起也能抗干扰,而且还更好,同轴电缆使用了电磁屏蔽原理,即在线缆的内外两芯之间以及外芯和线皮分别纳入一层铝制的屏蔽网,从而屏蔽干扰信号,事实证明这种屏蔽效果更好,然而也更昂贵。其实,同轴电缆属于一种见招拆招的抗干扰线缆,你不是有干扰吗?我便用加东西的措施屏蔽掉干扰,于是便加了一层屏蔽网。双绞线与此不同,双绞线属于一种小Trick,绝妙的点子,而且非常便宜。不添加任何资源,不主动屏蔽任何干扰,而是靠让不同的干扰互相抵消的方式巧妙解决问题。
       如此简单方案,人们一度怀疑能否承载10Mbps的带宽,人们很难相信一个100多年前的东西可以承载如此现代化的TCP/IP数据。然而后来的事实表明,甚至到了10Gbps时代,信号依然可以在双绞线上远距离无损传输。But why?
       我觉得无外乎两点,即双绞线便宜,而且简单:

1.便宜的方案便于量产,大量装备,且折腾得起。不服者请参见秦军是如何击败魏国特种部队的。

2.简单的方案可以方便地重新组合,优化架构。越是复杂的东西,越是牵一发动全身,最终就是动弹不得,无法持续优化。

差分信号

如果说双绞线提供了以太网的传输骨架,那么差分信号便是配得上这副骨架的肉体,他们一起组成了以太网的躯干,交换机是这副躯干的大脑。
------------------------------------
好了,以太网的躯干和大脑都有了,现在需要为它注入灵魂了,我们来看以太网如何慢慢长大,变成巨人。我们一起来看在 以太网交换机,双绞线,差分信号这三大几乎不变的底层支撑下,以太网是如何依靠持续优化的编码,聚合,物理工艺改良的灵魂驱动下,一步步从10Mbps推进到100Gbps乃至400Gbps甚至1Tbps的!

7.以太网的持续进化

7.1.统一编码空间

也许你听过4B/5B,8B/10B,64B/66B编码,这是什么意思呢?为什么要这么做呢?我们先看看最初以太网在双绞线上如何传输帧:

注意,以太网没有固定时隙,固定时钟的概念,想要在线缆信号中识别到数据帧,看样子必须依靠特殊的符号标记。这显然是很容易做到的。然而另一方面,正是因为以太网没有固定时隙,固定时钟的概念,所有的控制,管理机制全要靠帧本身自己来做,这也叫带内控制,带内管理。
       总不能定义100个特殊二进制序列用于识别控制码吧...特别是,当100Mbps以太网在帧空闲间隙需要发送IDLE信号的时候,并不容易识别那些特殊的控制码,特别是随着控制码的需求越来越大,所有与控制码冲突的数据码全部要重新编码!这就亟需一种统一控制码和数据码的编码方案,这就是4B/5B编码的渊源,为了能使控制码和数据码可以自然分开:

这种风格在计算机编码理论中非常常用,从最基本的有符号,无符号整型正负数值编码,到复杂的ASN.1编码,基本都是万变不离其宗,思想都是一致的,即统一编码空间。
4B/5B比较简单,即将4个bit编码为5个bit,后面的8B/10B,64B/66B与此类似,只是编码效率更高,控制字符更加丰富多样而已,总之,只要开了个头,以太网就会一路走到极致,在1000Mbps中,使用的是8B/10B编码方案,而10Gbps以太网则使用64B/66B编码方案。

7.2.双绞线布局以及持续优化

我们看一下100Mbps以太网的双绞线使用方式:

这是一种最简单的以太网了,也算是以太网快速发展的成长期杰作,算是一个里程碑,基于它以太网可以直接进化到1000Mbps甚至10Gbps!在看看这一切是如何发生的之前,我先阐述两条优化的法则,即加法优化与改架构优化。所谓的加法优化就是将多个组件聚合成一个更加强大的单一组件,典型的例子就是多核CPU,并行计算,人民战争等。改架构优化往往在加法优化遇到瓶颈的时候使用,即修改一个核心组件的结构,将单一组件的性能提高一个数量级,此后又是一个加法优化的过程。简单的说,加法优化就是一个量变的过程,而改架构优化则是一个质变的过程。
       为了简单起见,我们先来看一个简单的加法优化。100Mbps以太网使用了4对双绞线的2个线对,如果把另外2个线对也用上,那岂不是成了200Mbps以太网了吗?事实上确实是这样:

然而这没有意义,我们从来没有见过200Mbps的以太网。我们的目标是想看看1000Mbps的以太网是如何生成的。
       事实上,上述那个200Mbps的以太网并非没有意义,它的意义在于让我们看到了加法优化遇到了瓶颈,此时需要改一下架构了。以往在一个脉冲编码一个bit的情况下,125M的波特率就是125M的比特率(暂时不考虑4B/5B等引入的控制开销),那么能否用一个脉冲编码多个bit呢?答案是完全可以,以往编码一个bit时,脉冲电压只有两个,一个高电平代表1,一个低电平代表0,如果一个脉冲可以有4个电压,假设为+10V,+5V,-10V,-5V的话,就可以编码两个bit了(我这里的意思是想说4D-PAM5编码,但是为了直观起见,省略了前向纠错码等细节),这样波特率为125M的脉冲,比特率就是250M。同时,如果能把波特率提高一倍的话,比特率又可以提高一倍!这样总的四对线缆上不就可以上1000Mbps了吗?

遗憾的是,提高一倍的波特率并不是简单的事,请记住, 以太网的原则是简单和便宜,这也是其胜利的根本,靠加器件升造价提升性能,不是其本性。简单点说,以上的提高波特率的方式并不适合在5类双绞线上传输,必须在更加昂贵的6类线以及6类线以上的线缆上跑。如果说花1万块钱造一根1米长的线,上面跑1Tbps的带宽,那不是本事,那反倒是一件很容易的事,有钱什么都不是事儿,如果是事儿,那就加钱即可。以太网追求的是,在普及的普通5类线上跑1000Mbps的速度。所以说,需要另外的优化方案。在继续之前,先从剧本回到现实,上面那种提高波特率的方案就是1000BASE-TX的标准方案,而下面的方案则是1000BASE-T的方案。
       还记得在描述共享总线以太网时的剧透吗?现在是时候重用“冲突”了!
       如果能在一对双绞线上同时传输方向相反的两路差分信号不就完美了吗?是的,这是真正的全双工操作!但是要怎么做才行?同时传输两路信号不会冲突叠加吗?答案显然是会的。但是如果接收端可以在混合信号中把自己发送的那部分“减掉”的话,不就可以还原发送端的信号了吗?是的,非常简单,我直接给出原理吧:

以下是一个完整的原理框图:

这个原理其实也是一个古老的东西,我们使用的传统电话一直都是这么工作的,君不见主叫和被叫不都在同一根电话回路上同时分别咒骂和辩解吗?要知道电话线只有一对线,并且并非差分信号,而是一对回路,怎么可能同时两个方向传输呢?这就是双线全双工回波消除技术,已经普及几十年上百年了。

除了采用了双线全双工机制,1000Mbps还采用了64B/66B编码,这是为了提高编码效率以及增加更多的控制码,越是高速的信道上,越容易出“交通事故”,出问题时越需要迅速解决,这就对管理和控制提出了新标准,高要求。

我们看一下使用了双线全双工技术原理的1000BASE-T框图:

附:电话线,USB以及差分信号

我们看到,千兆以太网的双绞线线对中,没有单独的地线,所有的线缆上传输的都是差分信号,每一个线对上传输的都是同向差分信号,而USB传输的也是差分信号,其4根线缆却是Gnd,Vcc,D+,D-,其中Gnd就是地线,对于电话线而言,虽然也是双绞线,却不传输差分信号,而是两个绞线构成一个闭合回路,其中一根充当了参考地的作用,这是为何?

因为USB是主从结构,对于从设备,比如U盘这种,一般是无源不接地的,因此必然需要单独的电源回路来为其供电,同时进入的Gnd线也可以充当信号地的作用,与电源地共地,对于电话线而言,原因一致,你见过老式的电话接地的吗?除了连着一根电话线,没有几乎没有任何线缆,因此也是需要一个闭合回路的,如果两根绞线上同时在一个方向上传输信号,请问如何构成闭合回路。以太网双绞线则不然,两边是对等的设备,都与大地相接,自然而然闭合回路也就有了。

7.3.10Gbps以及40Gbps以太网

后面再讲10Gbps就觉得没有意思了,无非把波特率提升到了2500M,由于4对线缆已经完全用完,也就没有更对的线对可供做加法优化了,当然,提升脉冲发送频率即波特率对电路以及传输介质提出了更进一步的要求。可能铜线双绞线已经不再适用于传输如此高速的信号了,那么光纤便是一个合理的替代。不过还是万变不离其宗,我不想在写同样的篇幅来描述光纤是怎么做到的。只是想说,以太网除了简单,便宜,另一个伟大之处在于 它针对同一个速率可以提出不同的多个介质规范,比如xBASE-y,其中x代表速率,而y则代表介质规范,这就意味着不必非要用双绞线来传输以太网的数据帧,你可以随意选择传输介质,因此光纤便是自然而然的选择了。要点是,你要在性能和价格之间做出取舍。以太网并非总是便宜的,它也有昂贵的规范,但使用昂贵规范的前提是你得是土豪,不但要豪,更重要的是要土。
       到此为止,最精彩的部分莫过于:
1.用统一的编码视图处理数据和控制信号,以便可以随时随地插入随意的控制bit;
2.用一个电压脉冲编码多个而不是1个bit;
3.利用冲突叠加再回波消除的方法实现双线全双工。

接下来面对挑战可能不再有如此Trick的方案,然而思路是一致的。
       以太网从10Mbps到100Mbps再到1000Mbps,10Gbps,其风格是每一个世代都比前一个世代带宽提升了10倍,那么是不是意味着100Gbps的以太网正在到来呢?
       目前,对100Gbps的需求并不是很急迫,但可以预见在不远的将来,这种需求便会非常普遍,这意味着100Gbps是一定要做的,按照传统加法优化法,聚合10条10Gbps的链路显得有点昂贵,性价比不高,于是一种过渡方案便可以临时应对,这就是40Gbps以太网,即聚合4条10Gbps的链路!
       然而,这并不是一个优雅的方案!于是,我们期待着物理工艺的提高。如果10G芯片可以做的跟大米粒那么小且散热不是问题的话,夫复何求?!据说,25G的芯片将要可以量产了,那时候我们便可以拥有单路25G的速度了,聚合4个,就达到了100G。
       期待28nm工艺的普及!

8.400Gbps以及1Tbps以太网

简直是疯了!然而这是可能的。看看以太网从襁褓中蹒跚而出的情景,再看看现在,以现在为基点,看看未来,1Tbps以太网,这是自然而然的。
       问题是,有没有需求!要知道,这种速度几乎已经秒杀主机速度了,拿一个以太网去PK一个PCIe...说不定哪天PCIe都会被以太网替代。
       老实说,400Gbps和1Tbps在当前看来需求并不明显,这一方面因为一般的数据中心目前很难有如此高的持续聚合带宽,对于骨干网络,短时间内基于时分复用的载波网络又难以触动其根基,所以规模化部署400Gbps/1Tbps的需求几乎是空白的。但是这并不意味着以蚕食著称的以太网毫无机会逐渐蚕食进骨干网领域,记住,以太网还有一个专门的广域网规范呢。
       于是,是否可以量产400Gbps/1Tbps以太网,在广域网范畴内取决于电信阵营以及互联网阵营双方的利益博弈,而不是取决于技术。在实验室,技术仍是第一位的,以太网需要持续的技术突破。
       也许,PTN是个契机,但也只是个猜测。

9.结束了

本文快要结束了,然而以太网的引擎可能转得正猛,让我们拭目以待。

后记

本文中,我没有提到10Mbps时期的曼彻斯特编码,因为我觉得这个话题无需Google,直接百度即可,如果你理解了4D-PAM5编码为什么好的话,就知道曼彻斯特编码为什么不好了,二者是对立的,你愿意用一个脉冲编码多个bit呢,还是希望多个脉冲编码一个bit呢?答案显然很明显吧。然而另一方面,考虑到实现的简单性,你真的能驾驭一个脉冲编码多个bit吗?这得要求多高灵敏度的物理器件啊。

以太网为什么会成功?

行文至此,我依然没有总结为什么以太网会成功,所以我要试着总结一些我认为关键的点。
1.以太网是一个顺产的健康婴儿,而不是经过改造后的成年人。

你反观那些别的技术,比如OTN,ATM之类,都是为了解决某些既有技术的固有问题而引入的,相比以太网而言,这并不纯粹。以太网没有任何的累赘,仅仅依托于统计复用这个最基本的概念,然后一步步通过解决仲裁问题进入交换式世代,再...
2.以太网不特指一门专有的技术,而是一个系列
这个正如大众和丰田的成功一样,不管是大众还是丰田,都不特指一款车,而是一个系列,在这个系列里,有各个档位的产品,满足几乎各种品位所有人的需求,如果你没钱,你可以买低档的,如果你巨富,那么同样有高端产品可以满足你。同样的道理还有一类例子,那就是烟和酒。
       以太网已经成了一个品牌。
3.以太网成长过程很健康
值得提倡的品德就是节约,一定不能浪费。
       以太网往往用最便宜的方案支持快速部署,从而抢占市场先机,这个和TCP/IP面对OSI/RM时的动作如出一辙。
       以太网所依托的核心技术没有一样是自己发明的,甚至都不是这个年代发明的,都是古老的技术,双绞线,差分信号,双线全双工,混合电路...但只有以太网把这些简单且便宜的技术组合在了一起,形成了网络界的大众/丰田合营。
4.以太网长大后的野心
当以太网在100Mbps边界徘徊的时候,人们一直将其定位为局域网技术,它自己也没说要抄广域网的后路,如今,以太网已经渗透进了数据中心以及城域网,随着PTN的逐步铺开,会不会完全取代现有的载波网络呢?如今传输距离对于以太网而言已经不再是问题。多年以后,人们普遍觉得,以太网好像可以应用于任何场景...

5.以太网规模驱动成本降低

以太网从零开始,这注定它的门槛不会太多,时代过往,在任何时候,任何组织甚至个人都能搭乘以太网这班车,看看我们周围,从家里的家用路由器,到办公桌上的小交换机,再到机房的工作组交换机,都是以太网的天下,80%的应用程序员除了以太网之外甚至不知道还有别的网络(其实,这样是对的,因为别的网络几乎已经所剩无几了)。得民心者的天下,这条法则将在网络界重演,甚至已经上演。

规模效应意味着成本的降低,以太网持有的庞大中低端市场份额驱动了其成本的降低,这反过来进一步拓展了以太网的规模。这是一个无敌的圈踢啊!不管是从一开始便宜的双绞线,到后来低成本光纤,以太网一开始就是从便宜开始切入的,这是它的第一推动。马太效应总结成一句话就是胜者通吃。穷的越穷,富的越富,以太网是马太效应的典型。

-------------
我们知道,曾经多少所谓的“新秀”或者“老司机”在以太网面前展示过花拳绣腿,比如说FDDI,令牌环,ATM,InfiniBand...后果自然就不必多说了

类似以太网的成功实例还有哪些?

我并没有鼓吹以太网神乎其神,我旨在鼓吹一种风格,即便宜,直接,纯粹的方案就是无敌的。除了以太网,我们同样可以看到很多类似的例子,我在本文中就不多说了,只是简单掠过:
TCP/IP栈
相对于OSI/RM,它更直接,更实用,更简单,可以直接部署,拿来就用。
Linux内核
相对于GNU的OS内核,它更简单,和以太网一样,它诞生时毫无累赘,曲曲若干行代码持续进化到了如今的4.11版本内核。
Google的服务器以及DCI
Google的服务器遍布世界各地,但是没有一台是昂贵的设备...Google的DCI使用可SDN理念,并不采用Cisco,华为那种昂贵无比的解决方案,然而Google的量级什么级别,大家都知道。
秦军
这是我最喜欢的一个例子了。论单兵能力,魏武卒秒杀几个秦军,但是请注意秦军的装备和动员机制。秦军装备的是弩机而不是弓箭,这样就让射程与臂力相分离,达到了全军一致,可以密集型攻击,再看动员,秦军是征兵制,对单兵没有太多要求,训练非常廉价,结果呢?秦王扫六合...
       对于秦国而言,它地处西部边陲,与东方六国少了很多利益纷争,所以它更纯粹,目的更直接,资源调度也更廉价。

以太网进化历程半景-从10Mbps到1Tbps相关推荐

  1. 揭秘硅谷进化历程:机遇无穷 成功需付出更高代价

    揭秘硅谷进化历程:机遇无穷 成功需付出更高代价 [摘要]作为美国第一家市值高达1万亿美元的上市科技公司,苹果为硅谷的创新奠定了基础,并继续扩大其影响力. 腾讯科技讯 1月12日消息,据外媒报道,停车场 ...

  2. 实锤了,尤大妥妥的二次元迷弟 —— 聊聊 Vue 的进化历程

    文章目录 实锤了,尤大妥妥的二次元迷弟 -- 聊聊 Vue 的进化历程 1. 前言 2. 库阶段 2.1 阶段发展 2.2 设计重点和特征 3. 框架阶段 3.1 阶段发展 3.2 设计重点 4. 通 ...

  3. 算法进化历程之剪刀石头布

    算法进化历程之剪刀石头布 小美:阿福,你玩过剪刀石头布游戏吗? 阿福:这算什么问题?谁还能没玩过剪刀石头布?要知道它可是一种世界闻名的猜拳游戏.它起源于中国,然后传到日本.朝鲜等地,随着亚欧贸易的不断 ...

  4. 尤雨溪谈Vue的进化历程

    Vue的进化历程 库阶段 库阶段的重要里程碑: 库阶段的设计重点: 库阶段的特征: 框架阶段 框架阶段的重要里程碑: 框架阶段的设计重点: 通用框架阶段 通用框架阶段的重要里程碑: Vue 2.0 阶 ...

  5. 蓝牙aoa精准定位产品行业头部公司进化历程深圳核芯物联前进发展方向思考

    蓝牙aoa精准定位产品行业头部公司进化历程深圳核芯物联前进发展方向思考 核芯物联岳毅恒 ​ 深圳核芯物联科技有限公司 战略合作拓展总监 深圳核芯物联科技专注蓝牙AOA高精度精准定位基站的研发,作为国内 ...

  6. 【动物】生物的进化历程——2017年10月5日

    2017年9月26日课堂笔记--生物的进化历程 一.生命的起源--化学进化阶段(46亿~35亿年前) 20世纪20年代 A.Oprain和J.Haldane提出假说,认为最早的生命是经过无机分子逐渐聚 ...

  7. 揭秘 React 异步获取数据的进化历程

    点击上方 前端瓶子君,关注公众号 回复算法,加入前端编程面试算法每日一题群 本篇文章,以模拟从『Hacker News API[1]』获取热门文章为例,通过一步步地代码优化和封装,阐述 React 异 ...

  8. 【VueConf 2022】尤雨溪:Vue的进化历程

    12 月 10 日,第五届 Vue.js 开发者大会(VueConf 2022)由 Vue.js 官方通过在线直播的方式举办.Vue.js 作者尤雨溪发表了题为 <Vue 的进化历程> 的 ...

  9. 美莱:整形大数据揭秘中国人“颜值进化”历程

    "颜即正义"时代,大家不是在变美,就是在变美的路上,整形美容行业也迎来了前所未有的蓬勃发展期,市场规模破千亿,并一跃成为继房产.汽车.旅游后的第四大服务行业.2018年,正值亚洲医 ...

  10. 从ARM9到A15 手机处理器架构进化历程

    随着智能手机越来越普及,消费者在选购手机的时候也越来越理性化,除了关心价格和外观之外,手机的性能也成为了人们最关心的因素,大家都知道, 处理器是影响手机性能的最关键的因素,像德州仪器.高通.英伟达以及 ...

最新文章

  1. Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言)
  2. Day4-Springmvc表单数据
  3. java多线程操作同一资源
  4. 计算机语言无限循环,求大神帮我看看为什么我的子程序无限循环无法使用F8停止...
  5. [置顶] 让我爱恨的ThinkPHP Relation
  6. 数据库 memorial
  7. 怎么使用ABBYY中的Bates编号
  8. android_驱动_qcom_【高通SDM660平台 Android 10.0】(10) --- Camera Sensor lib 与 Kernel Camera Probe 代码分析
  9. ISO-9001质量管理体系认证经验分享
  10. 标签类目体系(面向业务的数据资产设计方法论)-读书笔记5
  11. 金蝶K3案例教程库存报表
  12. 宝贵的核心珍藏_建立成功的神经网络的10个宝贵技巧
  13. 四、初识python编程-程序结构(课时11-13)
  14. 电话用计算机接听,怎么用电脑打电话-现在你可以在电脑上接听安卓手机的电话了...
  15. 重磅!图森王乃岩团队最新工作—TridentNet:处理目标检测中尺度变化新思路
  16. 数据挖掘实验二结果(构建cube的三个维度,即三个txt,然后做各种查询)C++实现(代码调试环境为Windows下的CLion使用WSL的Linux)
  17. 免费的 PSD、图形和矢量文件 - 365PSD.com
  18. #边学边记 新一代信息技术
  19. kernel exploit 有用的结构体
  20. 51单片机 播放青花瓷(源码)

热门文章

  1. 【新知实验室】TRTC这么简单的demo快来试试吧
  2. MySQL学习第三弹——约束与多表查询详解
  3. 【QT】找茬外挂制作
  4. 系统内核溢出漏洞提权之Windows Exploit Suggester
  5. ER图(实体联系图)
  6. 浙江大学14届计算机学院孙晓宇,郑州外国语学校2011年保送生录取名单
  7. java 实现图片转化为PDF
  8. JAVA——算法训练 调和数列问题
  9. 基于Python的BOSS直聘Python岗位数据分析
  10. 实践练习二(必选):手动部署 OceanBase 三副本集群(在同一个节点)