SocketAddrV6 is not roundtrip serializable
6 months ago
- #IPv6
- #Rust
- #Serialization
- 遇到JSON序列化问题,原因是使用了复杂的映射键。
- 使用基于属性的测试框架proptest生成随机实例进行测试。
- 发现SocketAddrV6因flowinfo字段无法实现往返序列化。
- 研究SocketAddrV6的flowinfo字段,发现它合并了IPv6的流标签和流量类别字段。
- 探索SocketAddrV6的scope_id字段,该字段用于在链路本地寻址中区分网络接口。
- 得出结论:SocketAddrV6的设计违反了最小意外原则,因其文本表示存在信息丢失。