Tham khảo tài liệu 'hacker professional ebook part 27', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | TTL - Time to Live. TTL là một trường 8 bit trong IP header bạn hãy xem lại cấu trúc của IP header . TTL là thời gian gói dữ liệu tồn tại trên mạng trước khi nó bị bỏ qua. Người gởi dữ liệu đi sẽ xác định một giá trị TTL trước thường là từ 32 - 64. Giá trị này sẽ được giảm đi một khi một khi được chuyển qua một bộ định tuyến trên mạng. Khi giá trị này bằng 0 datagram này sẽ bị bỏ qua và giao thức ICMP sẽ báo lỗi về cho người gởi. Điều này sẽ tránh cho datagram này đi vào một vòng lặp vô tận qua các bộ định tuyến. Mỗi bộ định tuyến khi nhận được IP datagram sẽ giảm giá trị TTL của datagram này đi một. Hầu hết các bộ định tuyến đều không giữ lại datagram này trong thời gian quá 1 giây trước khi chuyển datagram này đi. Nên giá trị TTL có thể coi bằng hop counter số bộ định tuyến mà datagram này vừa vượt qua. Khi bộ định tuyến nhận được một datagram có trường TTL bằng 0 hoặc 1 nó sẽ không chuyển datagram này đi tiếp. Thay vào đó nó sẽ bỏ qua datagram này và gởi một ICMP message Time Exceeded quá thời gian trở lại cho người đã gởi datagram này Vì ICMP message mà bộ định tuyến gởi trở lại cho người gởi có địa chỉ nguồn - source address là địa chỉ ip của bộ định tuyến này nên người gởi có thể biết được địa chỉ ip của router này Cách làm việc của traceroute Traceroute gởi một IP datagram có TTL 1 đến hệ thống đích. Router đầu tiên nhận được datagram này sẽ giảm giá trị TTL đi một - TTL 0 và router này sẽ bỏ qua datagram này không gởi nó đi tiếp và gởi một ICMP error message với địa chỉ ip nguồn là địa chỉ của nó đến máy bạn. Như vậy router có thể xác định địa chỉ ip của router thứ nhất Sau đó traceroute sẽ gởi một datagram mới đi với giá trị TTL 2 1 1 2 đến hệ thống đích. Router đầu tiên sẽ giảm giá trị của TTL đi một - TTL 1 2-1 1 và chuyển datagram này sang router thứ 2. Router thứ 2 nhận được datagram có TTL 1 sẽ giảm TTL 0. Rounter 2 nhận thấy TTL 0 nên nó sẽ không chuyển datagram này đi tiếp. Router 2 sẽ gởi trở lại máy bạn một ICMP error message với địa chỉ ip nguồn