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 确实靓。

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

相关推荐
卡戎-caryon5 分钟前
【Linux网络与网络编程】03.UDP Socket编程
linux·服务器·网络·笔记·单例模式·udp·网络通信
張萠飛21 分钟前
Linux的TCP连接数到达2万,其中tcp_tw、tcp_alloc、tcp_inuse都很高,可能出现什么问题
linux·网络·tcp/ip
神秘的t1 小时前
javaSE————网络原理
java·网络
EasyNVR1 小时前
视频分析设备平台EasyCVR视频结构化AI智能分析:筑牢校园阳光考场远程监控网
网络·音视频
jinan8862 小时前
企业的移动终端安全怎么管理?
大数据·网络·安全·数据分析·开源软件
W说编程2 小时前
《UNIX网络编程卷1:套接字联网API》第5章 TCP客户服务器程序示例
c语言·网络·网络协议·tcp/ip·unix·tcp
不爱敲代码的阿玲2 小时前
西门子s7协议
服务器·网络·tcp/ip
栗筝i2 小时前
Spring 核心技术解析【纯干货版】- XVII:Spring 网络模块 Spring-WebFlux 模块精讲
java·网络·spring
CloudJourney2 小时前
(万字超详细-网络版本)VXLAN详解:概念、架构、原理、搭建过程、常用命令与实战案例
网络·架构
为你写首诗ge10 小时前
【Unity网络编程知识】FTP学习
网络·unity