--- tags: [] aliases: - 2.4 外部目标数据分发协议 (External Target Data Distribution Protocol) date created: 星期一, 十一月 24日 2025, 11:40:08 晚上 date modified: 星期一, 十一月 24日 2025, 11:40:45 晚上 --- # 2.4 外部目标数据分发协议 (External Target Data Distribution Protocol) - **覆盖范围**:定义核心处理服务器(通过 `DisplayController`)向外部独立显控终端分发高实时性业务数据(如航迹、点迹)的**网络通信契约**。鉴于显控端采用轻量级 2D 渲染,本协议不再包含针对 UI 交互的流控逻辑,而是专注于**全速、单向、无阻塞**的数据推送,仅在接收到系统级热保护指令时执行被动节流。 - **2.4.1 传输层拓扑与套接字模型 (Transport Layer Topology & Socket Model)** - **核心指向**:定义数据传输的物理载体。采用 **UDP 单播 (Unicast)** 模式,由服务器作为发送方,向单一客户端推送。强制使用 **非阻塞 (Non-blocking) Socket** 配合 `epoll` 边缘触发模式。鉴于已移除 UI 抢占逻辑,Socket 发送缓冲区 (`SO_SNDBUF`) 应配置为**最大可用值**(如 8MB+),以吸收网络抖动,确保在计算核心全速运转时网络层不成为瓶颈。 - **2.4.2 业务数据序列化规范 (Business Data Serialization Specification)** - **核心指向**:定义跨网络二进制格式。继续强制使用 **Google Protobuf (v3)**。数据包根对象 `TrackDataBatch` 必须包含**全链路追踪 ID (`TraceID`)**。由于取消了任务切分,数据包的生成频率将与雷达脉冲处理周期(CPI)严格同步,不再出现因被抢占而导致的“微批次(Micro-batch)”碎片化数据包。 - **2.4.3 丢包检测与时序完整性机制 (Packet Loss Detection & Sequencing Integrity)** - **核心指向**:定义数据一致性策略。协议头包含单调递增的 **`batch_sequence_id`**。客户端对于乱序包执行**立即丢弃**策略。由于后端不再因 UI 操作而暂停,客户端应预期收到**极其平稳**的数据流;任何超过 2 个周期的静默都应被客户端判定为“网络故障”而非“后端繁忙”,并触发重连告警。 - **2.4.4 热节流响应与流量整形 (Thermal Throttling Response & Traffic Shaping)** - **核心指向**:**(基于 ECN 修正)** 定义在系统过热时的降级行为。当 `DisplayController` 收到 `SetComputeThrottleEvent`(热保护指令)时,必须在网络发送层执行**主动丢包**或**发送间隔插入(Gap Insertion)**,以减少网卡中断和总线功耗。例如,在 `Level 2` 节流状态下,仅发送关键航迹数据(Confirmed Tracks),丢弃所有点迹(Plots)和调试数据,从而降低系统整体热负荷。 - **2.4.5 端到端延迟遥测 (End-to-End Latency Telemetry)** - **核心指向**:定义性能监控闭环。数据包必须携带 **“数据生成时间戳”**。客户端计算 **Glass-to-Glass Latency** 并回传。此指标现在主要用于监控网络链路质量和散热系统的有效性(即观察热节流是否导致了延迟显著增加),而非用于调节 UI 渲染优先级。 --- **变更说明 (基于 ECN-2025-001):** 1. **移除**:移除了所有关于“为了 UI 响应性而暂停数据发送”的描述。 2. **新增**:**2.4.4 热节流响应**。这是新架构下唯一合法的“主动降速”场景。 3. **调整**:在 **2.4.1** 中强调了 Socket 缓冲区配置为“最大值”,因为不再需要担心缓冲区积压影响 UI 线程(UI 线程已与计算/发送线程物理解耦且互不干扰)。