INFORMATION TECHNOLOGY

Danh sách Blog của Tôi

Thứ Hai, 26 tháng 2, 2018

Các Thông Số Của Lệnh Ping

Bạn là dân IT hay không là dân IT, chắc cũng đã nghe nói đến lệnh Ping để kiểm tra các kết nối mạng. Vậy bạn đã hiểu rõ các thông số của nó chưa. Ví dụ tôi ping đến địa chỉ



Lệnh Ping đến địa chỉ google sẽ là ví dụ hoàn hảo :
ping www.google.com 

Pinging www.google.com [172.217.31.228] with 32 bytes of data:

Reply from 172.217.31.228: bytes=32 time=32ms TTL=57
Reply from 172.217.31.228: bytes=32 time=31ms TTL=57
Reply from 172.217.31.228: bytes=32 time=30ms TTL=57
Reply from 172.217.31.228: bytes=32 time=34ms TTL=57

Ping statistics for 172.217.31.228
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 34ms, Average = 31ms

Khi bạn ping đến địa chỉ : www.google.com
thì máy chủ DNS sẽ làm nhiệm vụ phân giải tên miền yahoo.com ra địa chỉ IP 172.217.31.228

Còn time có ý nghĩa gì? Thuật ngữ này gọi là Round Trip Time (RTT), được tính bằng thời gian gửi một gói tin TCP đến khi nhận được ACK cho gói tin đó. Thời gian RTT càng bé có ý nghĩa là độ trễ truyền thông giữa 2 bên là thấp. hay có thể nói là tốc độ mạng giữa 2 điểm là tương đối cao

TTL=57 là sao nữa? Thuật ngữ TTL (Time To Live) để chỉ số hop (trạm: Router, Gateway, ...) mà gói tin truyền thông không phải qua khi truyền từ bên gửi sang bên nhận. Thường thì độ trễ là do gói tin phải đợi ở hàng đợi ở hop, do đó, TTL càng lớn thì số hop mà gói tin đi qua càng bé => thời gian RTT càng bé ...TTL có chức năng ngăn chặn các gói ICMP lặp giữa các host vì khi đi qua 1 hop số này lại được giảm đi 1, và khi TTL về đến 0 thì gói tin sẽ bi loại bỏ khỏi mạng
lúc đó bạn sẽ nhận được thông báo kiểu như thế này:
Reply from 172.217.31.228: TTL expired in transit

Mình giải thích thêm về TLL : Time to live dịch đại khái là thời gian mà 1 gói tin được phép "sống trong mạng", khi hết cái time này thì nó sẽ "chết", tức là bị hủy, không truyền đi nữa. 

TTL không tính bằng giây mà bằng hop count, giả sử TTL xuất phát là n, khi gói tin đi qua 1 thiết bị như switch hay router thì thiết bị này sẽ giảm TTL -1 rồi mới gửi đi tiếp (tức là còn n-1). Khi đến 1 thiết bị nào đó mà TTL bị giảm xuống 0 thì nó sẽ hủy cái gói tin chứ không cho đi tiếp. Cái TTL dùng để tránh loop trong mạng có router (mạng switch thì đã có spanning tree).

Giá trị TTL mà bạn thấy khi ping là giá trị TTL của gói ICMP reply mà máy bạn nhận được từ máy kia, nó được tính bằng số TTL xuất phát trừ đi số hop. Như vậy giá trị nó cao hay thấy là phụ thuộc số hop và số TTL khởi điểm. Nếu qua 10 hop chẳng hạn, mà bên kia phát gói ICMP reply với TTL = 256 thì bạn sẽ thấy Ping reply TTL=246; còn nếu xuất phát là 128 thì bạn sẽ thấy Ping reply TTL = 118.

TTL khởi điểm là mấy tùy thuộc vào IOS của thằng thiết bị bên kia. VD HĐH Windows có TTL start = 128, Linux = 64, Solaris = 256 (có thể chỉnh được)
Vậy bytes=32?Đây là kích thước của gói tin được gửi thông qua lệnh ping.

Lưu ý : Chỉ giảm TTL đối với switch khi ping IP inband của nó mới bị giảm TTL -1 , còn ping đầu cuối thì không giảm. Gói tin chỉ đi qua thiết bị lớp 3 ( Router, Switch Layer 3....) mới bị trừ đi 1 đơn vị trong trường hợp nó đang mang.

Số lượng thiết bị lớp 3 mà các gói tin đi qua trong 2 trường hợp trên sẽ không phải lúc nào cũng là bằng nhau. Sẽ là khác nhau nếu trong mô hình mạng có sự thay đổi đột ngột.
Ví dụ: Gói tin đi từ ta đi đến thiết bị " Xa " phải đi qua 5 Router R1 -> R2 -> R3 -> R4 -> R5 --> thiết bị " Xa ". Khi thiết bị " Xa " nhận được yêu cầu phản hồi của gói tin Ping, mặc định nó sẽ đi theo thứ tự: R5 -> R4 -> R3 -> R2 -> R1 --> ta. Nhưng trong trường hợp gói tin đi về ta qua R4 rồi đến R3. Trong trường hợp R3 bị down, khi này thằng R4 sẽ phải tìm con đường khác để tới ta, giả sử nó phải đi qua 2 con R3' và R2' rồi mới tới R2 --> R1 và về ta. Dẫn đến số lượng thiết bị lớp 3 gói tin đi qua là nhiều hơn " so với dự kiến" --> dẫn đến có sự khác nhau giữa giá trị -TTL và Tracert.

Sau đây là cấu trúc một lệnh ping:



Cách sử dụng: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
             [-r count] [-s count] [[-j host-list] | [-k host-list]]
             [-w timeout] đích-danh sách

Tùy chọn:
     -t                 Ping máy chủ được chỉ định cho đến khi dừng lại.
                        Để xem thống kê và tiếp tục - gõ Control-Break;
                        Để dừng - gõ Control-C.
     -a                Giải quyết các địa chỉ cho tên máy.
     -n count       Số lượng yêu cầu gửi echo.
     -l size          Gửi kích thước bộ đệm.
     -f                Đặt không phân mảnh cờ trong gói tin.
     -i TTL          Thời gian để sống.
     -v TOS        Loại dịch vụ.
     -r count       Ghi lại đường đi đến các bước nhảy.
     -s count       Đếm thời gian đếm số đếm đếm.
     -j host-list    Đường dẫn nguồn lỏng lẻo dọc theo danh sách host-list.
     -k host-list   Đường dẫn nguồn nghiêm ngặt dọc theo danh sách host-list.
     -w Timeout Thời gian chờ tính bằng mili giây để chờ mỗi lần trả lời.


Cảm ơn các bạn đã theo dõi !

1 nhận xét:

  1. Tuyệt vời cảm ơn bạn đã chia sẻ
    My web: https://www.longanit.com

    Trả lờiXóa