交换式以太网的诞生

news2024/9/21 3:21:30

电路交换,终端(电话)独占端线路自然而然,天经地义,可计算机收发的是数据包(即数据分组),当多台终端接入到同一个共享介质的网络,所有终端可 “同时” 收发数据,一起统计复用网络,多台终端如何协调共享介质的访问,这就是教科书上所谓 MAC(媒体访问控制协议) 子层的职责。

值得注意的是,早期 arpanet 实验基本都是点对点线路,虽然数据以数据包分组为单位收发,但几乎不涉及多台终端同时收发的共享介质仲裁,一条线缆只拴一台终端,网络协议集中解决网络层以上问题,底层复用既有线路和协议。

在以太网出现后,底层链路层,MAC 子层才开始变得不同。

最初以太网 MAC 协议竟然以如此简洁的方式给出:随时发送,失败了重试,直到成功或尝试到放弃。这个极简机制后,以太网自发演化到了交换式,与广域网路由/交换不同,交换式以太网是真正从零开始,根正苗红的原教旨分组交换网。

我来猜猜事情是如何发生的:
在这里插入图片描述
水晶头和双绞线相对 T 型头作为硬件和同轴线更方便部署(排错,更换)且廉价,HUB 显然比同轴电缆更进一步。

值得一提的是,双绞线并不是创造甚至演化出来的,而是复用了已有的电话线。电话线早已深入人心,便宜,方便,柔软,可同轴电缆是什么,贵,安装繁琐,硬,以前的那种有线电视电缆,远不如电话线。

复用电话线的形式似乎是一个范式,汽车也复用了马车的形式。

但更大的突破在软件上。

冲突域虽没变化,但共享介质已被压缩到一个盒子那么狭小的空间。空间尺度的变化影响了软件的变化。

在如此狭小的空间里可以用一种比 CSMA/CD 更精确更有效的方式解决冲突。共享线缆越短,相同大小数据占据线路的时间越短,当这个时间小到一定程度时,全局调度将可接受。

假设信号以光速传播,共享线缆压缩到足够短,那么只需借用 “在一个点通过一个数据包” 的时间独占介质即可,这个时间尺度很容易全局调度,相比较之下,如果在整张以太网全局调度,则调度时间大大增加,增加到光速通过网络尺寸的时间尺度,数据包通过一个大概 200 米的网络,需独占 1us 左右的时间,这将大大限制平均吞吐。

CSMA/CD 在大空间尺度下虽然被证明有足够好的统计性能,但这是不得不这么做,根本原因在时间。冲突信息的回传受光速限制,这没有办法解决。当共享介质的空间尺寸被压缩了将近 1000 倍,10000 倍时,问题就容易解决了。

闭合一个开关即可介质独占。如果多个端口向同一个端口发送,则先通过 buffer 暂存一个。在电路层面,所有端口都全局可见,因此所有这些调度操作都可在极短时间精确完成,这个时间尺度在数据传输时延的若干数量级之下,这提供了全局控制的可行性依据。

逐步压缩长度,逐步压缩了仲裁时间,逐步清晰化了全局视图,最终彻底隔离了冲突域。下图是一个 4 口交换机示例:
在这里插入图片描述

隔离了冲突域之后,冲突不再存在,时间被良好安排,所有时间片将不会再被浪费在冲突和退避重试上,吞吐性能开始起飞,100Mbps,1000Mbps,10Gbps,25Gbps,… 800Gbps,1.6Tbps,万变不离其宗。

交换以太网从此突破了共享介质以太网的距离限制,网络的规模不再由冲突信号回传时间决定,而仅由信号强度决定,更容易拓展到更大规模的网络比如城域网,广域网。

“时间被良好安排,所有时间片将不会再被浪费在冲突和退避重试上” 让事情开始:
在这里插入图片描述

在一个大得多的空间范围统御全局很难,无论获取全局视图还是指令传递和响应的时间都不可接受,这种情况不得不在一定规则下做分布式管理,但在一个路口指挥交通却很容易,指令喊一声都能马上听到。

这就是交换式以太网的演化由来。

