Kiểm tra hệ thống mạng với lệnh ping như thế nào?

tun cua di
tun cua di
Trả lời 14 năm trước

Một trong những lệnh thông dụng nhất dùng để kiểm tra hệ thống mạng đó là lệnh Ping. Có thể nói rằng bất cứ ai đã từng làm việc liên quan đến hệ thống mạng thì cũng đều phải đã sử dụng qua lệnh Ping. Ngay cả khi bạn là người không chuyên, không làm việc về IT nhưng bạn cũng có thể sử dụng lệnh Ping để sửa chữa một số “bệnh” thông thường của máy tính. Vậy lệnh Ping hoạt động ra sao và sử dụng lệnh Ping trong trường hợp nào, ý nghĩa của các dòng thông báo trả về từ lệnh Ping là gì? Tất cả những câu hỏi trên sẽ được giải đáp trong các phần sau.

  • Reply from 192.168.101.100: bytes=32 time<1ms TTL=128
  • Request timed out
  • Destination host unreachable


1. Thông báo: Reply from 192.168.101.100: bytes=32 time<1ms TTL=128

Khi nhận được thông báo có dạng như trên thì có nghĩa là lệnh ping đã thực hiện thành công và hệ thống không có lỗi:

Địa chỉ IP sau từ “Reply from” cho biết máy nào đang gửi thông điệp trả lời.
bytes=32
là kích thước của gói tin ICMP được gửi đi.
time<1ms
thời gian của quá trình hồi đáp chỉ tốn dưới 1 mili giây
TTL=128
là giá trị “time to live” (thời gian sống) của gói tin ICMP. Hết thời gian này thì gói tin sẽ bị hủy.

2. Thông báo: Request timed out
Nếu không kết nối được với máy đích thì Ping sẽ hiển thị thông báo là “Request timed out”.


Tổng kết
Trên đây là những điểm khái quát và những ứng dụng thường được sử dụng nhất của lệnh ping. Lệnh ping sẽ giúp cho người quản trị hệ thống mạng có được công cụ chẩn đoán mạng nhanh chóng, đơn giản và hiệu quả. Đối với người dùng thông thường cũng có thể tự kiểm tra kết nối mạng và sửa chữa một số lỗi cơ bản dựa theo các thông báo của lệnh ping.

Thông điệp “Request timed out” có nghĩa là không có hồi đáp trả về. Khi gặp thông báo này thì bạn có thể có chẩn đoán các nguyên nhân gây ra lỗi như sau:
-Thiết bị định tuyến Router bị tắt.
-Địa chỉ máy đích không có thật hoặc máy đích đang bị tắt, hoặc cấm ping.
-Nếu máy đích khác đường mạng với máy nguồn thì nguyên nhân có thể do không có định tuyến ngược trở lại máy nguồn. Lúc này, nếu máy đích đang chạy, bạn có thể kiểm tra đường đi về của gói tin bằng cách xem lại thông số Default Gateway trên máy đích, máy nguồn và router kết nối các đường mạng.
-Độ trễ của quá trình hồi đáp lớn hơn 1 giây. Phiên làm việc của lệnh ping mặc định là 1 giây. Nhưng nếu quá trình hồi đáp lớn hơn 1 giây mà gói tin vẫn chưa đến đích thì lệnh ping cũng thông báo lỗi trên. Bạn có thể sử dụng tùy chọn -w để tăng thêm thời gian hết hạn. Ví dụ cho phép kéo dài quá trình hồi đáp trong vòng 5 giây sử dụng bạn dùng lệnh ping -w 5000.

tun cua di
tun cua di
Trả lời 14 năm trước

Tham khảo thêm

Để xem thêm các tùy chọn của lệnh Ping bạn gõ lệnh ping /?
Các thông báo của lệnh Ping
Lệnh ping sẽ hiển thị thông báo và thống kê sau mỗi lần sử dụng lệnh. Nếu có lỗi xảy ra trên đường đi đến máy đích, lệnh ping sẽ hiển thị thông tin về lỗi. Dựa trên các thông tin này bạn sẽ xác định được một số nguyên nhân gây lỗi và cách khắc phục.
Có 3 thông báo thường được hiển thị khi sử dụng lệnh ping:

Giá trị TTL được ứng dụng tùy hệ điều hành và nó là “thước đo” giới hạn “thời gian sống” của datagram trong gói tin gửi đi. TTL khởi tạo bằng giá trị ấn định của hệ điều hành (trong trường hợp này là 128) và con số này giảm bớt 1 đơn vị mỗi khi nó đi qua một router. Khi giá trị TTL này trở thành 0 (zero) thì datagram này bị hủy cho dù nó chưa đến được nơi nó cần “ping”. Nếu bạn “ping” một host nào đó trong cùng một subnet (không qua router nào cả) thì giá trị TTL không hề thay đổi.

