码迷,mamicode.com
首页 > 其他好文 > 详细

IP协议中TTL详解

时间:2014-12-22 22:38:31      阅读:3929      评论:0      收藏:0      [点我收藏+]

标签:

  traceroute使用ICMP 和TTL,ICMP 用于回显信息,包括IP,TTL,sequence number等。TTL字段是发送端初始设置的字段,RFC指定的值为64,对于每个处理数据包的路由器都需要把TTL的值减1或者减去在路由器中停留的时间,一般路由器转发数据包的时延不超过1s,因此TTL可以作为跳数的计数值。

 如果路由器收到的IP数据包的TTL值为0或者1,路由器将不会转发数据包,将数据包丢弃并发送ICMP超时信息。包含ICMP信息的IP报文的源地址是该路由器的IP地址。Traceroute可以用做追溯网关的工具,只要设置合理设置TTL值。发送一份TTL值为1的数据报,第一个路由器将TTL值减1,丢弃该数据报,并发送ICMP超时信息,得到第一个路由器的IP,同理发送一份TTL值为2的数据报得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机,但是目的主机哪怕接收到TTL值为1的IP报文,也不会丢弃该数据报并发送ICMP报文,因为数据报已经到达目的地,如何判断是否已经到达目的主机?发送一份UDP数据报给目的主机,其中UDP使用的端口号是不可达的端口,根据ICMP报文是超时还是端口不可达区分是否为目的主机。

  linux系统 TTL值的修改位置是/proc/sys/net/ipv4/ip_default_ttl,

 echo 128 > /proc/sys/net/ipv4/ip_default_ttl

  (这是短暂性的)若要设置长久的可以:

  修改/etc/sysctl.conf配置文件,添加如下一行

  net.ipv4.ip_default_ttl=128

   

  

 

IP协议中TTL详解

标签:

原文地址:http://www.cnblogs.com/tian4837/p/4178662.html

(2)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!