(轉)操作系統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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章