当前位置: 首页 > news >正文

互联网随想(三) 光纤与电路交换

光纤的 “纤”,读 xian(先),第一声,而不是 qian(千)。

光纤之于通信,就像半导体之于计算机。光纤突破了通信的电子瓶颈,就像半导体集成电路突破了计算机的电子管瓶颈一样。

但本文不是赞美光纤的,本文为反复唏嘘。

分组交换最终取代电路交换的一大原因是电路交换浪费了宝贵的电子时隙,带宽利用率极低。分组交换依托排队论对时隙进行高效率统计复用,最终形成了互联网存储转发的现实。路由器,交换机等转发设备都是存储转发设备。

但交换节点和终端节点同质,同为集成电路驱动,同受摩尔定律制约。良好的胖端瘦网架构使互联网极具扩展性,快速成长的互联网使交换节点的负载指数上升。换句话说,随着接入终端的增加,带宽却没有同步增加,互联网越发不堪重负。

通过 Metcalfe 定律很好理解这一点。

网络价值与节点数量的平方成正比,Metcalfe 定律如是说。证明该定律非常简单,设节点数量为 N,将连接视为价值,其值为 N(N-1),N 越大,越接近 N^2。但连接以流量体现,即网络的总流量也与节点数量的平方成正比。将流量视作成本,这意味着,成本随价值同步增加。网络流量被集成电路驱动,受摩尔定律制约,摩尔定律曲线远没有 Metcalfe 定律曲线更陡峭。

为保持网络可扩展性,TCP/IP 胖端瘦网已使 “网络核心接入无关” 且无状态 IP 足够傻瓜,当接入成本近乎为零时,必须降低带宽成本。而带宽成本通过逻辑门驱动电脉冲体现,非常昂贵,不能和接入节点数量耦合。于是光纤来解题,全光通信没有一个逻辑门,于是网络核心将彻底摆脱摩尔定律。

光纤的发明解放了通信瓶颈,就像半导体解放了计算瓶颈一样。计算需要逻辑门,通信只需要光。

全光网络被认为是革命性的。以海量但数量固定的波长交换替换分组交换,一定是高尚的。交换节点不需要任何电子器件就能完成 Tbps 级交换,这种转变非常类似 “固定数量的进程中调度任意数量连接” 替换 “调度任意数量的每连接进程”,又一个 case 印证了倒换思想的正确性。

我非常清楚光学已热度不再,但我依然觉得光纤就像半导体一样具有革命性,之所以没像半导体促进计算机产业那样促进通信,是因为目前电子通信还不算太糟糕,分组交换网也没有预期的那样拥塞,远未触及摩尔定律约束的电子瓶颈。反观半导体之于计算机,要不是半导体,计算机要几间房子,跟锅炉房一样,肯定发展不起来。那时没有选择。

在光纤中可复用海量波长,而在电缆上只能时分复用任意数量分组,这是光纤和电缆的区别。波长数量是固定的,而分组数量不固定,按照波长选择路由,就具有了可扩展性。

摆两个视频:全光交换,OXC 光交换原理

光通信一下子就将负责计算的端和负责通信的网所依托的技术完全分开,消除了传输技术的电子瓶颈,摆脱了摩尔定律。

但事出必反复。人们非但没沿全光通信的大道一路走到黑,反而想将分组交换引入光通信,实现光分组交换。

全光网络波长交换实际上是电路交换,而提到电路交换,人们只会鄙视其早已过时。很少有人进一步思考分组交换的来由。如前文所述,电路交换浪费了电子时隙,发送一个电子载波脉冲成本非常高,高效利用每一个载波脉冲意义重大,分组交换来救场,统计复用成就了互联网。

但如果电子时隙取之不尽,用之不竭呢?

波长就相当于取之不尽,用之不竭的资源,在光通信时代,有必要用分组交换提高资源利用率吗?提高资源利用率必降低效率,如果每路通信都能零成本创建一条电路,谁还会用分组交换?

驱动分组交换的逻辑门电子过程才是低效和不可扩展的根源。分组交换是低效和不可扩展的原因,而非解决方案。

更有趣(其实一点都没趣,反而悲哀)的是,由于要在光域处理分组头,人们努力寻找或实现光域逻辑门,过程非常困难。比方说,为实现光分组存储转发,光分组要可被缓存,而光脉冲无法像电脉冲那样用锁存器,触发器这种元器件缓存起来,光域没有这种逻辑门组合,于是人们想出 “让光多走一段路” 这种 t = S/v 牛顿风格来实现延迟。

