Traceroute là gì? Traceroute được sử dụng để làm gì?

Traceroute là gì? Traceroute được sử dụng để làm gì?

Chia sẻ kiến thức 19/07/2023

Lệnh Traceroute là một cách dễ dàng để xem các gói của bạn đang đi đâu. Cùng FUNiX tìm hiểu cách nó hoạt động và cách bạn có thể sử dụng nó.

Có rất nhiều bộ phận và máy chủ giúp giữ cho World Wide Web tồn tại. Mọi gói bạn gửi, từ ảnh đến tin nhắn trò chuyện, đều phải đi qua chúng để đến đích.

Khi bạn không thể kết nối với một trang web, nguyên nhân có thể nằm ở phía bạn, phía trang web hoặc ở đâu đó ở giữa. Sử dụng Traceroute là cách tốt nhất để tìm ra vấn đề nằm ở đâu.

Traceroute là gì?

Ảnh: Distrait cognizance / Wikimedia Commons

Traceroute là một cách để theo dõi lộ trình các gói dữ liệu của bạn khi chúng đi qua internet. 

Khi bạn bắt đầu một Traceroute, bạn cho nó biết trang web hoặc máy chủ nào bạn muốn theo dõi đường đến. Thông thường, đây là một URL của trang web mà bạn đang muốn truy cập, nhưng bạn cũng có thể cung cấp một địa chỉ IP nếu muốn.

Khi bạn đã bắt đầu Traceroute, hệ thống của bạn sẽ gửi các gói tới đích đã đặt của bạn. Sau đó, nó ghi lại hành trình của gói và gửi thông tin trở lại thiết bị của bạn, và thiết bị sẽ cho bạn biết nơi chúng sẽ đến.

Điều này rất hữu ích nếu bạn đang cố tìm lỗi trên mạng. Nếu máy chủ ngừng hoạt động, Traceroute sẽ báo cáo lại rằng có điều gì đó không hoạt động bình thường. Sau đó, bạn có thể sử dụng thông tin này để chẩn đoán những gì đang xảy ra.

Traceroute hoạt động như thế nào?

Traceroute là một cách tiện dụng để chẩn đoán lỗi mạng. Tuy nhiên, Internet ban đầu không có Traceroute.

Trên thực tế, phát minh của Traceroute đều nhờ vào một exploit* thông minh. Và để hiểu rõ hơn cách exploit này hoạt động, chúng ta cần tìm hiểu về “Time-to-Live” (tạm dịch là “Thời gian tồn tại) của gói mạng.

*exploit: một loại chương trình được tạo ra để nhắm vào một điểm yếu nhất định – gọi là lỗ hổng – trong một phần mềm hoặc phần cứng

“Time-to-Live” của gói là gì?

Khi một máy tính gửi một gói từ nơi này đến nơi khác, trường hợp lý tưởng nhất là nó sẽ đến đó mà không gặp vấn đề gì. Nó đi theo con đường nhanh nhất có thể từ điểm A đến điểm B và không bị kẹt tại một điểm nào đó.

Tuy nhiên, nếu một kỹ sư thiết lập máy chủ bị lỗi, các gói có thể được gửi trong một vòng lặp vô hạn giữa các máy chủ. Và nếu điều đó xảy ra quá thường xuyên, một mạng có thể chứa đầy các gói đi vòng quanh mãi mãi.

Một giải pháp được đưa ra để khắc phục điều này, được gọi là “Time-to-Live” (Thời gian tồn tại) hoặc “TTL”. Mỗi gói, trước khi được gửi đi, được đặt một số lớn hơn 0 cho giá trị TTL của nó. Nếu giá trị này đạt 0, gói được coi là “đã chết” và bị hủy.

Khi gói đi trên hành trình của nó, nó sẽ thực hiện nhiều điểm dừng trên các máy chủ khác nhau. Mỗi khi nó đến một máy chủ, giá trị TTL  của nó bị trừ đi 1. Thông thường, giá trị TTL này được đặt thành một số để gói có đủ thời gian đến đích trước khi nó chạm 0. Tuy nhiên, nếu gói đi vào một vòng lặp, TTL sẽ giảm dần cho đến khi gói hết hạn.

Khi một gói hết hạn, máy chủ kết thúc gói đó sẽ gửi cái được gọi là thông báo “ICMP Time Exceeded” (Đã vượt quá thời gian ICMP). Về cơ bản, đây là một thông báo rằng gói đã hết hạn và cho người dùng biết gói đã hết hạn ở đâu để hỗ trợ khắc phục sự cố.

TTL của gói cho phép Traceroute hoạt động như thế nào?

Thông báo ICMP Time Exceeded này là chìa khóa để Traceroute hoạt động. Trước hết, Traceroute gửi một gói có TTL được đặt thành 1. Điều này có nghĩa là nó rời khỏi thiết bị của bạn, đến máy chủ đầu tiên, trừ đi 1 từ TTL của nó, nhận ra rằng nó có TTL là 0 và hết hạn.

