TTL是 TIme To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。TTL是IPv4包头的一个8 bit字段。
TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。
虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP TIme exceeded消息。
TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。
TTL传输中过期问题:
上renren时遇到一问题,突然间就无法登陆,看了下网络,正常呀,别的网站完全ok,就这不成,所以就ping了一下做以校验:如下图示:
传输中过期ttl,赶紧查了查:原来可能是产生了环路,或是局域网存在ARP病毒攻击。对局域网安全性进行了判断,发现问题出在第一个:环路问题——于是采用tracert命令进行了测试实验:如下:
果然是网络产生了回路问题,从第五跳开始就一直在.182和.221间循环了
TTL传输中过期解决方法:
一、可能是网络自身存在的问题,造成环路问题
二、本地dns问题:所以使用下面的命令把本地的DNS缓存给清除了下,问题就能解决了
具体解决方法:
1. 关闭所有浏览器,右键点击“网络邻居”,选择“属性”,在“本地连接”上点击右键,选择“修复”即可。
2. 在DOS窗口下(如果是XP,点击屏幕左下角的“开始”,“运行”,输入“cmd”回车)输入:ipconfig/flushdns 即可清空DNS缓存。
如果以上两种方法都试过,还不能正确访问,那就得检查域名指向是否正确,以及新指向是否扩散到其他DNS解析服务器上。
针对于程序员自己开发的程序,也就是我上文说的第二种情况,解决方案如下:
一、检查代码是否有错误,生成是否成功
二、IIS网站配置是否正确
三、页面路径是否正确
四、检查HOST配置文件
五、cmd命令中ping网站域名
六、检查IIS,调整端口号,再cmd命令中ping网站域名
七、最后结合上面红色字体解决方案操作,基本刷新DNS缓存就OK
注意操作IIS时,进行重启操作