traceroute命令原理简介
2013-04-02 08:29
393 查看
转自:/article/4357311.html
一.参数:
[options]的内容有:[-n]:显示的地址是用数字表示而不是符号[-v]:长输出[-p]:UDP端口设置(缺省为33434)[-q]:设置TTL测试数目(缺省为3)[-t]:设置测包的服务类型[data size]:每次测试包的数据字节长度(缺省为38)
二.Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
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 程式。
【Yasi】这一点我一直都不曾想过,原来目的端是没有一个进程接收消息的啊。自己试了下,一个终端使用traceroute的同时,
netstat nap |grep traceroute
查看连接,果然发往目标IP的30000以上的端口
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
Traceroute 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。
本文出自 “大鹏的日子” 博客,请务必保留此出处/article/4357311.html
一.参数:
[options]的内容有:[-n]:显示的地址是用数字表示而不是符号[-v]:长输出[-p]:UDP端口设置(缺省为33434)[-q]:设置TTL测试数目(缺省为3)[-t]:设置测包的服务类型[data size]:每次测试包的数据字节长度(缺省为38)
二.Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
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 程式。
【Yasi】这一点我一直都不曾想过,原来目的端是没有一个进程接收消息的啊。自己试了下,一个终端使用traceroute的同时,
netstat nap |grep traceroute
查看连接,果然发往目标IP的30000以上的端口
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
Traceroute 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。
本文出自 “大鹏的日子” 博客,请务必保留此出处/article/4357311.html
相关文章推荐
- GT-ITM拓扑生成器的原理及命令格式简介
- apt-get命令工作原理简介
- Android adb原理与命令简介
- traceroute命令原理
- Git的原理简介和常用命令
- u-boot分析 七 (添加u-boot命令,学习u-boot命令实现原理)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建
- 浏览器系列:浏览器简介及基本运行原理
- Git flow的分支模型与及常用命令简介
- android源码中ccache使用及原理简介
- PING命令 原理
- Android 显示原理简介
- Linux的mount命令简介
- android IPC及原理简介
- linux中的nm命令简介---转载
- 实战CGLIB系列文章之开篇:CGLIB简介、原理与应用
- springmvc的简介与原理
- linux comm命令使用简介
- S3C2440—UART原理简介
- 计算机组成原理简介