What is Traceroute?
Câu lệnh traceroute (tracert đối với Windows) sẽ giúp chúng ta xác định đường đi của gói tin từ host nguồn đến host đích, bằng cách dựa trên thông tin TTL (Time To Live) của các gói tin ICMP mỗi khi đi qua một router.
Minh họa:

Syntax
traceroute [DOMAIN | MACHINE_IP]Info
Nếu truyền vào domain thì nó sẽ tự phân giải.
Note
Khi gói tin có TTL bằng 0 thì router hoặc host sẽ hủy gói tin ICMP nhận được và sẽ gửi lại cho bên gửi một gói tin có tên là ICMP echo reply. Chú ý là có thể có một số router và một số host được cấu hình để không gửi lại gói tin ICMP echo reply.
Example
Đầu tiên thì bên gửi sẽ gửi gói tin số 1 có TTL1 = 1 đến first hop router. Tại đây, TTL sẽ bị trừ đi một giá trị thành 0. Khi router thấy TTL thành 0 thì sẽ hủy gói tin ICMP nhận được và trả về cho host nguồn gói tin ICMP echo reply. Gói tin ICMP echo reply này sẽ giúp host nguồn xác định được router đầu tiên trong dãy các router đến host đích.

Tiếp theo, gói tin số 2 được gửi đi với giá trị TTL2 = 2. Nó sẽ lại đi đến first hop router.

Tuy nhiên khi trừ đi một giá trị thì TTL2 = 1, khác 0. Router sẽ không trả về host nguồn mà sẽ định tuyến để gửi đến router thứ 2. Tại router thứ 2, TTL2 sẽ trở thành 0, gói tin ICMP nhận được sẽ bị hủy và sẽ có một gói tin ICMP echo reply được gửi về cho host nguồn.
Tương tự, host nguồn cũng xác định được router thứ 2 có trong lộ trình để đến host đích. Quá trình này cứ thế lặp lại đến khi đến được host đích hoặc quá 30 lần lặp (đối với câu lệnh tracert).

Việc lặp quá 30 lần chứng tỏ gói tin có thể bị mất hoặc đi lòng vòng trong hệ thống mạng, cần phải được sửa chữa.
Note
Những lần chạy câu lệnh khác nhau có thể dẫn đến lộ trình đường đi khác nhau vì một số router có thể sử dụng dynamic routing (Xem thêm Dynamic routing).