数据传输时禁用ARP

时间:2012-04-19 09:10:08

标签: c linux network-programming linux-kernel arp

我通过PC1向PC2发送数据,两者都是Linux 2.6内核机器。这种转移需要几个小时。 PC1中的ARP缓存失效超时设置为50秒。因此,在数据传输期间,PC1每隔50秒向PC2发送ARP请求(因为arp缓存在PC1中到期)。但理论上,由于数据传输正在进行,因此不需要向PC2发送ARP请求(因为PC1知道PC2仍在那里)。

如何在PC1内禁用PC2的ARP输入到期(如果到PC2的数据传输仍在进行中)?

注意:我想在传输到PC2期间仅为PC2 ARP缓存条目禁用arp-cache expiry。转移后让ARP条目过期。

2 个答案:

答案 0 :(得分:3)

获得一个新的开关。

真。不要试图通过在内核中搞错来解决硬件问题。

如果你真的坚持让它工作,只需设置静态ARP条目。他们没有超时。

答案 1 :(得分:0)

通常,ARP的到期会提高连接可靠性,反之亦然 假设PC2出于某种原因改变其MAC地址。在网络领域内,它可能没什么意义,但在更复杂的网络中它确实有意义。有了ARP,PC1很快就会学习新的MAC并继续学习。没有它,它仍然会尝试与旧的MAC对话。

这就是说,静态ARP(arp -s)可以很容易地用来告诉PC1什么是PC2的MAC地址,永恒(或下次启动,以先到者为准)。