Logo
新用户订阅 RPC,首月享 6.5 折优惠查看优惠
OnFinality Learn
网络与协议指南阅读约 11 分钟

Blast 协议:名称辨析与远程显示传输诊断

一份实用指南,介绍多种被称为 Blast 的技术,并提供可复现的方法来诊断 Blast Extreme 传输、编解码器及回退行为。

TL;DR

“blast protocol”一词至少对应三种互不相关的技术:Omnissa/VMware Blast Extreme 远程显示、20 世纪 80 年代的 BLAST 文件传输协议以及 Blast 区块链。本文聚焦远程显示协议,因为大多数运维问题都出现在这里,并为您提供可复现的诊断工作流,用于排查传输、编解码器和端口行为。您将了解 TCP 与 UDP 选择背后的思维模型、如何阅读代理和客户端日志,以及如何验证会话确实使用了您预期的传输方式。本文区分了厂商文档描述的行为与您必须在自己的环境中运行的测量,并指出了基础设施选择至关重要的端点和节点资源。

您实际要找的是哪种 Blast 协议

在开始故障排查之前,请先确认目标。“Blast 协议”一词存在歧义。Omnissa Horizon(原 VMware Horizon)提供 Blast Extreme,这是一种用于虚拟桌面和已发布应用程序的显示协议。另外,BLAST(Blocked Asynchronous Transmission) 是一种 20 世纪 80 年代用于异步串行链路和拨号调制解调器的文件传输协议。第三种含义是 Blast 区块链及其开发者文档。它们只是名称相同,除此之外毫无关联。

本指南重点介绍 Blast Extreme,因为它是涉及实时传输、编解码器和防火墙问题的那个。如果您是来找文件传输协议或区块链的,下面的诊断部分并不适用,但辨析表会为您指明正确方向。

范围与假设:您管理或评估 Omnissa Horizon 部署,可以访问 Horizon Agent 和客户端日志,并且能够观察客户端与 Connection Server 或 Unified Access Gateway 之间的网络流量。这些步骤假设您可以运行 curl、阅读日志,并与厂商文档进行比对,而不是依赖记忆。

  • Blast Extreme:用于 Horizon 虚拟桌面和应用程序的远程显示协议。
  • BLAST:传统的异步文件传输协议,与 VDI 无关。
  • Blast 区块链:一个与以太坊相邻的网络,拥有自己的开发者文档。
  • 本文仅涵盖 Blast Extreme 传输和编解码器诊断。

思维模型:传输层与显示编解码器

Blast Extreme 有两个可独立配置的层,人们常常将它们混为一谈。传输负责承载字节:TCP 或 UDP。显示编解码器决定像素如何编码:JPG/PNG、Blast 编解码器、H.264 或 HEVC。一个会话可以运行在 UDP 上的 H.264,也可以运行在 TCP 上的 H.264,每种组合的用户体验各不相同。

文档描述的行为:Blast Extreme 同时支持 TCP 和 UDP 传输。UDP 通常更适合交互式流量,因为它避免了队头阻塞,而 TCP 提供可靠交付但开销更大。当 UDP 被阻止或不适用时,会话会回退到 TCP。确切的回退触发条件在日志中并不总是明确,这就是为什么下面的诊断步骤侧重于可观察的证据而非假设。

实际后果:如果用户报告性能不佳,不要只问“Blast 是否正常工作?”而要问“当前活跃的是哪种传输、哪种编解码器,以及切换发生在哪里?”这三个事实通常能将问题缩小到防火墙、网关设置、策略或编解码器/GPU 限制。

先决条件与基线配置检查

在更改任何内容之前先收集基线。确认 Connection Server、Agent 和客户端上的 Horizon 版本。确认路径中是否有 Unified Access Gateway 或 Security Server,因为隧道连接和内部连接走不同的路由和端口。确认客户端类型,因为瘦客户端、浏览器和原生客户端提供的诊断信息各不相同。

在代理端,验证策略是否启用了 UDP。在 Horizon 环境中,这通常通过 Blast ADMX/ADM 模板(历史上为 vdm_blast.adm)及相应的 GPO 设置来控制。一种常见的故障模式是管理员在一处启用了 UDP,而另一处的冲突策略或网关配置将其阻止。

