192.168.1.1/24 和 192.168.1.2/23 为什么能连通?

BestBlog编程类文章 · 软件开发

📌 一句话摘要 文章指出网络连通性取决于各自主机用自己的子网掩码计算目标 IP 是否同网段,而非对方的掩码,因此/24 与/23 配置不同却能互通,同网络号却可能不通。 📝 详细摘要 文章从一个实验现象切入:192.168.1.1/24 与 192.168.1.2/23 网络号不同却能 ping 通,而 192.168.1.2/23 与 192.168.0.1/24 网络号相同反而不通。作者的核心观点是「计算机视角」而非「人的视角」——每台主机只用本地 IP 的子网掩码去判断目标 IP 是否同网段,根本不会去读取对方的掩码。在 Q1 中,192.168.1.1 用自身/24 掩码计算,认为 192.168.1.2 在同一网段,直接 ARP 通信;在 Q2 中,192.168.0.1 用自身/24 掩码计算,认为 192.168.1.2 不在同一网段,需要网关转发,但未配置网关则丢包。作者反复强调「计算机视角」三点,以纠正读者常见的直觉性错误。 💡 主要观点 主机判断目标是否同网段,只用自己的子网掩码,不读取对方的掩码 这是整个问题的核心认知误区。192.168.1.1/24 用自己的/24 掩码(255.255.255.0)计算 192.168.1.2 的网络号为 192.168.1.0,与自己相同,于是直接 ARP 通信,无论对方实际配置的是/23 还是其他值。 网络号相同不代表一定能通信,缺少网关配置会导致跨网段通信失败 192.168.0.1/24 计算 192.168.1.2 的网络号为 192.168.1.0,与自己不同,需要网关转发,但未配置默认路由,ICMP 包无法发出,表现为 ping 不通。 必须用「计算机视角」而非「人类直觉视角」理解网络行为 人类的直觉会将双方的配置信息同时纳入判断,但实际协议栈只根据本地接口的配置做出决策,不了解也不关心对端的网络参数。 💬 文章金句 这种问题写了不下 10 次以上了,总以为很简单,直到今天看了知乎热榜问题。希望这是最后一次写类似的答案,学会用计算机的视角学计算机。 以上计算都是基于计算机 192.168.1.1 的视角!以上计算都是基于计算机 192.168.1.1 的视角!以上计算都是基于计算机 192.168.1.1 的视角!重要的事情说三遍! 你不能让计算机 192.168.1.1 用对方的 192.168.1.2/23 的掩码 23,来计算 192.168.1.2 的 Network ID,这是错误的源头!这是你的视角!却不是计算机 192.168.1.1 的视角! 📊 文章信息 AI 初评: 78 来源: dbaplus社群 作者: dbaplus社群 分类: 软件编程 语言: 中文 阅读时间: 8 分钟 字数: 1765 标签: 网络基础 , IP子网划分 , 子网掩码 , ARP , 计算机网络 阅读完整文章

查看原文