首先 IPv4 资源是非常稀少的 大约只有 43亿 而且这还是包括了私有IP地址段的 其次 IP地址分为了五类 其中 D类地址没有主机标识 常被用于广播 E类被保留 我们不去管它
那就只剩下了 A B C 三类 问题是 A类和B类的链路允许非常多的计算机连接 实际网络架构上 根本用不到那么多 这就造成了IPv4的浪费 这个时候 子网掩码出现了
子网掩码的意义
将 A B C类网络进行更细的划分 避免浪费 IPv4地址 也可以把小的网络归并成大的网络即超网
子网掩码的理解
假设有一个财主 他有256间房子 房子的编号是 0~255
然后它的房子都在192.168.0
这一条街上 现在他有8
个儿子 要分家 则相当于 每个人都分得32
间房子
以下为每个儿子分得的房子地址
- 一: 192.168.0.0-192.168.0.31
- 二: 192.168.0.32-192.168.0.63
- 三: 192.168.0.64-192.168.0.95
- 四: 192.168.0.96-192.168.0.127
- 五: 192.168.0.128-192.168.0.159
- 六: 192.168.0.160-192.168.0.191
- 七: 192.168.0.192-192.168.0.223
- 八: 192.168.0.224-192.168.0.255
划分出来的各个儿子房子地址的范围 就是这个财主的子网 它们原本是互通的(因为都属于财主一个人) 现在分家了 它们不再是互通的了(不可能你大儿子结婚以后 二儿子还没事去你家看看)
现在我们来看一号儿子的其中一个房子地址
1 | 192. 168. 0. 20 |
为什么分家以后网络标识为27位?
首先 我们知道 IPv4的地址为32位 然后这是一个C类地址 网络标识为 24位 剩下 8位做主机号 但是 如果主机号为8位的话 那么也就是说 这个IP的地址的主机号从0-255都是一个子网的
现在我们是有8个儿子分家 所以每个儿子只能有32个房子 也就是说 主机号只能留到刚好能够表示到十进制31的比特位数(0~31) 显而易见 是5位做主机号 那么 32位 - 5位 = 27位 这就是为什么分家以后网络标识为27位 有3位是因为分家以后扩展了的网络标识
由于 192.168.0.0-192.168.0.31
这样表示实在太复杂了 于是乎 产生了下面一种表示方式
1 | 192.168.0.0/27 |
上面这种表示方式虽然人能看得懂 但是计算机不认识 于是产生了 子网掩码
1 | 255. 255. 255. 224 |
这样 财主的房子分配后的子网掩码就是 255.255.255.224
一道有趣的子网掩码问题
两台服务器 A 和 B 的网络配置如下,B 的子网掩码本应该是255.255.255.0,被不小心配成了 255.255.255.224。它们还能正常通信吗?
这道题是我从 林沛满先生的《Wireshark网络分析就这么简单》摘取的 林沛满先生的两本书在我看来都是很不错的(虽然我的水平暂时还没资格评论别人的书) 就是名字取得差了一些 如果能把名字改成 《从Wireshark的角度看网络》 我想会卖的更好!
书中的解法是直接用Wireshark抓一次包
我个人的分析是这样的
- 当B访问A时
1 | B的IP是 192.168.26.3 它的子网掩码是 255.255.255.224 |
- 当A访问B时
1 | A的子网掩码为 255.255.255.0 |