2015-09-03 85 views
0

我的問題有兩個方面,首先我想知道「-n」標記在Linux中如何爲ping命令工作,特別是當ping程序放置「 -n「標誌,以及如何優化查詢(或者加快響應,如果是的話)?我也想知道什麼是主機的符號名稱?我需要知道了解-n標誌。ping「-n」標誌是如何工作的?是否會影響響應時間? (Linux)

我的研究:

從Linux終端(人平)的平手冊說:「-n:數字輸出僅沒有將嘗試查找主機地址的符號名。」
從這個報價我已經有一個疑問:我不知道什麼主機的符號名稱爲,和google搜索並沒有幫助...

然後,我測試了ping命令旗-n,沒有它,使用的主機名是www.gmail.com,結果只在輸出的「FROM」部分有所不同:
沒有我沒有:來自mia07s27-in-f165的64個字節。 1e100.net(216.58.219.165)
使用-ni得到了: 64字節從216.58.219.165
所以我猜測臨屋區t這個特定主機的符號名是:「mia07s27-in-f165.1e100.net」,但是是什麼意思?如何完成這個符號名稱的過程?

我的想法:

我有一個關於如何可能的工作原理:
默認情況下,當我不包括「-n」標誌,ping程序發送主機回送請求數據包,其會有一點表明我沒有使用「-n」標誌,所以主機響應包含關於他的符號名稱信息的Echo Response數據包。當我使用「-n」標誌時,該位將變爲1(或0,誰知道..),這表示主機不必包含關於他的符號名稱的額外信息,會使ping響應時間降低,但這一次是微不足道的,並且不會引起注意。

你們可以驗證我所做的這個理論嗎?這是對的嗎?

回答

2

我從來沒有使用過-n標誌,但它是相當平凡的。一個符號名稱是您使用的網站的正常名稱,因此可以說「google.com」。然而,正如我們所知道的,沒有「google.com」這樣的東西,而是一個與此相對應的地址(比如192.168.10.1)。儘管您可能已經知道這一點,但是執行此操作的服務使用DNS,域名服務器。 DNS將這些符號名稱映射到數字地址
因此,根據手冊頁,-n標誌將爲您節省DNS查詢。

剛纔在我的Linux發行版上,我用ping google.com平了谷歌。這是結果:

PING google.com (173.194.123.6) 56(84) bytes of data. 
64 bytes from lga15s46-in-f6.1e100.net (173.194.123.6): icmp_seq=1 ttl=55 time=13.4 ms 
64 bytes from lga15s46-in-f6.1e100.net (173.194.123.6): icmp_seq=2 ttl=55 time=13.5 ms 
64 bytes from lga15s46-in-f6.1e100.net (173.194.123.6): icmp_seq=3 ttl=55 time=13.5 ms 

正如你可以看到當你平不帶-n選項,你會做一個DNS查詢來識別傳入的回顯請求報文的IP地址。

然後,如果您ping google.com與ping -n google.com,你會看到這樣的事情:

PING google.com (173.194.123.101) 56(84) bytes of data. 
64 bytes from 173.194.123.101: icmp_seq=1 ttl=56 time=4.02 ms 
64 bytes from 173.194.123.101: icmp_seq=2 ttl=56 time=4.07 ms 
64 bytes from 173.194.123.101: icmp_seq=3 ttl=56 time=4.01 ms 

在這裏,您可以看到與-n,我們未這樣做DNS查詢搜索的內容符號名的IP地址代表173.194.123.101。另外,你可以看到沒有這個查詢的時候,ping時間實際上縮短了。

+0

感謝您的回答。 所以你說:「一個符號名稱是你使用的網站的正常名稱,所以讓我們說'google.com'」,但是檢查我上面發佈的內容,當我拼寫爲「www.gmail.com」時,符號名稱在輸出中是:「mia07s27-in-f165.1e100.net」,所以它還不是很清楚,因爲我永遠不會使用該名稱來搜索gmail。 另一方面,我認爲DNS服務默認只檢索主機的IP,但是你建議它默認退出主機的符號名稱,這是否正確? –

+0

@SantiagoHitta我編輯了我的答案,以更詳細地顯示過程。請記住,這裏有幾個DNS查詢。 DNS只包含關於哪些符號名稱與哪些地址相對應的信息,因此如果您有關於地址或名稱的信息,則可以找到有關其他信息。當你ping谷歌,你正在通過DNS查看地址,然後當谷歌送你回包時,你再次通過DNS查找谷歌的地址。但是,如果使用-n標誌,則最後一個查詢是可選的。讓我知道如果你有問題:) – MaxKargin

+0

我越來越困惑,我已經嘗試與許多主機平(現在和沒有-n),並且我無法觀察到之前的響應時間的差異,現在你展示一個情況下,響應時間縮短3倍......另一方面,我不明白如果DNS避免查找,ping響應時間如何縮短,不應該只是第一次ping需要更長的時間( dns查找只完成一次,然後存儲在緩存中)? –

相關問題