arp_send:target_hw和dest_hw有什么区别?

时间:2013-01-11 14:58:26

标签: linux-kernel

我正在尝试从内核中生成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地址)之间的区别?对我来说,他们应该是一样的......

1 个答案:

答案 0 :(得分:1)

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

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

我在这里假设IPv4以太网。对于其他Layer2 / 3协议,它可能看起来不同。