1. Tổng quan.
Ping là một công cụ mạng và cũng là một giao thức được sử dụng để kiểm tra tính hoạt động và đo thời gian phản hồi của một thiết bị mạng hoặc máy tính trong mạng. Điều này giúp xác định xem một thiết bị có thể giao tiếp với thiết bị hoặc máy tính khác hay không và kiểm tra mức độ ổn định của kết nối mạng.
Khi bạn gửi một yêu cầu “ping” từ một thiết bị (thường là máy tính) đến một địa chỉ IP cụ thể, máy tính đó sẽ gửi một gói tin ping đến địa chỉ IP đó. Thiết bị nhận được gói tin ping sẽ gửi lại một gói tin pong để xác nhận rằng nó nhận được yêu cầu ping và đang hoạt động bình thường. Trong quá trình này, thời gian mà gói tin ping mất để đi từ thiết bị gửi đến thiết bị nhận và trở lại được ghi lại và thông báo cho bạn. Thông thường, thời gian này được ghi dưới dạng ms (milliseconds) và gọi là “Round Trip Time” (RTT) – Thời gian đi và về.
Ping thường được sử dụng như một công cụ kiểm tra nhanh để xác định xem một máy tính hoặc thiết bị mạng có online và có thể giao tiếp được hay không. Nó cũng hữu ích trong việc chẩn đoán sự cố kết nối mạng và xác định mức độ đáng tin cậy của mạng.
2. Cách sử dụng ping để kiếm tra kết nối với kích thước MTU.
Bây giờ bạn có thể sử dụng lệnh ping để kiểm tra kết nối với kích thước MTU 9000. Thực hiện lệnh ping như bình thường, nhưng thêm cờ -l và đặt giá trị 8972 byte (9000 byte MTU – 20 byte tiêu đề ICMP) vào đó.
- Trên Windows: Sử dụng lệnh Command Prompt và chạy lệnh sau:
ping địa_chỉ_ip -l 8972
Thay thế “địa_chỉ_ip” bằng địa chỉ IP của máy tính hoặc thiết bị mạng khác mà bạn muốn kiểm tra.
- Trên Linux: Sử dụng lệnh Terminal và chạy lệnh sau (cần quyền root):
ping địa_chỉ_ip -s 8972
Câu lệnh “ping -c 4 -M do -s 8972 địa_chỉ_ip” được sử dụng để thử nghiệm kích thước MTU 9000 bằng lệnh ping trên các hệ điều hành hỗ trợ tùy chọn -M (RFC 4729) như Linux.
Dưới đây là giải thích các cờ và đối số trong câu lệnh:
- “ping”: Là lệnh ping chính để kiểm tra tính hoạt động và đo thời gian phản hồi của thiết bị mạng hoặc máy tính khác trong mạng.
- “-c 4”: Đây là tùy chọn để chỉ định số lượng gói tin ping được gửi đi. Trong trường hợp này, 4 gói tin sẽ được gửi đi để kiểm tra.
- “-M do”: Đây là tùy chọn để chỉ định loại ping gửi đi. Trong trường hợp này, tùy chọn “-M do” được sử dụng để kiểm tra MTU (Maximum Transmission Unit) trên đường truyền. Tùy chọn “-M do” sẽ thông báo cho lệnh ping không phân mảnh (fragment) các gói tin lớn hơn MTU của đường truyền.
- “-s 8972”: Đây là tùy chọn để chỉ định kích thước gói tin ping được gửi đi. Trong trường hợp này, giá trị 8972 được sử dụng là kích thước gói tin ping. Bạn cần thêm 28 byte (20 byte cho tiêu đề ICMP và 8 byte cho tiêu đề IP) vào kích thước này để tính tổng số byte cần gửi.
- “địa_chỉ_ip”: Thay thế bằng địa chỉ IP của máy tính hoặc thiết bị mạng mà bạn muốn kiểm tra MTU.
Khi bạn chạy câu lệnh này, lệnh ping sẽ gửi đi 4 gói tin ping với kích thước 8972 byte (9000 byte MTU – 28 byte tiêu đề) và không phân mảnh chúng. Nếu đường truyền của bạn hỗ trợ MTU 9000, bạn sẽ nhận được các gói tin ping đáp ứng mà không bị mất hoặc không bị giảm kích thước.
3. Ví dụ.
Do mình không có Windows nên mình sẽ ví dụ trên một máy Linux.
Đây là ví dụ với hệ thống đang chạy MTU 9000.
$ ping -c 4 -M do -s 8972 10.0.1.2
PING 10.0.1.2 (10.0.1.2) 8972(9000) bytes of data.
8980 bytes from 10.0.1.2: icmp_seq=1 ttl=64 time=0.115 ms
8980 bytes from 10.0.1.2: icmp_seq=2 ttl=64 time=0.134 ms
8980 bytes from 10.0.1.2: icmp_seq=3 ttl=64 time=0.145 ms
8980 bytes from 10.0.1.2: icmp_seq=4 ttl=64 time=0.162 ms
--- 10.0.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.115/0.139/0.162/0.017 ms
Đây là ví dụ với hệ thống đang chạy MTU 1500 nhưng lại check size 9000.
$ ping -c 4 -M do -s 8972 10.0.80.2
PING 10.0.80.2 (10.0.80.2) 8972(9000) bytes of data.
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
--- 10.0.80.2 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 2999ms
Hãy ghi nhớ điều này!
Cảm ơn vì đã dành thời gian cho tôi.