jak naprawdę działa polecenie „ping”?


24

Jak naprawdę działa polecenie ping? W szczególności, gdzie pojawia się ARP (Address Resolution Protocol)?

Zadano mi to pytanie w wywiadzie i nie byłem w stanie wymyślić scenariusza, w którym można by zastosować ARP.


Zajrzyj do ICMP.

3
ARP służy do uzyskania adresu MAC określonego adresu IP. Gdy potrzebujesz wysłać pakiet przez Ethernet, potrzebujesz adresu MAC miejsca docelowego.

Odpowiedzi:


16

Jeśli naprawdę chcesz zrozumieć, znajdziesz tutaj doskonałą (bardzo dobrze napisaną) białą księgę:

http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Mays_Ping.pdf

Oto podsumowanie ->

Ping (Program on the application layer) ------->
Opens a 'raw' socket to IP Layer ------>
IP layer (Layer 2 on OSI) packages ICMP packet and sends it

Ponieważ pomiędzy nimi nie ma warstwy TCP, Ping (program)musi monitorować wszystkie przychodzące pakiety ICMP i filtrować tylko te z miejsca docelowego.

Mam nadzieję, że to pomaga.


9

Zakładając, że ping wymaga wysłania pakietu przez sieć Ethernet lub WiFi, ARP służy do znalezienia adresu sprzętowego Ethernet urządzenia odbierającego pakiet wychodzący. Zazwyczaj jest to router dla sieci LAN, na której znajduje się maszyna inicjująca polecenie ping.

Typowy proces to:

  1. Wprowadź polecenie, aby wysłać polecenie ping do miejsca docelowego.

  2. DNS służy do określania adresu IP (w razie potrzeby).

  3. Tabela routingu jest sprawdzana, aby znaleźć następny przeskok do tego miejsca docelowego.

  4. ARP służy do znalezienia adresu sprzętowego następnego przeskoku.

  5. Pakiet IP jest wysyłany do następnego przeskoku, zamknięty w ramce Ethernet lub WiFi.


3
Jedyna odpowiedź tutaj, która faktycznie odpowiada na pytanie!
jmiserez


1

Ping i ARP to różne rzeczy znajdujące się na różnych warstwach w stosie protokołu sieciowego.

Ping znajduje się w warstwie sieci (lub warstwie internetowej - spójrz na protokół ICMP , jak wskazał @ServerMonkey).

Protokół Arp znajduje się na poziomie łącza (niższy poziom). Protokół Arp umożliwia fizyczne połączenie między sprzętem sieciowym, który jest bezpośrednio podłączony.

W stosie sieciowym TCP / IP każda warstwa wykorzystuje warstwę poniżej do przesyłania swoich danych, hermetyzując je w protokole niskiego poziomu. Każda warstwa jest niezależna od siebie i być może nieświadoma szczegółów i implementacji innych poziomów (nie zawsze jest to prawdą: patrz funkcja między warstwami ).


tak. ale implementacja polecenia ping wymagałaby kodu w L2 (warstwa łącza). czy ARP wchodzi w grę w warstwie 2.

@ liv2hak. Nie. Implementacja polecenia ping znajduje się na dolnej warstwie łącza.

@liv arp jest często określany jako warstwa 2.5 ICMP jest często określany jako warstwa 3.5 Warstwy dotyczą bardziej pól niż kodu. A jeśli chcesz powiedzieć, że implementacja ping wymaga kodu na warstwie 2, cóż, przy dowolnej implementacji czegokolwiek, z definicji nie możesz mieć warstwy bez warstw poniżej.
barlop

1

ARP zapewnia adres MAC, ale czasami, jeśli nie ma adresu DMAC, używany jest adres rozgłoszeniowy.

Ta ramka wykorzystująca rozgłaszanie DMAC jest nazywana ramką rozgłoszeniową ARP, dzięki czemu otrzymujemy adres DMAC.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.