同一网段为什么子网掩码不同不能通信?

2024-10-31 07:22:20
推荐回答(2个)
回答1:

  • 首先要理解同一网段的概念:
    两个ip地址是否是同一网段是通过将ip地址与子网掩码做与运算,得到的结果即为网络号,一致则为同一网段,不一致就不是同一网段。如PC1--PC2 进行通信,PC1会拿自己的掩码与PC2的IP进行与运算,PC2同理。

    与运算即IP地址与掩码对应的位进行与运算(1与1得1,1与0得0,0与1得0,0与0得0),得出的即为网络号,一致则认为是同一网段,反之则不可通信,需要值得注意的是,PC2也必须完成这个过程,因为通信是双方的,发送方与回应方必须都得“认为”对方和自己是同一网段才行。
    计算方法:
    192.168.0.1 255.255.255.0 转换为二进制为
    11000000.10101000.00000000.00000001
    11111111.11111111.11111111.00000000  与运算得出
    11000000.10101000.00000000.00000000  即为 192.168.0.0

  • 通过1可知,能不能通信是建立在同一网段(网络号一致)的基础上的,并不是说子网掩码一致或不一致就可以通信或不能通信。举个例子:192.168.0.1/24与192.168.0.2/25 子网掩码分别是255.255.255.0与255.255.255.128,通过ip地址与子网掩码与运算得出网络号均为192.168.0.0,即这两个 IP是属于同一网段,可以通信。

    而192.168.0.1/25与192.168.0.65/25,虽然子网掩码一致,但不属于同一网段,前者是192.168.0.0 后者是192.168.0.64,不能进行通信。

  • 备注:  
    网络号简单计算方法: 网络位不变,主机位全变0,计算方法如本例                                 192.168.0.1/25 后面的25就是网络位占用25位剩余的7位是主机位的意思,
    等同于 192.168.0.1  255.255.255.128
    转换为二进制 ip为11000000.10101000.00000000.00000001
    掩码 11111111.11111111.11111111.10000000
    从左到右,前25位为网络位(1对应的即网络位),这25位不变,后7位(主机               位)置0得出结果为:
    11000000.10101000.00000000.0 0000000转换为点分十进制即为                                  192.168.0.0/25

  • 子网掩码:

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

参考资料

子网掩码.百度百科[引用时间2018-1-5]

回答2:

你试一下 192.168.1.2/24和192.168.1.1/8 通不通?结果是通,所以你的问题就不对