還是用的ICMP協(xié)議,因?yàn)镮CMP是IP的上層協(xié)議,而IP里有TTL字段,trace主要就是用來查路由信息的。原理大概是這樣:
你輸入tracert命令后,它會(huì)先發(fā)一個(gè)TTL為1的數(shù)據(jù)包出去,到了第一個(gè)路由器,TTL減1變成0,路由器就把這個(gè)包丟掉,并返回一個(gè)超時(shí)信息,這樣就知道第一個(gè)路由器的地址和延遲時(shí)間了;接著發(fā)TTL為2的包,就會(huì)卡在第二個(gè)路由器,同樣也能拿到時(shí)間和地址……以此類推,直到數(shù)據(jù)包到達(dá)目標(biāo)主機(jī)。這時(shí)候主機(jī)會(huì)回一個(gè)端口不可達(dá)的信息,tracert就根據(jù)這個(gè)算出總耗時(shí)。整個(gè)過程走下來,中間經(jīng)過的每個(gè)路由器都會(huì)被顯示出來。
你輸入tracert命令后,它會(huì)先發(fā)一個(gè)TTL為1的數(shù)據(jù)包出去,到了第一個(gè)路由器,TTL減1變成0,路由器就把這個(gè)包丟掉,并返回一個(gè)超時(shí)信息,這樣就知道第一個(gè)路由器的地址和延遲時(shí)間了;接著發(fā)TTL為2的包,就會(huì)卡在第二個(gè)路由器,同樣也能拿到時(shí)間和地址……以此類推,直到數(shù)據(jù)包到達(dá)目標(biāo)主機(jī)。這時(shí)候主機(jī)會(huì)回一個(gè)端口不可達(dá)的信息,tracert就根據(jù)這個(gè)算出總耗時(shí)。整個(gè)過程走下來,中間經(jīng)過的每個(gè)路由器都會(huì)被顯示出來。