2013-01-11 75 views
1

我試圖從內核中生成ARP請求,但我不明白「目標MAC地址」和「目標MAC地址」之間的差異。我使用的內核函數是這個:arp_send:target_hw和dest_hw有什麼區別?

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

arp_send函數是一個通用函數,用於發送ARP請求和響應。

在你的情況(ARP請求)的target_hw是你想了解的信息,因此該字段可以忽略不計(設置爲NULL,見RFC826例子) dest_hw也將是空 - 這將導致使用廣播地址(請參閱arp_create comment

我假設IPv4以太網在這裏。對於其他Layer2/3協議,它可能看起來不同。

+0

我終於明白了這一點,但感謝你的幫助! – pap42