Lệnh Ping hoạt động như thế nào ?
Lệnh ping hoạt động dựa trên ý tưởng dò tìm. Mỗi khi cần xác định xem có vật gì gần mình hay không, bạn sẽ dùng tay “sờ”, dùng gậy “khua” hoặc ném đá ra xung quanh mình. Nếu có một va chạm xảy ra thì dựa trên tiếng “pong” của va chạm bạn sẽ xác định được phương hướng của vật thể đang ở gần bạn.
Tương tự như vậy, lệnh Ping cũng hoạt động bằng cách gửi gói tin truy vấn ICMP “echo-request” đến cho máy tính đích và lắng nghe gói tin hồi đáp ICMP “echo-response” để xác định có sự hiện diện của máy tính đích.

Sử dụng lệnh Ping trong trường hợp nào ?

Khi có sự cố về kết nối mạng như bạn không thể duyệt web, bạn không thể truy cập được thư mục chia sẻ trên File Server, phần mềm kế toán không thể kết nối đến máy chủ … thì khi đó bạn có thể sử dụng lệnh Ping để kiểm tra hoạt động của hệ thống mạng trước khi có các bước xử lý tiếp theo.
Các gói tin kiểm tra của lệnh ping sẽ được phát đi từ máy nguồn đến máy đích nếu có sự phản hồi tốt sẽ xác định được sự thông suốt của hệ thống mạng. Ngoài ra, lệnh Ping còn được sử dụng để kiểm tra hoạt động của card mạng, xác định sự tồn tại của máy tính đích, kiểm định chất lượn, đo đạt tốc độ truyền dẫn của hệ thống mạng. Cuối mỗi lệnh ping sẽ hiển thị thống kê về số lượng gói tin được gửi, thời gian hồi đáp và ghi nhận các gói tin bị rớt hay truyền thành công trên đường truyền …

Cú pháp của lệnh Ping

Để sử dụng lệnh ping, bạn vào Start > Run > gõ lệnh cmd. Tại dấu nhắc của dòng lệnh bạn gõ lệnh:

ping [các option của lệnh] [tên hoặc địa chỉ IP của máy đích]

***Theo mình hiểu thì lệnh ping được sử dụng để kiểm tra các máy trong 1 mạng có thông với nhau hay không,tức là có thể trao đổi, thông tin với nhau.Nếu sau lệnh ping là dòng request time out có nghĩa là mạng có vấn đề.Còn nếu là dòng Reply… có nghĩa là mạng không có vấn đề gì cả.Còn địa chỉ dùng để ping có thể là một địa chỉ ip của máy chủ hoặc cũng có thể là ip của 1 một bất kì trong mạng

***Xin phép bổ sung một chút thông tin:
+ Hoạt động dựa trên nền tảng bộ giao thức TCP/IP, lệnh “Ping” được xem như là lệnh dùng kiểm tra độ thông suốt của đường truyền, với 1 chương trình giám sát mạng như Network Monitor (Micorsoft), Etercap, WireShark vv.. Thì một quản trị mạng chuyên nghiệp có thể theo dõi được tình trạng thông suốt mạng. Lệnh “Ping” được dùng trên cả Windows, Linux, MAC.
+ Các thông số nhìn thấy trong Commanline của Windows với giá trị mô tả lại như sau:
*Request time out: thực hiện gữi gói thành công nhưng không nhận được gói phản hồi.
*Destination host unreachable: đích đến không tồn tại hoặc đang cô lập.
*Reply from 203.162.4.190 byte=32 time <1ms TTL 124: Gữi gói đến địa chỉ IP: 203.162.4.190 với độ dài gói 32 byte, thời gian phản hồi dưới 1 mili giây TTL(time to life-vòng đời gói) 124. Phản ánh trạng thái gói gữi và tín hiệu phản hồi.
+ Ngoài ra lệnh “Ping” còn xem như là cách nhanh chóng để biết địa chỉ IP thực của một Website ngoài Internet.
+ Lệnh Ping thực hiện gữi 1 gói tin bằng giao thức ICMP thông qua Port Number 7 TCP/UDP
- Tham khảo thêm :

