百科全书
2026-05-08 14:08:07
什么是 Interactive Connectivity Establishment(ICE)?用途、工作方式与应用
Interactive Connectivity Establishment(ICE)是一种 NAT 穿越框架,用于 WebRTC、SIP 与实时通信系统,帮助端点之间寻找最佳网络路径。本文说明 ICE 的工作方式、为什么搭配 STUN 与 TURN,以及在语音、视频和低延迟媒体系统中的应用。

贝克电信

什么是 Interactive Connectivity Establishment(ICE)?用途、工作方式与应用

Interactive Connectivity Establishment(ICE)是一种网络穿越框架,用于在两个端点之间建立媒体和数据连接,尤其是在直接连接受到 NAT 设备、防火墙、多重接口或变化的网络条件影响时。实际应用中,ICE 最常见于 WebRTC、SIP 实时媒体,以及其他需要尽可能自动寻找可用端到端路径的交互式通信系统。

ICE 之所以重要,原因很简单:在现代网络中,端点很少直接位于可被外部访问的公网 IP 地址上。它们通常位于家用路由器、企业防火墙、运营商 NAT 或云端边界层之后。即使两个设备可以交换信令消息,也不代表它们的音频、视频或数据流可以直接传输。ICE 通过收集可能的网络路径、与远端交换这些路径、测试哪些组合实际可行,并为该会话选择最佳可用路径,来解决这个问题。

ICE 并不是 STUN 或 TURN 的替代品。相反,它是用来协调这些技术共同工作的框架。STUN 帮助端点了解自己从 NAT 外部看起来是什么地址和端口;TURN 则在无法建立直接点对点连接时提供中继路径。ICE 将这些可能性整理成结构化的决策流程,使实时应用可以更可靠地连接,并减少手动网络配置。

Interactive Connectivity Establishment 在实时通信会话中协调跨 NAT、防火墙、STUN 服务器和 TURN 中继的点对点连接

ICE 帮助实时端点为语音、视频或数据会话发现、测试并选择最佳可用网络路径。

ICE 在实时网络中的含义

一种连接框架,而不只是单一协议消息

ICE 最适合被理解为完整的连接框架,而不是单一数据包格式或简单的服务器功能。它的任务是协调两个端点之间的候选项发现、候选项交换、连接检查和最终路径选择。IETF 在 RFC 8445 中将 ICE 定义为一种用于 UDP 通信的 NAT 穿越协议,该规范也明确指出 ICE 会使用 STUN 和 TURN。

这种更完整的框架视角很重要,因为许多人第一次接触 ICE 时,只是把它看成 WebRTC 中的 iceServers 数组,或 SIP 平台中的 NAT 穿越选项。然而在底层,ICE 管理的是一整套决策流程。它会判断哪些本地接口可用、哪些反射地址或中继地址可用、哪些端点组合值得检查,以及哪一条可行路径应该被提名给该会话使用。

为什么互联网上的直接连接很困难

在简单的公共网络中,两台设备可以交换地址并直接发送数据包。但实际部署通常没有这么简单。设备经常位于 NAT 之后,而 NAT 会改写源地址和端口。防火墙可能阻止未经请求的入站流量。移动设备可能在 Wi-Fi 和蜂窝网络之间切换。企业用户可能位于多层安全网关之后,云端服务也可能有自己的入口和出口策略。

因此,信令中看似有效的地址并不一定足够。该地址可能只在单一方向可达,可能只在短时间内有效,也可能完全无法被远端端点访问。ICE 通过收集多个连接选项,并在实际网络环境中测试这些选项,而不是假设某个声明地址一定可用,来处理这种不确定性。

ICE 不会预先猜测唯一完美的路径。它会收集可能的路径、通过检查进行验证,然后保留在真实网络中运行最好的路径。

ICE 如何工作

候选项收集

ICE 的第一个阶段是候选项收集。每个端点都会收集可能用于该会话的地址和端口,这些被称为 ICE 候选项。在浏览器型 WebRTC 中,平台会在发现候选项时发出它们。MDN 将 ICE 候选项描述为 WebRTC 与远端设备通信所需的协议和路由信息,并指出通常会提出多个候选项,直到双方同意最佳项为止。

候选项收集通常会产生几种类型。主机候选项直接来自端点的本地接口。服务器反射候选项通常写作 srflx,是通过 STUN 得知的 NAT 对外可见地址和端口。中继候选项则是在流量必须通过中继服务器时,由 TURN 分配。一些流程也可能在连接检查期间产生对等反射候选项。目的不是立即预测哪一个会胜出,而是建立一组可行选项。

