Поделиться через


Описание поведения кэширования протокола разрешения адресов (ARP) в реализациях TCP/IP

В этой статье описано поведение кэширования протокола разрешения адресов (ARP) в реализациях TCP/IP.

Исходный номер базы знаний: 949589

Введение

В этой статье описывается поведение кэширования протокола разрешения адресов (ARP) в реализации TCP/IP в Windows Vista.

Дополнительная информация

Поведение кэширования ARP было изменено в Windows Vista. Реализации стека TCP/IP в Windows Vista соответствуют RFC4861 (протокол обнаружения соседей для IP версии 6 [Ipv6]) как для IPv4, так и для процесса обнаружения соседей IPv6.

Записи реестра ArpCacheLife и ArpCacheMinReferencedLife определяют, как кэш ARP поддерживается в Windows XP и Windows Server 2003. Эти записи реестра больше не применяются к Windows Vista.

В новой реализации стека TCP/IP в Windows Vista узлы создают записи соседнего кэша, если в соседнем кэше нет соответствующей записи. Запись кэша ARP для IPv4 является примером записи соседнего кэша. После успешного создания записи в соседнем кэше запись может измениться на состояние "Reachable", если запись соответствует определенным условиям. Если запись находится в состоянии "Reachable", узлы TCP/IP в Windows Vista не отправляют запросы ARP в сеть. Поэтому узлы TCP/IP в Windows Vista используют сведения в кэше. Если запись не используется, и она остается в состоянии "Доступный" дольше, чем его значение "Достигнуто время", запись изменяется на состояние "Устаревший". Если запись находится в состоянии "Устаревший", узел TCP/IP в Windows Vista должен отправить запрос ARP для достижения этого назначения.

Значение "Доступное время" вычисляется следующим образом:
Доступное время = baseReachable Time × (случайное значение между MIN_RANDOM_FACTOR и MAX_RANDOM_FACTOR)
RFC предоставляет следующие вычисляемые результаты.

Базовое время 30 000 миллисекунда (мс)
MIN_RANDOM_FACTOR 0,5
MAX_RANDOM_FACTOR 1.5

Таким образом, значение "Доступное время" находится в диапазоне от 15 секунд (30 × 0,5 секунд) и 45 секунд (30 × 1,5 секунды). Если запись не используется в течение 15–45 секунд, она изменяется на состояние "Устаревший". Затем узел должен отправить запрос ARP для IPV4 в сеть, когда любая ip-диаграмма данных отправляется в это назначение.

Чтобы просмотреть текущее значение "Доступное время", выполните следующие действия.

  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

    Примечание.

    Ограничение кэша соседей по умолчанию — 256 для клиентских версий Windows и равно 1024 для Windows Server.

Дополнительные сведения о состояниях входа в соседний кэш см. на следующем веб-сайте:
https://www.ietf.org/rfc/rfc2461.txt

В этой статье упомянуты программные продукты независимых производителей. Корпорация Microsoft не дает никаких гарантий, подразумеваемых и прочих, относительно производительности и надежности этих продуктов.

Контактные данные сторонних организаций предоставлены в этой статье с целью помочь пользователям получить необходимую техническую поддержку. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не дает гарантий относительно правильности приведенных контактных данных сторонних производителей.