Loại gói được gửi khác nhau tùy thuộc vào việc thực hiện. Theo mặc định, Windows tracert
sử dụng ICMP và cả Mac OS X và Linux đều traceroute
sử dụng UDP. Tôi không có máy BSD hoặc Solaris hoặc bất kỳ HĐH nào khác để kiểm tra nhưng trang hướng dẫn cho phiên bản Mac OS X có đề cập đến xuất xứ của nó là BSD 4.3.
Các phiên bản Mac và Linux tôi cung cấp khả năng chọn nhiều giao thức khác nhau bao gồm các gói ICMP, TCP, UDP và GRE. Các giao thức khác có thể được chỉ định bằng tên hoặc số của chúng nhưng traceroute không biết gì về cách các giao thức khác hoạt động. Nó chỉ mù quáng gửi chúng.
Họ cũng có thể thay đổi tải trọng và cổng nguồn và cổng đích để tránh tường lửa hoặc khám phá bộ định tuyến nào dọc theo đường dẫn đang thả các gói có kích thước nhất định.
Tất cả các phiên bản của traceroute đều dựa trên phản hồi ICMP loại 11 (Đã vượt quá thời gian) từ mỗi bước nhảy dọc theo tuyến đường. Nếu các phản hồi ICMP loại 11 đang bị chặn bởi tường lửa của bạn, traceroute sẽ không hoạt động. Các gói này là trong nước, không gửi đi.
ICMP loại 30 được chỉ định cụ thể cho traceroute và được gắn nhãn là "Yêu cầu thông tin". Tôi đã không thể tìm thấy bất cứ nơi nào mà điều này thực sự được sử dụng. Trang hướng dẫn dành cho phiên bản Mac OS X và Linux cho biết -I
sẽ gửi ICMP loại 8 (yêu cầu tiếng vang). Wikipedia nói rằng Windows tracert
cũng sử dụng các yêu cầu echo ICMP. ICMP loại 30 hoặc loại 8 là các gói gửi đi, không gửi đến.
ICMP loại 0 (phản hồi tiếng vang) có thể trở lại là gói cuối cùng khi TTL chính xác bằng số bước nhảy. Traceroute sẽ biết nó đã hoàn thành khi nhận được một trong những thứ này. Đây là một gói gửi đến.
Các gói TCP SYN sẽ gây ra một RST
gói hoặc một SYN ACK
gói phản ứng khi chúng đến đích. Nếu bạn nhận được một SYN ACK
gói, thật lịch sự khi theo dõi một RST
gói để không để lại kết nối nửa mở trên máy chủ.
Có thể lấy lại phản hồi ICMP loại 3 mã 4 thay vì phản hồi ICMP loại 11 nếu bạn gửi một gói lớn với cờ "Không phân đoạn", tuy nhiên điều này chỉ có thể cho phép bạn tìm hop với MTU nhỏ nhất . Thông thường bạn sẽ chỉ nhận được loại phản hồi này từ một bước nhảy dọc theo tuyến đường. Không phải tất cả trong số họ.