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

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

相关推荐
FIN技术铺19 分钟前
HTTP请求&响应分析:HTTP/1.1→HTTP/2
网络·网络协议·http
spt_dream29 分钟前
DevSecOps,DevOps的进阶
运维·网络·安全
垚垚 Securify 前沿站3 小时前
深入剖析 Apache Shiro550 反序列化漏洞及复现
运维·网络·安全·web安全·系统安全·apache
linwq89 小时前
Java网络编程学习(一)
java·网络·学习
xing.yu.CTF10 小时前
2022年中职网络建设与运维赛题-windows服务器解析
运维·服务器·网络·windows·网络建设与运维
翻晒时光10 小时前
24、深入理解与使用 Netty:Java 高性能网络编程的利器
java·网络
小黑子不会打篮球11 小时前
hackdudo2解题过程
网络·学习·web安全·网络安全
lisanndesu13 小时前
Tcp_socket
网络·网络协议·tcp/ip
予早13 小时前
HTTP 请求头、响应头常见字段分析
网络·网络协议·http
狄加山67513 小时前
网络编程(预备知识)
服务器·网络·php