STUN属性都满足TLV编码,其中0x0001代表MappedAddress属性,这个属性用来存储ip地址,同时为了区分地址的类型,后两位用0x01代表IPV4,0x02代表IPV6。但是0x0002代表ResponseAddress属性,这不就冲突了吗?MappedAddress属性怎么存储ipv6的地址?
// 0 1 2 3 // 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // |0 0 0 0 0 0 0 0| Family | Port | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ // | | // | Address (32 bits or 128 bits) | // | | // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
代言2016-11-11 14:31:36
This attribute is used only by servers for achieving backwards compatibility with RFC 3489 [RFC3489] clients.服务端收到就解释为ipv6地址,客户端收到就解释为ResponseAddress