1

我正在尝试从内核中生成 arp 请求,但我不明白“目标 MAC 地址”和“目标 MAC 地址”之间的区别。我正在使用的内核函数是这个:

void arp_send(int type, int ptype, __be32 dest_ip,
          struct net_device *dev, __be32 src_ip,
          const unsigned char *dest_hw, const unsigned char *src_hw,
          const unsigned char *target_hw)

有谁知道'target_hw'(目标MAC地址)和'dst_hw'(目标MAC地址)之间的区别?对我来说,它们应该是一样的......

4

1 回答 1

1

arp_send 函数是一个通用函数,用于发送 ARP 请求和响应。

在您的情况下(ARP 请求)target_hw是您想要了解的信息,因此可以忽略此字段(设置为 NULL,请参阅RFC826示例) dest_hw也将为 NULL - 这将导致使用广播地址(请参阅arp_create 注释

我在这里假设 IPv4 over Ethernet。对于其他第 2/3 层协议,它可能看起来不同。

于 2013-01-12T09:41:50.120 回答