古詩詞大全網 - 成語查詢 - traceroute和tracert的區別

traceroute和tracert的區別

您好,很高興為您解答。

壹、應用環境不同

tracert是應用在windows下。

traceroute則是應用在linux/BSD/router/UNIX下。

tracert是Windows下常用的命令行工具,UNIX下的是traceroute。都是基於UDP協議的路由探測。

Tracert(跟蹤路由)是路由跟蹤實用程序,用於確定

IP 數據報訪問目標所采取的路徑。Tracert 命令用 IP 生存時間 (TTL) 字段和 ICMP 錯誤消息來確定從壹個主機到網絡上其他主機的路由。

工作原理和過程:

通過向目標發送不同

IP 生存時間 (TTL) 值的“Internet 控制消息協議 (ICMP)”回應數據包,Tracert

診斷程序確定到目標所采取的路由。要求路徑上的每個路由器在轉發數據包之前至少將數據包上的 TTL 遞減 1。數據包上的 TTL 減為 0

時,路由器應該將“ICMP 已超時”的消息發回源系統。

Tracert

先發送 TTL 為 1 的回應數據包,並在隨後的每次發送過程將 TTL 遞增 1,直到目標響應或 TTL

達到最大值,從而確定路由。通過檢查中間路由器發回的“ICMP 已超時”的消息確定路由。某些路由器不經詢問直接丟棄 TTL 過期的數據包,這在 Tracert

實用程序中看不到。

Tracert

命令按順序打印出返回“ICMP 已超時”消息的路徑中的近端路由器接口列表。如果使用 -d 選項,則 Tracert 實用程序不在每個 IP 地址上查詢

DNS。

Traceroute程序的設計是利用ICMP及IP

header的TTL(Time To Live)欄位(field)。首先,traceroute送出壹個TTL是1的IP

datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第壹個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,並送回壹個「ICMP

time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute

收到這個消息後,便知道這個路由器存在於這個路徑上,接著traceroute 再送出另壹個TTL是2 的datagram,發現第2 個路由器......

traceroute 每次將送出的datagram的TTL 加1來發現另壹個路由器,這個重復的動作壹直持續到某個datagram

抵達目的地。當datagram到達目的地後,該主機並不會送回ICMP time

exceeded消息,因為它已是目的地了,那麽traceroute如何得知目的地到達了呢?

Traceroute在送出UDP

datagrams到目的地時,它所選擇送達的port number 是壹個壹般應用程序都不會用的號碼(30000 以上),所以當此UDP datagram

到達目的地後該主機會送回壹個「ICMP port unreachable」的消息,而當traceroute

收到這個消息時,便知道目的地已經到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。

Traceroute提取發

ICMP TTL到期消息設備的IP地址並作域名解析。每次,Traceroute都打印出壹系列數據,包括所經過的路由設備的域名及

IP地址,三個包每次來回所花時間。

Traceroute

有壹個固定的時間等待響應(ICMP TTL到期消息)。如果這個時間過了,它將打印出壹系列的*號表明:在這個路徑上,這個設備不能在給定的時間內發出ICMP

TTL到期消息的響應。然後,Traceroute給TTL記數器加1,繼續進行。

二、探測方法及探測的數據類型不同

默認情況下,tracert是向目的地址發出ICMP請求回顯數據包,而traceroute是向目的地址的某個端口(大於30000)發送UDP數據報。

如若滿意,請點擊右側采納答案,如若還有問題,請點擊追問

希望我的回答對您有所幫助,望采納!

~ O(∩_∩)O~