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) |
// | |
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
이 속성은 RFC 3489 [RFC3489] 클라이언트와의 하위 호환성을 달성하기 위해 서버에서만 사용됩니다.
서버가 이를 수신하면 ipv6 주소로 해석되고, 클라이언트가 이를 수신하면 다음과 같이 해석됩니다. 응답주소