我非常惊叹于两种 “传统优化手段”:增加物理资源,适应时间尺度。这两点完美体现在以太网交换机上。

全双工问题通过增加一条线缆解决,从物理上彻底隔离两个方向,实现独立收发,而不仅仅是逻辑上做 “分时复用”,原因在于收发对等,它毫无弹性。而冲突问题则通过缩短共享介质的物理尺寸,待仲裁时间远低于传输时延后实现全局资源调度。在数量级的时间尺度差异的更细粒度上控制资源切换,好像它们在 “同时” 使用一样。这里没有采用增加物理资源的方式,因为统计复用本身在时间上存在极大弹性,通过排队缓存突发,可以将时间片尽可能摊平,保障资源利用率。

时间尺度和弹性的利用可谓非常精妙。此前的文章也提到过,在广域网传输领域优化软中断的锁时延收益甚小,因为与传播时延相比,CPU 处理时延微不足道,但同样的事在数据中心就十分必要,因为同样的 CPU 处理时延在数据中心占比大了几乎 1000 倍。

数据中心内部的传输协议算法不能太复杂的原因即在于此,一个复杂的算法非常消耗 CPU 资源,处理时延本身对总体性能影响巨大,然而同样的算法在广域网领域就可以放手开干。总之,如果一个操作时间占比被缩放到了微不足道的尺度,这部分就可以玩更多花样了。交换机操作的时间尺度控制在光速通过门电路的时间,与光速通过 200 米的时间相比,它微不足道,于是交换芯片的机制和策略可以有非常多的花样来优化,而几百米的同轴电缆上 CSMA/CD 已经接近最优了。

再看增加物理资源和弹性调度之间的取舍。

类似多核处理,增加物理资源提高并行度,而不是靠算法来调度资源,更好的算法提供了更好仲裁方式,而增加物理资源则取消了仲裁的必要。如果资源使用是非弹性的,需要持续仲裁,无法通过暂时排队将请求摊平到空闲时间片,此时需要增加物理资源。但弹性资源则比较适合用算法进行调度。

分组交换网本身就是弹性资源的例子,解决的就是电路交换线路利用率问题,分组交换本身就是一套 “数据调度算法”,即统计复用。

往时髦说,如今的云计算本身是 “调度弹性资源” 的另一个例子。类似 12306 购票,春晚,双 11,电商促销等分阶段突发业务的 “农闲期”,资源要避免过度闲置,厂商需要用较低的价格将这些农闲期的资源出售出去,这就存在一种 “上云的趋势”,云客户支付更低的费用给云厂商而开除了自己的 IT 管理员,退租了机架,这显然更划算。

更有趣的是,虽然交换式以太网已经出现 30 多年了,击败了几乎所有对手,越来越风靡,但以交换式以太网接入互联网的终端却越来越少了,而随着移动互联网的继续发展,更多终端以 Wi-Fi/4G/5G 方式接入,而不是有线的交换式以太网。

4G/5G 继承了太多传统电路交换的底层机制(它们本就是电信阵营),自不必说,时隙,频率都事先分配好了,可以理解成传统电话的无线版,但绝不会是共享介质,电信阵营从不看好统计复用,因此它们自然复杂,昂贵。

Wi-Fi 则完全不同,即使到了 2023 年,它本质上还是一个共享介质的半双工网络,“随时发送,失败了重试,直到成功或尝试到放弃” 的无线版本。之所以这么多年 Wi-Fi 还在共享介质,完全因为两点,首先空气和电磁波频率本身就是共享的,没有办法像有线网络那样通过 “拉一根线缆” 的方式增加物理资源解决问题,其次,由于共享介质,尺度无法压缩,在不增加复杂性的前提下冲突无法避免,如果引入固定的信道分配便不再是统计复用网络了,大大增加了接入复杂性和功耗以及管理成本,与互联网简单接入原则相悖。

总体而言,802.11 系列 Wi-Fi 与以太网属同根,虽尚未进阶 “交换式”,但相信随着硬件成本的下降以及频谱资源的释放和有效利用,Wi-Fi 的技术突破也指日可待,目前,可以期待一下 Wi-Fi 7。

