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

加油口,电梯门的对称性对 TCP/IP 传输协议的启示

春节期间河南穷游屡次加油站排队加油之启示。

不考虑有意的设计因素,汽车加油口概率性分布在车身的左边或者右边,这个偶然的小细节让加油机同时为两辆车加油而无需额外的加油管。

如果所有车辆加油口都在同一侧,加油站的加油机就只能给一边的车加油,高峰期容易造成拥堵,加油效率低下,或者加长一根加油管,用飞线的方式跨过紧靠加油机的车辆为远离加油机的车辆加油,资源浪费。加油口分设在左右两侧,能让车辆从不同方向停靠加油机,加倍了加油站吞吐,提高加油效率。

类似的例子还有多侧开门的电梯,这让楼层布局摆脱了电梯井的位置约束,从而可以设计出更加多样性的楼层布局,设电梯的四边门编号为 1,2,3,4,比如经理在大厅从电梯 1 号门进入,到达目标楼层可以从背向的 3 号门走出,这就允许目标楼层在任何方向敞开,大大缩短了穿皮鞋走路的距离。

比如港口,煤矿,油田装货卸货设施,远距离输电设施等,均有类似的小细节,但由于这些设施与大多数人日常生活无关,这类例子不再赘述。

所有类似设计背后的哲学很简单,就是对称性。增强对称性就意味着高性能,反之则意味着高稳定。

在设计传输协议时,有单接收 buffer 和多接收 buffer 之选择,显然 TCP 是单 buffer。类比加油站,装卸货等设施,如果新的传输协议同时使用两个或更多 buffer,将会高尚。

当数据到达时,接收例程选择一个没有被进程上下文 lock 的 buffer,将数据 queuing,随后携带若干 buffer 共同维护的共享接收状态返回 sender,这些状态或许是一个 bitmap,或许是 SACK 链,这些不重要。这种方式摆脱了 TCP 串行接收的约束,除非所有 buffer 均被 lock,否则不必将 data 放入 backlog。这种方式解耦了接收和包括可靠和保序之类的处理,当然,如果你的协议是尽力而为的,把处理逻辑留空,pass through 即可。

如果在用户上下文自行处理可靠,保序等逻辑,可想而知只有一个或至多线程数量的 buffer 被 lock,只要 buffer 数量足够多,接收上下文总能 queuing data,这才是真正的样子。

这将极大提高传输吞吐。因为我们知道,制约吞吐的大障碍就是串行化,之所以必须串行化,其原因是可靠性处理,然而处理可以拨离到单独的上下文,与接收上下文流水线化,这种表象化的思路背后就是加层解耦,但实质则是对称化。

再回到加油站。

也许加油口的位置设计与左舵右舵有关,如果加油口固定在左侧,靠右行驶的车辆靠路边加油没问题,而靠左行驶的车辆只能在中间岛加油,为统一加油站的设施规格,加油口就得置于右侧。这些约束太严格了,但在加油站内部,松散约束并没什么大问题,这是独立的上下文,与上路情形的规则完全解耦,因此,只要在加油站内部同时允许靠左,靠右行驶就行了。

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


http://www.kler.cn/a/544404.html

相关文章:

  • DeepSeek R1本地部署解决,DeepSeek服务繁忙
  • Flink之Watermark
  • ARM Cortex-M3/M4 权威指南 笔记【二】架构
  • Redis实现分布式锁
  • ds-download-link 插件:以独特图标选择,打造文章下载链接
  • 团结引擎 OpenHarmony 平台全面支持 UAAL,实现引擎能力嵌入原生应用
  • 通义灵码 2.0 全新升级,阿里云正式推出繁星计划
  • 云原生小记:负载均衡
  • 字节跳动后端一面
  • es凌晨自己把索引删除了,包括es自己的索引
  • 【STM32】输入捕获实现超声波测距
  • 大模型基本原理(四)——如何武装ChatGPT
  • 四、自然语言处理_08Transformer翻译任务案例
  • 【已解决】lxml.etree.ParserError: Document is empty
  • ChatGPT macOS 桌面应用让你的编程体验更上一层楼
  • 全面解析鸿蒙(HarmonyOS)开发:从入门到实战,构建万物互联新时代
  • Cables Finance 构建集成LST与外汇RWA永续合约的综合性DEX
  • 如何启用 Apache Rewrite 重写模块 ?
  • 在ArcGIS JS API中使用WebGL实现波纹扩散特效
  • 先进制造aps专题二十九 基于ai智能体的生产排程和工厂生产仿真引擎的设计
  • 【分布式理论10】分布式互斥算法最佳实现:分布式锁的原理与实现
  • 【GitHub】装修个人主页
  • Golang常见面试题
  • hadoop之MapReduce:片和块
  • 分发饼干(力扣455)
  • Spring Cloud Gateway:构建高效微服务网关的利器