光信号本可直接通过,却偏要模仿电信号停一下,如果不能被缓存一下,就好像是光域相对于电域的缺陷,光域没有逻辑门,却偏要等效一个逻辑门。为解决电域的低效和不可扩展问题,却引入了电域的问题本身,绕了一大圈。

这让人想起 19 世纪英美的 红旗法案,明明汽车是个高效的交通工具,偏偏故意让它停下来,好让一切看起来和旧世界更和谐。

如本周上一篇文字,AIMD 本是为限制 Capacity-Seeking 贪婪性而引入,人们的思维定势引导人们即使 Capacity-Seeking 全转变成了 Application-Limited,却依然还要 AIMD 主导拥塞控制,不然就像少了什么一样。

人们天然认为分组交换相对于电路交换是进步,却忽略了背后因果。分组交换只是一个解决特定问题的方案,当问题消失后,方案自然就不再需要,所谓的进步也终成子虚乌有。

在全光通信中,这下好了,分组交换也没了。可能,也许,分组交换也好,AIMD 也要,只是过渡,甚至过客。
以上形而上迷思非工程实践,不涉及 “现实中铜线不会被光纤淘汰” 以及 “全光网络无法实现” 这种争论,如果有,谁说什么都对。

人们修建第一条高速公路的时候,肯定会有人想在一些特定的地方装上红绿灯,因为没有红绿灯的路太奇怪了。但红绿灯在普速路上是方法,但在高速公路上就成了问题。程序员看不起一体机,因为没有独立主机和显示器太奇怪了,而且总有各种理由,比如随时换显示器,散热好。AIMD 被视作理所当然,然后用 BBR 来优化它,却没人想等到带宽充盈到一定程度后取消它。分组交换深入身心,以至于全光通信时代依然还要做光分组交换…

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

相关文章:

互联网随想(三) 光纤与电路交换

光纤的 “纤”,读 xian(先),第一声,而不是 qian(千)。 光纤之于通信,就像半导体之于计算机。光纤突破了通信的电子瓶颈,就像半导体集成电路突破了计算机的电子管瓶颈一样。 但本文不是赞美光纤的,本文为反…...

electron之旅(二)react使用

首先使用react模板 我们这里使用的是vite和yarn yarn create vite #创建vite的react-js模板初始化依赖 yarn添加依赖 state(状态管理) yarn add redux react-reduxroutes(react路由) yarn add react-router-domelectron依赖 yarn add electron vite-plugin-electron cross-env…...

ChatGPT基础知识系列之Prompt

ChatGPT基础知识系列之Prompt 在 ChatGPT 中,用户可以输入任何问题或者话题,如天气、体育、新闻等等。系统将这个输入作为一个“提示”(prompt)输入到 GPT 模型中进行处理。GPT 模型会基于其学习到的语言规律和上下文知识,生成一个自然语言回答,并返回给用户。 例如,当…...

SpringBoot3 - Spring Security 6.0 Migration

Spring Security 6.0 Migration https://docs.spring.io/spring-security/reference/5.8/migration/servlet/config.html 最近在做SpringBoot2.x到3.0的升级。其中最主要的一部分是javax -> jakartapackageName的变更,另外一部分是对一些废弃/删除的类进行替换。…...

【新2023Q2模拟题JAVA】华为OD机试 - 最少停车数

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:最少停车数 题目 特定大小的…...

《代码实例前端Vue》Security查询用户列表,用户新增

login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>系统登录-超市订单管理系统</title><link rel"stylesheet" href"../css/style.css"><script type&qu…...

CANopenNode学习笔记(一)--- README翻译

CANopenNode学习笔记 文章目录CANopenNode学习笔记特性CANopen其他CANopenNode 流程图文件结构对象字典编辑器CANopenNode 是免费开源的CANopen协议栈。 CANopen是建立在CAN基础上的用于嵌入式控制系统的国际标准化(EN 50325-4) (CiA301)高层协议。有关CANopen的更多信息&#…...

关于Android 11、12和13服务保活问题

物联网环境&#xff0c;为了解决不同厂商、不同设备、不同网络情况下使用顺畅&#xff0c;同时也考虑到节约成本&#xff0c;缩小应用体积的好处&#xff0c;我们需要一个服务应用一直存在系统中&#xff0c;保活它以提供服务给其他客户端调用。 开机自启动&#xff0c;通过广播…...

