它常被用來測試區域網的連通狀態。校驗與遠端計算機或本地計算機的連線。只有在安裝 TCP/IP 協議之後才能使用該命令。要知道這其中的奧秘,我們有必要來看看Ping命令的工作過程到底是怎麼樣的。 假定主機A的IP地址是192.168.1.1,主機B的IP地址是192.168.1.2,都在同一子網內,則當你在主機A上執行“Ping 192.168.1.2”後,都發生了些什麼呢? 首先,Ping命令會構建一個固定格式的ICMP請求資料包,然後由ICMP協議將這個資料包連同地址“192.168.1.2”一起交給IP層協議(和ICMP一樣,實際上是一組後臺執行的程序),IP層協議將以地址“192.168.1.2”作為目的地址,本機IP地址作為源地址,加上一些其他的控制資訊,構建一個IP資料包,並在一個對映表中查找出IP地址192.168.1.2所對應的物理地址(也叫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通這臺機器了
它常被用來測試區域網的連通狀態。校驗與遠端計算機或本地計算機的連線。只有在安裝 TCP/IP 協議之後才能使用該命令。要知道這其中的奧秘,我們有必要來看看Ping命令的工作過程到底是怎麼樣的。 假定主機A的IP地址是192.168.1.1,主機B的IP地址是192.168.1.2,都在同一子網內,則當你在主機A上執行“Ping 192.168.1.2”後,都發生了些什麼呢? 首先,Ping命令會構建一個固定格式的ICMP請求資料包,然後由ICMP協議將這個資料包連同地址“192.168.1.2”一起交給IP層協議(和ICMP一樣,實際上是一組後臺執行的程序),IP層協議將以地址“192.168.1.2”作為目的地址,本機IP地址作為源地址,加上一些其他的控制資訊,構建一個IP資料包,並在一個對映表中查找出IP地址192.168.1.2所對應的物理地址(也叫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通這臺機器了