Ping命令(lìng)知識 Ping命令工(gōng)作原理詳解
在網絡應用中,ping網速與IP地址等都是非常常用的命(mìng)令,但大(dà)家知道ping命令的(de)工作原理嗎?要知道(dào)這其中的奧秘,我們有必要來看看Ping命令的工(gōng)作過(guò)程到底是怎(zěn)麽(me)樣的(de)。接下來今天綠色資源網與大(dà)家介紹下ping命(mìng)令的詳細知識。
假定主機A的IP地址是192.168.1.1,主機(jī)B的IP地(dì)址是(shì)192.168.1.2,都在同一子網內,則當你在主機(jī)A上運行(háng)“Ping 192.168.1.2”後,都發生了些什麽呢(ne)?
首先,Ping命令會構建一個固(gù)定(dìng)格式(shì)的ICMP請求數(shù)據包,然後由ICMP協議將這個(gè)數據包連(lián)同(tóng)地(dì)址“192.168.1.2”一起交給(gěi)IP層協議(和(hé)ICMP一(yī)樣,實際上是一組後台運行的進程),IP層協議將以地址“192.168.1.2”作為目的(de)地址(zhǐ),本機(jī)IP地址(zhǐ)作為源(yuán)地址,加(jiā)上一些其他的控(kòng)製信息(xī),構建一個IP數據包,並在(zài)一個映射表中查找(zhǎo)出IP地址192.168.1.2所(suǒ)對應的物理(lǐ)地址(也(yě)叫MAC地(dì)址,熟悉網卡(kǎ)配置(zhì)的(de)朋(péng)友(yǒu)不會陌生(shēng),這是數(shù)據鏈路層協議構建數據鏈路層的(de)傳輸單元——幀(zhēn)所必需的),一(yī)並交給數據鏈(liàn)路層。後者構建一個數據幀,目(mù)的地址是IP層傳過來(lái)的物理地址(zhǐ),源地址則是本機的物理地(dì)址,還要附(fù)加上一些控製信息,依據以(yǐ)太網的介(jiè)質訪問規則,將它們傳送出去。
主機B收到(dào)這個數據(jù)幀後(hòu),先檢查它的目的地(dì)址,並和本機的物理(lǐ)地(dì)址對比,如(rú)符合,則(zé)接收;否則丟棄(qì)。接收後檢查該(gāi)數(shù)據幀,將IP數(shù)據包(bāo)從幀(zhēn)中提取出來,交給本機的IP層協議。同(tóng)樣(yàng),IP層檢(jiǎn)查後,將(jiāng)有(yǒu)用的(de)信息提取(qǔ)後交給ICMP協議,後(hòu)者處理後,馬上(shàng)構建一個ICMP應答(dá)包,發送(sòng)給主機(jī)A,其過程和主機A發送ICMP請求包到主機(jī)B一模一樣。
從Ping的工作過程,我們可以知道,主(zhǔ)機A收到了主機(jī)B的一個應答包,說明(míng)兩(liǎng)台(tái)主機之間的(de)去、回通路(lù)均正常。也就是說(shuō),無論(lùn)從主機A到主機B,還是(shì)從主機B到主機A,都是正(zhèng)常的。那(nà)麽,是什麽原因引起隻(zhī)能(néng)單(dān)方向Ping通(tōng)的呢?
一、安裝了(le)個人防火牆
在共享上(shàng)網(wǎng)的機器中,出於安全(quán)考(kǎo)慮(lǜ),大(dà)部分作為服務器的主機都安裝(zhuāng)了個人防火牆軟件,而(ér)其(qí)他作為客戶機(jī)的(de)機器則一般不安裝。幾乎所有的個(gè)人防(fáng)火牆(qiáng)軟件(jiàn),默認(rèn)情況下是不允許其他機器Ping本機的。一般的做(zuò)法是將來自外部(bù)的ICMP請求報文(wén)濾掉(diào),但它卻對(duì)本機出去的ICMP請求報文,以及(jí)來自外部的(de)ICMP應答報文不加任何限(xiàn)製。這樣,從(cóng)本機Ping其他機器時,如果網(wǎng)絡正常(cháng),就沒有問題。但如果(guǒ)從其他機器Ping這台機器,即使網絡一切正(zhèng)常,也(yě)會出現“超時無應答”的(de)錯(cuò)誤。大部分的單方向Ping通現(xiàn)象(xiàng)源於此(cǐ)。解(jiě)決的(de)辦法也很簡單,根據(jù)你自己(jǐ)所用(yòng)的不同類型的防火(huǒ)牆(qiáng),調(diào)整相應的設置(zhì)即可。
二、錯誤設置IP地址
正常(cháng)情(qíng)況下,一台主(zhǔ)機應該(gāi)有一個網卡,一(yī)個IP地址,或多個網(wǎng)卡,多(duō)個IP地址(這(zhè)些地址一(yī)定要處(chù)於不同的IP子網)。但對(duì)於在公共場所使用的電(diàn)腦(nǎo),特(tè)別是網(wǎng)吧,人(rén)多手雜,其(qí)中不(bú)泛有“探(tàn)索者”。曾有一次兩台電腦也出現了這種單方向Ping通的情況,經過仔細檢查,發(fā)現(xiàn)其中(zhōng)一台(tái)電腦的“撥號(hào)網絡適配器”(相當(dāng)於一塊軟網(wǎng)卡(kǎ))的TCP/IP設置中,設置了一個與網卡IP地址處於同一子網的IP地址,這樣,在IP層協議看來,這台主機(jī)就有兩個不同的接口處於同一(yī)網段內。當(dāng)從這台(tái)主機Ping其(qí)他的(de)機(jī)器時,會存(cún)在這樣的問題:
(1)主機不知道將數據包發(fā)到哪個網絡接(jiē)口,因為有(yǒu)兩個網絡接口都(dōu)連接在同一網段(duàn);
(2)主機不知道用(yòng)哪個(gè)地(dì)址作為數(shù)據包(bāo)的源地(dì)址。因(yīn)此(cǐ),從這台主機去Ping其他機(jī)器,IP層協議會無法處理,超時後(hòu),Ping 就會給出一(yī)個“超時無應答”的錯誤信息(xī)提(tí)示。但(dàn)從其他(tā)主機Ping這(zhè)台(tái)主機時,請求包從(cóng)特定的網卡來,ICMP隻須簡單(dān)地將目的、源地址互換,並更(gèng)改一些標誌(zhì)即可,ICMP應(yīng)答(dá)包能順利發出,其他主(zhǔ)機也就(jiù)能成功(gōng)Ping通這台機器了。
介紹到這裏相信大家對ping命令有了一個比較詳(xiáng)細的了解,對於ping命令我們常用來檢測(cè)局域(yù)網(wǎng)內網絡信號(hào)發(fā)送與接收的(de)檢測,網絡速(sù)度(dù)的檢測,3也可以判斷網絡是否(fǒu)存在(zài)故障等(děng),對於(yú)經常接觸網絡(luò)的朋(péng)友ping命令是的大家經常需要使用的命令(lìng)。
關鍵詞:Ping命令
閱讀本文後您有什麽感想? 已有 人給出(chū)評(píng)價!
- 0
- 0
- 0
- 0
- 0
- 0