我试图在基于 Linux 的 PC 的参考 RFC 4861 中开发和实现 NDP(邻居发现协议)。
我创建了一个套接字socket (AF_INET6, SOCK_RAW, IPPROTO_IPV6)
。NS/NA 数据包(ipv6 header + icmpv6 header+options)由开发者自己填充和发送。
在 Wireshark 中,我监控到我填充的 NS 数据包正在发送 + 内核发送它自己的 NS 数据包并接收 NA 数据包。
所以我很困惑,卡在我的工作中。谁能帮忙解释一下
- 为什么这个由自己的内核生成的重复数据包?
- 如果内核处理 ICMPv6 数据包,那么应该开发和实现 NDP 的场景是什么?