通訊網路/Ping
Ping 是一種基本的網際網路工具,允許使用者驗證特定 IP 地址是否存在並可以接受請求。動詞 ping 指的是使用 ping 實用程式或命令的行為。Ping 在診斷中使用,以確保嘗試訪問的主機計算機確實在執行。例如,如果使用者無法 ping 主機,則使用者將無法使用檔案傳輸協議 (FTP) 將檔案傳送到該主機。Ping 也可以與正在執行的主機一起使用,以檢視獲取響應需要多長時間。使用 ping,您可以從符號域名中瞭解 IP 地址的數字形式。
Ping 大致的意思是“引起某個人的注意”或“檢查某個人的線上存在”。Ping 透過將資料包傳送到指定地址並等待響應來執行。該計算機縮寫詞 (用於 Packet Internet 或 Inter-Network Groper) 是為了與潛艇人員用來描述返回的聲納脈衝聲音的術語相匹配。
Ping 也可以指向傳送訊息到郵件列表的所有成員,要求他們確認接收(ACK)程式碼。這在傳送電子郵件之前進行,以確認所有地址都可以訪問。
網際網路 Ping 命令將一個小資料包彈回一個域名或 IP 地址,以測試網路通訊,然後確定資料包往返所需的時間。Ping 命令是網際網路上最常用的實用程式之一,無論是個人還是自動化程式都使用它來執行最基本的網路測試:您的計算機是否可以訪問網路上的其他計算機,如果是,需要多長時間?
每天每秒鐘,都有無數的 ping 在網際網路上的計算機之間來回閃動,就像持續不斷的電子神經火花。以下小節將提供有關 Ping 如何發明、Ping 如何工作、如何使用 Ping、Ping 網站以及原始 Unix Ping 版本的資訊。
原始的 PING 命令代表“Packet Internet Groper”,是 DARPA 人員用於測試 ARPANET 效能的一組診斷工具。然而,現代網際網路 Ping 命令指的是 Mike Muuss 在 1983 年 12 月編寫的程式,該程式已經成為網際網路上最通用、最廣泛使用的診斷工具之一。Muuss 以潛艇和蝙蝠用於回聲定位的聲納聲音命名了他的程式;就像在關於潛艇的舊電影中一樣,聲納探測器聽起來確實像金屬的“ping”。
網際網路 Ping 程式的工作原理與聲納回聲定位非常相似,它向指定計算機發送包含 ICMP ECHO_REQUEST 的一個小資料包,該計算機然後傳送 ECHO_REPLY 資料包作為響應。IP 地址 127.0.0.1 透過約定始終表示您自己的計算機。因此,ping 到該地址將始終 ping 您自己,延遲應該非常短。這提供了對本地通訊的最基本測試。
您可以使用 Ping 命令執行一些有用的網際網路網路診斷測試,例如以下測試
訪問:您可以使用 Ping 來檢視您是否可以訪問另一臺計算機。如果您根本無法 ping 網站,但可以 ping 其他網站,那麼這是一個很好的跡象,表明您的網際網路網路正在執行,並且該網站已關閉。另一方面,如果您無法 ping 任何網站,那麼您的整個網路連線可能已斷開,因為連線不良。
時間和距離:您可以使用 Ping 命令來確定將資料包彈回另一個網站需要多長時間,這將以網路術語告訴您它的網際網路距離。例如,託管在隔壁鄰居計算機上的網站,具有不同的網際網路服務提供商,可能透過更多路由器,並且在網路距離上比海洋另一邊的具有直接網際網路主幹連線的網站更遠。
如果某個網站看起來很慢,您可以將 ping 距離與其他網際網路網站進行比較,以確定是網站、網路還是您的系統速度慢。您還可以比較 ping 時間,以瞭解哪些網站具有最快的網路訪問許可權,並且最適合下載、聊天和其他應用程式。
域名 IP 地址:您可以使用 Ping 命令來探測域名或 IP 地址。如果您 ping 域名,它會在響應中顯示相應的 IP 地址。
您可以在 Windows 計算機上透過開啟命令提示符視窗,然後鍵入“ping”,然後鍵入要 ping 的計算機的域名或 IP 地址來執行 ping 命令。您可以使用“ping -?” 列出 Windows ping 命令的可用選項。 
線上 ping:如果您由於防火牆或其他限制而無法從自己的計算機使用 Ping 命令,或者想要從您自己的位置以外的其他位置執行網際網路 ping,則可以使用以下提供線上 ping 服務的網站之一
- DNSStuff.com
- his.com Ping
- Network-Tools
- Spfld.com Ping
- Theworldsend.net ping
請記住,在執行線上 ping 時,資料包是從該網站傳送的,因此返回的時間反映了從該位置到目標的路徑,而不是從您的計算機。但是,來自線上網站的 ping 對於測試地址是否可以從網際網路上的不同位置訪問很有用,以執行比較計時測試,以測試到達一個網站與其他網站所需的時間。
如果多個線上 ping 網站返回到網際網路地址的時間始終很長,那麼目標網站的網路可能存在問題。另一方面,如果您可以從線上 ping 網站 ping 地址,但不能從自己的計算機 ping,那麼您的網路中可能存在阻止您與該網站通訊的某些塊。
Unix 版本:Muuss 最初為 Unix 系統開發了 ping 命令,下面總結了該命令的選項
ping [-q] [-v] [-R] [-c Count] [-i Wait] [-s PacketSize] Host
| 選項 | 示例 | 定義 |
|---|---|---|
| ping -c count | ping -c 10 | 指定要傳送的回聲請求數量。 |
| ping -d | ping -d | 設定 SO_DEBUG 選項。 |
| ping -f | ping -f | 洪水 ping。在收到對最後一個請求的回覆後立即傳送另一個回聲請求。只有超級使用者可以使用此選項。 |
| ping host | ping 121.4.3.2 | 指定要 ping 的計算機的主機名(或 IP 地址) |
| ping -i wait | ping -i 2 | 等待時間。每次 ping 之間等待的秒數 |
| ping -l preload | ping -l 4 | 一個接一個地傳送“preload”資料包。 |
| ping -n | ping -n | 數字輸出,沒有主機到符號名稱的查詢。 |
| ping -p pattern | ping -p ff00 | Ping 模式。該示例傳送兩個位元組,一個位元組填充為 1,另一個位元組填充為 0。 |
| ping -q | ping -q | 安靜輸出。僅在啟動和完成時顯示摘要行 |
| ping -r | ping -r | 直接 Ping。直接傳送到主機,不使用路由表。如果主機不在直接連線的網路上,則返回錯誤。 |
| ping -R | Ping -R | 記錄路由。為回聲請求資料包開啟路由記錄,並在返回資料包上顯示路由緩衝區(許多路由器忽略)。 |
| ping -s PacketSize | ping -s 10 | 設定資料包大小(以位元組為單位),這將導致總資料包大小為 PacketSize 加上 8 個額外的位元組 ICMP 標頭 |
| ping -t | ping -t | 沒有超時 - 不斷 ping,例如 ping 192.168.0.1 -t |
| ping -v | ping -v | 詳細輸出。列出單個 ICMP 資料包以及回聲響應 |
ping 和 traceroute 是兩個最實用的連線測試命令。這兩個命令是網路故障排除的良好機制,它們都使用 ICMP。
為 IP 地址故障排除定義了四個簡單的步驟
- Ping 127.0.0.1
- Ping 本地主機 IP 地址
- Ping 預設閘道器
- Ping 遠端伺服器
這些步驟中的每一個都可能提供有關網路狀態的資訊。步驟 1 通常是迴環測試,這意味著如果成功,則表示 IP 堆疊已初始化。然後,如果步驟 2 成功,則表示網路介面卡 (NIC) 正常工作。步驟 3 允許使用者查詢機器是否可以在本地網路內通訊。最後,步驟 4 為管理員提供了主機成功與遠端伺服器通訊的資訊,其中遠端物理伺服器正在執行。
Ping 是一種計算機程式,用於確定主機是否聯機。Ping 基本上由源傳送 ICMP “回顯請求” 到目標,然後目標以 ICMP “回顯響應” 作為回覆 - 假設目標聯機。Ping 的典型輸出如圖 1 所示,Ethereal 捕獲如圖 2 所示
圖 1:Ping 命令的輸出
圖 2:ping Ethereal 捕獲
注意,當執行 Ping 命令時,捕獲中會出現 ICMP 回顯請求和回覆。型別和程式碼欄位表示不同型別的操作和錯誤結果。下表簡要描述了每個欄位
| 型別 | 程式碼 | 描述 |
|---|---|---|
| 0 | 0 | 回顯回覆(ping) |
| 3 | 0 | 目標網路不可達 |
| 3 | 1 | 目標主機不可達 |
| 3 | 3 | 目標埠不可達 |
| 3 | 6 | 目標網路未知 |
| 3 | 7 | 目標主機未知 |
| 4 | 0 | 源抑制(擁塞控制 - 不使用) |
| 8 | 0 | 回顯請求(ping) |
| 9 | 0 | 路由通告 |
| 10 | 0 | 路由器發現 |
| 11 | 0 | TTL 過期 |
| 12 | 0 | IP 首部錯誤 |
Traceroute 是一種計算機程式,它傳送 ICMP 資料包以顯示資料包從源到目標跨 IP 網路的路由。它透過為每個連續主機將生存時間 (TTL) 欄位增加 1 來實現,直到它到達目標。Traceroute 的輸出和 Ethereal 捕獲分別如圖 1 和 2 所示。
圖 3:Traceroute 命令的輸出
圖 4:traceroute Ethereal 捕獲
注意,每當 ICMP 訊息經過網路裝置時,都會向源傳送 TTL 超時訊息。然後源將記錄路由器名稱。