传统以太网的核心优点是共享与尽力而为:大包可以占用链路,突发流量可以在交换机队列里等待。TSN(Time-Sensitive Networking)并不是把以太网换成另一种网络,而是在标准以太网上叠加共同时间、流量分类、整形、门控和可靠性机制,使关键流有预先安排的发送窗口和可计算的端到端时延。
TSN 不是一个 qdisc,而是一组配合机制
IEEE 802.1AS/gPTP 提供共同时间;802.1Qbv 的时间感知整形(TAS)用 Gate Control List 在特定时间打开特定队列;802.1Qav 的信用整形适合某些持续媒体流;802.1Qci 可做逐流过滤和限速;帧抢占等机制则能降低高优先级帧被大包阻塞的时间。实际项目不必全部启用,但必须知道每条关键流靠哪一种机制获得保证。
Gate Control List 如何理解
以 1 ms 控制周期为例,可以为控制帧预留一个短窗口,让低优先级视频/日志队列在其余时间发送:
1 | 0 us -------- 100 us ------------------------- 1000 us |
这张表只是调度思想。真正的窗口长度还要包含关键帧大小、链路速率、guard band、交换机转发时间和时钟误差;在多跳网络里,每个端口的基准时刻也要对齐。若 PTP 偏移超过你的 guard band,门控再精确也会在错误时间开门。
Linux 配置前先确认硬件能力
Linux 可以借助 tc 配置支持的 qdisc,例如 taprio;但软件命令成功不代表网卡、驱动和交换机已经在硬件上执行该计划。首先确认 NIC 时间戳和队列能力,核对交换机的 TSN 特性和 firmware,再在实验网络逐跳验证。
1 | ethtool -T eth0 # 检查硬件时间戳能力 |
配置时应保存每个端口的 traffic class 映射、GCL、周期、base-time、PTP domain 和软件版本。不同节点只要有一个 base-time、优先级映射或时钟源不一致,就会出现难以解释的周期性丢帧或抖动。
怎样证明它真的“确定”
不要只测 ping,也不要只测本机发送时间。应在业务帧的源端、关键交换机和接收端保留硬件时间戳,测量端到端延迟、抖动、丢包与最大连续失锁时间;同时制造背景大流量、链路重连、主时钟切换和高温负载,检查关键流是否仍在预算内。
TSN 的确定性来自完整的端到端设计。单独启用某个 qdisc,或只在一块网卡上开 PTP,通常只能得到“偶尔更快”,得不到可证明的上界。