记录预期端口。Blast 会话通常使用 TCP 443 或 8443 作为初始和回退路径,启用时使用 UDP 8443 承载批量流量。请将这些值视为需要与您自己的厂商文档和防火墙规则进行核对的参考值,而非通用常量,因为网关和负载均衡器配置各不相同。

  • Horizon Connection Server、Agent 和客户端版本。
  • 是否存在 Unified Access Gateway 或其他反向代理。
  • Blast UDP 启用状态的 GPO 状态。
  • TCP 443/8443 和 UDP 8443 的防火墙规则。
  • 客户端类型及其日志位置。

可运行的诊断:观察传输和端口

从网络观察开始。目标是查看在活动会话期间 UDP 8443 流量是否双向流动。在客户端或镜像端口上运行抓包,然后启动桌面会话并与之交互至少 30 秒。将观察到的流量与您预期的端口列表进行比对。

以下命令是模板。请将占位符替换为您自己的主机名和接口名。不要将任何输出视为基准;将其视为正在使用哪种传输的证据。

  • 如果只看到 TCP 8443 而没有 UDP,在归咎于编解码器之前,先怀疑防火墙、网关或策略阻止。
  • 如果 UDP 短暂出现后停止,请在代理日志中查找会话中途的回退。
  • 如果两个端口都未出现,会话可能通过不同路径隧道传输;请重新检查连接类型。
# Confirm basic reachability to the gateway or connection server
curl -vk --connect-timeout 5 https://GATEWAY_HOST:443/ -o /dev/null

# Capture UDP and TCP 8443 on a Linux client (replace IFACE)
sudo tcpdump -ni IFACE 'udp port 8443 or tcp port 8443' -w blast-session.pcap

# Summarize flows after the session
sudo tcpdump -nn -r blast-session.pcap | awk '{print $3, $5}' | sort | uniq -c | sort -rn | head

阅读代理和客户端日志以寻找回退证据

日志是确认传输切换最可靠的方式。桌面上的 Horizon Agent 日志和端点上的 Blast 客户端日志会记录传输决策。请搜索传输切换和传输类型条目,而不是阅读整个文件。

确切的日志路径和消息字符串因版本而异,因此请将下面的模式用作搜索词,并根据厂商文档确认当前字符串。会话中途从基于 UDP 的传输切换到 TCP,是路径中某处拒绝或降低了 UDP 质量的信号。

  • 早期单次切换到 TCP 可能表明 UDP 从未被允许。
  • 反复切换表明 UDP 路径不稳定,例如 Wi-Fi 丢包或 NAT 超时过于激进。
  • 完全没有 UDP 尝试表明是策略或客户端配置问题,而非网络丢包。
# Example search patterns; adjust paths to your installation
# Agent-side log directory (Windows example)
find "C:/ProgramData/Omnissa" -iname "*.log" 2>/dev/null | head

# Search for transport decisions
grep -iE "transport|udp|tcp|fallback|switch" AGENT_LOG_PATH | tail -n 50

# Client-side log (path varies by client)
grep -iE "transport|udp|tcp|codec" CLIENT_LOG_PATH | tail -n 50

验证编解码器选择和 GPU 卸载

传输只是故事的一半。Blast Extreme 根据内容、策略和硬件在 JPG/PNG、Blast 编解码器、H.264 和 HEVC 之间进行选择。H.264 和 HEVC 可以卸载到受支持的 NVIDIA GPU,这会改变服务器可扩展性和 CPU 负载。如果会话意外受 CPU 限制,在调整传输之前先确认当前活跃的编解码器。

使用 Horizon 性能跟踪器或等效监控,在代表性工作负载期间读取活跃的编码器。然后与应适用的策略进行比对。预期编解码器与实际编解码器之间的不匹配通常是策略优先级问题、客户端能力限制或缺少 GPU 编码能力。

