tracert和traceroute都是用来探测数据包经过网络路径的工具。
tracert是windows下的测试工具
traceroute是linux下的测试工具
-----------------------------------------------------------------------------
tracert工作原理及过程
1.tracert向目的地址发送ICMP request报文,且第一个ICMP request的TTL值为1;中间的路由设备收到报文后,因为TTL值为0,返回ICMP超时报文;本机由此获得下一跳信息。
2.逐步增加TTL,获取到过路路由的全部IP。
3.ICMP request报文到达目的地址,目的地址设备回复ICMP replay。
traceroute工作原理及过程
1.traceroute向目的地址的某端口(大于30000)发送UDP报文,第一个报文的TTL值为1;中间的路由设备收到报文后,因为TTL值为0,返回ICMP超时报文;本机由此获得下一跳信息。
目的端口从33434开始,每一个报文会把目的端口增加1,直到33534,目的是为了区分返回的报文对应哪个发出的报文。
2.逐步增加TTL,获取到过路路由的全部IP。
3.UDP报文到达目的地址,目的地址回复ICMP端口不可达报文。
-----------------------------------------------------------------------------
共同点:基本原理都是利用IP报文的TTL字段。
不同点:
tracert是使用ICMP Echo Request报文去实现;traceroute是使用UDP报文去实现
所以最后一跳设备返回的报文也不同:tracert返回ICMP replay;traceroute返回的则是ICMP 端口不可达
traceroute可以使用参数-l,那么发送的数据包为ICMP