通过信令交换候选项

候选项收集完成后,端点需要交换这些信息。ICE 本身并不为这一步定义单一通用的信令系统。在 WebRTC 中,候选项通常通过应用程序的信令通道发送;在 SIP 与其他媒体系统中,则可能通过 SDP 及相关信令流程承载。重点是双方必须先看到对方可能的路径,才可以开始测试。

这个阶段也说明了为什么启用 ICE 的部署仍然需要信令设计。ICE 帮助媒体连接,但它依赖另一套机制在端点之间传递候选项信息。如果信令故障,ICE 就无法取得足够信息来完成工作。在设计良好的系统中,信令与 ICE 会相互配合:信令传送会话描述和候选项,而 ICE 验证哪些候选项配对真正可达。

候选项配对与连接检查

交换完成后,ICE 会按照优先顺序结合本地与远端候选项,形成候选项配对。接着,它使用基于 STUN 的事务执行连接检查。这些检查会判断数据包是否真的能在配对候选项之间流动。RFC 8445 将此描述为检查候选项配对,并最终选择一个或多个可用配对供会话使用的阶段。

这是 ICE 的核心。ICE 不会假设主机地址、反射地址或中继地址一定可用,而是主动测试它们。有些配对会因 NAT 过滤或防火墙策略立即失败。有些配对可以运行,但因为需要中继而优先级较低。有些配对会快速成功,成为强有力的提名候选。ICE 利用这些结果收敛到最佳可行路径,而不是依赖静态配置的猜测。

提名与已选候选项配对

当检查成功时,ICE 会选择一组已选候选项配对。简化来说,控制端会提名应该承载媒体的配对,然后会话开始使用它进行持续传输。如果直接路径可用,ICE 通常会优先选择它,而不是中继路径,因为直接路径通常可以降低延迟和中继成本。如果只有中继可用,ICE 仍然可以通过 TURN 完成会话。

这个最终选择步骤让 ICE 对实时通信具有实用价值。应用程序不需要用户手动决定要使用哪个网络接口或公网映射。ICE 依据实时检查结果作出决策,然后把选定的路径交给媒体引擎,让通话、视频会话或数据交换可以继续进行。

ICE 在主机、服务器反射和中继候选项之间进行候选收集、交换、连接检查和提名

ICE 的工作方式是收集候选项、交换候选项、测试候选项配对,并选择真正成功的最佳路径。

ICE、STUN 与 TURN 之间的关系

STUN 提供什么

STUN 是 NAT 穿越的工具型协议,本身并不是完整的端到端解决方案。RFC 8489 将 STUN 描述为帮助其他协议处理 NAT 穿越的工具协议,并指出它可以帮助端点发现 NAT 分配的 IP 地址和端口。在 ICE 中,STUN 同时用于候选项收集和连接检查。

实际上,STUN 帮助回答“我的端点从本地网络外部看起来是什么样子?”这个问题。答案会成为服务器反射候选项。在许多情况下,这足以启用直接点对点路径,尤其当 NAT 行为足够宽松,能让检查成功时。但 STUN 单独无法保证在所有拓扑中都成功。

TURN 提供什么

TURN 则在直接路径不可行时填补空缺。RFC 8656 将 TURN 定义为一种中继协议,允许位于 NAT 后方的主机使用中间节点与对等端交换数据包。在 ICE 的语境中,TURN 会产生中继候选项,当直接或反射候选项配对失败时,这些项可作为备用路径。

TURN 在限制严格的企业网络、对称 NAT 场景、移动网络,或任何直接 UDP 路径建立不可靠的环境中通常非常必要。代价是中继媒体通常会增加延迟、消耗中继带宽并提高基础架构成本。因此 ICE 会在可能时优先使用直接连接,但当直接选项失败时,TURN 是让会话建立仍然可靠的关键。

为什么 ICE 需要两者

ICE 是把 STUN 与 TURN 结合起来的协调层。STUN 本身提供发现和测试,而 TURN 提供备用中继。ICE 决定如何使用它们:收集主机、反射和中继候选项;为它们设置优先级;执行检查;并提名最佳可用配对。因此,许多说明会把 ICE 描述为 NAT 穿越的控制核心,而不只是另一种穿越机制。

