TCP/IP 実装でのアドレス解決プロトコル (ARP) キャッシュ動作の説明

この記事では、TCP/IP 実装でのアドレス解決プロトコル (ARP) キャッシュ動作について説明します。

適用対象: Windows Server 2012 R2、Windows 10 - すべてのエディション、Windows 7 Service Pack 1
元の KB 番号: 949589

概要

この記事では、Windows Vista TCP/IP 実装でのアドレス解決プロトコル (ARP) のキャッシュ動作について説明します。

詳細

Windows Vista で ARP キャッシュの動作が変更されました。 Windows Vista の TCP/IP スタックの実装は、IPv4 と IPv6 近隣探索プロセスの両方のRFC4861 (IP バージョン 6 [Ipv6] の近隣探索プロトコル) に準拠しています。

ArpCacheLife と ArpCacheMinReferencedLife レジストリ エントリは、Windows XP と Windows Server 2003 での ARP キャッシュの管理方法を決定します。 これらのレジストリ エントリは、Windows Vista には適用されなくなりました。

新しい Windows Vista TCP/IP スタック実装では、近隣キャッシュに一致するエントリがない場合に、ホストによって近隣キャッシュ エントリが作成されます。 IPv4 の ARP キャッシュ エントリは、近隣キャッシュ エントリの例です。 エントリがネイバー キャッシュに正常に作成された後、エントリが特定の条件を満たしている場合、エントリは "到達可能" 状態に変更される可能性があります。 エントリが "到達可能" 状態の場合、Windows Vista TCP/IP ホストは ARP 要求をネットワークに送信しません。 そのため、Windows Vista TCP/IP ホストはキャッシュ内の情報を使用します。 エントリが使用されず、"到達可能時間" 値よりも長く "到達可能" 状態のままである場合、エントリは "古い" 状態に変わります。 エントリが "古い" 状態の場合、Windows Vista TCP/IP ホストは、その宛先に到達するために ARP 要求を送信する必要があります。

"到達可能時間" の値は、次のように計算されます。
到達可能時間 = 基本到達可能時間× (MIN_RANDOM_FACTORとMAX_RANDOM_FACTORの間のランダムな値)
RFC では、次の計算結果が提供されます。

基本到達可能時間 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 要求をネットワークに送信する必要があります。

現在の "到達可能時間" の値を表示するには、次の手順に従います。

  1. [スタート] をクリックし、[検索の開始] ボックスに「cmd」と入力し、[プログラム] の一覧で [cmd] をクリックします。

  2. 管理者パスワードの入力または確認を求められたら、パスワードを入力するか、[ 続行] をクリックします。

  3. コマンド プロンプトで、以下のコマンドを入力します。
    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
    
    
  4. 手順 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
    
  5. コマンド プロンプトで次のコマンド例を入力すると、"BaseReachable Time" の値を変更できます。
    netsh interface ipv4 set interface 9 basereachable=60000

  6. 手順 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
    

    注:

    "Base Reachable Time" の値が 60000 ミリ秒に変更されました。

  7. コマンド プロンプトで次のコマンドを入力すると、近隣キャッシュの制限を増やすことができます。
    netsh interface ipv4 set global neighborcachelimit = 4096

    注:

    既定の近隣キャッシュ制限は、Windows のクライアント バージョンでは 256 で、Windows Server の場合は 1024 です。

近隣キャッシュ エントリの状態の詳細については、次の Web サイトを参照してください。
https://www.ietf.org/rfc/rfc2461.txt

この資料に記載されているサードパーティ製品は、マイクロソフトと関連のない他社の製品です。 明示的か黙示的かにかかわらず、これらの製品のパフォーマンスや信頼性についてマイクロソフトはいかなる責任も負わないものとします。

他社テクニカル サポートのお問い合わせ窓口は、ユーザーの便宜のために提供されているものであり、 将来予告なしに変更されることがあります。 マイクロソフトは、掲載されている情報に対して、いかなる責任も負わないものとします。