(转)操作系统ping+TTL+详解

转自"baiyun"博客 http://baiyuan.blog.51cto.com/732464/197397

TTL是IP协议包中的一个值,它告诉网络,数据包(例如ICMP包)在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

  TTL:(Time To Live ) 生存时间 
  指定数据包被路由器丢弃之前允许通过的网段数量。 
  TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。 
  使用PING时涉及到的 ICMP 报文类型 
  一个为ICMP请求回显(ICMP Echo Request) 
  一个为ICMP回显应答(ICMP Echo Reply) 
  TTL 字段值可以帮助我们识别操作系统类型。 
  UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255 
  Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64 
  微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128 
  微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32 
  当然,返回的TTL值是相同的 
  但有些情况下有所特殊 
  LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64 
  FreeBSD 4.1, 4.0, 3.4; 
  Sun Solaris 2.5.1, 2.6, 2.7, 2.8; 
  OpenBSD 2.6, 2.7, 
  NetBSD 
  HP UX 10.20 
  ICMP 回显应答的 TTL 字段值为 255 
  Windows 95/98/98SE 
  Windows ME 
  ICMP 回显应答的 TTL 字段值为 32 
  Windows NT4 WRKS 
  Windows NT4 Server 
  Windows 2000 
  Windows XP 
  ICMP 回显应答的 TTL 字段值为 128 
  这样,我们就可以通过这种方法来辨别操作系统

  TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255


总结

操作系统 TTL 
LINUX 64 
WIN2K/NT 128 
WINDOWS 系列 32 
UNIX 系列 255 

本文出自 “baiyuan” 博客,请务必保留此出处http://baiyuan.blog.51cto.com/732464/197397

阅读更多
个人分类: 编程基础
想对作者说点什么? 我来说一句

操作系统pv操作(pv金典)

2008年11月19日 890KB 下载

操作系统—经典PV操作详解

2010年12月06日 113KB 下载

OS 三种状态转换图

2009年03月11日 174KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