Brien M. Posey
Cho tới đây trong loạt bài này, chúng tôi đã giới thiệu cho các kiểu thao tác để bạn có thể thực hiện đối với lệnh ping để chuẩn đoán các vấn đề kết nối mạng. Trong phần này, chúng tôi sẽ tiếp tục giới thiệu bằng một số biến thể khác của kỹ thuật này.
Mất gói dữ liệu
Khi chúng ta đã sử dụng lệnh ping, cho dù lệnh có có được thực hiện thành công hoặc bị thất bại thì điều đó thực sự vẫn không đáng kể gì. Bạn có thể nhớ lại lệnh ping được thiết kế để trả về bốn đáp trả khác nhau. Đôi khi một hoặc nhiều trong số các đáp trả đó có thể thất bại, còn một số khác có thể thành công. Điều này xảy ra có nghĩa rằng hệ thống đang có hiện tượng bị mất gói dữ liệu.
Trong trường hợp như vậy, host nội bộ và host từ xa hoặc cả hai đều hoạt động tốt, nhưng có thể xuất hiện một số điều kiện khác gây ra hiện tượng mất mát các gói tin trong khi truyền tải. Tuy giao thức TCP/IP được thiết kế để nó có thể thử lại (retry) một gói dữ liệu đã bị mất trong quá trình truyền tải này, tuy nhiên việc mất gói dữ liệu sẽ làm giảm hiệu suất của hệ thống. Một kết nối chậm lúc này sẽ hiệu quả hơn đối với một kết nối tốc độ cao xuất hiện hiện tượng mất gói dữ liệu.
Một thứ khó khăn đối với vấn đề mất gói dữ liệu là việc tìm lần lại được dấu vết của nó. Bạn có thể biết hiện tượng mất gói dữ liệu xảy ra nếu một số đáp trả cho lệnh ping thất bại, nhưng các gói ICMP đã được sử dụng bởi lệnh ping này là quá nhỏ để có thể trả về điều kiện mạng đang tồn tại gây ra hiện tượng mất mát trong các tình huống thực tế.
Nếu bạn nghi ngờ hiện tượng mất gói dữ liệu có thể xảy ra nhưng khi ping lại không trả về bất cứ một lỗi nào, khi đó bạn có thể tăng kích thước của các gói ICMP lên. Các gói lớn hơn thường dễ dấn đến hiện tượng thất bại nếu mạng có vấn đề nào đó đang tồn tại. Bạn có thể đặt kích thước gói lớn hơn trong lệnh ping bằng các sử dụng tiếp lệnh –L.
Việc sử dụng tiếp lệnh này khá đơn giản. Tất cả những gì chúng ta cần phải thực hiện là nhập vào lệnh ping và theo sau là địa chỉ mà bạn muốn ping tới, tiếp đó là tiếp lệnh –L và số byte mà bạn muốn gửi. Cho ví dụ, giả dụ rằng mạng của bạn đang có hiệu suất cực kỳ kém khi kết nối đến một host nào đó. Bạn có thể nghi ngờ lúc này hiện tượng mất gói dữ liệu có thể xảy ra, nhưng khi ping lại cho các kết quả thành công mỹ mãn. Hãy thực hiện lệnh ping với kích thước của gói dữ liệu là 1024 byte như dưới đây:
Ping 192.168.1.1 –L 1024
Bạn có thể thấy được ví dụ thực về cách làm việc của lệnh này trong hình A.

http://www.quantrimang.com.vn/photos/Image/092008/22/net1.jpg

