相信大家都比較熟悉在windows下用ping去測試網絡的連通性,下面就是個人學習使用ping的小結:
C:\Users\liuww>ping
用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name
選項:
-t Ping 指定的主機,直到停止。
若要查看統計信息並繼續操作 - 請鍵入 Control-Break;
若要停止 - 請鍵入 Control-C。
-a 將地址解析成主機名。
-n count 要發送的回顯請求數。
-l size 發送緩衝區大小。
-f 在數據包中設置“不分段”標誌(僅適用於 IPv4)。
-i TTL 生存時間。
-v TOS 服務類型(僅適用於 IPv4。該設置已不贊成使用,且
對 IP 標頭中的服務字段類型沒有任何影響)。
-r count 記錄計數躍點的路由(僅適用於 IPv4)。
-s count 計數躍點的時間戳(僅適用於 IPv4)。
-j host-list 與主機列表一起的鬆散源路由(僅適用於 IPv4)。
-k host-list 與主機列表一起的嚴格源路由(僅適用於 IPv4)。
-w timeout 等待每次回覆的超時時間(毫秒)。
-R 同樣使用路由標頭測試反向路由(僅適用於 IPv6)。
-S srcaddr 要使用的源地址。
-4 強制使用 IPv4。
-6 強制使用 IPv6。
C:\Users\liuww>ping -l 1000000 -f -n 612222 10.46.206.167
選項 -l 的值有錯誤,有效範圍從 0 到 65500。 (默認ping 是32字節)
因爲windows系統都有一個安全漏洞(也許還包括其他系統),就是當向對方一次發送的數據包大於或等於65532時,對方就很有可能出現宕機,所以微軟公司爲了解決這一安全漏洞於是限制了ping的數據包大小,就是 ping of death 死亡之ping,惡意***
ping -l 65500 -t 192.168.1.12
由於鏈路層最大傳輸數據單元爲1500字節,(MTU),去掉IP報頭20字節,ICMP頭的8字節,剩下數據部分爲1472字節,是鏈路層分片的分界線,當大於1472時,就需要分片
但如果在ping的時候,指定 -f 設置不分段時,就會報錯:
C:\Users\liuww>ping -l 1473 -f -n 6122ww 10.46.206.167
正在 Ping 10.46.206.167 具有 1473 字節的數據:
需要拆分數據包但是設置 DF。
當小於1473時,不分片,就正常:
C:\Users\liuww>ping -l 1472 -f -n 6122ww 10.46.206.167
正在 Ping 10.46.206.167 具有 1472 字節的數據:
來自 10.46.206.167 的回覆: 字節=1472 時間=27ms TTL=64
來自 10.46.206.167 的回覆: 字節=1472 時間=1ms TTL=64
如果不指定-f,那鏈路層就會對IP報進行分片,ping時就正常
C:\Users\liuww>ping -l 1473 -n 6122 10.46.206.167
正在 Ping 10.46.206.167 具有 1473 字節的數據:
來自 10.46.206.167 的回覆: 字節=1473 時間=51ms TTL=64
來自 10.46.206.167 的回覆: 字節=1473 時間=1ms TTL=64
來自 10.46.206.167 的回覆: 字節=1473 時間=1ms TTL=64
來自 10.46.206.167 的回覆: 字節=1473 時間=1ms TTL=64
注:上面 大於 1473,設置不要分片時報錯,是網卡驅動程序返回的,可以通過下面驗證:
大於1473,不要分片,ping 環回地址127.0.0.1,此時不進過網卡,就不會報錯
C:\Users\liuww>ping -l 20000 -f -n 6122 127.0.0.1
正在 Ping 127.0.0.1 具有 20000 字節的數據:
來自 127.0.0.1 的回覆: 字節=20000 時間<1ms TTL=64
來自 127.0.0.1 的回覆: 字節=20000 時間<1ms TTL=64