Lệnh 'ping' thực sự hoạt động như thế nào?


24

Làm thế nào để lệnh ping thực sự hoạt động? Cụ thể ARP (Giao thức phân giải địa chỉ) xuất hiện ở đâu?

Tôi đã được hỏi câu hỏi này trong một cuộc phỏng vấn và tôi đã không thể đưa ra một kịch bản khi ARP có thể được sử dụng.


Nhìn vào ICMP.

3
ARP được sử dụng để lấy địa chỉ MAC của một địa chỉ IP cụ thể. Khi bạn cần gửi một gói trên ethernet, bạn cần địa chỉ MAC của đích.

Câu trả lời:


16

Nếu bạn thực sự muốn hiểu, có một tờ giấy trắng xuất sắc (được viết rất tốt) ở đây:

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

Dưới đây là tóm tắt ->

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

Vì không có lớp TCP ở giữa, nên Ping (program)phải giám sát tất cả các gói ICMP đang đến và chỉ lọc một gói từ đích.

Mong rằng sẽ giúp.


9

Giả sử ping liên quan đến một gói được gửi qua mạng Ethernet hoặc WiFi, ARP được sử dụng để tìm địa chỉ phần cứng Ethernet của thiết bị nhận gói tin đi. Thông thường, đây sẽ là bộ định tuyến cho mạng LAN mà máy có nguồn gốc ping được bật.

Quá trình điển hình là:

  1. Bạn nhập một lệnh để ping đích.

  2. DNS được sử dụng để xác định địa chỉ IP (nếu cần).

  3. Bảng định tuyến được tham khảo để tìm bước nhảy tiếp theo hướng đến đích đó.

  4. ARP được sử dụng để tìm địa chỉ phần cứng của bước nhảy tiếp theo.

  5. Gói IP được gửi đến bước nhảy tiếp theo, được gói gọn trong khung Ethernet hoặc WiFi.


3
Câu trả lời duy nhất ở đây thực sự trả lời câu hỏi!
jmiserez 8/07/2015


1

Ping và ARP là những thứ khác nhau nằm ở các lớp khác nhau trong ngăn xếp giao thức mạng.

Ping nằm ở lớp mạng (hoặc lớp Internet - Hãy xem giao thức ICMP như được chỉ ra bởi @ServerMonkey).

Giao thức Arp ở cấp liên kết (cấp thấp hơn). Giao thức Arp được thiết kế để cho phép kết nối vật lý giữa phần cứng mạng, được kết nối trực tiếp.

Trong ngăn xếp mạng TCP / IP, mọi lớp sử dụng lớp bên dưới để chuyển tiếp dữ liệu của nó, đóng gói nó bên trong giao thức cấp thấp. Mỗi lớp độc lập với lớp khác và có thể không biết về các chi tiết và cách triển khai cụ thể của các cấp độ khác (điều này không phải lúc nào cũng đúng: xem chức năng lớp chéo ).


yes.but triển khai ping sẽ yêu cầu một số mã ở L2 (lớp liên kết.). ARP có hoạt động ở Lớp 2.

@ liv2hak. Không. thực hiện ping nằm trên lớp liên kết dưới đây.

@liv arp thường được gọi là lớp 2.5 ICMP thường được gọi là lớp 3.5 Lớp có nhiều về các trường hơn là mã. Và nếu bạn muốn nói rằng việc triển khai ping yêu cầu mã ở lớp 2, thì, với bất kỳ triển khai nào, theo định nghĩa, bạn không thể có một lớp mà không có lớp bên dưới nó.
barlop

1

ARP cung cấp địa chỉ MAC, nhưng đôi khi nếu không có địa chỉ DMAC, địa chỉ quảng bá được sử dụng.

Khung này sử dụng DMAC quảng bá được gọi là khung phát ARP, với khung này chúng tôi nhận được địa chỉ DMAC.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.