คำสั่ง 'ping' ทำงานอย่างไร


24

คำสั่ง ping ทำงานอย่างไร โดยเฉพาะ ARP (Address Resolution Protocol) เข้ามาในภาพได้ที่ไหน

ฉันถูกถามคำถามนี้ในการสัมภาษณ์และฉันไม่สามารถคิดสถานการณ์ที่จะใช้ ARP ได้


ดูใน ICMP

3
ARP ใช้เพื่อรับที่อยู่ MAC ของที่อยู่ IP เฉพาะ เมื่อคุณต้องการส่งแพ็กเก็ตบนอีเธอร์เน็ตคุณต้องมีที่อยู่ MAC ของปลายทาง

คำตอบ:


16

หากคุณต้องการที่จะเข้าใจจริงๆมีกระดาษสีขาวที่ยอดเยี่ยม (เขียนดีมาก) ที่นี่:

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

นี่คือบทสรุป ->

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

เนื่องจากไม่มีเลเยอร์ TCP ในระหว่างนั้นPing (program)จึงมีการตรวจสอบแพ็คเก็ต ICMP ขาเข้าทั้งหมดและกรองเฉพาะจากปลายทาง

หวังว่าจะช่วย


9

สมมติว่า ping เกี่ยวข้องกับแพ็กเก็ตที่ส่งผ่านเครือข่าย Ethernet หรือ WiFi ARP จะใช้เพื่อค้นหาที่อยู่ฮาร์ดแวร์ Ethernet ของอุปกรณ์ที่รับแพ็กเก็ตขาออก โดยทั่วไปจะเป็นเราเตอร์สำหรับ LAN ที่เปิดเครื่อง ping

กระบวนการทั่วไปคือ:

  1. คุณป้อนคำสั่งเพื่อ ping ปลายทาง

  2. DNS ใช้เพื่อกำหนดที่อยู่ IP (หากจำเป็น)

  3. ตารางเส้นทางจะถูกพิจารณาเพื่อค้นหาการกระโดดต่อไปยังปลายทางนั้น

  4. ARP ใช้เพื่อค้นหาที่อยู่ฮาร์ดแวร์ของ hop ถัดไป

  5. แพ็กเก็ต IP จะถูกส่งไปยัง hop ถัดไปซึ่งรวมอยู่ในเฟรม Ethernet หรือ WiFi


3
คำตอบเดียวที่นี่ที่จริงตอบคำถาม!
jmiserez

2

Ping จริง ๆ แล้วเป็นสองแพ็คเก็ต ICMP (Internet Message Message Protocol)

ในการ ping โฮสต์คุณส่ง ICMP Echo Request Packet ก่อนจากนั้นโฮสต์จะตอบกลับด้วย ICMP Echo Reply

สำหรับข้อมูลเพิ่มเติมโปรดดูที่: https://en.wikipedia.org/wiki/Ping_(networking_utility)


1

Ping และ ARP เป็นสิ่งต่าง ๆ ที่อยู่ในเลเยอร์ต่าง ๆ ในโปรโตคอลเครือข่ายสแต็ก

Ping อยู่ที่เลเยอร์เครือข่าย (หรือเลเยอร์อินเทอร์เน็ต - ดูโปรโตคอลICMPอย่างที่ @ServerMonkey ชี้ให้เห็น)

โปรโตคอล Arp อยู่ที่ระดับลิงก์ (ระดับต่ำกว่า) โปรโตคอล Arp ได้รับการออกแบบมาเพื่อให้เชื่อมต่อทางกายภาพระหว่างฮาร์ดแวร์เครือข่ายที่เชื่อมต่อโดยตรง

ในสแต็กเครือข่าย TCP / IP ทุกชั้นใช้เลเยอร์ด้านล่างเพื่อส่งต่อข้อมูลห่อหุ้มภายในโปรโตคอลระดับต่ำ แต่ละเลเยอร์เป็นอิสระจากสิ่งอื่นและอาจไม่ทราบรายละเอียดเฉพาะและการใช้งานในระดับอื่น (ซึ่งไม่เป็นความจริงเสมอไป: ดูฟังก์ชั่นข้ามเลเยอร์ )


ใช่การใช้งาน ping จะต้องใช้รหัสบางอย่างที่ L2 (ลิงก์เลเยอร์) ARP จะเข้ามาเล่นที่เลเยอร์ 2 หรือไม่

@ liv2hak ไม่ การใช้ ping อยู่บนเลเยอร์ลิงค์ด้านล่าง

@liv arp มักกล่าวกันว่าเป็นเลเยอร์ 2.5 ICMP มักถูกกล่าวว่าเป็นเลเยอร์ 3.5 เลเยอร์เป็นมากกว่าฟิลด์เกี่ยวกับโค้ด และถ้าคุณต้องการจะบอกว่าการใช้ ping นั้นต้องใช้รหัสที่เลเยอร์ 2 ด้วยการใช้อะไรก็ตามตามคำนิยามคุณจะไม่สามารถมีเลเยอร์ได้หากไม่มีเลเยอร์ด้านล่าง
barlop

1

ARP จัดเตรียมที่อยู่ MAC แต่บางครั้งหากไม่มีที่อยู่ DMAC จะใช้ที่อยู่การออกอากาศ

เฟรมนี้ที่ใช้ Broadcast DMAC เรียกว่า ARP broadcast frame โดยเราได้รับที่อยู่ DMAC

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.