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

TSN 时隙调度思辨:从广域网症结到网络中立权衡

昨晚看 TSN 的一个咨询问题,顺便看了 IEEE 802.1Qbv 和 IEEE 1588 规范,被 TDM 时隙调度惊艳到了。如果(假设)全网时钟精确一致,网络的一切行为将是可控的,但由于时钟同步的难度以及信号准光速的不一致,这种网络注定不会太大。那就假设这是一个小型的网络,整个网络可作为操作系统来控制,而网络数据的传输就是 task 调度。

在这种时钟一致同步的网络上调度数据包就像在 Linux 内核调度 task_struct,还要更简单些,具体参考 IEEE 802.1Qbv。Qbv 这种方式要比优先级队列,加权公平队列直观很多,也高效很多。

抢占式调度意味着高优先数据可以抢占低优先数据从而获得带宽资源,有了时隙固定分配,抢占也没了必要,代价是拿点带宽利用率来换,若要代价轻微,便可为每一个 cycle 准备一个或极少数几个特殊的高优先级时隙,以确保这些优先级数据的确定性低时延,比如汽车刹车信号。这少数几个时隙的代价类似于高速公路上的应急车道,即使道路完全堵死,应急车道依然必须畅通。

和应急车道的使用类似,高优先级必然特殊且昂贵,这是避免拥塞的核心。还是我此前说过的 “某种矩” 的概念,调度公平性应该基于 “优先级 * 数据量”,换句话说,高优先级数据一定是极少的,这在比如智能驾驶领域的 TSN 中非常容易保证,人们可以持续听歌,但不能一直刹车,所以刹车信号的优先级就要高,这可以通过硬编码信号产生终端处理器来保证,刹车传感器生成的 TSN 帧携带的优先级标签一定要比娱乐系统帧优先级高。但如果将这个思想应用到广域网呢?

广域网难以迭代新技术(所以折腾半天还得是 TCP),这是异构网络的固有问题,但不妨想想。广域网不可能同步时钟,因此无法精确 TDM,但可以分布式 TDM,即每个交换节点执行自己的 TDM(姑且不考虑如何说服每个节点都 TDM,否则什么也别想了),按照优先级分配固定时隙,这就确保了在某个交换节点,高优先级数据会获得固定传输时隙,接下来是如何分配优先级,是不是每个用户都可以设置自己的数据包为高优先级呢?这是个问题。

核心就是让终端用户为高优先级付出更大的代价,而钱是衡量一切的标准,这就关系到运营商计费问题。

互联网先驱,TCP/IP 标准起草人之一大卫克拉克曾经在很晚时期承认互联网缺乏性能管理机制,而随着 CDN 而来的海量流量逐渐填满几乎所有链路,依靠端到端的性能数据采集的拥塞控制手段(说的就是端到端传统的 AIMD,甚至 BBR 也不是一个足够好的解)既不精确,也容易存在误导性,因为端节点的拥塞监控无法监控和定位链路级别的信息,遗憾的是,路由器也没有任何控制面协议支持这个。所以若要实现这种控制,压力自然给到运营商。

直白点说,用户需要为高优先级传输服务付费,但这又牵扯到另一个更宏观的问题,即网络中立性原则,该原则提出运营商提供平等传输服务,禁止付费优先级,虽然没有强制性,但作为公开公认原则,自然不能公开违背。另一方面,从现实考虑,运营商使用复杂工具对用户流量类型进行计费管理,这可能会降低用户(即内容终端)试验新应用的兴趣和动机,这违背了互联网的开放性原则,肯定会让比如音视频流量应用的部署举步维艰。

还是无解,广域网使用传统 TCP 还得一段日子,但数据中心是另一个极端,可以整些花活儿,可千万别被 TCP,TCP/IP 束缚住手脚。

Qav 还在看,但 Qbv 确实靓。

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


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

相关文章:

  • axios和fetch的实现原理以及区别,与XMLHttpRequest的关系,并结合react封装统一请求示例
  • springboot适配mybatis+guassdb与Mysql兼容性问题处理
  • 【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)
  • 使用 `llama_index` 构建智能问答系统:多种文档切片方法的评估
  • 在 .Net 8.0 中使用 AJAX 在 ASP.NET Core MVC 中上传文件
  • Java jni调用nnom rnn-denoise 降噪
  • USB射频微波功率计的功能与优势-盛铂科技
  • lenovo联想IdeaPad 15sIML 2020款(81WB)笔记本电脑原装出厂OEM预装系统Windows10镜像下载
  • c++第14课(入门结束)
  • 微信小程序中 “页面” 和 “非页面” 的区别
  • mysql入门篇
  • 网络安全抓包
  • 【制造业】大数据一站式解决方案
  • SQL 分析函数与聚合函数的组合应用
  • Spring Boot - 日志功能深度解析与实践指南
  • 代理IP助力VR行业革新,小派科技引领技术潮流
  • C语言(自定义)函数
  • LeetCode 力扣 热题 100道(二十八)矩阵置零(C++)
  • ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32‘ not found
  • L27.【LeetCode笔记】2 的幂(五种解法)
  • 1.C语言教程:历史、特点、版本与入门示例
  • Tableau数据可视化与仪表盘搭建-安装教程
  • 探寻AI Agent:开启知识图谱自动生成新篇章(17/30)
  • SpringBoot入门之创建一个Hello World项目
  • Tesseract5.4.0自定义LSTM训练
  • 互联网直播点播平台EasyDSS无人机视频推拉流技术实现工地远程监控巡检直播