记录结果时,请使用您自己填写的表格。不要复制其他环境的数字;编解码器性能因工作负载和硬件而异。

  • 记录空闲、文本、视频和 3D 工作负载期间的活跃编解码器。
  • 注意 GPU 编码卸载是否处于活动状态。
  • 将观察到的编解码器与预期的 GPO 或策略进行比对。
  • 任何更改后重复测试以隔离影响。

针对您自己测量的结果表流程

构建一个结果表,每个测试条件一行,列包括传输、编解码器、GPU 卸载、观察到的延迟和用户感知的流畅度。仅填入您测量的值。下表是一个模板;单元格有意留空,因为编造数字会歪曲您的环境。

测试传输 (TCP/UDP)编解码器GPU 卸载观察到的延迟备注
局域网,文本工作负载
局域网,视频工作负载
丢包 Wi-Fi,视频
防火墙阻止 UDP

每行至少运行两次并记录差异。如果某行显示 TCP 而您预期 UDP,请返回日志和抓包步骤,而不是调整编解码器设置,因为您正在诊断错误的层。

排查常见的 Blast Extreme 症状

尽管启用了 UDP,会话仍卡在 TCP。 首先检查网关和防火墙,然后检查 GPO 优先级。不转发 UDP 8443 的反向代理或负载均衡器将强制回退,无论代理策略如何。在代理两侧进行抓包确认。

CPU 占用低但视频质量差。 确认活跃的编解码器。如果会话对视频密集型内容使用 JPG/PNG,策略或客户端能力可能阻止了 H.264 或 HEVC。如果预期卸载,请验证 GPU 编码可用性。

Wi-Fi 上间歇性卡顿。 对于交互式流量,UDP 比 TCP 更能容忍丢包,但严重丢包仍会降低体验。在会话期间捕获丢包和抖动,并与日志中的传输切换相关联。

内部正常,远程失败。 隧道连接经过不同的组件。分别比较内部和外部路径,并检查每一跳的端口规则。

  • 在调整编解码器之前始终确认传输。
  • 检查每一跳,包括网关和负载均衡器。
  • 将用户报告与日志时间戳相关联。
  • 每次测试只更改一个变量。

局限性与权衡

UDP 并非普遍更好。在干净、低丢包的局域网上,TCP 可以表现良好并简化防火墙规则。UDP 的优势出现在丢包和抖动否则会导致队头阻塞的情况下。正确的选择取决于您的网络,而不是一句口号。

编解码器的选择也有权衡。H.264 和 HEVC 减少带宽并支持 GPU 卸载,但根据设置,可能会在文本密集型内容上引入压缩伪影。Blast 编解码器和 JPG/PNG 具有不同的质量和 CPU 特性。没有一种配置对所有工作负载都是最佳的。

最后,厂商文档描述的是能力,而不是您的部署。任何性能声明都必须在您自己的环境中使用您自己的硬件、网络和工作负载进行验证。

后续步骤与相关基础设施阅读

一旦理解了传输和编解码器行为,接下来的问题通常涉及周围的基础设施:如何访问端点、如何托管节点以及成本如何扩展。对于共享“Blast”名称的区块链相关工作,或任何需要可靠 RPC 访问的项目,请从 RPC 端点指南 和 多链 RPC 端点指南 开始。

如果您正在评估托管访问而非自托管,请查看 API 服务 和 RPC 定价 页面,并在隔离和吞吐量重要时与 专用节点 选项进行比较。网络特定细节位于 支持的网络 下。

如需具体的端点和提供商建议,请使用 RPC Assistant 而不是猜测;它专为简短、直接的选择而设计,而本文涵盖诊断方法。如果您不熟悉交易机制,一个合理的起点是 什么是区块链 nonce;当您准备选择基础设施时,可以阅读 Web3 项目的最佳 RPC 提供商。

  • 在深入故障排查之前确认您需要哪种 Blast。
  • 在您自己的环境中测量传输和编解码器。
  • 使用 RPC Assistant 进行端点选择,而非本指南。
  • 任何网络变更后重新检查策略和网关配置。

永远不用担心基础设施

OnFinality 消除了 DevOps 的繁重工作,让您能够更聪明、更快地构建。

开始