Traceroute là gì? Sử dụng nó để làm gì?

Khi sử dụng Internet, bạn rất dễ quên rằng có rất nhiều bộ phận và máy chủ đang hoạt động giúp duy trì World Wide Web. Mỗi gói bạn gửi, từ tin nhắn trò chuyện đến ảnh mèo, đều phải đi qua các sàn giao dịch và máy chủ để đến đích.

Thật không may, không có gì nhắc nhở bạn về thiết lập này tốt hơn khi bạn không thể kết nối với một trang web nữa. Nguyên nhân có thể ở đâu đó từ phía bạn, từ phía trang web hoặc đâu đó ở giữa. Và cách tốt nhất để tìm ra vấn đề nằm ở đâu là sử dụng Traceroute.

Traceroute là gì?

Traceroute là một cách để theo dõi lộ trình mà các gói dữ liệu của bạn thực hiện khi chúng di chuyển qua Internet. Mọi hệ điều hành hiện đại đều có thể theo dõi lộ trình.

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

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

Điều này thực sự hữu ích nếu bạn đang cố gắng tìm lỗi trên mạng. Nếu máy chủ hoặc quá trình trao đổi không hoạt động, Traceroute sẽ gặp sự cố và báo cáo lại rằng có gì đó không hoạt động chính xác. Sau đó, bạn có thể sử dụng thông tin này để chẩn đoán chính xác hơ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, phát minh của Traceroute hoàn toàn nhờ vào cách khai thác thông minh bằng cách sử dụng biến "Time-to-Live" của gói.

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

Lý tưởng nhất là khi một máy tính gửi một gói từ nơi này đến nơi khác, 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 hoặc bị cản trở.

Thật không may, mạng có thể là những thứ khó hiểu. Nếu một kỹ sư mắc lỗi khi thiết lập máy chủ, các gói có thể được gửi theo vòng lặp vô hạn giữa những máy chủ. Và nếu điều đó xảy ra quá thường xuyên, mạng có thể bị nhồi đầy các gói tin cứ quay vòng mãi mãi.

Những bộ óc thông minh đằng sau gói dữ liệu đã đưa ra một giải pháp để khắc phục điều này, được gọi là “Time-to-Live” hoặc “TTL”. Mỗi gói, trước khi được gửi đến vùng ẩn số lớn, sẽ được cấp một số lớn hơn 0 cho giá trị TTL của nó. Nếu giá trị này chạm tới 0, gói được coi là "chết" và bị hủy.

Khi gói được gửi đi trên hành trình của nó, nó sẽ dừng lại ở nhiều máy chủ khác nhau. Mỗi khi đến máy chủ, nó sẽ trừ đi một giá trị TTL. Thông thường, giá trị TTL này được đặt thành một số trong đó gói có đủ thời gian để đến đích trước khi chạm 0. Tuy nhiên, nếu gói đi vào vòng lặp, TTL cuối cùng sẽ giảm 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 thông báo “ICMP Time Exceeded” về điểm xuất phát. Về cơ bản, đây là một thông báo cho biết gói đã ngừng hoạt động không đúng lúc và cho người dùng biết gói đã hết hạn ở đâu để hỗ trợ khắc phục sự cố.

Time-to-Live 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. Để bắt đầu, 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 PC của bạn, đến máy chủ đầu tiên, trừ một gói khỏi TTL của nó, thông báo rằng nó có TTL bằng 0 và hết hạn.

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

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

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

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

Tuy nhiên, nó cũng hữu ích trong việc 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 trôi qua, Traceroute tuyên bố rằng “Request timed out”, nghĩa là phản hồi không đến được đúng thời gian quy định.

Tất nhiên, yêu cầu Request timed out không phải lúc nào cũng có nghĩa là máy chủ không hoạt động; đôi khi máy chủ không thích các yêu cầu Traceroute và chặn chúng khi chúng đi qua. Nhưng nếu bạn tương đối chắc chắn rằng không có máy chủ nào trong chuỗi sẽ chặn Traceroute, thì đó là cách tốt để 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 là gì?

Những độc giả am hiểu về mặt kỹ thuật sẽ nhận ra rằng Traceroute nghe rất giống với một công cụ mạng tiện dụng khác, Ping. Tuy nhiên, mặc dù hai tính năng này hơi trùng lặp một chút nhưng mọi người sử dụng chúng vì những lý do khác nhau.

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

Do đó, nếu bạn muốn xem mọi phần của chuỗi mạng, Traceroute chính là nơi cần đến. Trong khi đó, nếu chỉ muốn xem máy chủ có phản hồi hay không, bạn có thể Ping nó. Đúng là bạn cũng có thể làm điều đó với Traceroute, nhưng bạn sẽ phải đợi một lúc để nó cuối cùng đến máy chủ của bạn trước khi bạn nhận được câu trả lời mà bạn đang tìm kiếm.

Cách thực hiện Traceroute

Như đã nói trước đó, tất cả các hệ điều hành chính đều có thể thực hiện Traceroute. Dễ dàng như mở một terminal 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. Nó tương tự trên Linux, nhưng bạn có thể cần cài đặt Traceroute trước khi có thể chạy nó.

Chạy lệnh traceroute trên Linux.
Chạy lệnh traceroute trên Linux.

Trên hệ điều hành Windows, nó hoạt động theo cách tương tự, ngoại trừ chức năng được gọi là "tracert". Quantrimang.com đã đề cập đến tracert và các lệnh khác trong hướng dẫn về lệnh quản lý mạng không dây trên Windows, vì vậy hãy tham khảo bài viết nếu bạn muốn tìm hiểu về các công cụ.

Một ví dụ về Traceroute
Một ví dụ về Traceroute

Xem thêm:

Thứ Sáu, 01/12/2023 09:27
4,415 👨 108.343
0 Bình luận
Sắp xếp theo
    ❖ Giải pháp bảo mật