Java 泛型 使用案例

参考资料 Java 基础 - 泛型机制详解路人甲-Java泛型专题 目录一. 通用Mapper1.1 实体类1.2 Mapper基类1.3 自定义接口1.4 抽象基类Service1.5 调用二. session和bean的获取一. 通用Mapper 1.1 实体类 ⏹ Accessors(chain true): 允许链式调用 import lombok.Data; import …...

进程与线程

文章目录什么是线程线程与进程的关系线程与进程的区别什么是线程 上一篇文章中我们介绍了什么进程&#xff0c;我们把进程比作一个工厂&#xff0c;那么线程就是工厂中的流水线。引入进程的目的就是为了实现多个任务并发执行&#xff0c;但是如果频繁的创建销毁进程&#xff0…...

骑友,怎么挑选适合自己的赛事

骑友&#xff0c;怎么挑选适合自己的赛事一、从场地、路况、天气&#xff0c;各个方面了解赛事的要求。二、看完赛事&#xff0c;要知道自己适合参加什么样的比赛。三、通过比赛成绩&#xff0c;对比自己的实力。四、综合考虑自己的经济能力&#xff0c;根据自己的经济能力选择…...

【Java 数据结构与算法】-遍历Map和Set的方式

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【Java 数据结构与算法】 文章目录一、遍历Map法一 先获取Map集合的全部key的set集合&#xff0c;遍历map的key的Set集合法二 把map的key和value打包成Set的key后的这个Set集合法…...

组件、套件、 中间件、插件

组件、套件、 中间件、插件 组件 位于框架最底层&#xff0c;是由重复的代码提取出来合并而成。组件的本质&#xff0c;是一件产品&#xff0c;独立性很强&#xff0c;组件的核心&#xff0c;是复用&#xff0c;与其它功能又有强依赖关系。 模块 在中台产品和非中台产品中&…...

自动化工具 pytest 内核测试平台落地初体验

测试平台&#xff0c;有人说它鸡肋&#xff0c;有人说它有用&#xff0c;有人说它轮子&#xff0c;众说纷纭&#xff0c;不如从自身出发&#xff0c;考虑是否要做测试平台&#xff1a; 第 1 阶段&#xff0c;用 Pythonrequests 写接口自动化。 第 2 阶段&#xff0c;选择 unit…...

Python 自动化指南(繁琐工作自动化)第二版:四、列表

原文&#xff1a;https://automatetheboringstuff.com/2e/chapter4/ 在开始认真编写程序之前&#xff0c;您需要理解的另一个主题是列表数据类型及其表亲元组。列表和元组可以包含多个值&#xff0c;这使得编写处理大量数据的程序更加容易。由于列表本身可以包含其他列表&#…...

大数据领域的发展及其对现实世界的价值

大数据已经成为全球各行业领域不可或缺的一部分&#xff0c;并且其应用不断涌现。尽管很多人最初对“大数据”这一术语表示怀疑和不信任&#xff0c;但大数据技术已经确立了稳定的发展方向。根据调研机构的预测&#xff0c;到2027年&#xff0c;全球大数据市场规模将达到1090亿…...

几种常见的架构模式

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址 如果访问不了Github&#xff0c…...

flutter安装各种问题汇总

C:\Users\Administrator>flutter doctor -v Flutter assets will be downloaded from https://storage.flutter-io.cn. Make sure you trust this source! [√] Flutter (Channel stable, 3.7.0, on Microsoft Windows [版本 10.0.19044.1826], locale zh-CN) • Flutte…...

网络传输层

目录传输层再谈端口号端口号范围划分认识知名端口号netstatpidofUDP协议UDP协议端格式UDP的特点面向数据报UDP的缓冲区UDP使用注意事项使用udp协议 的应用层协议其它TCP协议TCP协议段格式如何理解链接如何理解三次握手如何理解四次挥手概念TIME_WAIT/CLOSE_WAITTCP策略确认应答…...

linux内核启动分析(二)

文章目录1. set_task_stack_end_magic2.smp_setup_processor_id3. debug_objects_early_init4. cgroup_init_early4.1 init_cgroup_root4.1.1 init_cgroup_housekeeping4.2 cgroup_init_subsys5. local_irq_disable5.1 raw_irqs_disabled5.2 raw_local_irq_disable5.3 trace_ha…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...