Hình A: Gắn lệnh –L vào lệnh ping sẽ cho phép bạn tăng kích thước của gói ICMP
Thời gian sống
Khái niệm tiếp theo mà chúng tôi muốn giới thiệu cho các bạn cũng liên quan đến lệnh ping là thời gian sống (Time To Live, được viết tắt là TTL). Nếu quan sát vào hình A, bạn sẽ thấy ở cuối mỗi một reply trong hình có TTL=64.
Có thể bạn đã biết, Internet gồm có một số lượng lớn các tuyến được kết nối với nhau. Mỗi tuyến được kết nối ít nhất với hai tuyến khác. Ý tưởng ẩn đằng sau kiến trúc này là nếu liên kết có bị “fail” thì vẫn còn ít nhất một đường dẫn khác dẫn đến đích. Vấn đề với kiểu kiến trúc này là khi cứ liên kết nào thất bại thì hiện tượng các gói dữ liệu truyền tải theo các đường vòng vô tận sẽ xuất hiện, và các đường vòng này sẽ vẫn tồn tại trong mạng mà không đến được đích cuối cùng của nó.
Đây chính là vấn đề mà các chuyên gia thiết kế đã đưa vào giá trị TTL. Bạn có thể cho là giá tị TTL như một cơ chế hủy các gói tin. Giá trị này được thiết lập bạn đầu khá cao, mặc dù vậy số này có thể thay đổi phụ thuộc vào hệ điều hành mà bạn đang sử dụng. Mỗi lần gói dữ liệu truyền tải qua một router, gói sẽ được nhắc nhở phải thực hiện một bước nhảy . Mỗi khi bước nhảy xuất hiện, giá trị TTL được giảm đi một. Nếu giá trị TTL bằng không thì gói khi đó sẽ bị hủy hoàn toàn. Điều này giúp tránh được hiện tượng gói dữ liệu không đi đến đích mà cứ luẩn quẩn lưu mãi trên mạng.
Kiểm tra tuyến
Một lý do khác tại sao giá trị TTL lại hữu dụng đến vậy là vì công cụ khắc phục sự cố có tên tracert hoạt động dựa trên nó. Việc sử dụng lệnh ping khá tốt cho việc khắc phục sự cố các mạng nhỏ trong đó có các host từ xa gần các host đang gửi dữ liệu, tuy nhiên khi nói đến Internet hoặc đến mạng diện rộng thì host từ xa có thể là cách đến hàng nghìn dặm. Thêm vào đó các gói ICMP được tạo bởi lệnh ping có thể truyền tải qua rất nhiều router để tới được host từ xa. Chính vì vậy đôi khi bạn sẽ gặp tình huống trong đó host nội bộ và host từ xa hoặc cả hai đều tốt nhưng một trong các router ở đâu đó lại có vấn đề. Để khắc phục vấn đề đó bạn có thể sử dụng lệnh tracert để chuẩn đoán vấn đề của bạn là gì.
Lệnh tracert hoạt động dựa trên lệnh ping. Ý tưởng cơ bản đằng sau lệnh này là gửi đi một gói ICMP đến host từ xa, nhưng với giá trị TTL đã được thiết lập bằng một số nào đó. Điều này làm cho router đầu tiên mà nó gặp phải sẽ gửi trở lại một TTL đã hết hạn trong trong thông báo truyền tải. Thông báo này gồm có các thông tin như nhận dạng router sinh ra thông báo. Xác minh router được minh chứng, sau đó gói ICMP được gửi lại lần nữa nhưng lúc này với một giá trị TTL khác. Lúc này, gói ICMP đến được router thứ hai trước khi giá trị TTL hết hạn. Quá trình này được lặp đi lặp lại, việc tăng giá trị TTL được thực hiện như vậy cho tới khi đến được host đích. Điều này cho phép bạn có thể biết được các thông tin về các router giữa host nội bộ và host từ xa. Đôi khi bạn còn có thể sử dụng thông tin này để lần các vấn đề của router có ảnh hưởng đến luồng lưu lượng.
Việc sử dụng lệnh tracert cũng giống như sử dụng lệnh ping. Để thực hiện điều đó, bạn chỉ cần nhập vào lệnh tracert, sau đó là địa chỉ IP hoặc tên miền hoàn chỉnh của host từ xa. Hình B thể hiện một trường hợp sử dụng lệnh tracert.

http://www.quantrimang.com.vn/photos/Image/092008/22/net2.jpg

Hình B: Lệnh tracert có thể được sử dụng để giải quyết các vấn đề về luồng lưu lượng
Có hai vấn đề bạn cần lưu ý ở đây trong khi sử dụng lệnh tracert này là: trước tiên là một số host có thể sử dụng tường lửa để khóa các gói ICMP. Vào trường hợp này, bạn sẽ thấy một loạt các dấu hoa thị chỉ thị rằng việc lần tuyến là không thể thực hiện với host vì không thể lấy được thông tin từ host đó.
Một vấn đề khác nằm ở bản thân các host, mỗi router đều được gán một địa chỉ IP. Không quan tâm đến chúng được sử dụng cho các host hay cho router hay không, các địa chỉ IP được cấu trúc theo cách để cho phép chúng phản ánh được vị trí địa lý. Trong thực tế, đôi khi các thông tin về địa lý này hoặc thậm chí các chỉ dẫn về tuyến lại được cung cấp bên trong tracert. Nếu bạn muốn có thêm nhiều thông tin, hãy thử dùng các công cụ của các hãng phần mềm thứ ba, các công cụ có thể theo dõi bằng kiểu đồ thị lệnh tracert dựa trên các thông tin địa lý. Bạn có thể xem ví dụ về một công cụ như vậy trong hình C.

http://www.quantrimang.com.vn/photos/Image/092008/22/net3.jpg

Hình C: Bạn có thể thực hiện một tracert ảo để xác định bị trí địa lý của host
Kết luận
Trong phần này, chúng tôi đã giới thiệu cho các bạn về cách tăng số lượng byte trong khi sử dụng lệnh ping nhằm lần ra dấu vết của hiện tượng mất gói dữ liệu. Tiếp đó là giới thiệu về lệnh tracert. Trong phần tiếp theo của loạt bài này, chúng tôi sẽ tiếp tục thảo luận bằng cách giới thiệu cách thông dịch các kết quả được cho bởi lệnh tracert.

(Theo WindowsNetworking)

3. Thông báo: Destination host unreachable
Thông báo cho biết không thể kết nối đến máy đích. Nguyên nhân gây ra lỗi này có thể là do cáp mạng bị đứt, không gắn cáp vào card mạng, card mạng bị tắt, Driver card mạng bị hư…