Dlaczego drugie żądanie ARP czeka, aż ping się skończy?

4

Ten problem został mi przedstawiony przez jednego z moich profesorów, ponieważ zdarzyło się to dopiero po przełączeniu z kart 100 Mb na NIC Gigabit. Drugie żądanie arp, które pochodzi z pingowanego komputera (aby wysłać odpowiedź z powrotem), nie jest wysyłane, dopóki nie minie pingi.

Postanowiłem przeprowadzić kilka testów w domu z kilkoma maszynami wirtualnymi i sprawdzić, czy uda mi się znaleźć przyczynę.

Wireshark Capture Example

Po wyczyszczeniu pamięci podręcznej arp na obu komputerach (arp -d) i pingowaniu otrzymałem takie same wyniki jak mój profesor, ale nie mogę zrozumieć dlaczego.

Zrobiłem kilka googlingów i znalazłem kogoś z podobnym problemem używając linuxa (używam Windows 10), powiedział coś o tym, że w tabeli arp znajduje się nieaktualny wpis, a także coś, co nazywa się pierwszym opóźnieniem sondy, ale nigdy nie byłem w stanie znaleźć informacje na temat jednej z tych rzeczy dla systemu Windows.

Czy ktoś wie, dlaczego tak się dzieje? Albo po co to drugie żądanie arp, jeśli nie ma znaleźć pierwszego urządzenia?

SkyParrillo
źródło
Tak, to interesujące. Odpowiedź ping została wykonana bez arp, ponieważ początek był w tej samej sieci, więc adres mac odpowiedzi był na przychodzącym pakiecie. Później pojawia się unpast (zamiast tradycyjnego rozgłaszania) - więc urządzenie docelowe miało już wpis arp (wyodrębniony z ping) i wygląda na to, że sprawdzał poprawność. Być może wpisy arp są oznaczane, aby szybciej się zestarzały, gdy są zbierane za pomocą tej metody.
Paul
Czy mimo to udowodnić, że tak się dzieje? Lub jakikolwiek sposób, aby zobaczyć, jak długo wpis jest przestarzały dla okien? Czy w Linuksie jest tak samo jak Windows?
SkyParrillo
Po prostu jestem zaskoczony. Idąc za odpowiedzią Appleoddity poniżej, miejsce docelowe wypełnia swoją tabelę arp. Zauważ jednak, że pyta konkretnie o adres mac, a nie nadawany, więc warstwa 2 musiała zachować mac przed pingiem. Nie wiem, jak działa wewnętrzne działanie stosu Windows, stąd komentarz, a nie odpowiedź.
Paul

Odpowiedzi:

2

To wydaje się być tym, co Bruce Hartpence nazywa „Zwrotem ARP” ten fragment od pakietu Packet Guide do Core Network Protocols.

Rozmowa pokazana na rysunku 4-12 ilustruje inną ważną   aspekt ARP - tylko host inicjujący rozmowę (generowanie   żądanie ARP) umieści wpis dla hosta docelowego w swoim   lokalna tabela ARP. Oznacza to, że inne stacje słuchające wymiany, nawet jeśli   odbierają żądanie ARP, nie dodają tych stacji do   własne tabele ARP. Jednak wiele hostów (zwłaszcza routerów) to   agresywny, jeśli chodzi o zaludnianie swoich stołów i po wysłuchaniu   Ruch ARP lub udział w wiadomościach ARP będzie później   wygeneruj własne żądania ARP, aby wypełnić ich tabele.

Krótka odpowiedź. Host docelowy zapełnia własną tabelę ARP, ponieważ wie o innym hoście.

Appleoddity
źródło
Czy to nadal wyjaśniałoby, dlaczego na początku pingu były dwa żądania arp przed zmianą kart sieciowych?
SkyParrillo