“ping”在什麼連接埠上工作?

“ping”在什麼連接埠上工作?

ping該命令預設是否有任何特定的連接埠號碼?

同樣在Linux系統上,有沒有辦法自己找出它運行在哪些連接埠號碼上並為其配置不同的連接埠號碼?

答案1

平使用ICMP協定它沒有 TCP 和 UDP 協定等連接埠。

如果您需要查看 Linux 系統上是否停用了 Ping,您可以檢查:

cat /proc/sys/net/ipv4/icmp_echo_ignore_all
  • 0 表示 Ping 已啟用。 (系統將響應 ping)
  • 1 表示 Ping 停用(系統不會回應 ping)

答案2

TCP/IP 使用四層網路堆疊。鏈結層處理實體媒體以及如何傳輸位元組,互聯網層處理 IP 位址以及如何將資料從一個節點路由到另一個節點,傳輸層處理 TCP 和 UDP 會話,而應用層則處理使用者的資訊。正常與網路互動。

Ping 是作為 ICMP(網際網路控制訊息協定)的一部分實現的,該協定處理錯誤、擁塞等問題。 ICMP 是在互聯網層實現的,因此完全不知道加密、連接埠、會話和上游層提供的其他內容,也不知道位元組是如何從 A 點物理到達 B 點(這是Link層的要點)。

所有這些都意味著 ping 本質上是沒有連接埠的。它們不在任何連接埠號碼上運行,因為它們是在不同層級實現的。當您要求 ping 時,此操作有效地繞過應用程式層和傳輸層,並直接要求 Internet 層診斷連線(即查看需要多長時間才能獲得回應)。這通常直接在網路驅動程式中實現,並且不需要任何特殊的用戶應用程式來請求或回應 ping。

您可以開啟和關閉 ping 回應,但您無法設定在您所詢問的層中實際上沒有概念的內容。對於任何給定的作業系統,您只需查看線上手冊即可了解如何啟用或停用 ping 回應。另一個答案詳細介紹了在 Linux 上啟用/停用它,而這個答案旨在解決為什麼沒有可以配置 ping 的連接埠。

答案3

傳統的「Ping」使用ICMP協議,它與具有「連接埠」概念的TCP和UDP是分開的。我畫了一個圖,這樣比較容易理解:

答案4

“ping”在什麼連接埠上工作?

沒有任何。

Ping 其實不是傳統意義上的服務。沒有 ping 守護程式伺服器。

Ping(正式名稱為 ICMP Echo)由核心中的 IP 驅動程式提供,在某些具有硬體卸載功能的架構中甚至可能由硬體本身提供。正如其他人所提到的,它使用 ICMP。世界不分為 udp 或 tcp。

其他第 4 層協定存在不同程度的通用性,例如 ICMP、IGMP、PPTP(IPSec 的一部分)。

ping 有一個衍生產品,稱為 tcping,它使用您選擇的 tcp 連接埠或多或少地完成與 ping 相同的事情。在這種情況下,仍然沒有「ping 伺服器」。 「伺服器」是您碰巧指向的任何伺服器軟體。

相關內容