ping命令的應用及原理
ping的原理就是首先建立通道,然後發送包,對方接受後返回信息,這個包至少包括以下內容,發送的時候,包的內容包括對方的ip地址和自己的地址,還有序列數,回送的時候包括雙方地址,還有時間等,主要是接受方在都是在操作系統內核裏做好的,時刻在監聽,提供一段c程序的代碼。網絡上的機器都有唯一確定的IP地址,我們給目標IP地址發送一個數據包,對方就要返回一個同樣大小的數據包,根據返回的數據包我們可以確定目標主機的存在,可以初步判斷目標主機的操作系統等。
假定主機A的IP地址是,主機B的IP地址是,都在同一子網內,則當你在主機A上運行“Ping ”後,都發生了些什麼呢?
首先,Ping命令會構建一個固定格式的ICMP請求數據包,然後由ICMP協議將這個數據包連同地址“”一起交給IP層協議(和ICMP一樣,實際上是一組後臺運行的進程),IP層協議將以地址“”作爲目的地址,本機IP地址作爲源地址,加上一些其他的控制信息,構建一個IP數據包,並在一個映射表中查找出IP地址所對應的物理地址(也叫MAC地址,熟悉網卡配置的朋友不會陌生,這是數據鏈路層協議構建數據鏈路層的傳輸單元——幀所必需的),一併交給數據鏈路層。後者構建一個數據幀,目的地址是IP層傳過來的物理地址,源地址則是本機的物理地址,還要附加上一些控制信息,依據以太網的介質訪問規則,將它們傳送出去。
主機B收到這個數據幀後,先檢查它的目的地址,並和本機的物理地址對比,如符合,則接收;否則丟棄。接收後檢查該數據幀,將IP數據包從幀中提取出來,交給本機的IP層協議。同樣,IP層檢查後,將有用的信息提取後交給ICMP協議,後者處理後,馬上構建一個ICMP應答包,發送給主機A,其過程和主機A發送ICMP請求包到主機B一模一樣。
從Ping的工作過程,我們可以知道,主機A收到了主機B的一個應答包,說明兩臺主機之間的去、回通路均正常。也就是說,無論從主機A到主機B,還是從主機B到主機A,都是正常的。那麼,是什麼原因引起只能單方向Ping通的呢?
一、安裝了個人防火牆
在共享上網的機器中,出於安全考慮,大部分作爲服務器的主機都安裝了個人防火牆軟件,而其他作爲客戶機的機器則一般不安裝。幾乎所有的'個人防火牆軟件,默認情況下是不允許其他機器Ping本機的。一般的做法是將來自外部的ICMP請求報文濾掉,但它卻對本機出去的ICMP請求報文,以及來自外部的ICMP應答報文不加任何限制。這樣,從本機Ping其他機器時,如果網絡正常,就沒有問題。但如果從其他機器Ping這臺機器,即使網絡一切正常,也會出現“超時無應答”的錯誤。大部分的單方向Ping通現象源於此。解決的辦法也很簡單,根據你自己所用的不同類型的防火牆,調整相應的設置即可。
二、錯誤設置IP地址
正常情況下,一臺主機應該有一個網卡,一個IP地址,或多個網卡,多個IP地址(這些地址一定要處於不同的IP子網)。但對於在公共場所使用的電腦,特別是網吧,人多手雜,其中不泛有“探索者”。曾有一次兩臺電腦也出現了這種單方向Ping通的情況,經過仔細檢查,發現其中一臺電腦的“撥號網絡適配器”(相當於一塊軟網卡)的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這臺主機就有兩個不同的接口處於同一網段內。當從這臺主機Ping其他的機器時,會存在這樣的問題:
(1)主機不知道將數據包發到哪個網絡接口,因爲有兩個網絡接口都連接在同一網段;
(2)主機不知道用哪個地址作爲數據包的源地址。因此,從這臺主機去Ping其他機器,IP層協議會無法處理,超時後,Ping 就會給出一個“超時無應答”的錯誤信息提示。但從其他主機Ping這臺主機時,請求包從特定的網卡來,ICMP只須簡單地將目的、源地址互換,並更改一些標誌即可,ICMP應答包能順利發出,其他主機也就能成功Ping通這臺機器了。
相關文章
-
Ping命令工作原理詳解
我們都知道ping功能非常強大,但大家知道ping命令的工作原理嗎?要知道這其中的奧祕,我們有必要來看看Ping命令的工作過程到底是怎麼樣的。接下來小編與大家介紹下ping命令的詳細知識。假定主機A的IP地址是,主機B的IP地址 -
ping命令的作用及使用方法
Ping命令其實是一個非常好的網絡故障診斷工具,下面是YJBYS小編整理的ping命令的作用及使用方法,希望對你有幫助! Ping的作用:Ping 是Windows系列自帶的一個可執行命令。利用它可以檢查網絡是否能夠連通,可以很好地幫助 -
Linux服務器ping命令的使用
所有的網絡排錯工具之母可以說是Ping工具了。你可能從其他操作系統中也對這個工具有所瞭解了,它可以驗證與其他機器之間的連接性。如果你是管理Linux系統的新手,那麼小編會告訴你一些使用Ping工具的技巧。在開始使用pin -
如何使用Ping命令檢查不能聯網的原因
開機後發現電腦不能連接到網絡,於是調出了DOS窗口。通過Ping命令測試,很快確定故障出現在路由器上。於是檢查路由器,發現故障是因路由器與外網連接的網線脫落所致。重新插入網線後,問題解決。電腦不能上網大致可分以下幾 -
ping命令的使用
隨着安防網絡化時代的來臨,IPC(網絡攝像機)逐漸在行業監控系統中佔據越來越重要的地位,通過網絡進行全實時、高清晰的視頻監控成爲用戶普遍的選擇。在實際工作中,我們的技術人員經常接到一些客戶關於組網過程中的問題的 -
ping命令的用法
如果遇到網絡故障,不妨試試用ping命令檢查一下,因爲Ping命令是一個非常好的網絡故障診斷工具,下面是YJBYS帶來的ping命令的用法,希望對你有幫助!首先使用Ping命令診斷本地TCP/IP協議是否安裝正常,檢測方法如下:⒈)從電腦開 -
Ping命令使用的技巧
在電腦基礎操作中,很多人在操作電腦中可以接觸到這個ping命令。但是都是沒有深入的去了解這個ping命令。對於ping命令在電腦中可以通過ping來判斷及解決網絡故障。下面是YJBYS小編整理的Ping命令使用的技巧,希望對你有 -
ping網絡命令的使用
Ping命令是個很實用的命令,當你遇到網絡故障時你可以首先就Ping一下主機,這是最普遍也是最實用的檢驗方法,因爲錯誤往往會出在這裏,同時它也可以說明很多問題,你纔能有針對的進行故障排除。下面是YJBYS小編帶來的Ping命令 -
ping命令的使用方法
ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻並不是很多,當然我也並不是說我可以讓ping發揮最大的功能,小編也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。ping [-t] [-a] -
Ping命令使用技巧
Ping命令實用時需要注意:成功地與另一臺主機進行一次或兩次數 據報交換並不表示TCP/IP配置就是正確的,我們必須執行大量的本地主機與遠程主機的數據包交換,才能確信TCP/IP的正確性。下面是小編整理的Ping命令使用小技巧,