IPV4地址划分有三种:
⑴ 由网络位+主机位组成。分为:A、B、C、D、E类,其中A、B、C是常用的,这个在很多书上都可以看到。
①A类地址:网络号占8位(第一位为0),主机号占24位。
网络号的范围:1~126(0000 0001~0111 1111)(注:为什么不到127? 因为127为网络保留,有其他作用;为什么没有0?网络号全为0为保留地址)
最大可用网络数:126=2^7-2
网络中的最大主机数为:2^24-2(注:为什么减2,主机号不能全为0或者1,主机号全为0为本网络地址,全为1为广播地址)
②B类地址:网络号占16位(前两位为10),主机号占16位。
网络号的范围:128.1~191.255(1000 0000 0000 0001~1011 1111 1111 1111)
最大可用网络数:2^14-1(为什么减1,因为128.0这个地址不可指派)
网络中的最大主机数为:2^16-2
③C类地址:网络号占24位(前三位为110),主机号占8位。
网络号范围:192.0.1~223.255.225(1100 0000 0000 0000 0000 0001~1101 1111 1111 1111 1111 1111)
最大可用网络数:2^24-1(为什么减1?192.0.0不可指派)
网络中的最大主机数为:2^8-2=254
这样划分有缺点:假如一个公司有2000台主机,给该公司分配一个C类地址,但是一个C类地址容纳主机数量为254台,不够,如果分配B类地址,是不是有点浪费?一个B类地址可以容纳65534主机,剩下的别人又用不了。于是有了子网划分。为什么不多分配几个C类地址呢?
(2)由网络位+子网位+主机位,采用借位的方法,从原来主机位((1)中)最高位开始借
位变为新的子网络,剩余部分仍然为主机位,使本来应当属于主机号的部分改变为网络号,
这样就实现了划分子网的目的。
子网掩码:为了告诉主机或者路由对A、B、C类网络进行了划分,使用子网掩码来表达对原网络中主机位的借位
如果一个网络没有进行网络划分,那么对于A类子网掩码为:255.0.0.0,B类:255.255.0.0,C类:255.255.255.0。
例题:某ip地址为:172.16.0.0,子网掩码为255.255.192.0。该子网掩码划分了几个子网?每个子网最大主机数量是多少?每个网段可用ip范围?
该ip为一个B类网络,若没有进行网络划分,则子网掩码应该为255.255.0.0,现在子网掩码为:255.255.192.0,所以进行了子网划分。写成二进制形式:
子网掩码应该为:1111 1111 1111 1111 0000 0000 0000 0000
现在为: 1111 1111 1111 1111 1100 0000 0000 0000
容易观察出 在主机位中借走了2为子网位。 所以划分了“4个”子网(00 01 10 11),真的是4个子网吗?由于子网位不能全为0或者1,所以划分了2^2-2=2个 (01 10)。该2个子网前面的网络号是一样的,即172.16(即这个两个字网属于同一个网段:172.16.0.0)。
子网的ip地址写成二进制形式(网络号用十进制表示):172.16. 0100 0000 . 0000 0001 红色表示子网位,绿色表示主机位。在B类中,本来应该有16位 表示主机位,但是现在借走了2位,所以只剩下14位表示主机位,而且主机位不能全为1或者0,全为1表示本网络的广播地址,全为0表示网络本身。所以
主机位以00 0000.0000 0001开始到11 1111 . 1111 1110 结束。
第一个网段为:172.16. 0100 0000 . 0000 0001 ~ 172.16. 0111 1111 . 1111 1110 即:172.16.64.1~ 172.16.127.254(可用ip范围)
该子网地址:172.16.64.0 (主机位全为0) 广播地址:172.16.127.255(主机位全为1) 最大主机数量=2^14-2
第二个网段为:172.16. 1000 0000 . 0000 0001 ~ 172.16. 1011 1111 . 1111 1110 即172.16.128.1 ~ 172.16.191.254(可用ip范围)
该子网地址:172.16.128.0 (主机位全为0) 广播地址:172.16.191.255(主机位全为1) 最大主机数量=2^14-2
接着刚才的问题,一个公司有2000台主机,若分配C类地址,则需要254*10=2540>2000,则需要10个C类地址才够,而且还浪费了540个ip地址,现在有了子网划分。2000台主机,需要多少为位来表示呢?2^11=2048>2000,11位,这样浪费掉了48-2个ip。该网段子网掩码:255.255.1111 1000 . 0000 0000 即:255.255.248.0
如果将子网掩码设置过大,也就是说子网范围扩大。那么根据子网寻径规则,很可能发往和本地主机不在同一子网内的数据会因为错误的相与结果而认为是在同一子网内,那么数据包将在本子网内循环直到超时并抛弃。数据不能正确到达目的机导致网络传输错误。如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信,当做是跨子网传输数据包都交给缺省网关处理,这样势必增加缺省网关的负担造成网络效率下降。因此,任意设置子网掩码是不对的。
若将子网分配过多,也会造成ip浪费,因为子网位不能全为0或者1。
(3) CIDR 无分类编址
将第二种编址中的网络位+子网位看成 网络前缀 就成了CIDR。