
(非母語英語海報)
當我嘗試測試 ARP 在第 2 層解析 IP 位址的方式時,我設定了一台主機 (H1),其固定 IP 具有以下位址inet 192.168.0.123/16 brd 192.168.255.255
,另一台主機 (H2) 具有inet 192.168.0.155/24 brd 192.168.0.255
該位址。 H1 和 H2 均連接至同一開關。
我以為無法從 H2 ping H1,因為它們屬於不同的子網路或廣播網域,但 ping 有效。我刷新了 H2 上的 ARP 表,結果相同。
我還重置了交換器以清空其 ARP 表,但我仍然可以跨兩個不同的廣播網域執行 ping 操作。
我錯過了什麼嗎?
答案1
首先,子網路(或 IP 網路)通常與子網路不同。廣播域。廣播域處理 OSI 第 2 層概念以及訊框(而非封包)的傳播。
其次,Ping 使用 ICMP 協議,該協議發生在 OSI 第 3 層,因此 ping 可以跨路由器到達遠端網路。毫不奇怪,您可以 ping 通另一個網路上的裝置。
ARP 和 PING 本質上沒有任何關係。您的本機電腦不需要執行 ARP 請求來尋找遠端站,因為它只是將 IP 資料封包傳送到預設閘道(它確實透過 ARP 查找),然後讓路由器解決其餘問題。
答案2
我不明白你為什麼感到驚訝。
內特 192.168.0.123/16 BRD 192.168.255.255
inet 192.168.0.155/24 BRD 192.168.0.255
儘管這兩個網路不同,但 H1 在 H2 的網路內部,而 H2 在 H1 的網路內部。因此他們必須能夠溝通。
這掩蓋了您混淆了 OSI 模型第 2 層 (ARP) 和第 3 層 (ICMP) 協定的事實。事實上,你說,
....我仍然可以跨兩個不同的廣播網域執行 ping 操作。
(這是第 2 層(廣播域)和第 3 層(ping)概念之間混淆的一個例子),但有趣的是你是不是ping穿過任何東西:兩個 IP 網路之一包含另一個,H1和H2都屬於兩者之間的公共區域,所以你實際上是在ping裡面兩個網。