关于ping命令的工作原理
2019獨角獸企業重金招聘Python工程師標準>>>
當我們在用ping命令ping地址的時候會向target主機發送一個ICMP協議中的echo包,如果對方living(活動狀態)。
則會返回一個echo包。
TTL的值:這個值對我們有什么用,它反映了什么?
首先TTL值代表的是,我們發給目的主機的數據包(echo),在主機與目的機之間會存在很多的的路由器,而通過路由器的時候,這個值會減小,并且還可能由于
其他原因,讓數據包不能正常的發送到目的主機,那么如果不給這些數據包一個生存時間的話,這個數據包會一直存在于網絡中,導致網絡開銷增大。如果在通過一個路由的時候TTL值減小1,那么如果經過了幾次循環,或者經歷很多次路由之后,TTL會減小到0.那么就在網絡中自動消失掉,釋放網絡資源。所以我們在ping的時候看到的這個TTL值代表的是echo在網絡存在的時間。
不同的操作系統,TTL值都不一樣,所以可以根據TTL值來看操作系統是哪種版本類型。
一般來說XP返回的TTL是64.
TTL值的注冊表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
其中有個DefaultTTL的DWORD值,其數據就是默認的TTL值了,我們可以修改,但不能大于十進制的255
ping工作過程:
①不知道對方MAC地址,發送ARP廣播出去,解析對方的MAC地址。
②知道MAC地址之后,在發送ICMP協議中的echo數據包。
ping的常見問題如下:
一? ping www.baidu.com
???????????? reply? from 119.75.218.56:bytes=32? time =95ms TTL=56
????? 目的主機與主句之間的連接是成功的。
二 ping request could not find host fdfd.pleses check the name and try angain.
?????? 不能找到目的主機fdfd 在ping過程中的第一個過程就已經結束了,無法找到目的主機的,不能解析MAC地址
三 請求超時
??????? echo包已經發送到目的主機,并且目的主機已經返回了echo的返回包,但是在發揮的過程中丟失,無法到達源主機。
四 來自192.168.1.5 的回復:無法訪問目標主機。
?????? 這是因為發送給目的主機的echo包在192.168.1.125上被迫終止,即echo包無法到達目的主機
? ?? 可能原因:某個路由器192.168.1.125的端口上,禁止來自源主機的數據包通過。
解決IP尋址錯誤問題的步驟:
? ? ? ? ??
? ? ? ? ? ① ping 127.0.0.1 ? ?檢查本機IP棧是否初始化,失敗則重裝TCP/IP協議
? ? ? ? ? ② ping 本主機IP ? ? 檢查網卡NIC功能是否正常
? ? ? ? ? ③ ping 網關 ? ? ? ? ? ?成功則NIC連接到網絡,并且網絡通信正常
? ? ? ? ? ④ ping 遠端主機 ? ?成功則表示主機與遠端主機可進行IP通信
常用到的ping命令:
???? ping? ? -n count:發送指定次數的echo數據包、不加-n 參數的話,系統默認是 ping 4次
???? 比如:ping?-n?6 www.baidu.com
ping -l length:指定echo數據包的大小、系統默認的數據包是32字節,最大的字節數是65527
轉載于:https://my.oschina.net/osmyblog/blog/312130
總結
以上是生活随笔為你收集整理的关于ping命令的工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++的const修饰
- 下一篇: SHELL中的IF判断