另一条路上,TCP/IP 与以太网天然契合,几乎同年同月同日生,共同在一起 40 年,现如今它们几乎就是互联网的全部了,不过 TCP/IP 已经写了很多了,本文只能到此为止。

说到以太网交换机,教科书都是作为一个里程碑一笔带过,是时候表达一下我的观点了。当我写一些跟教科书以及各类文档不一样的东西时,有人建议我 “重新翻翻计网第四版吧”,我是懒得回应的,如果教材上有这些论述,我为什么还要抄一遍。我从不写文档,我写的是观点。然而通用技术教材最大特点就是(我们希望它)没有观点,以维持客观,虽然我们都知道任何著述都不可能没有观点,但我们依然相信它最好没有观点。我们对 TCP 如何脱颖而出不感兴趣,哪怕作者本人来讲,大部分人也懒得听,我们知道 TCP 是什么样就够了。那么很明确,想学 TCP/IP 网络知识和技能,我写的东西可能不适合你,我写的东西受众是已经学了 TCP/IP,但对某些问题百思不得其解的朋友,那么翻翻我的文章目录,总能找到你感兴趣的。

浙江温州皮鞋湿,下雨进水不会胖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/547980.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux常用命令——htop命令

在线Linux命令查询工具 htop [非内部命令]一个互动的进程查看器,可以动态观察系统进程状况。 补充说明 htop命令 是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台或者X终端中),需要ncurses。 与Linux传统的top相比…

【5.20】五、安全测试——概念与漏洞

目录 5.1 安全测试概述 5.1.1 什么是安全测试 5.1.2 安全测试的基本原则 5.2 常见的安全漏洞 5.2.1 SQL注入 5.2.2 XSS跨站脚本攻击 5.2.3 CSRF攻击 软件安全测试是软件测试的重要研究领域,它是保证软件能够安全使用的最主要手段,做好软件安全测试…

pg事务:multixact

什么是multixact? 在对同一行加锁时,元组上关联的事务ID可能有多个,pg将多个事务ID组合起来用一个MultiXactID来管理。TransactionId和MultiXactID是多对一的关系 multixactID跟TransactionId一样,也是32位,同样有wra…

Seata AT 模式理论学习及部分源码解析 | Spring Cloud 52

理论部分来自Seata官网:http://seata.io/zh-cn/docs/dev/mode/at-mode.html 一、前提 基于支持本地 ACID 事务的关系型数据库。Java 应用,通过 JDBC 访问数据库。 二、整体机制 两阶段提交协议的演变: 一阶段:业务数据和回滚日…

【SpringCloud组件——Ribbon(负载均衡)】

一、Ribbon主要作用在哪一环节? 流程讲解: 案例依然采用Eureka章节提供的案例,orderService根据服务名称发起请求,请求传达至Ribbon,此时Ribbon从Eureka中心拉取userService服务列表,Ribbon根据负载均衡算法…

组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测(Python) 目录 组合预测模型 | ARIMA-WOA-CNN-LSTM时间序列预测(Python)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-WOA-CNN-LSTM是一种结合了传统时间序列模型和深…

ChatGPT应用场景巡航之广告文案

此文为ChatGPT应用场景巡航第二篇:广告文案。 写出成功的文案,需要专业的技术水准,如果加以辅助工具,那会更加如虎添翼,事半功倍,本文会给大家介绍一下广告文案的写作技巧和辅助工具的使用。 01 — 指导原…

8-《性能优化》

8-《性能优化》 1 启动优化1.1.冷启动耗时统计?1.2.TraceView和System Trace1.3.优雅获取方法耗时1.4.启动速度优化小技巧1.5.启动优化之异步初始化1.6.启动优化之异步初始化最优解—启动器1.7.延迟初始化1.8.其它方案1.9.启动优化之模拟面试 2 布局优化3 线程优化3…

基于Zynq的雷达10Gbps高速PCIE数据采集卡方案(一)总体设计

