不同尺度下的网络控制方式

《三国演义》和《长安十二时辰》有什么不同?

关羽败走麦城,远在千里之外的刘备收到两个信号,一个需要 “星夜驰援”,紧接着 “二弟休矣”,三国的故事在东亚大陆展开,地理尺度巨大,星夜不星夜其实无所谓,拖到次日早上也无妨,长距离行军途中,任何事都可能推翻军队开拔时的决策。如千里行军,只为攻城,当行军至百里时,城可能已被它方势力攻破,这种尺度下故事情节的展开多由策略推动,而不是具体军事行动,那些后方军师的重要性和魅力要高于战将。

而不良人张小敬在长安城的演绎却表现在小范围城市巷战,各方信息快速通达,军警配合行动,步步紧逼,非常具有节奏感,这种场合下那些手无缚鸡之力的长者军师更多表现为多舌和啰嗦,整个剧情在追跑,隐蔽,巷战中展开,更需要身手敏捷的主角。

现代一个对等的例子,对比大陆警匪片和香港警匪片也能体现上述描述。大陆片在大地理尺度展开,总有一个老谋深算的智者不出门出策略,一队人从东北追到云南却扑了个空,镜头再切到福建海边。而香港警匪片基本上全程都是身材精瘦的警匪在追打,所以也能归为动作片。

这个意思可以直观解释我一再强调的 “广域网上别求太精确的测量”,因为根本就不可能测准,广域网全局部署 cubic 几乎是最优解,aimd 就是背后的那个军师。

广域网的一切问题反过来都是数据中心的方案。

数据中心可以低成本获得全局视图,在非常小的传播时延中这个全局视图可以指导精确的行为,因此 aimd 这种盲视图的收敛算法就不再特别重要。全局控制的意思是全局流量调度,虽然 pfc 以及它的引申算一类,但它还是不如 ib,因为以太网本身的矛盾就很有趣,它生在一个小地理尺度环境,却在一开始自带了大尺度的盲视图策略 csma/cd,即使交换机诞生,交换机 buffer 检测积攒冲突(执行 cd),再也攒不住时,端主机收敛一半的流量,aimd 顺理成章。

如果以太网的矛盾不解决,不在交换机里做点什么除了缓存 packet 之外的事,所有的算法都会显得拧巴蹩脚。君不见如今的自研交换机,无非是如何更巧妙地缓存 packet 以利用 buffer 罢了。

这就好比香港警匪片,在高架桥上修建了很多驿所(长距离行军才需要),让泼丽斯们逐跳前往下一个驿所等候行动命令,明明一架直升机和一通电话就能搞定的事,这和从佳木斯追到西双版纳中间必须加油住店协调部署完全是不同的环境。

在广域网视图通过精确测量做决策算一种不成功的创新,而在数据中心部署 aimd 更多是一种拿来主义。很多人都讲过,aimd 是一种经过严密论证的非常成熟的拥塞控制策略,所以几乎任何算法都拿来用,哪怕只是兜底,但毕竟底都兜住了,上面的不做也罢,于是纷纷卷入更能所见即所得的方向,比如网卡。

最后,看一个从小尺度集中调度到大尺度分布式统计复用的转化过程的例子,二者也不是强制二选一的。

典型的红绿灯和环岛转盘,目前很多地方都用红绿灯替换了环岛。但实际上环岛是一种非常高效的分布式控制系统:
在这里插入图片描述

从左到右,第一个图是单纯的红绿灯,红灯停绿灯行,第二个图是小环岛,就像长春市中心那些环岛,图三是个完全环岛。

图一有指挥灯统一调度,图三则将集中式统一调度转换成了分布式自行变道。

但是参见图二,现实中的城市环岛。大规模把环岛拆掉换成红绿灯的原因和网络拥塞控制领域的不良行为也是一样。

如果环岛交通参与者能自行遵守 “进入让驶出” 的原则(出去了才能腾出空间),环岛肯定比红绿灯更高效,时延抖动会大幅降低,尾时延也会降低,但问题就是那些不遵守规则的人引入的,结果换成了红绿灯这种虽然低效但能兜底的策略。

互联网上的情形也不过如此,不管是广域网还是数据中心,传输低效的核心在于有人不遵守规则,公地悲剧,布雷斯悖论,科斯定律,主角就是他们。只要现在的互联网云计算公司的无知经理还在视图 “提升业务数据传输效率”,互联网的整体传输效率就会越来越低效。

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

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

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

相关文章

PHP语言检测用户输入密码及调用Python脚本

现在有一份计算流体力学N-S方程的Python脚本,想要在用户登录网站后可以可以运行该脚本,然后将脚本运行后绘制的图片显示在用户网页上。 建一个名为N_S.py的python脚本文件,这个脚本在生成图像后会自行关闭,随后将图片保存在指定的…

一篇超级最全的python基础篇

1.数据类型和变量 Python使用缩进来组织代码块,一般使用4个空格的缩进.使用#来注释一行,其他每一行都是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块.Python对大小写敏感. 1.1 整数 Python可以处理任意大小的整数,包括负整数,写法与数学上写法一致,例如:-100.如果用十六…

【文本编辑器,哪款适合你?】讲解

文本编辑器,哪款适合你? 文本编辑器介绍 文本编辑器介绍 电脑使用者在选择文本编辑器时,应该考虑以下几个方面: 需求:你是需要进行基本的文字处理工作,比如写作业或者制作报告,还是需要使用到高级功能&am…

BIO实战、NIO编程与直接内存、零拷贝深入辨析

