STUN属性定义:
MAPPED-ADDRESS: 此属性出现在Binding Response消息中,其值是在STUN服务端收到发送Bind Request请求的IP地址和端口号【在STUN服务端,如果发送请求的客户端在NAT设备后面,那么服务端看到的地址是经过NAT后的IP和PORT,如果是在多级NAT的情况下,那么服务端看到的是最靠近自己的NAT设备转换后的IP和PORT】
RESPONSE-ADDRESS: 此属性出现在Binding Request消息中,从RFC文档中看,是告知服务端对此binding request的应答,不是按照“原路:返回,而是发送给指定的地址(IP,PORT)。为什么会这么理解,在RFC文档中有这么一句话,此选项是可选的,如果没有此选项,那么binding response 就发送给bingding request的发送者。另外一层含义是:如果在Requst中指定了此属性,那么Response的目的IP和PORT必须是此属性指定的地址
CHANGE-REQUEST: 此属性包含两个标识: 一个是"change ip" ,另外一个是"change port",此属性只能出现在binding request中,用来指示STUN服务端发送binding response 时需要更改IP地址或者是端口,(即response另外创建socket,此socket绑定到其他的IP或者端口,或者说两者都更换)
CHANGED-ADDRESS: 此属性出现在Binding Response,此属性是由Binding Requst中携带了CHANGE-REQUST属性的标示引起的,用来提示客户端有可能采用value中的IP,PORT。这一个属性在进行NAT类型检测时是非常有用的, 也是理解RFC文档中那个图的一个重要点
SOURCE-ADDRESS: 此属性只能出现在Binding Response中,其含义是发送Binding Response 的IP和PORT;此属性的值是由request中的CHANGE-REQUEST属性决定的,