1.什么是traceroute?
traceroute, Linux系統(tǒng)稱為tracepath,Windows系統(tǒng)稱為tracert,是一種計算機網(wǎng)絡工具。它可顯示數(shù)據(jù)包在IP網(wǎng)絡經(jīng)過的路由器的IP地址。通過traceroute我們可以知道信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。
traceroute有不同的實現(xiàn)版本:常規(guī)的traceroute(基于UDP和ICMP)和tcptraceroute(基于TCP)
2.traceroute原理
常規(guī)的traceroute和tcptraceroute具有相同的工作原理:
- 發(fā)送一個TTL(Time-To-Live)相當小的包,TTL經(jīng)過每一跳時會遞減。當它減為0時,數(shù)據(jù)包就被丟棄。
- 當TTL失效后,看哪個路由器返回一個帶有表明的ICMP “time exceeded”
- 如果返回的路由器就是最終的目的地,停止trace
- 否則,TTL加1并返回到步驟1
兩者的不同點:
- 常規(guī)的traceroute使用UDP包或ICMP “Echo”包,這兩種包都可能會被防火墻攔截。
- tcptraceroute使用TCP “SYN”包。發(fā)送帶SYN標志位的數(shù)據(jù)段是TCP建立連接時進行“三次握手”的第一次握手,只要目標地址是被允許訪問的,通常這種包不會被防火墻攔截。但是防火墻會攔截其他的不是用于建立連接的TCP包。
- 基于TCP的traceroute擁有更高的訪問權(quán)限。以amazon.com為例?;赨DP的traceroute停在205.251.248.5,這個地址很可能是某種防火墻。基于TCP的traceroute訪問80端口,這是amazon.com的默認端口,然后進入下一步,最終停在72.21.194.212
歡迎光臨個人博客:http://voidman.xyz