0

我试图在基于 Linux 的 PC 的参考 RFC 4861 中开发和实现 NDP(邻居发现协议)。

我创建了一个套接字socket (AF_INET6, SOCK_RAW, IPPROTO_IPV6)。NS/NA 数据包(ipv6 header + icmpv6 header+options)由开发者自己填充和发送。

在 Wireshark 中,我监控到我填充的 ​​NS 数据包正在发送 + 内核发送它自己的 NS 数据包并接收 NA 数据包。

所以我很困惑,卡在我的工作中。谁能帮忙解释一下

  1. 为什么这个由自己的内核生成的重复数据包?
  2. 如果内核处理 ICMPv6 数据包,那么应该开发和实现 NDP 的场景是什么?
4

1 回答 1

3

内核已经实现了 NDP,因此开发人员不必这样做,就像您没有为 IPv4 实现 ARP 一样。

如果你仍然想实现 ND(例如因为它是一个分配的学校项目),你将不得不找到一种方法在内核中禁用它(可能是删除代码并重新编译)。

于 2012-12-05T07:49:41.897 回答