从运营角度来看,良好运行的实时平台几乎都会在 ICE 之下同时部署 STUN 与 TURN,因为可靠性比假设理想网络路径一定存在更重要。直接连接是首选结果,但通过中继成功远比通话失败更好。

STUN 帮助发现和测试路径,TURN 在直接路径失败时提供中继,而 ICE 决定其中哪一个选项应该承载该会话。

现代 ICE 行为与 Trickle ICE

为什么 Trickle ICE 很重要

传统 ICE 会等到收集到相当数量的候选项后,才进入完整交换和检查流程。RFC 8838 定义的 Trickle ICE 改善了这一点,它允许候选项一旦可用就逐步交换。该 RFC 说明,这让候选项收集与连接检查可以并行进行,因此可大幅加速会话建立。

这项改进对用户体验很重要。端点不必等所有可能的候选项收集完成后才开始检查,而是可以先用早期候选项开始工作,并在发现新候选项时持续加入。实际应用中,这通常可降低 WebRTC 与其他交互式应用中的建立延迟,尤其在中继分配或多接口发现原本会拖慢初始握手时更为明显。

失败时间判定与 ICE 稳健性

RFC 8445 之后,现代 ICE 行为也持续被改进。RFC 8863 更新了 RFC 8445 与 RFC 8838,要求 ICE 代理在宣布 ICE 失败之前,即使没有剩余候选项配对可检查,也必须等待一段最短时间。这项变更避免在时间边界情况下过早判定失败,提升了稳健性。

这个细节在运营上很重要,因为真实网络往往并不整齐。候选项延迟到达、信令较晚、检查顺序错乱,都可能造成如果超时逻辑过于激进,会话就被过早判定为失败。RFC 8863 的更新反映了一个实践经验:成功建立连接有时需要多一点耐心。

ICE 的优势

更高的会话成功率

ICE 最明显的优势是可靠性。通过收集多个路径选项,并以真实连接检查进行验证,ICE 大幅提高通话或媒体会话在多样化网络中成功连接的概率。这对家用宽带、移动接入、酒店 Wi-Fi、企业 LAN,以及其他无法事先准确预测 NAT 与防火墙行为的环境尤其重要。

如果没有 ICE,应用程序可能只能依赖一个可能失败的声明地址,或太快退回昂贵的中继使用。ICE 提供了一种有结构的方法,按优先级尝试直接、反射和中继路径,在提高成功建立概率的同时,仍然追求最高效率的路由。

当直接路径可用时降低延迟

因为 ICE 会优先选择可行的直接路径,而不是中继路径,所以当网络允许直接点对点通信时,它可以帮助维持低延迟和更好的媒体质量。这对语音、视频、交互式流媒体、云游戏、远程协作,以及其他不必要中继会增加成本和延迟的低延迟实时应用非常重要。

中继对可靠性很重要,但直接传输通常在性能上更好。ICE 通过优先测试直接选项,并保留 TURN 作为可靠备用,在这两个目标之间取得平衡。

更好地适应异构网络

现代端点通常具备多个接口,例如 Ethernet、Wi-Fi、VPN 隧道和移动连接。ICE 可以从这些不同路径收集候选项,并让连接检查揭示哪一条路径实际可用于该会话。这使 ICE 比固定单一地址假设更具适应性。

这种适应性在云端与混合部署中也很有帮助。家中办公的浏览器、位于运营商 NAT 后方的手机,以及云端中的媒体服务器,仍然可以协商出实用路径,因为 ICE 将网络多样性转化为经过测试的决策空间,而不是部署障碍。

ICE 用于 WebRTC、SIP 通话、云端媒体、视频协作,以及跨浏览器、移动和企业网络的低延迟通信

ICE 被广泛用于低延迟媒体需要跨越 NAT、防火墙和多网络边界,且希望尽量减少用户介入的场景。

ICE 的用途与应用

WebRTC 语音、视频和数据通道

ICE 最明显的现代用途是 WebRTC。浏览器使用 ICE 为音频、视频和数据通道建立点对点连接。MDN 的 WebRTC 协议文档将 ICE 描述为一种框架,使浏览器即使面对 NAT、防火墙,以及可能需要中继的情况,也能与对等端连接。这使 ICE 成为浏览器视频通话、语音聊天、实时协作和点对点数据交换的基础。

由于浏览器用户来自高度变化的网络环境,ICE 是 WebRTC 能够在公共互联网上大规模运行的重要原因之一。它为应用程序提供基于标准的方式来发现连接能力,并在直接路径不可用时平顺地恢复。

