192.168.1.1/24 和 192.168.1.2/23 为什么能连通?
dbaplus社群 · 软件开发
车小胖谈网络 2026-09-06 08:00 广东 以下文章来源于:车小胖谈网络 车小胖谈网络 计算机网络学习从入门到精通 同样的,192.168.1.2/23 和 192.168.0.1/24 网络号相同,反倒不通,为啥? 这两天做实验发现这个问题: 192.168.1.1/24(网络号:192.168.1.0)和192.168.1.2/23(网络号:192.168.0.0)这两个ip网络号不同,但是能相互ping通;同样的,192.168.1.2/23和192.168.0.1/24网络号相同,反倒不通。原因到底是什么? 一 Q1: 192.168.1.1/24(网络号:192.168.1.0)和192.168.1.2/23(网络号:192.168.0.0)这两个ip网络号不同,但是能相互ping通? 唯心主义错误,总是“ 我以为。。。 ”,要学会“ 计算机以为。。。 ” 计算机 192.168.1.1 上 Ping 192.168.1.2 时。 在计算机 192.168.1.1 的眼里,首先判断被Ping的主机 192.168.1.2 是否和自己在相同的网段。 如果yes,只要ARP广播获取 192.168.1.2 的MAC地址,就可以通信了。 如果no,看看是否有gateway? 如果有,ARP广播获取 gateway 的MAC地址,将Ping包发给gateway,然后gateway再发给 192.168.1.1 。 如果没有gateway,意味着没有0.0.0.0/0这条神奇的路由,丢包,就Ping不通了。 这种问题写了不下10次以上了,总以为很简单,直到今天看了知乎热榜问题“ 钱学森说「人就算再笨还能学不会微积分吗」 ,难道智力正常的人都能学会微积分吗?” 有初等数学基础,微积分很好学,也能学会。可是如果0.12和0.9谁大谁小都能搞错,微积分还是不要学了,因为小学数学都没有学会。 希望这是最后一次写类似的答案,学会用计算机的视角学计算机。 二 如何判断被Ping的主机 192.168.1.2 和自己( 192.168.1.1) 是否在相同的网段呢? 很简单,用自己的 192.168.1.1 对应的网络掩码,是多少? 24 这个24其实代表的是24个2进制的1,写成: 11111111.11111111.11111111 在它右侧用8个二进制0补足,成32位。 11111111.11111111.11111111.00000000 将自己的IP = 192.168.1.1 ,也转换成二进制。 IP = 192.168.1.1 = 11000000.10101000.00000001.00000001 计算自己的Network ID : 将IP、掩码一一对齐,按bit位 与 操作,1 与 1 =1, 1 与 0 =0 , 0 与 0=0。 将计算得到的值放入 Network ID 对应的位。 IP =192.168.1.1 11000000.10101000.00000001.00000001 掩码 = 255.255.255 =/24 11111111.11111111.11111111.00000000 Network ID 11000000.10101000.00000001.00000000 计算对方的Network ID : IP =192.168.1.2 11000000.10101000.00000001.00000010 掩码 = 255.255.255 =/24 11111111.11111111.11111111.00000000 Network ID 11000000.10101000.00000001.00000000 很显然 2个Network ID 完全相同,都是: Network ID = 11000000.10101000.00000001.00000000 =192.168.1.0 以上计算都是基于计算机192.168.1.1的视角! 以上计算都是基于计算机192.168.1.1的视角! 以上计算都是基于计算机192.168.1.1的视角! 重要的事情说三遍! 从192.168.1.1的视角看来,只知道自己的掩码=24,管你192.168.1.2/23掩码是23、24、32、或者随便什么,都不重要,因为压根不会用,也不知道。只用自己的掩码24来计算! 三 问题主一个问题,你知道要访问的8.8.8.8这个IP地址的掩码是多少吗? 你无法知道,管它是32、31、8,都不影响你访问它。因为你只用本地IP地址的掩码来判断8.8.8.8是否和自己一个网段。如果一个网段,直接通信。如果不是一个网段,使用gateway中继通信,就这么简单。 你不能让计算机192.168.1.1 用对方的192.1