跳到主要内容

RFC 7065 - 3. turn 与 turns URI 定义

3. "turn" 与 "turns" URI 的定义 (Definitions of the turn and turns URI)

3.1. URI 方案语法 (URI Scheme Syntax)

"turn" 与 "turns" URI 具有以下形式化 ABNF 语法 [RFC5234]:

turnURI       = scheme ":" host [ ":" port ]
[ "?transport=" transport ]
scheme = "turn" / "turns"
transport = "udp" / "tcp" / transport-ext
transport-ext = 1*unreserved

<host><port> 在 [RFC3986] 中规定。尽管这两项 ABNF 产生式在 [RFC3986] 中作为通用分层 URI 的组成部分定义, 这并不表示 "turn" 与 "turns" 方案是分层 URI。开发者不得使用通用分层 URI 解析器来解析 "turn" 或 "turns" URI。

<host><port><transport> 组成部分不经修改地传递给 [RFC5928] 算法。若 <scheme> 等于 "turn", 则将 <secure> 设为 false; 若 <scheme> 等于 "turns", 则将 <secure> 设为 true, 并与其他组成部分一并传递给 [RFC5928] 算法。

3.2. URI 方案语义 (URI Scheme Semantics)

"turn" 与 "turns" URI 方案用于标识可通过 TURN 协议访问的互联网主机上的 TURN 服务器 (中继)。TURN 协议支持通过 UDP、TCP 或基于 TCP 的 TLS (TLS-over-TCP) 发送消息。当 TURN 运行于基于 TCP 的 TLS 之上 (或将来运行于基于 UDP 的 DTLS, DTLS-over-UDP) 时, 必须使用 "turns" URI 方案; 否则必须使用 "turn" 方案。

"turn" URI 中必需的 <host> 部分表示 TURN 服务器主机。

如 [RFC5766] 与 [RFC5928] 所述, 若存在 <port> 部分, 则表示 TURN 服务器等待连接请求的端口。若省略端口, 则 UDP 与 TCP 的默认端口均为 3478。基于 TLS 的 TURN 的默认端口为 5349。