SIP、VoIP 与统一通信

ICE 也用于 SIP 型语音和视频系统,尤其是端点与媒体服务器需要跨越 NAT 边界通信时。在企业 VoIP 中,远端用户、分支机构、移动软电话和云端媒体服务往往位于不同网络域之后。ICE 可提升这些混合环境中的媒体建立可靠性。

当组织希望实现安全远程通话,但又不想完全依赖静态一对一 NAT 规则时,这一点尤其重要。ICE 帮助端点更动态地协商可用媒体路径,对现代混合办公和分布式通信部署很有价值。

流媒体输入与低延迟媒体流程

ICE 在使用 WebRTC 式传输进行贡献或输入的现代流媒体流程中也日益重要。RFC 9725,即 WebRTC-HTTP Ingestion Protocol,明确指出 SDP offer-answer 交换是在客户端与媒体服务器之间建立 ICE 与 DTLS 会话的基本步骤。这说明 ICE 不只用于浏览器对浏览器通话,也延伸到实时媒体贡献和传送系统。

在这些用例中,目标仍然相同:为实时流量建立最有效的可用路径。端点可能是编码器和服务器,而不是人操作的浏览器,但 ICE 仍然是帮助路径穿越复杂网络并成功建立的机制。

工业、IoT 与边缘实时系统

只要实时点对点或边缘通信需要穿越私有网络,ICE 就可能有用。这包括某些工业视频系统、边缘协作工具、遥测会话,以及依赖交互式媒体而非纯请求响应流量的远程协助平台。ICE 的价值不在于它是工业专用,而在于它解决了许多分布式边缘环境都会遇到的一般连接问题。

随着这些系统导入更多浏览器式控制、WebRTC 传输或混合云端与边缘交互,ICE 会成为通信栈中的实用组成部分,而不只是浏览器概念。

部署考虑

TURN 容量与地理位置配置

即使 ICE 偏好直接路径,实际部署也应假设一定比例的会话会需要 TURN。这代表 TURN 容量规划很重要。如果中继容量不足,ICE 仍可能识别出中继路径,但在负载下媒体质量会受到影响。地理位置配置也很重要,因为中继距离会直接影响延迟。

因此,大规模部署实时媒体的组织应该把 TURN 视为正式生产基础架构,而不是很少使用的备用。最佳 ICE 设计是直接连接很常见,但中继服务仍然足够强健,能在直接路径被阻挡时让失败变得少见。

可观测性与故障排除

如果平台只显示一般性的“connection failed”消息,ICE 失败可能很难诊断。有用的部署会记录候选项类型、候选项配对结果、中继使用情况和时间行为,让工程师能区分信令问题、连接检查失败和 TURN 分配问题。候选项层级的可见性,可以更容易理解一个会话为何直接成功、通过中继成功,或完全失败。

这在混合企业环境中特别重要,因为 VPN 客户端、防火墙策略、端点安全软件和浏览器差异都可能影响结果。良好的可观测性会把 ICE 从神秘的后台机制,变成媒体平台中可运营管理的一部分。

安全性与隐私

ICE 候选项交换会暴露应用程序为了连接所需的网络信息,因此隐私处理和候选项策略很重要。现代浏览器与平台越来越重视在连接能力与隐私保护之间取得平衡,管理员也应了解主机候选项、中继使用和日志策略如何与企业安全要求互动。

同时,TURN 凭证、访问控制和滥用防护也必须谨慎处理。TURN 服务器不只是辅助服务;如果没有妥善保护和监控,它也是可能被大量消耗的资源。

在生产环境中,ICE 不只是一套算法。它是包含信令、中继容量、监控和策略控制的服务设计议题。

FAQ

用简单的话说,ICE 是什么?

ICE 是一种 NAT 穿越框架,帮助两个端点通过收集可能路径、进行测试并选择最佳路径,为实时媒体或数据找到可用连接。

ICE 会取代 STUN 或 TURN 吗?

不会。ICE 会使用 STUN 和 TURN。STUN 帮助发现对外可见映射并执行检查,而 TURN 在直接连接不可行时提供中继。

什么是 ICE 候选项?

ICE 候选项是端点可用于通信的可能网络地址和端口。常见类型包括主机、服务器反射、对等反射和中继候选项。

为什么 ICE 对 WebRTC 很重要?

WebRTC 会话经常涉及位于 NAT、防火墙和变化网络后方的用户。ICE 为 WebRTC 提供标准化方式来发现并验证连接路径,使会话能更可靠地建立。

什么是 Trickle ICE?

Trickle ICE 是一项扩展,可让候选项在被发现后逐步交换,使连接检查能更早开始,会话建立也常能更快完成。

推荐产品
目录
客服 电话
We use cookie to improve your online experience. By continuing to browse this website, you agree to our use of cookie.

Cookies

This Cookie Policy explains how we use cookies and similar technologies when you access or use our website and related services. Please read this Policy together with our Terms and Conditions and Privacy Policy so that you understand how we collect, use, and protect information.

By continuing to access or use our Services, you acknowledge that cookies and similar technologies may be used as described in this Policy, subject to applicable law and your available choices.

Updates to This Cookie Policy

We may revise this Cookie Policy from time to time to reflect changes in legal requirements, technology, or our business practices. When we make updates, the revised version will be posted on this page and will become effective from the date of publication unless otherwise required by law.

Where required, we will provide additional notice or request your consent before applying material changes that affect your rights or choices.

What Are Cookies?

Cookies are small text files placed on your device when you visit a website or interact with certain online content. They help websites recognize your browser or device, remember your preferences, support essential functionality, and improve the overall user experience.

In this Cookie Policy, the term “cookies” also includes similar technologies such as pixels, tags, web beacons, and other tracking tools that perform comparable functions.

Why We Use Cookies

We use cookies to help our website function properly, remember user preferences, enhance website performance, understand how visitors interact with our pages, and support security, analytics, and marketing activities where permitted by law.

We use cookies to keep our website functional, secure, efficient, and more relevant to your browsing experience.

Categories of Cookies We Use

Strictly Necessary Cookies

These cookies are essential for the operation of the website and cannot be disabled in our systems where they are required to provide the service you request. They are typically set in response to actions such as setting privacy preferences, signing in, or submitting forms.

Without these cookies, certain parts of the website may not function correctly.

Functional Cookies

Functional cookies enable enhanced features and personalization, such as remembering your preferences, language settings, or previously selected options. These cookies may be set by us or by third-party providers whose services are integrated into our website.

If you disable these cookies, some services or features may not work as intended.

Performance and Analytics Cookies

These cookies help us understand how visitors use our website by collecting information such as traffic sources, page visits, navigation behavior, and general interaction patterns. In many cases, this information is aggregated and does not directly identify individual users.

We use this information to improve website performance, usability, and content relevance.

Targeting and Advertising Cookies

These cookies may be placed by our advertising or marketing partners to help deliver more relevant ads and measure the effectiveness of campaigns. They may use information about your browsing activity across different websites and services to build a profile of your interests.

These cookies generally do not store directly identifying personal information, but they may identify your browser or device.

First-Party and Third-Party Cookies

Some cookies are set directly by our website and are referred to as first-party cookies. Other cookies are set by third-party services, such as analytics providers, embedded content providers, or advertising partners, and are referred to as third-party cookies.

Third-party providers may use their own cookies in accordance with their own privacy and cookie policies.

Information Collected Through Cookies

Depending on the type of cookie used, the information collected may include browser type, device type, IP address, referring website, pages viewed, time spent on pages, clickstream behavior, and general usage patterns.

This information helps us maintain the website, improve performance, enhance security, and provide a better user experience.

Your Cookie Choices

You can control or disable cookies through your browser settings and, where available, through our cookie consent or preference management tools. Depending on your location, you may also have the right to accept or reject certain categories of cookies, especially those used for analytics, personalization, or advertising purposes.

Please note that blocking or deleting certain cookies may affect the availability, functionality, or performance of some parts of the website.

Restricting cookies may limit certain features and reduce the quality of your experience on the website.

Cookies in Mobile Applications

Where our mobile applications use cookie-like technologies, they are generally limited to those required for core functionality, security, and service delivery. Disabling these essential technologies may affect the normal operation of the application.

We do not use essential mobile application cookies to store unnecessary personal information.

How to Manage Cookies

Most web browsers allow you to manage cookies through browser settings. You can usually choose to block, delete, or receive alerts before cookies are stored. Because browser controls vary, please refer to your browser provider’s support documentation for details on how to manage cookie settings.

Contact Us

If you have any questions about this Cookie Policy or our use of cookies and similar technologies, please contact us at support@becke.cc .