Máy chủ xử lý gói tại thời điểm đó sẽ gửi thông báo ICMP Time Exceeded trở lại PC, cùng với vị trí của nó. Sau đó, PC của bạn sẽ ghi lại vị trí của máy chủ như là bước đầu tiên trên hành trình của gói.

Sau đó, nó sẽ gửi một gói có chỉ số TTL được đặt thành 2, 3… cho đến khi gói đến đích. Mỗi gói sẽ hết hạn ở bước tiếp theo của quá trình và mỗi máy chủ trong suốt quá trình sẽ báo cáo gói đã hết hạn, cung cấp cho thiết bị của bạn thông tin cần thiết để biết các gói đang đi đâu.

Traceroute được dùng để làm gì?

Về cơ bản, Traceroute cho phép bạn xem qua cách các gói di chuyển trong mạng. Cho dù bạn là một kỹ sư mạng đang kiểm tra xem mọi thứ có diễn ra bình thường không hay bạn chỉ quan tâm đến đường đi của các gói của mình di chuyển khi truy cập Google, Traceroute là cách phù hợp.

Tuy nhiên, nó cũng hữu ích để phát hiện lỗi trong hệ thống. Nếu Traceroute cố gắng liên hệ với một máy chủ không phản hồi, nó sẽ nhận thấy rằng gói mà nó gửi đi đã không kích hoạt phản hồi trong một thời gian. Khi đã đủ thời gian, Traceroute tuyên bố rằng “Request timed out” (Yêu cầu đã hết thời gian chờ), nghĩa là phản hồi không đến trong thời gian quy định.

Tất nhiên, yêu cầu hết thời gian không phải lúc nào cũng có nghĩa là máy chủ ngừng hoạt động; đôi khi máy chủ chặn các yêu cầu Traceroute khi chúng đi qua. Nhưng nếu bạn khá chắc chắn rằng không có máy chủ nào trên chuỗi chặn Traceroute, thì đó là một cách hay để chẩn đoán một trang web hoặc máy chủ không phản hồi khi bạn cố gắng kết nối với nó.

Sự khác biệt giữa Traceroute và Ping

Traceroute nghe rất giống với Ping, một công cụ mạng tiện dụng khác. Tuy nhiên, tuy hai tính năng này hơi giống nhau nhưng chúng được dùng vì những lý do khác nhau.

Như đã nói, Traceroute giúp bạn tìm ra nơi một gói sẽ đi sau khi nó rời khỏi thiết bị của bạn. Trong khi đó, Ping cho biết liệu PC của bạn có thể kết nối với một máy chủ cụ thể hay không và mất bao lâu.

Như vậy, nếu bạn muốn xem mọi phần của chuỗi mạng, bạn nên dùng Traceroute. Còn nếu bạn chỉ muốn xem máy chủ có phản hồi hay không, bạn có thể Ping nó. Bạn cũng có thể làm điều đó với Traceroute, nhưng bạn sẽ phải đợi cho đến khi nó đến máy chủ của bạn trước khi nhận được câu trả lời bạn đang tìm kiếm.

Cách thực hiện Traceroute

Ảnh: Michel Bakni / Wikimedia Commons

Thực hiện Traceroute dễ dàng như mở một giao diện dòng lệnh và nhập lệnh Traceroute.

Đối với macOS, bạn chỉ cần mở Terminal và nhập “traceroute”, theo sau là URL hoặc địa chỉ IP của đích. Trên Linux cũng giống như vậy, nhưng bạn có thể cần cài đặt Traceroute trước khi có thể chạy nó.

Cách sử dụng trên hệ điều hành Windows cũng tương tự, ngoại trừ chức năng được gọi là “tracert” thay vì Traceroute. 

Theo dõi các gói của bạn với Traceroute

Traceroute là cách tốt nhất để bạn xem các gói của mình đi đâu sau khi chúng rời khỏi PC. Cho dù bạn muốn chẩn đoán sự cố mạng hay tò mò muốn biết các gói của mình sẽ đi đến đâu, thật dễ dàng để thiết lập và theo dõi dữ liệu.

Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/traceroute-what-is-it/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, phường Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

Cơ quan chủ quản: Công ty Cổ phần Giáo dục Trực tuyến FUNiX
MST: 0108171240 do Sở kế hoạch và Đầu tư thành phố Hà Nội cấp ngày 27 tháng 02 năm 2018
Địa chỉ:
Văn phòng Hà Nội: Tầng 4, Tòa nhà 25T2, Đường Nguyễn Thị Thập, phường Yên Hòa, Hà Nội.
Văn phòng TP.HCM: Lầu 8, Tòa nhà Giày Việt Plaza 180-182 Lý Chính Thắng, phường Nhiêu Lộc, TP. Hồ Chí Minh.
Hotline: 078 231 3602 – Email: info@funix.edu.vn

yêu cầu gọi lại