- 相關(guān)推薦
ping命令的應(yīng)用及原理
ping的原理就是首先建立通道,然后發(fā)送包,對方接受后返回信息,這個包至少包括以下內(nèi)容,發(fā)送的時候,包的內(nèi)容包括對方的ip地址和自己的地址,還有序列數(shù),回送的時候包括雙方地址,還有時間等,主要是接受方在都是在操作系統(tǒng)內(nèi)核里做好的,時刻在監(jiān)聽,提供一段c程序的代碼。網(wǎng)絡(luò)上的機(jī)器都有唯一確定的IP地址,我們給目標(biāo)IP地址發(fā)送一個數(shù)據(jù)包,對方就要返回一個同樣大小的數(shù)據(jù)包,根據(jù)返回的數(shù)據(jù)包我們可以確定目標(biāo)主機(jī)的存在,可以初步判斷目標(biāo)主機(jī)的操作系統(tǒng)等。
假定主機(jī)A的IP地址是192.168.1.1,主機(jī)B的IP地址是192.168.1.2,都在同一子網(wǎng)內(nèi),則當(dāng)你在主機(jī)A上運(yùn)行“Ping 192.168.1.2”后,都發(fā)生了些什么呢?
首先,Ping命令會構(gòu)建一個固定格式的ICMP請求數(shù)據(jù)包,然后由ICMP協(xié)議將這個數(shù)據(jù)包連同地址“192.168.1.2”一起交給IP層協(xié)議(和ICMP一樣,實際上是一組后臺運(yùn)行的進(jìn)程),IP層協(xié)議將以地址“192.168.1.2”作為目的地址,本機(jī)IP地址作為源地址,加上一些其他的控制信息,構(gòu)建一個IP數(shù)據(jù)包,并在一個映射表中查找出IP地址192.168.1.2所對應(yīng)的物理地址(也叫MAC地址,熟悉網(wǎng)卡配置的朋友不會陌生,這是數(shù)據(jù)鏈路層協(xié)議構(gòu)建數(shù)據(jù)鏈路層的傳輸單元——幀所必需的),一并交給數(shù)據(jù)鏈路層。后者構(gòu)建一個數(shù)據(jù)幀,目的地址是IP層傳過來的物理地址,源地址則是本機(jī)的物理地址,還要附加上一些控制信息,依據(jù)以太網(wǎng)的介質(zhì)訪問規(guī)則,將它們傳送出去。
主機(jī)B收到這個數(shù)據(jù)幀后,先檢查它的目的地址,并和本機(jī)的物理地址對比,如符合,則接收;否則丟棄。接收后檢查該數(shù)據(jù)幀,將IP數(shù)據(jù)包從幀中提取出來,交給本機(jī)的IP層協(xié)議。同樣,IP層檢查后,將有用的信息提取后交給ICMP協(xié)議,后者處理后,馬上構(gòu)建一個ICMP應(yīng)答包,發(fā)送給主機(jī)A,其過程和主機(jī)A發(fā)送ICMP請求包到主機(jī)B一模一樣。
從Ping的工作過程,我們可以知道,主機(jī)A收到了主機(jī)B的一個應(yīng)答包,說明兩臺主機(jī)之間的去、回通路均正常。也就是說,無論從主機(jī)A到主機(jī)B,還是從主機(jī)B到主機(jī)A,都是正常的。那么,是什么原因引起只能單方向Ping通的呢?
一、安裝了個人防火墻
在共享上網(wǎng)的機(jī)器中,出于安全考慮,大部分作為服務(wù)器的主機(jī)都安裝了個人防火墻軟件,而其他作為客戶機(jī)的機(jī)器則一般不安裝。幾乎所有的個人防火墻軟件,默認(rèn)情況下是不允許其他機(jī)器Ping本機(jī)的。一般的做法是將來自外部的ICMP請求報文濾掉,但它卻對本機(jī)出去的ICMP請求報文,以及來自外部的ICMP應(yīng)答報文不加任何限制。這樣,從本機(jī)Ping其他機(jī)器時,如果網(wǎng)絡(luò)正常,就沒有問題。但如果從其他機(jī)器Ping這臺機(jī)器,即使網(wǎng)絡(luò)一切正常,也會出現(xiàn)“超時無應(yīng)答”的錯誤。大部分的單方向Ping通現(xiàn)象源于此。解決的辦法也很簡單,根據(jù)你自己所用的不同類型的防火墻,調(diào)整相應(yīng)的設(shè)置即可。
二、錯誤設(shè)置IP地址
正常情況下,一臺主機(jī)應(yīng)該有一個網(wǎng)卡,一個IP地址,或多個網(wǎng)卡,多個IP地址(這些地址一定要處于不同的IP子網(wǎng))。但對于在公共場所使用的電腦,特別是網(wǎng)吧,人多手雜,其中不泛有“探索者”。曾有一次兩臺電腦也出現(xiàn)了這種單方向Ping通的情況,經(jīng)過仔細(xì)檢查,發(fā)現(xiàn)其中一臺電腦的“撥號網(wǎng)絡(luò)適配器”(相當(dāng)于一塊軟網(wǎng)卡)的TCP/IP設(shè)置中,設(shè)置了一個與網(wǎng)卡IP地址處于同一子網(wǎng)的IP地址,這樣,在IP層協(xié)議看來,這臺主機(jī)就有兩個不同的接口處于同一網(wǎng)段內(nèi)。當(dāng)從這臺主機(jī)Ping其他的機(jī)器時,會存在這樣的問題:
(1)主機(jī)不知道將數(shù)據(jù)包發(fā)到哪個網(wǎng)絡(luò)接口,因為有兩個網(wǎng)絡(luò)接口都連接在同一網(wǎng)段;
(2)主機(jī)不知道用哪個地址作為數(shù)據(jù)包的源地址。因此,從這臺主機(jī)去Ping其他機(jī)器,IP層協(xié)議會無法處理,超時后,Ping 就會給出一個“超時無應(yīng)答”的錯誤信息提示。但從其他主機(jī)Ping這臺主機(jī)時,請求包從特定的網(wǎng)卡來,ICMP只須簡單地將目的、源地址互換,并更改一些標(biāo)志即可,ICMP應(yīng)答包能順利發(fā)出,其他主機(jī)也就能成功Ping通這臺機(jī)器了。
【ping命令的應(yīng)用及原理】相關(guān)文章:
ping命令檢測網(wǎng)絡(luò)故障的方法03-05
簡單的ping命令來檢測網(wǎng)絡(luò)故障04-02
縮放命令在AutoCAD設(shè)計中的巧妙應(yīng)用03-20
dos命令之REN命令-文件改名命令03-20
dos命令之FC命令:文件比較命令08-07