ping ,time,TTL詳解
PING (Packet Internet Grope),因特網包探索器,用於測試網路連線量的程式。Ping傳送一個ICMP回聲請求訊息給目的地並報告是否收到所希望的ICMP回聲應答。他是怎麼工作的呢,看下圖
TTL:生存時間
指定資料包被路由器丟棄之前允許透過的網段數量。
TTL 是由傳送主機設定的,以防止資料包不斷在 IP 網際網路絡上永不終止地迴圈。轉發 IP 資料包時,要求路由器至少將 TTL 減小 1。
使用PING時涉及到的 ICMP 報文型別:
一個為ICMR請求回顯(ICMP Echo Request)
一個為ICMP回顯應答(ICMP Echo Reply)
TTL 欄位值可以幫助我們識別作業系統型別。
UNIX 及類 UNIX 作業系統 ICMP 回顯應答的 TTL 欄位值為 255
Compaq Tru 5.0 ICMP 回顯應答的 TTL 欄位值為
微軟 Windows NT/2K作業系統 ICMP 回顯應答的 TTL 欄位值為 128
微軟 Windows 95 作業系統 ICMP 回顯應答的 TTL 欄位值為 32
當然,返回的TTL值是相同的
但有些情況下有所特殊
Kernel 2.2.x & 2.4.x ICMP 回顯應答的 TTL 欄位值為
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
這樣,我們就可以透過這種方法來辨別作業系統
C:\Documents and Settings>ping blog.51yip.com Pinging blog.51yip.com [173.201.152.6] with 32 bytes of data: Reply from 173.201.152.6: bytes=32 time=257ms TTL=45 Reply from 173.201.152.6: bytes=32 time=256ms TTL=45 Reply from 173.201.152.6: bytes=32 time=262ms TTL=45 Reply from 173.201.152.6: bytes=32 time=258ms TTL=45 Ping statistics for 173.201.152.6: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 256ms, Maximum = 262ms, Average = 258ms
由此我們可以斷定,blog.51yip.com是一臺linux主機,經過了-45=19次中轉後到達本機,time=257ms,這個時間是一次請求的時間,這個時間越小,說明速度越快,越大說明速度越慢。
C:\Documents and Settings>ping 127.0.0.1 Pinging 127.0.0.1 with 32 bytes of data: Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Reply from 127.0.0.1: bytes=32 time<1ms TTL=128 Ping statistics for 127.0.0.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss) Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
在這裡的TTL=128是表示二個意思:
1,請求主機是一臺WINDOWS系統的電腦
2,並且沒有經過路由中轉,也就是請求的是本機。每次請求的時間呢,小於百萬份之一秒。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2646777/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ping命令詳解
- PING命令 獲取的TTL值 登錄檔位置
- Apache Flink 特性 - State TTL (Time-to-Live)Apache
- linux下ping命令使用詳解Linux
- iOS Runtime詳解iOS
- ORACLE DBTime詳解Oracle
- golang package time 用法詳解GolangPackage
- NSTimer使用詳解
- linux time 命令詳解Linux
- Python之time模組詳解Python
- python—time模組使用詳解Python
- Java 執行時(RUNTIME)註解詳解Java
- iOS之runtime詳解api(一)iOSAPI
- iOS之runtime詳解api(三)iOSAPI
- iOS之runtime詳解api(二)iOSAPI
- iOS之runtime詳解api(四)iOSAPI
- iOS 中 NSTimer 使用詳解iOS
- DateTime.ToString()用法詳解
- js 定時器用法詳解——setTimeout()、setInterval()、clearTimeout()、clearInterval()JS定時器
- Nginx的超時timeout配置詳解Nginx
- 詳解 Objective-C 中的 RuntimeObject
- linux虛擬機器ping通windows主機詳解Linux虛擬機Windows
- [GXYCTF2019]Ping Ping Ping 1 - Xxiaoma解題TF2
- 詳解MySQL慢日誌(上)query_time\start_time\lock_time 的坑MySql
- Node.js 核心模組 Timers 詳解Node.js
- Qt中時鐘時間功能QTime詳解QT
- 【python】詳解time模組功能asctime、localtime、mktime、sleep、strptime、strftime、time等函式以及時間的加減運算Python函式
- c語言學習--time庫函式詳解C語言函式
- C# Timer用法及例項詳解C#
- IBM Lotus Sametime Gateway 8.5 新功能詳解IBMGateway
- 【轉】Linux NTP配置詳解 (Network Time Protocol)LinuxProtocol
- 解決方案:可以ping別人,但是別人不能ping我
- iOS 開發:『Runtime』詳解(四)獲取類詳細屬性、方法iOS
- javascript定時器(setTimeout和setInterval)的使用詳解JavaScript定時器
- iOS 開發:『Runtime』詳解(三)Category 底層原理iOSGo
- iOS 開發:『Runtime』詳解(一)基礎知識iOS
- Chrome開發者工具詳解(3):Timeline皮膚Chrome
- iOS 模式詳解—「runtime&runloop 面試、工作」看我就iOS模式OOP面試