ping 中的TTL查看操作系統


百科名片

TTL是IP協議包中的一個值,它告訴網絡數據包在網絡中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。解決方法就是在一段時間后丟棄這個包,然后給發送者一個報文,由發送者決定是否要重發。TTL的初值通常是系統缺省值,是包頭中的8位的域。TTL的最初設想是確定一個時間范圍,超過此時間就把包丟棄。由於每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,並發送一個ICMP報文給最初的發送者。

 

目錄

基本簡介
  1. Ping中的TTL
邏輯門電路
通過鏡頭測量曝光方式
  1. 簡介
  2. 從外測光到內測光
  3. 從自動測光到TTL測光
T-ara歌曲
Total 的縮寫
展開
基本簡介
  1. Ping中的TTL
邏輯門電路
通過鏡頭測量曝光方式
  1. 簡介
  2. 從外測光到內測光
  3. 從自動測光到TTL測光
T-ara歌曲
Total 的縮寫
展開
 
 

編輯本段基本簡介

  
  TTL

TTL

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 7 ICMP 回顯應答的 TTL 字段值為 64
 
  WINXP-32bit 回顯應答的 TTL 字段值為 128
 
  微軟 Windows NT/2K/2003操作系統 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。

Ping中的TTL

  舉例來說:
 
  以下是ping曙光博客的返回值:
 
  C:\Documents and Settings\user>ping
 
  Pinging [66.235.202.42] with 32 bytes of data:
 
  Reply from 66.235.202.42: bytes=32 time=254ms TTL=51
 
  Reply from 66.235.202.42: bytes=32 time=256ms TTL=51
 
  Request timed out.
 
  Reply from 66.235.202.42: bytes=32 time=260ms TTL=51
 
  Ping statistics for 66.235.202.42:
 
  Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
 
  Approximate round trip times in milli-seconds:
 
  Minimum = 254ms, Maximum = 260ms, Average = 256ms
 
  從結果中可以看出曙光博客服務器的IP地址是:66.235.202.42,所用的時間是256ms等,那TTL等於51是什么意思呢?
 
  TTL是生存時間的意思,就是說這個ping的 數據包能在網絡上存在多少時間。當對 網絡上的主機進行ping操作的時候,本地機器會發出一個數據包,數據包經過一定數量的 路由器傳送到目的主機,但是由於很多的原因,一些數據包不能正常傳送到目的主機,那如果不給這些數據包一個生存時間的話,這些數據包會一直在網絡上傳送,導致網絡開銷的增大。當數據包傳送到一個路由器之后,TTL就自動減1,如果減到0了還是沒有傳送到目的主機,那么就自動丟失。就像上面 ping曙光博客的時候第三次那樣,出現Request timed out的情況,增加TTL來減少 網絡資源的消耗。默認情況下, Linux系統的TTL值為64或255,Windows NT/2000/XP系統的TTL值為128,Windows 98系統的TTL值為32,UNIX主機的TTL值為255。(這個是從網絡上找到的),曙光博客的目的主機是采用FreeBSD系統的(可能已經更換),在這里可能TTL值是64,而不是UNIX主機的255,所以在從這里到目的主機經過了64-51=13個路由。當不知道目的主機的 操作系統的時候我們可以根據TTL來猜測,但是不一定100%准確,如果目的主機是windows,但是經過了比如75個路由器,那么TTL的返回值是128-75=53,那么你可能認為這個目的主機是Linux系統,但是一般不會經過那么多的路由器,所以通過TTL來判斷目的主機的操作系統還是有一定的依據的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM