TTL指报文在网络中传输的最大次数,作为一个报文在网络中传输下去的血条,可以用ping、tracert、traceroute等命令进行观察
一、TTL
TTL,全称time to live,即生存时间,TTL值作为IPv4数据报中的一个字节,最大0xff,也就是十进制255。
在进行报文传输过程中,通过规定TTL可以控制报文最大允许的路由距离,具有三层防止环路作用。在设备发送数据前-1,当TTL=0时,丢弃该报文。在不同的OS,protocol中具有不同的默认值。
二、用到的命令
ping命令
1、介绍
ping命令会发送ICMP(Internet Message Protocol)报文【ICMP报文是IP层的附属协议,介于IP层与TCP层之间,一般认为是IP层的嘻嘻而已】进行链路测试。
步骤具体分为:成功发送ICMP报文给目的地址--->正确地接收回复的ICMP报文
完成这两步后设备会认为链路联通,返回延迟等信息
例如:
本地ip :192.168.125.204 目的ip:192.168.25.254
在wireshark进行检测这个ping过程可以得到验证。
一次连通就是一组Echo(ping)request 与Echo(ping) reply 的组合
1.使用规则
首先{ping 127.0.0.1} 来验证本地的网络配置(TCP/IP)是否正常,成功将获得本机的默认TTL,可以离线测试。
ping 127.0.0.1
本机ip地址分为公网ip和内网ip。一般情况下ping不了自己的公网ip,因为路由器或ISP会禁止ping公网ip。因此只能ping内网ip,而本机的ip地址可以通过命令ipconfig/all获得。
如果ping不通说明网线断了或者wifi连接有问题。
ping自己网关,即ping路由器192.168.10.1之类的网关
ping -i n 目的地址 指定n跳ping目的地址
结果表示,从目的地址到本机用了64-50=14跳,
tracert命令
tracert命令用来追踪路由,tracert先发送TTL为1的回应数据包,并随后的每次发送过程将TTL+1,直到目标响应或者TTL到达最大值,即0xff,来确定路由
tracert 的常见用法
*表示路由器或ISP拒绝ping,不返回消息
三、对TTL生成的验证
ping 目标地址猜测跳数:
显示TTL=52,即从目标地址发送回来的报文还有52滴血。
猜想:目的地址产生一个默认值为64的报文,作为echo回应送往本地,途径12个路由器
验证:用更可能的64-52得到12跳,用tracert命令:
验证正确,在经过12个路由器后到达目的地址。
进一步验证:ping中间节点 172.29.72.13
显示TTL=253,猜测经过255-253=2跳。
tracert验证:
经过两跳,猜测正确。