关于STUN协议中属性的一点问题

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)                 |
//      |                                                               |
//      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
阅读 2k
1 个回答

This attribute is used only by servers for achieving backwards
compatibility with RFC 3489 [RFC3489] clients.服务端收到就解释为ipv6地址,客户端收到就解释为ResponseAddress

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题