2.1 引言 本课题是来源于雷达辐射源识别项目,需要对雷达辐射源中频信号进行采集传输 和存储。本章基于项目需求,介绍采集卡的总体设计方案。采集卡设计包括硬件设计 和软件设计。首先对采集卡的性能和指标进行分析,接着提出硬件的总体设计…

OPCUA 聚合服务器和历史数据服务器

前言 开放自动化是一个热门话题,自动化XML(AutomationML),基于信息模型的通信协议(OPC UA)和工业4.0 管理壳(ASS) 可谓是开放自动化的三套件。三者相互交叉,相互引用&…

教你精通Java语法之第十五章、Lambda表达式

目录 一、背景 1.1Lambda表达式的语法 1.2函数式接口 二、Lambda表达式的基本使用 2.1语法精简 三、变量捕获 3.1匿名内部类 3.2匿名内部类的变量捕获 3.3Lambda的变量捕获 四、Lambda在集合当中的使用 4.1Collection接口 4.2 List接口 4.3Map接口 五、总结 一、背…

2023国赛tomcat题

环境: 10.10.120.128 安装 tomcaA 10.10.120.129 安装tomcatB 10.10.120.130 安装 nginx 配置dns: 正向解析 反向解析 Tomcat ssl配置 [root@localhost ~]# tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz [root@localhost ~]# mv jdk-11.0.8 /usr/local/ Vim /etc/profile …

如何在代码开发中便捷使用 ChatGPT 协助开发

在五一节前后,抽空测试了下网上推荐的开发环境和开发插件,在这里推荐给前后端代码开发的同胞们。 方法一:IDEA 安装 插件 bito 习惯使用 IDEA 开发代码的同胞,可以尝试直接在 IDEA 中安装插件 bito,注意操作过程中需要…

jarvisoj_fm

小白做题垃圾笔记,不建议阅读。 1.32位操作系统,有canary,和NX ,本来以为是绕过canary呢。 2.第12行,如果x4就执行/bin/sh ,第10行存在格式化字符串漏洞。 是格式化字符串漏洞,对任意地址内容更改。 3.确定…

实操Linux 部署单机版nacos

目录 Nacos部署环境要求JDK安装下载和构建Nocas控制面板,新建配置Nacos数据库配置 总结 Nacos部署环境要求 64bit OS: Linux/Unix/Mac/Windows 支持, Linux/Unix/Mac 推荐 64bit JDK 1.8 Maven 3.2.x JDK安装 1、准备好jdk1.8 链接:https://pan.baidu.…

【SpringCloud组件——Eureka】

前置准备: 分别提供订单系统(OrderService)和用户系统(UserService)。订单系统主要负责订单相关信息的处理,用户系统主要负责用户相关信息的处理。 一、微服务当中的提供者和消费者 1.1、概念 服务提供…

第二章 逻辑分类模型

目录 一、逻辑回归基本模型二、处理多维特征输入三、加载数据集四、多分类问题 一、逻辑回归基本模型 基本模型: y ^ σ ( x ∗ ω b ) \hat{y} \sigma (x * \omega b) y^​σ(x∗ωb),其中 σ ( ) \sigma() σ() 表示 sigmod 函数 σ ( x ) 1 1…

LMS,RGB,XYZ色彩空间转换

前言 首先需要指明本文中描述的R,G,B并非通常的sRGB中的三个分量R,G,B,而是波长分别为700nm,546.1nm,435.8nm的单色红光,单色绿光,单色蓝光。sRGB中的RGB中的红色、绿色、蓝色已经不是单色光了。虽然习惯上大家都叫RGB…

文法的FIRST集

求文法的FIRST集和FOLLOW集的步骤如下: 求FIRST集 如果符号是终结符,则FIRST集合为该终结符本身。如果符号是非终结符,则将该非终结符可以推导出的所有串的FIRST集合合并,得到该非终结符的FIRST集合。如果一个非终结符可以推导出…

Linux篇5

Shell常用命令 1. 磁盘管理类1.1 du:查看文件和目录占用的磁盘空间1.2 df:查看磁盘空间使用情况1.3 free:查看内存使用情况1.4 lsblk:查看设备挂载情况1.5 mount/umount:挂载/卸载1.6 fdisk:分区 2. 进程管…