区域索引与 sockaddr_in6 结构中的 scope_id 有什么关系?
平台之间的功能似乎有所不同,我很想知道它们之间的关系。例如,Windows 有一个SCOPE_ID 结构(以及一个 32 位值)。Mac OSX 只有 32 位值。显然,32 位值是要走的路,但它究竟是如何布局的呢?仍然是前 4 位是“级别”吗?网络字节顺序如何影响这一点?
我还假设,在 Windows 下,IP 地址中给出的区域索引(例如 FF80::1%1)直接转换为上述结构的底部 28 位。它在使用名称而不是数字的 Mac OSX 下是如何工作的(例如 FF80::1%en0)。我是否将其编码为四个 CC?同样,我似乎记得 linux 使用 4 个字符,这些字符不可能适合 28 位。
那么有人可以向我解释这个烂摊子吗?当我完成后,我真的需要写一篇关于这一切的教程,因为网络上关于 ipv6 的宝贵信息很少。
编辑:scope_id 是否按网络字节顺序排列?我只是在查看从 recvfrom 返回的 scope_id ,它似乎是 little-endian 顺序......这不可能吧?