bagaimana perintah 'ping' benar-benar berfungsi?

24

Bagaimana cara kerja perintah ping? Khususnya di mana ARP (Address Resolution Protocol) muncul?

Saya ditanya pertanyaan ini dalam sebuah wawancara dan saya tidak dapat membuat skenario kapan ARP dapat digunakan.

liv2hak
sumber
Lihatlah ke ICMP.
3
ARP digunakan untuk mendapatkan alamat MAC dari alamat IP tertentu. Ketika Anda perlu mengirim paket pada ethernet, Anda memerlukan alamat MAC tujuan.

Jawaban:

16

Jika Anda benar-benar ingin memahami, ada kertas putih yang sangat bagus (ditulis dengan sangat baik) di sini:

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

Berikut ringkasannya ->

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

Karena tidak ada lapisan TCP di antara keduanya, Ping (program)harus memantau semua paket ICMP yang masuk dan hanya menyaring yang dari tujuan.

Semoga itu bisa membantu.

PlanetUnknown
sumber
9

Dengan asumsi ping melibatkan paket yang dikirim melalui jaringan Ethernet atau WiFi, ARP digunakan untuk menemukan alamat perangkat keras Ethernet dari perangkat yang menerima paket keluar. Biasanya ini akan menjadi router untuk LAN yang digunakan untuk mesin ping.

Proses khas adalah:

  1. Anda memasukkan perintah untuk melakukan ping ke tujuan.

  2. DNS digunakan untuk menentukan alamat IP (jika perlu).

  3. Tabel perutean dikonsultasikan untuk menemukan hop berikutnya menuju tujuan itu.

  4. ARP digunakan untuk menemukan alamat perangkat keras dari hop berikutnya.

  5. Paket IP dikirim ke hop berikutnya, dikemas dalam bingkai Ethernet atau WiFi.

David Schwartz
sumber
3
Satu-satunya jawaban di sini yang benar-benar menjawab pertanyaan itu!
jmiserez
2

Ping sebenarnya adalah dua paket ICMP (Internet Control Message Protocol) yang berbeda.

Untuk melakukan ping ke host yang pertama kali Anda kirimkan Paket Permintaan Echo ICMP, tuan rumah kemudian akan membalas dengan ICMP Echo Balas.

Untuk informasi lebih lanjut, lihat: https://en.wikipedia.org/wiki/Ping_(networking_utility)

Matthias Braun
sumber
1

Ping dan ARP adalah hal-hal berbeda yang terletak pada lapisan berbeda di tumpukan protokol jaringan.

Ping ada di lapisan jaringan (atau lapisan Internet - Lihat protokol ICMP seperti yang ditunjukkan oleh @ServerMonkey).

Protokol arp berada pada level tautan (level yang lebih rendah). Protokol arp dirancang untuk memungkinkan koneksi fisik antara perangkat keras jaringan, yang terhubung langsung.

Dalam tumpukan jaringan TCP / IP, setiap lapisan menggunakan lapisan di bawah untuk meneruskan datanya, merangkumnya di dalam protokol tingkat rendah. Setiap lapisan independen dari yang lain dan mungkin tidak mengetahui rincian dan implementasi spesifik tingkat lainnya (ini tidak selalu benar: lihat fungsi lintas-lapisan ).

Heisenbug
sumber
yes.but implementasi ping akan memerlukan beberapa kode di L2 (link layer.)
@ liv2hak. tidak. Implementasi ping terletak pada lapisan tautan di bawah ini.
@ liv arp sering dikatakan lapisan 2.5 ICMP sering dikatakan lapisan 3.5 Lapisan lebih banyak tentang bidang daripada kode. Dan jika Anda ingin mengatakan bahwa implementasi ping memerlukan kode pada layer 2, well, dengan implementasi apa pun, menurut definisi, Anda tidak dapat memiliki layer tanpa layer di bawahnya.
barlop
1

ARP menyediakan alamat MAC, tetapi kadang-kadang jika tidak ada alamat DMAC, alamat broadcast digunakan.

Frame ini menggunakan broadcast DMAC disebut sebagai frame broadcast ARP, dengan ini kita mendapatkan alamat DMAC.

Sagar Vardekar
sumber