Opis zachowania buforowania protokołu rozpoznawania adresów (ARP) w implementacjach protokołu TCP/IP

Ten artykuł zawiera opis zachowania buforowania protokołu rozpoznawania adresów (ARP) w implementacjach protokołu TCP/IP.

Dotyczy: Windows Server 2012 R2, Windows 10 — wszystkie wersje, Windows 7 Service Pack 1
Oryginalny numer KB: 949589

Wprowadzenie

W tym artykule opisano zachowanie buforowania protokołu rozpoznawania adresów (ARP) w implementacjach protokołu TCP/IP systemu Windows Vista.

Więcej informacji

Zachowanie buforowania ARP zostało zmienione w systemie Windows Vista. Implementacje stosu TCP/IP w systemie Windows Vista są zgodne z RFC4861 (protokół odnajdywania sąsiadów dla adresu IP w wersji 6 [Ipv6]) dla procesu odnajdywania sąsiadów IPv4 i IPv6.

Wpisy rejestru ArpCacheLife i ArpCacheMinReferencedLife określają sposób obsługi pamięci podręcznej ARP w systemie Windows XP i Windows Server 2003. Te wpisy rejestru nie mają już zastosowania do systemu Windows Vista.

W nowej implementacji stosu TCP/IP systemu Windows Vista hosty tworzą wpisy pamięci podręcznej sąsiada, gdy w pamięci podręcznej sąsiada nie ma pasującego wpisu. Wpis pamięci podręcznej ARP dla protokołu IPv4 jest przykładem wpisu pamięci podręcznej sąsiada. Po pomyślnym utworzeniu wpisu w pamięci podręcznej sąsiada wpis może ulec zmianie na "Osiągalny", jeśli wpis spełnia określone warunki. Jeśli wpis jest w stanie "Osiągalne", hosty TCP/IP systemu Windows Vista nie wysyłają żądań ARP do sieci. W związku z tym hosty TCP/IP systemu Windows Vista używają informacji w pamięci podręcznej. Jeśli wpis nie jest używany i pozostaje w stanie "Osiągalny" dłużej niż jego wartość "Czas osiągalny", wpis zmieni się na stan "Nieaktualny". Jeśli wpis jest w stanie "Nieaktualne", host TCP/IP systemu Windows Vista musi wysłać żądanie ARP, aby dotrzeć do tego miejsca docelowego.

Wartość "Czas osiągalny" jest obliczana w następujący sposób:
Czas osiągalny = × czasu bazowego (losowa wartość między MIN_RANDOM_FACTOR a MAX_RANDOM_FACTOR)
Funkcja RFC udostępnia następujące wyniki obliczeniowe.

BaseReachable Time 30 000 milisekund (ms)
MIN_RANDOM_FACTOR 0.5
MAX_RANDOM_FACTOR 1.5

W związku z tym wartość "Czas osiągalny" wynosi od 15 sekund (30 × 0,5 sekundy) do 45 sekund (30 × 1,5 sekundy). Jeśli wpis nie jest używany przez czas od 15 do 45 sekund, zmieni się on na stan "Nieaktualne". Następnie host musi wysłać żądanie ARP dla protokołu IPV4 do sieci, gdy do tego miejsca docelowego zostanie wysłany dowolny datagram adresu IP.

Aby wyświetlić bieżącą wartość "Czas osiągalny", wykonaj następujące kroki:

  1. Kliknij przycisk Start, wpisz polecenie cmd w polu Rozpocznij wyszukiwanie , a następnie kliknij polecenie cmd na liście Programy .

  2. Jeśli zostanie wyświetlony monit o podanie hasła administratora lub potwierdzenie, wpisz hasło lub kliknij przycisk Kontynuuj.

  3. W wierszu polecenia wpisz następujące polecenie:
    netsh interface ipv4 show interfaces
    Przykładowy wynik:

    Idx Met MTU        State       Name
    --- --- -----      ----------- -------------------
     1  50  4294967295 connected   Loopback Pseudo-Interface 1
     9  20  1500       connected   Local Area Connection
    
    
  4. W kroku 2 "Połączenie lokalne" Idx ma wartość 9. W związku z tym można wyświetlić interfejs 9, wpisując następujące polecenie w wierszu polecenia:
    netsh interface ipv4 show interface 9
    Przykładowy wynik:

    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. Wartość "BaseReachable Time" można zmienić, wpisując następujące przykładowe polecenie w wierszu polecenia:
    netsh interface ipv4 set interface 9 basereachable=60000

  6. Aby wyświetlić wynik kroku 4, wpisz następujące polecenie w wierszu polecenia:
    netsh interface ipv4 show interface 9
    Przykładowy wynik:

    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
    

    Uwaga

    Wartość "Base Reachable Time" została zmieniona na 60000 ms.

  7. Limit pamięci podręcznej sąsiada można zwiększyć, wpisując następujące polecenie w wierszu polecenia:
    netsh interface ipv4 set global neighborcachelimit = 4096

    Uwaga

    Domyślny limit pamięci podręcznej sąsiada wynosi 256 dla wersji klienta systemu Windows i wynosi 1024 dla systemu Windows Server.

Aby uzyskać więcej informacji na temat stanów wpisu pamięci podręcznej sąsiada, odwiedź następującą witrynę sieci Web:
https://www.ietf.org/rfc/rfc2461.txt

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.

Firma Microsoft udostępnia informacje dotyczące sposobów kontaktowania się z innymi firmami, aby ułatwić uzyskanie niezbędnej pomocy technicznej. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności informacji dotyczących innych firm.