4.8 KiB
4.8 KiB
tags, aliases, date created, date modified
| tags | aliases | date created | date modified | |
|---|---|---|---|---|
|
星期一, 十一月 24日 2025, 4:55:47 下午 | 星期一, 十一月 24日 2025, 11:04:03 晚上 |
2.4 外部目标数据分发协议 - 工程基线总结报告
适用范围: 数据网关模块 (DisplayController) \leftrightarrow 显控终端 (ClientApp)
1. 核心架构基线 (Core Architecture Baselines)
| 决策领域 | 核心基线 (Baseline Established) | 关键技术与配置 (Key Specs) | 设计意图/依据 |
|---|---|---|---|
| 2.4.1 传输拓扑 | 多源汇聚单播 (N-to-1 Unicast) | UDP 直连。显控端绑定固定端口,通过 StationID 区分多路数据源。 |
摒弃组播(Multicast)的部署复杂性,适应分布式阵面组网需求。 |
| 2.4.1 IO 模型 | 全异步非阻塞 (Non-blocking) | Epoll Edge-Triggered (ET) + 独立 IO 线程。采用“写优先 (Write-First)”策略。 | 隔离网络抖动对计算核心的影响,最大化物理线速发送能力。 |
| 2.4.2 数据契约 | 原子批次 (Atomic Batch) | Protobuf v3。一个数据包严格对应一个 CPI 处理周期。严禁微批次切分。 | 简化显控端逻辑,确保态势图更新的原子性与一致性。 |
| 2.4.3 时空基准 | 统一 UTC + WGS84 | 时间戳:timestamp_us (总控授时 UTC)。坐标:经纬高或 ECEF。 |
解决分布式多站数据融合时的时空对齐难题。 |
| 2.4.4 热节流 | 混合降级 (Hybrid Degradation) | L1: 内容剪裁 (Pruning);L2: 频率抽稀 (Gap Insertion)。 | 在物理过载时主动卸载序列化与中断压力,优先保障核心航迹交付。 |
| 2.4.5 闭环遥测 | 带外 HTTP 上报 | 客户端聚合 P99 延迟与丢包率,每 60s 通过 REST API 回传。 | 建立全链路性能监控闭环,量化“用户感知延迟”。 |
2. 关键技术规范详解
2.4.1 传输层实施规范
- Socket 配置:
- 发送缓冲区 (
SO_SNDBUF): 动态计算为Max_Burst * 4(建议 8MB+)。作为最后的弹性气囊吸收脉冲式突发。 - QoS 标记: 设置
IP_TOS为 DSCP EF (0x2E) 或 CS6,保障交换机转发优先级。 - 分片策略: 开启
IP_PMTUDISC_DO禁止 IP 分片,在应用层按 MTU (如 1472 字节) 进行切片。
- 发送缓冲区 (
- 线程模型: 采用 SPSC 无锁队列 连接业务线程(生产者)与 IO 线程(消费者),实现计算与传输的物理隔离。
2.4.2 序列化与协议头规范
- Schema 定义: 根对象
TrackDataBatch必须包含:station_id: 站点标识 (uint32)。batch_sequence_id: 单调递增序列号 (uint64),在序列化时刻生成。timestamp_us: 数据生成时的 UTC 时间 (uint64)。throttle_level: 当前节流等级反馈 (uint32)。trace_id: 全链路追踪 ID。
- 完整性校验: 采用 CRC32c 算法计算 Payload 校验和,填入协议头。
2.4.3 接收端诊断规范
- 丢包判决: 基于 滑动窗口统计。仅当
Current_Seq > Last_Seq + 1时判定丢包。乱序包 (Current <= Last) 立即丢弃。 - 断连判定: 维护每个 Station 的心跳状态。超过 2 秒 无数据视为断连 (Disconnected)。
- 延迟告警: 实时计算
Local_Time - Packet_Time。若超过阈值 (如 200ms) 触发 "High Latency" 提示。
2.4.4 流量整形策略 (Traffic Shaping)
响应 SetComputeThrottleEvent 指令:
- Level 0 (全速): 发送 航迹 + 点迹 + 状态。
- Level 1 (轻微): 剪裁内容。丢弃点迹 (Plots) 和调试信息,保留全量航迹。减少序列化 CPU 开销。
- Level 2 (严重): 频率抽稀。每 2 帧丢弃 1 帧 (50% Rate)。减少网卡中断和总线功耗。
- 注意:丢弃操作在序列号生成之前执行,确保发出的数据包序列号依然连续。
2.4.5 遥测回传规范
- 通道: HTTP POST (非 UDP)。
- 指标:
station_id,latency_p99,packet_loss_rate,throughput_mbps. - 行为: 显控端后台线程每 60 秒聚合一次统计数据并上报,若上报失败 (超时/错误) 则丢弃本次报告,不重试。
3. 风险与应对 (Risk Mitigation)
| 潜在风险 | 现象 | 应对/缓解措施 |
|---|---|---|
| Bufferbloat | 无丢包但延迟持续升高 (>500ms)。 | 监控端到端延迟指标。若确认积压,需检查 2.4.4 节流阈值是否过高,或减小 SO_SNDBUF 迫使上游丢包(新鲜度优先)。 |
| 时钟漂移 | 多站目标在显控端“跳变”。 | 依赖总控授时。显控端应显示“时间同步状态”图标,若检测到 Timestamp > LocalTime (未来时间) 则告警。 |
| 网络微突发 | 偶发性成片丢包。 | 依赖 8MB+ Socket 缓冲区吸收。若仍丢包,需检查交换机端口缓存配置。 |