本文介绍 TCP/IP 实现中的地址解析协议(ARP)缓存行为。
原始 KB 数: 949589
简介
本文介绍 Windows Vista TCP/IP 实现中的地址解析协议(ARP)缓存行为。
详细信息
Windows Vista 中已更改 ARP 缓存行为。 Windows Vista 中的 TCP/IP 堆栈实现符合 IPv4 和 IPv6 邻居发现过程的 RFC4861(IP 版本 6 [Ipv6])的邻居发现协议。
ArpCacheLife 和 ArpCacheMinReferencedLife 注册表项确定 ARP 缓存在 Windows XP 和 Windows Server 2003 中如何维护。 这些注册表项不再适用于 Windows Vista。
在新 Windows Vista TCP/IP 堆栈实现中,当邻居缓存中没有匹配项时,主机会创建邻居缓存条目。 IPv4 的 ARP 缓存项是邻居缓存条目的示例。 在邻居缓存中成功创建条目后,如果条目满足某些条件,该条目可能会更改为“Reachable”状态。 如果条目处于“可访问”状态,Windows Vista TCP/IP 主机不会将 ARP 请求发送到网络。 因此,Windows Vista TCP/IP 主机使用缓存中的信息。 如果未使用条目,并且它保持“可访问时间”值的时间长于其“可访问时间”值,则条目将更改为“过时”状态。 如果条目处于“过时”状态,则 Windows Vista TCP/IP 主机必须发送 ARP 请求才能到达该目标。
“可访问时间”值按如下方式计算: 可访问时间 = BaseReachable Time × (MIN_RANDOM_FACTOR 和 MAX_RANDOM_FACTOR 之间的随机值) RFC 提供以下计算结果。
| BaseReachable Time | 30,000 毫秒(ms) |
|---|---|
| MIN_RANDOM_FACTOR | 0.5 |
| MAX_RANDOM_FACTOR | 1.5 |
因此,“可到达时间”值介于 15 秒(30 × 0.5 秒)和 45 秒(30 × 1.5 秒)之间。 如果条目在 15 到 45 秒之间未使用,则会更改为“过时”状态。 然后,当任何 IP 数据报发送到该目标时,主机必须将 IPV4 的 ARP 请求发送到网络。
若要查看当前的“可访问时间”值,请执行以下步骤:
-
单击“开始”,在*“开始*搜索”框中键入 cmd,然后单击“程序**”列表中的 cmd**。
-
如果系统提示输入管理员密码或进行确认,请键入密码,或单击“ 继续”。
-
在命令提示符处,键入下列命令:
netsh interface ipv4 show interfaces示例结果:Idx Met MTU State Name --- --- ----- ----------- ------------------- 1 50 4294967295 connected Loopback Pseudo-Interface 1 9 20 1500 connected Local Area Connection -
在步骤 2 中,“局域网连接”
Idx为 9。 因此,可以通过在命令提示符处键入以下命令来显示接口 9:netsh interface ipv4 show interface 9示例结果:Interface Local Area Connection Parameters ---------------------------------------------- IfLuid : ethernet_7 IfIndex : 9 Compartment Id : 1 State : connected Metric : 20 Link MTU : 1500 bytes Reachable Time : 19000 ms Base Reachable Time : 30000 ms Retransmission Interval : 1000 ms DAD Transmits : 3 Site Prefix Length : 64 Site Id : 1 Forwarding : disabled Advertising : disabled Neighbor Discovery : enabled Neighbor Unreachability Detecion : enabled Router Discovery : dhcp Managed Address Configuration : enabled Other Stateful Configuration : enabled Weak Host Sends : disabled Weak Host Receives : disabled Use Automatic Metric : enabled Ignore Default routes : disabled -
可以通过在命令提示符处键入以下示例命令来更改“BaseReachable Time”值:
netsh interface ipv4 set interface 9 basereachable=60000 -
若要查看步骤 4 的结果,请在命令提示符处键入以下命令:
netsh interface ipv4 show interface 9示例结果:Interface Local Area Connection Parameters ---------------------------------------------- IfLuid : ethernet_7 IfIndex : 9 Compartment Id : 1 State : connected Metric : 20 Link MTU : 1500 bytes Reachable Time : 61500 ms Base Reachable Time : 60000 ms Retransmission Interval : 1000 ms DAD Transmits : 3 Site Prefix Length : 64 Site Id : 1 Forwarding : disabled Advertising : disabled Neighbor Discovery : enabled Neighbor Unreachability Detecion : enabled Router Discovery : dhcp Managed Address Configuration : enabled Other Stateful Configuration : enabled Weak Host Sends : disabled Weak Host Receives : disabled Use Automatic Metric : enabled Ignore Default routes : disabled注意
“基本可访问时间”值已更改为 60000 毫秒。
-
可以通过在命令提示符处键入以下命令来增加邻居缓存限制:
netsh interface ipv4 set global neighborcachelimit = 4096注意
对于 Windows 的客户端版本,默认邻居缓存限制为 256,对于 Windows Server 为 1024。
有关邻居缓存条目状态的详细信息,请访问以下网站:https://www.ietf.org/rfc/rfc2461.txt
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。
Microsoft 会提供第三方联系信息来帮助你查找技术支持。 此联系信息可能会更改,恕不另行通知。 Microsoft 不保证此第三方联系信息的准确性。