以太网,50岁生日快乐
来源:内容由半导体行业观察(ID:icbank)编译自apnic,谢谢。
大约 50 年前,在著名复印机公司 Xerox 的帕洛阿尔托研究中心 (PARC:Palo Alto Research Centre ),一种革命性的本地数字网络方法诞生了。1973 年 5 月 22 日,鲍勃·梅特卡夫 (Bob Metcalf) 撰写了一份备忘录,描述了“X-Wire”,一种 3Mbps 公共总线办公网络系统。
70 年代初期很少有网络技术被证明具有如此强大的弹性(TCP/IP 是我能记得的那个时代唯一的其他主要网络技术),因此值得更仔细地研究一下以太网,以便了解为什么它能拥有如此不同寻常的长寿。
等等,那真的是 3Mbps 吗?诚然,最初的以太网规范以 2.94Mbps 的速率传输数据,而不是 10Mbps。后来,以太网技术的后续改进也实现了这一点,该技术允许数据传输速率达到 100Mbps、1Gbps,然后是 100Gbps。众所周知,太比特以太网 (TbE) 即将问世。
为什么以太网多年来一直作为一种无处不在的数据帧协议而经久不衰?以太网与令牌环(Token Ring)、光纤分布式数据接口 (FDDI) 或分布式队列双总线 (DQDB) 等各种其他新兴局域网技术之间有什么区别?为什么我们不采用简单的HDLC串行成帧?以太网有何特别之处?
首先要问的问题是——以太网真的能够持续下去吗?嗯,不是真的。您无法使用 20 世纪 70 年代的一根 75 欧姆同轴电缆来提高电子设备中的时钟速度并使用 200Gps 的数据时钟速率运行公共总线局域网,那是行不通的。
因此,当今的高速以太网与早期的以太网有一些共同点,也有一些完全不同。然而,仍然可以从高速以太网中取出以太网数据包帧并将其传递到 10Mbps 以太网 LAN 中。以太网数据包成帧协议和站寻址计划都基本没有变化。
也许我们应该从 50 年前的角度开始审视以太网,看看为什么以太网对于计算机通信如此有趣。
原始以太网设计巧妙地融合了简单性和独创性。一方面,令人惊讶的是以太网没有做到这一点——没有明确确认数据包的成功接收,也没有任何形式的网络故障的指示,例如网络分段。
没有一致的网络“时钟”来对数字脉冲流施加共同的时间方案,也没有任何形式的公平共享公共网络来满足竞争需求,这在当时是对任何共享通信介质的传统期望。
系统内也不存在任何程度的可预测性。各个传输可能会等待一段不确定的时间才能进行传输,这意味着可能会出现网络引起的抖动。没有流量控制或任何形式的优先级。
以太网设计不是全双工的。所有连接的设备都会听到每次传输。另一方面,尽管以太网架构中没有总体网络控制器,但当时的公共总线以太网模型在拥塞管理方面却出奇地有效,并且可以实现超过总额定容量90%以上的持续以太网负载。
在 20 世纪 70 年代,大多数数据包交换网络使用点对点串行线路,并使用基本帧格式来包装有效负载数据包。前导码可能包含一些地址字段和一个控制代码来指示数据包的角色(例如控制、信息或数据),还可能包含一个长度字段。数据包通常会附加一个校验和和某种帧结束标记。鉴于在点对点链路中,线路上的数据包只有一个可能的目的地,即另一端,因此无需将地址附加到此媒体级数据包帧中!
然而,随着计算环境从大型中央大型计算机转向由公共网络连接的小型计算机的集群环境,也有机会引入多客户端网络技术,该技术允许计算机集合在计算机之间进行通信。无需单个中央控制器来调解这些通信。以太网将公共共享总线的设计方法应用于该领域。每个客户端都连接到一个公共介质,然后可以直接与任何或所有其他连接的客户端进行通信。
当然,以太网的设计并不是凭空出现的。其颇具影响力的前身是夏威夷大学在 20 世纪 60 年代末开发的无线电网络ALOHAnet。ALOHAnet 最初的服务目标是建立一个低成本无线电网络,将远程用户连接到中央主机。
ALOHAnet 使用中心辐射模型,其中集线器通过无线电广播数据包,以将数据包发送到所有客户端侦听的单个出站通道上的所有客户端,并且集线器在单独的单个入站通道上侦听所有客户端(图 1) 。如果集线器正确接收到数据包,则它会发送一个简短的确认数据包(同样在出站公共广播通道上)。
客户端的行为是在入站通道上发送数据包并等待确认。如果客户端在短暂的等待间隔后没有收到确认,它将尝试重传。为了避免各种形式的与拥塞相关的死锁,重传过程需要等待随机选择的时间间隔来进一步延迟。此确认机制用于检测和纠正当两台客户端计算机都尝试在同一公共入站无线电信道上同时发送数据包时产生的冲突。由于这是一个多主机网络,因此每个连接的客户端都被赋予一个唯一的地址,并且每个数据包都包含预期接收者的地址。
以太网采用了这种双通道无线电行为,并仅使用一根普通电缆或总线将其映射。每个连接的客户端计算机都可以在该公共总线上进行传输,并且所有其他客户端都会听到该传输。以太网设计从 ALOHAnet 中删除了集线器,并允许任何客户端将数据包直接发送到任何其他连接的客户端(或使用广播地址的所有客户端)。以太网是分布式访问系统的一个实例。
以太网的安装和操作非常简单。一根 75 欧姆同轴电缆在办公环境周围展开,穿过附近的各种工作站客户端计算机。该规格允许长达 500m 的电缆段,并且三个这样的段可以通过中继器连接,从而允许总电缆长度为 1.5km。工作站客户端通过以太网收发器连接到电缆,以太网收发器使用所谓的vampire tap连接到同轴电缆的内导体,控制单元将电缆上的模拟信号处理为数字信号,然后传回客户端工作站(图 2)。
那么,这里的魔力在哪里呢?回答这个问题的最佳起点是查看第二代技术,即 1980 年以太网规范 ,由 Digital Equipment Corporation、Intel 和 Xerox (DIX) 发布,该规范是 Xerox 早期工作的改进。
没有时钟!
在观察以太网帧时,首先,对于高速系统来说,也许令人惊讶的是,以太网是异步的。公共线不提供用作时钟数据基底的恒定时钟信号。每个收发器都运行自己的自主数据时钟。
以太网帧以 96 位时间(或 9.6 微秒)的强制空闲时间开始,随后是 64 位前导码。前导码是 1 0 1 0… 的交替模式,以第 63 和 64 位中的两个 1 结尾。前导码的目的很简单 — 它设置后续数据包的时钟速率。
每个客户端的任务是查找线路上的活动,并将其本地振荡器与前导码中接收到的隐式时钟信号同步。一旦接收器的振荡器与数据同步,它只需再保持同步 1,518 字节,即 12,144 位,或者在 10Mbps 下保持一毫秒多一点的时间。
以太网使用曼彻斯特编码,其中逻辑 0 由高到低信号转换表示,逻辑 1 由低到高转换表示。全 1 或全 0 对应 20Mhz 方波(图 3)。毫无疑问,使 20Mhz 时钟稳定 1 毫秒比使时钟稳定几年要便宜且容易一些!
任何你想要的尺寸!
嗯,不,不是真的。以太网规范允许单个以太网帧有效负载介于 46 到 1,500 字节之间(图 4)。最小的 IPv4 TCP/IP 确认数据包为 40 字节,非常适合以太网帧,而 1,500 字节的帧则承载 24 字节的开销或 1.57% 的媒体开销。即使考虑到 9.6 微秒的帧间间隙,最大尺寸以太网数据包的媒体开销仍然是非常合理的 2.3%。
这种可变大小的数据包编码的结果是能够最大限度地提高媒体层的效率,允许在没有过多开销和没有过多有效负载填充的情况下承载小型和大型数据包。
可变大小数据包的成本是增加了网络引起的抖动的可能性,其中时钟实时数据流在通过以太网时可能会改变其定时。在具有混合数据包大小的单通道介质中,小数据包必须等待任何先前的大数据包完成。以太网中不存在有序队列。如果客户端无法立即发送数据包,则没有调度队列来维护竞争客户端之间任何形式的顺序。每个客户端都会等待一段随机的等待时间。
数据定时和网络利用率之间存在权衡,并且与 TCP 本身一样,以太网选择走产生最大效率的道路,而不是为了保持隐式数据定时完整性而牺牲速度和容量。回想起来,这被证明是一个精明的设计决定。
最小数据包大小和以太网算法之间也存在巧妙的关系。以太网试图维护的一件事是发射器始终知道另一个发射器是否同时处于活动状态。因此,数据包必须足够大,使得数据包的前导位必须能够传播到以太网局域网 (LAN) 的另一端,并且与另一个发送器的前缘的冲突必须传播回原始发送器在传输停止之前。
这意味着 LAN 的端到端总长度必须是最小帧大小的一半。您可以使最小帧大小更小,但 LAN 本身的最大直径会缩小,或者您可以支持物理上更长的 LAN,但代价是由于最小帧大小较大而导致有效负载效率较低。
所有这些都与铜导体上的电磁传播速度有关,而铜导体上的电磁传播速度又与真空中的光速有关。
将这个值与以太网的设计联系起来,在铜线上运行的 10Mbps 系统将以真空中光速的 0.75 倍(即每秒 224,844 公里)传输比特。这意味着 10Mbps 的 576 位将包含在 12,951m 的铜缆中。最初的以太网设计规范允许总共三根 500m 的铜缆,加上两个中继器的余量,以及大量的错误余量!
以太网CSMA/CD设计
以太网难题的下一个难题是巧妙的载波侦听多路访问/冲突检测 (CSMA/CD) 算法,正如我们已经指出的,该算法源自 ALOHAnet 设计。发送器首先等待公共总线线上的任何当前活动停止(载波侦听),然后它将再等待 9.6 微秒(10Mbps 时为 96 位),然后开始传输帧,从 64 位开始前言。当它传输帧时,它会监视介质以确保没有其他传输发生。
如果在发送帧期间检测到另一次传输(冲突),则发送器会再发送 32 位时间的堵塞信号。堵塞信号还会导致所有其他客户端接收到损坏的以太网帧,并且校验和计算将失败。然后该数据包将被丢弃。
发送干扰信号后,发送方将中止传输并后退一段时间,然后再次尝试初始载波侦听步骤。退避间隔是时隙时间的倍数(其中时隙为 51.2 微秒 — 相当于传输 64 字节的时间,这是最小大小的以太网数据包(减去前导码位))。
退避间隔计算为随机数 r,其中 0 <= r < 2k,并且 k = MIN(n,10),其中 n 是帧的冲突计数器。因此,如果发射机第一次遇到冲突,它将在 0 到 1 个时隙时间(0 到 51.2 微秒)之间后退。如果这导致第二次冲突,则它将后退 0 到 3 个时隙时间(0 到 153.6 微秒)之间的时间,依此类推,直到该帧的第 10 次冲突给出 0 到 1,023 个时隙之间的随机等待间隔次。
在第 16 次阻塞传输尝试之后,该帧被丢弃,并且 MAC 层报告错误(与使用指数间隔冲突侧链的哈希数组的打包效率的任何相似之处都不是巧合,此类哈希表和以太网的打包结果非常相似)。那么,帧在通过媒体发送之前可以等待多长时间?最坏的情况也只有不到半秒。
当然,这里的问题是算法是公平的,因为随着时间的推移,所有发射机将有相同的概率能够在信道上进行传输。LAN 中不存在控制器,也不存在关键故障点,任何连接的站也不依赖于任何其他连接站的正确操作。以太网确实是一种以即插即用方式运行的对等网络技术。
唯一的 MAC 地址!
以太网的下一个创新是客户端寻址。当时网络的一种常见技术是使用短地址字段(通常只有八位大小)并指示 LAN 管理员使用下一个可用地址配置每个连接的设备。这样,数据包中的地址字段占用的空间最小,从而提高了网络的传输效率。
以太网采用了完全不同的方法,以太网(以及 IEEE 802.3 MAC 地址)使用 48 位地址字段。每个制造商都会分配一个数字块,并添加本地唯一的后缀,为每个以太网设备创建全球唯一的 MAC 地址。
网络接口制造商提供的是具有全球唯一地址的以太网设备。这使得最终用户只需将设备插入任何 LAN,并且知道不会发生本地地址冲突。这种使用唯一 MAC 地址的方法不仅使有线网络更易于设置,而且事实证明,它在更动态的连接环境中非常有用,例如无线 801.11 Wi-Fi 网络,其中设备可以在无线服务领域内进行关联,而不会造成网络连接中断。无线地址冲突造成严重破坏。
48位地址字段能持续多久还有待观察,但有人指出,如果每天制造2B以太网设备,需要385年才能跑完这个48位地址空间!
以太网演进
从技术角度来看,以太网通过避免过度设计技术而实现了简单中的优雅。但面对资金雄厚的竞争,以太网要达到普遍存在的水平还需要更多的努力。
Digital、Xerox 和 Intel 决定为 10Mbps 以太网技术创建开放标准是一个重要因素,使大量供应商能够构建可互操作的产品。随后 IEEE 802 委员会采用了该标准,并发布了 IEEE 802.3 以太网 LAN 标准,使这一行业联盟坚定地迈向全行业标准的领域。随之而来的市场竞争导致产品价格昂贵,而供应商的广泛性迫使每个供应商严格遵守共同的标准,以确保其产品与其他供应商的互操作。
部署量的增加也使制造商能够实现规模经济,而以太网在那时就实现了——它比本地网络的其他任何东西都更快、更简单、更便宜。
没有什么可以长期保持稳定,以太网也在不断发展。最初的以太网规范使用粗同轴电缆和vampire tap收发器,至少可以说相当笨重。到 1985 年,IEEE 标准化了 10Base2,这是一种使用更细、更灵活的同轴线的布线方案。从那时起,以太网转移到标准办公室布线系统,并于 1990 年 9 月采用 IEEE 标准化双绞线以太网 (10BaseT)。
双绞线标准也是以太网部署拓扑变化的结果。以太网的最初概念是一条“蛇形”同轴电缆,靠近每个工作站,并且工作站将使用分接电缆连接到该公共电缆主干。但是,将每个客户端压缩到单个电缆段上越来越不可能,并且人们对允许更大的以太网系统的扩展设备以及改变底层本地拓扑以使用使用星形的新兴办公室结构化布线系统感兴趣。集线器采用双绞线接线方式。
下一个演进步骤是将网络扩展到超出其设计限制。问题在于最大电缆路径、最大传播时间和最小数据包大小之间的相互依赖。
使用中继器,可以构建更大的以太网,但如果最长运行的长度超过最小帧大小的两倍,则冲突检测就会受到影响。上层可靠传输协议(例如 TCP)可以修复这些未检测到的数据包冲突问题,但如果应用程序基于简单的数据报,则数据包丢失可能会在未检测到的情况下通过。UDP 上的 DNS 等应用程序以及未检测到的冲突迫使我们更加依赖应用程序级计时器,从而导致性能显著降低。
响应措施是将以太网网络划分为多个不同的冲突域。网桥可能是对原始以太网概念的第一个真正的改变,因为网桥不会传递冲突。网桥从一个冲突域 LAN 拾取以太网帧,检查目标 MAC 地址,如果已知 Mac 地址位于另一个域上,则在另一个冲突域上重新传输该帧。
网桥本质上是透明设备,因为当两个站通过网桥进行通信时,任何一个站都无法发现存在一个或多个中间网桥。数据包格式不会被网桥改变,并且网桥会传递所有广播数据包以及所有单播数据包。
当然,使用桥接器的真正标志是延迟增加。当网桥在将整个数据包切换到另一个 LAN 之前重新组装整个数据包时,任何两个站之间始终存在数据包大小的最小延迟。
对大型 LAN 中遇到的延长延迟的担忧导致了早期交换的有趣概念,即在收到目标 MAC 地址后立即做出交换决定,并且数据包的其余部分以线速进行交换。如果源数据包遇到冲突,则需要在已传输数据包的目标 LAN 上重现冲突。
多端口桥的概念就是从这个两端口模型中衍生出来的,在多端口桥中,可以使用内部交换结构,允许在一个交换周期内在 LAN 接口之间交换多个数据包。这是 LAN 交换机的核心,其中许多单独的 LAN 端口通过交换结构互连。
另一项发展是全双工以太网架构的引入。这仍然是以太网 LAN,但在这种情况下,只有两个站。还有两个不同的通信通道,一个允许第一个站向第二个站发送帧,另一个允许沿相反方向发送帧。
现在,一个站的传输不会干扰另一个站,并且由于需要强制执行冲突限制,因此现在没有 LAN 长度限制。使用这种方法,可以使用两个网桥之间的广域串行链路互连两个 LAN,并且可以构建任意复杂的 LAN 互连拓扑。这种无冲突的全双工架构已成为扩展以太网速度的基石。
但以太网是一种非常简单的成帧架构,建立复杂拓扑的问题是建立各种形式的环路太容易了。以太网生成树协议 (STP) 是将“即插即用”方法扩展到复杂桥接以太网拓扑的一种方式,允许对链路冗余进行各种形式的自动检测以及从主路径到辅助路径的故障转移。
可靠性?
在增加以太网范围、速度和容量的压力下,数据包传输的可靠性架构受到了质疑。公共总线体系结构的设计旨在为发送方提供一定程度的保证,确保介质已将数据包传送到预期的接收方。它没有做的是向发送方提供任何指示,表明数据包已由接收方处理,并且已成功传递到接收进程。
如果数据包传输的可靠性概念很重要,那么重要的是要认识到公共总线 CSMA/CD 以太网无法提供可靠数据包传输的所有方面。如果应用程序想要可靠的数据服务,那么它需要使用可靠的传输服务,例如TCP。
一般来说,如果应用程序需要的话,协议栈上层的作用就是提供可靠的传送服务。在这种情况下,以太网努力提供部分可靠性的意义何在?如果避免冲突措施的全部目的是在使用公共总线时提高介质的效率,那么如果您放弃公共总线,那么在媒体级可靠性方面采取任何措施是否有意义?这个问题的答案是“不”!
快点,再快一点
以太网的下一次发展发生在 20 世纪 90 年代初,推出了 100Mbps 以太网。
随着速度的变化,LAN 构建的基本概念也发生了变化。请记住,在 10Mbps 以太网的基本 CSMA/CD 公共总线架构中,LAN 的最大直径是最小数据包大小的一半。
也就是说,如果发送器正在发送最小大小的数据包,并且在 LAN 的另一端,发送器也在原始传输的前导位到达新发送器之前的瞬间开始发送,则冲突响应必须到达新发送器。整个数据包传输到网络之前的原始发送者。但如果我们将速度提高 10 倍并保持其他条件不变,那么 LANS 将从冲突域的最大直径 1,500m 缩小到 150m 左右。
当然,另一种选择是将最小和最大数据包大小增加 10 倍,但这对于许多传输协议来说是一种相对低效的权衡,并且必须实现一些媒体级帧分段功能以允许如果要将 100Mbps 系统互连到 10Mbps 系统,请将大帧分段为一组较小的帧。
100Mbps 以太网设计的目标是保持一致的数据包格式和数据包大小范围,并允许调整所有其他参数。虽然从理论上讲,这迫使公共总线 100Mbps 以太网的最大直径相对较小,但 100Mbps 已与各种形式的交换集线器一起使用,允许从集线器点到站点的双绞线长度为 100m。
通过这个速度步骤,我们从单一公共总线和冲突框架转变为一组串行链路和以太网交换机。我们用集线器和辐条结构布线取代了同轴电缆蛇,这种结构一直保留到今天。
下一步是达到 1 GB 数据速率,并再次保留 46 至 1,500 字节数据的帧大小范围。与 10 Mbps 和 100 Mbps 以太网规范一样,点对点连接可以在半双工或全双工模式下运行。
半双工操作模式在此速度下存在问题,因为在此速度下网络范围减少到约 15m,因此千兆以太网的半双工版本支持载波扩展,其中时隙时间延长了8倍到 4,096 位时间。与此相结合的是“帧突发”的扩展,允许在半双工模式下将多个短帧打包到单个竞争间隔中。全双工千兆以太网不需要这样的修改,并且以与原始10Mbps CSMA/CD公共总线以太网相同的96位帧间间隔、相同的以太网帧大小范围和相同的帧格式运行。
然后是 10 吉比特以太网 (10GE)。有了这个标准,半双工操作的整个概念就被抛弃了,CSMA/CD 的任何残余也随之消失了。
10GE 规范最初适用于光纤电缆上的全双工模式。在这些速率下,帧没有前导码,相反,链路使用载波信号来保持发送器和接收器同步。
从 20 世纪 90 年代中期起,该行业在接下来的 15 年里稳定在 10GE 系统上。它反映了提高光信号传输系统数据速度的稍慢的演进路径,以及此时客户对显着更快的网络性能的兴趣程度稍低。
40GE、100GE 及以上
更快以太网规范的工作并不集中在以太网帧或访问规范的变化上。帧大小没有改变,以太网的大多数其他方面也是如此。这看起来很像具有更快数据时钟的 10GE。
工作重点集中在光子信号的调制上。高达 10Gbs,可以使用简单的开/关编码并通过单模光纤电缆实现可接受的传输长度。然而,为了提高速度,光学设计人员转向组编码,利用相移键控和幅度编码,类似于早期提高电话网络中模拟调制解调器速度的工作。
如果信号可以在傅立叶空间中分为 16 个离散点,那么每个点对应于 16 或 4 位中的 1 个选择。实际上,这使得光学设计人员能够增加每波特率的位数。这里的权衡包括目标距离、光功率和光纤特性,因此要在提高波特率和增加傅里叶空间中离散编码点的数量之间取得平衡。
市场上有多种 200GE 和 400GE 系统产品,IEEE 正在进行 800GE 和 1.6TE 的标准制定工作。与早期的 10Ge 到 100Ge 过渡一样,预计进展会缓慢而不是加速。目前对这种单通道速度的迫切需求仅存在于谷歌、Facebook 和微软等超大规模企业的领域,而该行业的大部分企业仍在接受更渐进的过渡。100GE世界。
正如我们在光纤速度的演变中所看到的,这里的关键路径在于数字信号处理器 (DSP) 的演变,其中可实现的硅轨道宽度决定了 DSP 芯片的复杂性和灵敏度水平。我们可以在光纤系统上使用 190Gbd 的基本波特率进入 Tbps 空间,该光纤系统使用 PCS-144QAM 信号编码和构建在 5nm 芯片磁道宽度上的 DSP。这仍然处于技术能力的前沿。
DSP 的改进将会继续,但我们可能会看到将信号注入电缆的系统发生变化。就像矢量 DSL 系统使用注入信号的预补偿来补偿铜环路中的信号失真一样,也可以在激光驱动器中使用预失真,以便从这些光缆系统。
但它是以太网吗?
在即将到来的太比特位化身中,以太网还剩下什么?此时,我们重新引入了载波信号方面的恒定时钟,我们放弃了 CSMA/CD 并返回到全双工操作模式。我们保留了帧大小的范围,并且以基本未改变的帧格式保留了 48 位唯一的 MAC 地址框架。也许我们现在已经了解了使网络设计成为以太网实例的基本原理。
不管我们当时的想法如何,以太网并不是 CSMA/CD 公共总线 LAN。事实证明,以太网只不过是共享通用帧格式来传输数据的设备的全局寻址方案。
也许这就足够了。
以太网,生日快乐!
👇👇 点击文末【阅读原文】,可查看原文链接!
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第3452期内容,欢迎关注。
推荐阅读
半导体行业观察
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|台积电|AI|封装
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!
微信扫码关注该文公众号作者