❶ IP协议中的TTL
TTL 是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。(IP数据包在计算机网络中可以转发的最大跳数)
在很多情况下数据包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。
TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,每经过一个路由器,路由器会修改TTL值, 即将改值减小1。当记数到0时,路由器决定丢弃该包,并发送一个 ICMP Type 11 and Code 0 message(Time to live exceeded) 报文给最初的发送者,由发送者决定是否要重发。
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 ,接着执行 sysctl -p 即可。
在本机(windows 10)ping本地的VMware虚拟主机(操作系统为CentOS release 6.8),其IP为192.168.10.128,可见TTL为64:
综上可知,这里的发送主机指的是ping后面IP对应的主机。
❷ 请教:如何修改数据包的TTL值
1.打开“记事本”程序,编写批处理命令:
@echo REGEDIT4>>ChangeTTL.reg
@echo.>>ChangeTTL.reg
@echo [HKEY_LOCAL_MACHlNE\System\CurrentControlSet\Services\T cpip\Parameters]>>ChangeTTL.reg
@echo "DefaultTTL"=dword:000000">>ChangeTTL.reg
@REGEDIT /S/C ChangeTTL.reg
2.把编好的程序另存为以.bat为扩展名的批处理文件, 点击这个文件,你的操作系统的缺省TTL值就会被修改为ff,即 10进制的255,也就是说把你的操作系统人为地改为UNIX系统了 。同时,在该文件所在的文件夹下会生成一个名为 ChangeTTL.reg 的注册表文件。如果你想运行完这个批处理文件而不产生 ChangeTTL.reg文件,可以在此批处理文件的最后一行加上 deltree/Y ChangeTTL.reg,就可以无须确认自动删除ChangeTTL.reg文件 。
说明:在上面的命令中,echo是DOS下的回显命令,如 果想看到程序执行过程,请将“@”去掉。“> >”产生的内容将追加到它后面的文件即ChangeTTL.reg中。 而“DefaultTTL"=dword�000000ff”则是用来设置系统缺省TTL 值的,如果你想将自己的操作系统的TTL值改为其他操作系统的 ICMP回显应答值,请改变“"DefaultTTL"”的键值,要注意将 对应操作系统的TTL值改为十六进制才可以。
❸ 怎么用ping命令改变ttl值
TTL即生存时间(time-to-live),指定数据包被路由器丢弃之前允许通过的网段数量。它是IP(中文全称:网络协议)协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。在使用ping命令ping某个ip地址时,会显一个TTL值,TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。一般Linux系统的TTL值为64或255,Windows
NT/2000/XP系统的默认TTL值为128,Win7系统的TTL值是64,Windows
98系统的TTL值为32,UNIX主机的TTL值为255。
❹ 怎么用ping命令取得TTL值TTL值的作用是什么
简单来说,TTL全程TimetoLive,意思就是生存周期。ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。