11. ALTERNATE-SERVER 机制 (ALTERNATE-SERVER Mechanism)
本节描述 STUN 中允许服务器将客户端重定向到另一台服务器的机制. 该扩展是可选的, 用法必须定义是否以及何时使用此扩展.
使用此扩展的服务器通过以错误码为 300 (Try Alternate) 的错误响应消息回复请求消息, 将客户端重定向到另一台服务器. 服务器必须在错误响应中包含 ALTERNATE-SERVER 属性. 错误响应消息可以被认证; 但是, 在某些使用 ALTERNATE-SERVER 的情况下, 对响应进行认证可能不可行或不实际.
使用此扩展的客户端按如下方式处理 300 (Try Alternate) 错误码. 客户端在错误响应中查找 ALTERNATE-SERVER 属性. 如果找到, 客户端认为当前事务失败, 并使用前一个请求所用的相同传输协议, 向该属性指定的服务器重新尝试该请求. 如果该请求需要认证, 则它必须使用客户端原本会在向目标服务器发送请求时用于该服务器的相同凭据, 即使请求已发送给执行重定向的服务器. 如果客户端被重定向到一台它在过去五分钟内已经尝试向其发送此请求的服务器, 它必须忽略该重定向并认为事务失败. 这会防止在重定向循环中服务器之间出现无限 ping-pong.