强化计算机网络发现王道没有这一块的内容,导致做题稀里糊涂。于是个人调研补充。
子网划分是将一个大型IP网络划分成更小的子网,以实现更有效的网络管理和资源分配。
原因:
- 提高网络性能:子网划分可以减少广播域的大小,减少广播和冲突域,从而提高网络性能和响应速度。
- 提高网络安全性:通过子网划分,可以实现网络分段和隔离,从而增强网络的安全性,阻止不必要的访问和网络攻击。
- 管理IP地址:子网划分允许有效地管理IP地址,并确保它们被分配和使用得更加合理和有效。
- 管理网络流量:子网划分可以帮助控制和管理网络流量,使网络资源得到更好的利用和分配
注意:从一个IP地址本身是无法判断源主机所连接的网络是否进行了子网划分。
信息归纳
总的来说,子网划分是在不改变IP地址格式的情况下对原本两级IP中不用的一部分进行再次编码和利用,划分后使网络管理更加方便。
如192.168.3.10化为二进制为 11000000.10101000.00000011.00001010
其中最后的00001010是可以随便分配的主机号,但是前半部分0000就可以拿来编码化为0000XXXX、0001XXXX、0010XXXX等等16个规模都为2的4次方的子网。这种划分方式叫定长子网划分。
注意:子网号可以分配全1和全零,但主机号不能分配全1和全0。因为一个子网的全0地址是这个子网的本网络地址,而一个子网的全1地址是这个网络的广播地址。
子网掩码
从一个IP地址本身是无法判断源主机所连接的网络是否进行了子网划分。那怎么在路由器转发时判断此网络是否属于某一子网呢?计算机网络使用子网掩码。
子网掩码用于确定一个IP地址中哪些位用于网络标识,哪些位用于主机标识。常见的子网掩码是一个32位的二进制数,通常用点分十进制表示法表示。
对于一个给定的IP地址,子网掩码中的网络部分都置为1,主机部分都置为0。
如以上192.168.3.10网络属于0000XXXX子网,则它的子网掩码为
11111111 11111111 11111111 11110000
子网号也算网络号的一部分,把网络号和子网号全换成1,主机号全换成0就是子网掩码
CIDR
CIDR是与子网掩码类似的思想,即在变长子网掩码的基础上通过数字统计网络号进行对IP无分类编址。CIDR消除了传统ABCD网络划分,使IP地址分配更加灵活,利用更加充分,延缓了IP地址的耗尽。
如以上192.168.3.10网络属于11111111 11111111 11111111 1111XXXX子网,28个前缀表示网络号,则它的CIDR编址快为192.168.3.10/28
划分方法
1、定长子网划分
就是要求所有子网规模相同,比如要求划分5个规模相同的子网就需要至少3位即23个位置作为子网号,划分为000XXXXX、001XXXXX、010XXXXX、011XXXXX、100XXXXX这五个子网,明显每个子网都可分配25-2也就是30个子网。
在要求这样划分子网的题目里会明显有均分这个提示。如
可以观察到定长子网划分一定可以将子网完全划分成偶数且是2的偶数次方个子网。
2、变长子网划分
与定长子网划分相反,变长子网划分就是要求所有子网规模不同。这样的题目里没有均分的字眼
而变长子网划分的方法就比较抽象,学过哈夫曼编码的很容易理解,对5个节点进行哈夫曼编码就能得到5个不同的子网,且因为哈夫曼编码不允许前缀相同,所以子网的编码将不会被其他编码覆盖,从而以不同大小的子网完整分完了原来全部的主机号。这部分哔哩哔哩湖大教书匠最后一节课讲的比较详细,还以不懂哈弗曼树的角度进行划分。但是不如写哈夫曼编码。
如有道真题
别听王道胡扯就两种划分方式,哈夫曼树又没有唯一性。所以不定长划分进行哈夫曼编码就好。