BIO实战、NIO编程与直接内存、零拷贝深入辨析 长连接、短连接 长连接 socket连接后不管是否使用都会保持连接状态多用于操作频繁,点对点的通讯,避免频繁socket创建造成资源浪费,比如TCP 短连接 socket连接后发送完数据后就断开早期的http服…

简单上手若依框架

简介 若依是一个基于SpringBoot,Shiro,Mybatis的权限后台管理系统官网文档:介绍 | RuoYi源码 前后端不分离 RuoYi: 🎉 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重…

InfluxDB的常用数据操作

1.插入语句 # INSERT语句用于向数据库中插入数据点(数据行)。 # 这些数据点包含时间戳、测量(measurement)、标签(tags)和字段(fields)等信息。 # 以下是INSERT语句的基本语法 INSE…

C++面试:内存溢出、内存泄漏的原因与解决

目录 内存溢出(Memory Overflow) 内存溢出介绍 解决内存溢出问题的方法 内存泄漏(Memory Leak) 内存泄露基础 解决内存泄漏问题的方法 内存溢出(Memory Overflow) 内存溢出介绍 内存溢出是指程序在执…

第6.4章:StarRocks查询加速——Colocation Join

目录 一、StarRocks数据划分 1.1 分区 1.2 分桶 二、Colocation Join实现原理 2.1 Colocate Join概述 2.2 Colocate Join实现原理 三、应用案例 注:本篇文章阐述的是StarRocks-3.2版本的Colocation Join 官网文章地址: Colocate Join | StarRoc…

Rust所有权--与go对比学

如何拿返回值,如何不传递所有权就更改原值?如果想操作更改元变量要怎么做呢? 分别执行以下go代码: func main() {var a 10//calc1(a)//a calc_return(a)calc2(&a)a 100calc3(&a)fmt.Println(a) } func calc1(num int…

SQL Server 连接池相关内容

查看最大连接数 SELECT MAX_CONNECTIONS查看指定数据库的连接数 SELECT * FROM master.dbo.sysprocesses WHERE dbid IN ( SELECT dbid FROM master.dbo.sysdatabases WHERE NAMEDB_WMS_KZJ )获取当前SQL服务器所有的连接详细信息 SELECT * FROM sysprocesses获取自上次启动…

五大方法教你如何分分钟构造百万测试数据!

在测试的工作过程中,很多场景是需要构造一些数据在项目里的,方便测试工作的进行,构造的方法有很多,难度和技术深度也不一样。本文提供方法供你选择。 在测试的工作过程中,很多场景是需要构造一些数据在项目里的&#…

Centos服务器部署前后端项目

目录 准备工作1. 准备传输软件2. 连接服务器 部署Mysql1.下载Mysql(Linux版本)2. 解压3. 修改配置4. 启动服务另一种方法Docker 部署后端1. 在项目根目录中创建Dockerfile文件写入2. 启动 部署前端1. 在项目根目录中创建Dockerfile文件写入2. 启动 准备工作 1. 准备传输软件 …

全网唯一基于共享内存的C++ RPC框架

首先声明:我不是标题党,我是在找遍全网,没有找到一个基于共享内存实现、开源且跨平台的C RPC框架之后,才着手开发的这个框架。 项目地址:https://github.com/winsoft666/veigar 1. Veigar Veigar一词来源于英雄联盟里…

Nacos服务发现及其其他工具

1、什么是Nacos的服务发现功能 在微服务架构中,服务发现功能允许服务提供者(服务实例)将自己注册到Nacos服务器,同时服务消费者(客户端)能够通过Nacos服务器发现可用的服务实例。这样,服务消费…

2024年湖北省事业单位考试报名流程图解

⏰ 时间安排 ✔️ 注册:2024年2月19日至2月27日15:00 ✔️ 报名:2024年2月21日9:00至2月27日17:00 ✔️ 资格审查:2024年2月21日9:00至2月28日9:00 ✔️ 缴费确认:2024年2月28日9:00至3月1日24:00 ✔️ 岗位调整和改报&#…

数据结构与算法:图形数据结构

1. 图的基本概念和表示方法 图是一种由节点和边组成的非线性数据结构,用于描述事物之间的关系。在计算机科学中,图是一种十分重要的数据结构,广泛应用于各种领域,如网络分析、路径规划等。本节将介绍图的基本概念和两种常见的表示…

C++知识点总结(22):模拟算法

一、概念 模拟算法 根据题目描述进行筛选提取关键要素,按需求书写代码解决实际问题的算法。 二、步骤 1、提取题目的关键要素 2、根据关键要素的需求完成代码 三、关键要素 1、题目目的 2、样例的执行逻辑(样例分析) 3、数据范围(…

上门服务系统|上门服务小程序|上门服务软件开发

随着移动互联网技术的普及,上门服务小程序系统成为现代企业数字化转型的关键一环。这一系统为消费者提供了更加便捷、高效以及个性化的服务体验,同时也为企业带来了更广阔的商业机会。让我们来看看上门服务小程序系统的优势和功能。 首先,上门…

vue3新特性-defineOptions和defineModel

defineOptions 背景说明&#xff1a; 有 <script setup> 之前&#xff0c;如果要定义 props, emits 可以轻而易举地添加一个与 setup 平级的属性。 但是用了 <script setup> 后&#xff0c;就没法这么干了 setup 属性已经没有了&#xff0c;自然无法添加与其平…

Docker基础篇(二)

docker run -d docker run -d 容器名或容器ID docker run -d 后台生成容器&#xff0c;并退出容器&#xff08;除容器中在运行脚本&#xff09; docker run -it 交互生成容器 docker run -d centos /bin/sh -c “while true; do echo zen; sleep 2;done” 查看容器中的进程…