2011-07-26 22 views
2

我無法理解IP地址,尤其是在其中有0的IP地址。0s in IP addresses

據我所知,主機ID全爲0的IP地址是指網絡,如128.52.0.0/16

IP地址的網絡號是否可以填入0,仍然有效?例如。 128.52.0.1與子網掩碼255.255.255.0

IP地址的主機ID是否可以在其中有0並且仍然有效?例如。 128.52.0.1與子網掩碼255.255.0.0

此外,由於某種原因,我把它放在我的腦海中,網絡ID爲0的IP地址是指主機ID在同一網絡上的主機。例如。 0.0.0.1網絡192.168.1.0與子網掩碼255.255.255.0是指192.168.1.1。它是否正確?

回答

4

IP地址的網絡號是否可以填入0,仍然有效?例如。 128.52.0.1與子網掩碼255.255.255.0

是的。網絡ID有一個零八位組是完全可以的。

IP地址的主機ID是否可以在其中有0且仍然有效?例如。 128.52.0.1與子網掩碼255.255.0.0?

是的。主機ID有一個零八位組是完全可以的,儘管你應該知道全零位主機ID是按照慣例保留的,意味着將整個網絡稱爲整體(就像所有的一位主機ID保留爲廣播地址,意味着指網絡上的每臺主機)。

此外,由於某種原因,我得到了它在我的腦海...

這是正確的,0.0.0.0/8根據RFC5735用於自我鑑定:

0.0.0.0/8 - 地址在這個塊中引用「這個」網絡上的源主機。地址0.0.0.0/32可以用作該網絡上該主機的源地址; 0.0.0.0/8內的其他地址可用於引用此網絡上的指定主機([RFC1122],第3.2.1.3節)。

約定是使用全位表示每個「對象」和全零位表示這個「對象」。從"Internetworking with TCP/IP", Douglas E. Comer報價:

使用網絡標識符號0是在主機想通過網絡進行通信,但還不知道網絡IP地址的情況下尤爲重要。主機臨時使用網絡ID 0,網絡上的其他主機將該地址解釋爲「此」網絡。在大多數情況下,答覆將完全指定網絡地址,允許原始發件人將其記錄下來以供將來使用。

它可以不使用那麼多的「常規」的世界,因爲BOOTP和DHCP使用情況的有限廣播變種(全1),他們還不知道自己的網絡ID。但是,由於RFC並沒有被廢棄,我想它仍然有效。

+0

所以理論上如果我的IP地址是192.168.1.1,我應該能夠ping 0.0.0.1嗎? – DanielGibbs

+0

@DanieL,這取決於你的'ping'版本。雖然TCP/IP堆棧的較低級別可以正確處理具有該類地址的數據包,但不需要工具來這樣做。事實上,當我嘗試ping我的主機ID'0.0.0.101'時,它給了我一個'connect error'消息。 – paxdiablo

0

128.52.0.1只是128.52.0.0/16網絡上的一個IP地址。這種情況下的網絡ID是128.52.0.0。 Subnetmask,howerver是255.255.0.0。 255.255.255.0的掩碼對應於/ 24子網。

您的最後一段似乎是正確的。

+0

對不起,我只用/表示法來顯示子網的大小。問題已更新。 – DanielGibbs