IP地址中的0

IP地址中的0,ip,ip-address,Ip,Ip Address,我很难理解IP地址,特别是其中包含0的IP地址 我知道主机ID为0的IP地址指的是网络,例如128.52.0.0/16 IP地址的网络ID是否可以包含0并且仍然有效?例如,带有子网掩码的128.52.0.1255.255.255.0 IP地址的主机ID是否可以包含0并且仍然有效?例如,带有子网掩码的128.52.0.1255.255.0.0 此外,出于某种原因,我脑子里想的是,网络ID为0的IP地址指的是同一网络上具有主机ID的主机。例如,网络上带有子网掩码的0.0.0.1是指192.168.1

我很难理解IP地址,特别是其中包含0的IP地址

我知道主机ID为0的IP地址指的是网络,例如
128.52.0.0/16

IP地址的网络ID是否可以包含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.1
。这是正确的吗

IP地址的网络ID是否可以包含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节)

惯例是使用所有1位表示每个“对象”,所有0位表示该“对象”。引用Douglas E.Comer的“使用TCP/IP进行网络互联”一文:

在主机希望通过网络进行通信但不知道网络IP地址的情况下,使用netid 0尤其重要。主机临时使用网络id 0,网络上的其他主机将该地址解释为“此”网络。在大多数情况下,回复将具有完全指定的网络地址,允许原始发件人记录该地址以备将来使用


在“常规”世界中,它可能不会被太多使用,因为BOOTP和DHCP在它们还不知道自己的网络ID的情况下都使用有限的广播变体(所有一位)。但是,由于RFC还没有被淘汰,我想它仍然有效。

128.52.0.1只是128.52.0.0/16网络上的一个ip地址。本例中的网络id为128.52.0.0。子网掩码hower为255.255.0.0。255.255.255.0的掩码对应于/24子网


您的最后一段似乎是正确的。

对不起,我只使用了/符号来显示子网大小。问题已更新。因此,理论上,如果我的IP地址是192.168.1.1,我是否能够ping 0.0.0.1?@DanieL,这取决于你的
ping
。虽然TCP/IP堆栈的较低级别可以正确处理具有这种地址的数据包,但不需要工具来这样做。事实上,当我尝试只ping我的主机ID
0.0.0.101
时,它会给我一条
连接错误
消息。