TR111的实现是基于STUN协议(Simple Traversal of UDP over NATs),由RFC3489制定,现已由RFC5389替代。STUN是通过client 和公网里的STUN server发送binding request/response来确定client的具体NAT类型。


STUN是一个简单的客户端 - 服务器协议。客户端发送一个请求到一台服务器,而服务器返回一个响应。
有两种类型的请求:
绑定请求(通过UDP发送)和共享密钥请求(发送TLS (通过TCP)) 。
共享秘密请求服务器返回一个临时的用户名和密码。此用户名和密码用于在随后的绑定请求和绑定响应,身份验证和消息完整性的目的。