IP地址位于OSI模型的第三层网络层的协议,是为了计算机在因特网上能够相互通信而产生的。现在主要使用的IPv4地址是由4个字节组成的一个32位的二进制,我们在电脑上看到的IP地址一般使用点分十进制表示,也就是每8位(一个字节)用相对应的十进制来表示。
列如:
点分十进制 192 .168 .1 .1
二进制 11000000.10101000.00000001.00000001
A、B、C类地址
A、B、C类地址实际上是最开始的时候为了更好的分配网络而使用的,因为不同的场景所需要的ip数量也是不同的,而有了ABC类地址,就可以更好的按需分配了。而在ABC类地址的情况下,IP就变成了网络号+主机号的形式。可以简单的把网络号理解为你家所在的街道,而主机号就是具体的门牌号
-
A类:第一个字节为网络号,后三个字节为主机号
第一个字节的范围在00000000~011111111之间(0~127),其中全0表示整个互联网。127则是表示本地网络。所以实际只有(1~126)可以使用。
-
B类:前两个字节为网络号,后两个字节为主机号
第一个字节的范围在10000000~10111111之间(128~191)
-
C类:前三个字节为网络号,最后一个字节为主机号
第一个字节的范围在11000000~11011111之间(192~223)
特殊地址
主机号全0或全1
主机号全为0或1的是特殊地址
- 全为0是网络地址,表示这个这个网络号下的整个网络。
- 全为1是广播地址,能对这个网络号下的所有主机进行广播。
私有地址
随着私有IP网络的发展,为节省可分配的注册IP地址,有一组IP地址被拿出来专门用于私有IP网络,称为私有IP地址。
私有地址还有一个很大的好处,由于只在局域网生效,因此只要不在同一个局域网就可以重复使用。
A类,B类,C类分别都有一个私有地址范围,我们用来设置路由器的地址192.168.1.1就是一个C类的私有地址。因为我们在家一般都是通过路由器使用NAT技术来联网,只有路由器才有真正的互联网IP,而其它设备只是在路由器所构建的局域网中,通过路由器来与互联网进行通信。
子网掩码
子网掩码是用来得到IP地址的网络地址的。
随着互联网发展,家庭互联网增加,越来越多的小型网络出现了,很多网络可能只有很少的几台互联网设备。但即使是C类地址也能分配给二百多个台设备,所以原有的ip分类就显得有些浪费了,而子网掩码就是为了解决这个问题出现的。
计算网络地址
ip地址与子网掩码相与即可得到网络地址
例:
ip:192.168.1.1 (11000000.10101000.00000001.00000001)
AND
子网掩码:255.255.255.0 (11111111.11111111.11111111.00000000)
=
网络地址:192.168.1.0 (11000000.10101000.00000001.00000000)
可以看出,二进制中的ip在子网掩码为1的位置不变,在子网掩码为0的位置变为零就是网络地址了。
缺省(默认)子网掩码
缺省子网掩码就是没有划分子网的子网掩码
- A类网络缺省子网掩码:255.0.0.0
- B类网络缺省子网掩码:255.255.0.0
- C类网络缺省子网掩码:255.255.255.0
子网划分
子网划分是子网掩码的主要用处之一,子网划分说白了就是向主机号借位,来划分出更多的小网络。
还是以C类网络192.168.1.x为例,在缺省的子网掩码下,无论x为多少,相与后必定为0,得到的唯一的网络地址192.168.1.0也就是说整个192.168.1.x是同一个网络。
子网划分方法
在划分子网后IP变为网络号+子网号+主机号的形式
向主机借1位后(既把子网掩码最高位的0改为1)
子网掩码:255.255.255.128(11111111.11111111.11111111.10000000)
再与192.168.1.x相与
x<128时
ip:192.168.1.x (11000000.10101000.00000001.0*******)
可得网络地址:192.168.1.0
x>128时
ip:192.168.1.x (11000000.10101000.00000001.1*******)
可得网络地址:192.168.1.128
可以看出,在向主机号借1位之后,原本为整体的一个网络划分为了子网号0和1的两个子网络。如果借两位那就会划分成四个以此类推。但是要注意,至少保留两位的主机号(因为主机号全0和全1有特殊含义,如果只剩1位那么就没有ip可用了)
CIDR无类别域间路由
CIDR出现后,IP的结构变成了网络号+主机号/网络号的位数,CIDR的网络的大小通过/网络号的位数来进行控制,因此对CIDR来说原本的ABC类地址,和子网的概念其实就不复存在了。
CIDR子网掩码计算
为了统一,子网掩码的概念仍然使用,网络号的位数是多少,就表示子网掩码的前多少位为1。
比如
原来
ip:192.168.1.1 子网掩码:255.255.255.0
现在
ip:192.168.1.1/24
网络地址则为:192.168.1.0/24
这样就不用再告诉路由器子网掩码,而且网络号与主机号的结构也更为清晰。
CIDR划分超网
CIDR还有一个作用那就是划分超网(将几个小网络合并成一个大网络)
超网的作用
从下图可以看出,路由器1无论是收到主机1还是主机2的ip都会转发到路由器2。
但是计算可以得到主机1的IP和主机2的IP的网络地址分别为192.168.1.0/25和192.168.1.128/25
这样在路由器1的路由表中就需要存储两个网络地址,但实际上都是转发到路由器2的。而划分超网之后,在路由器1中合并两个网络地址为192.168.1.0/24,那么,只需要存储1个网络地址即可,减少了路由器的开销。
当主机1的IP和主机2的IP在路由器1时,通过超网网络地址的网络号位数计算,所取得的网络地址都为超网的网络地址,因此仍然都会转发到路由器2。
超网计算
主机1的网络地址:
192.168.1.0/25 (11000000.10101000.00000001.00000000)
主机2的网络地址:
192.168.1.128/25(11000000.10101000.00000001.10000000)
比较两个网络地址可以发现,到第24位为止,两个网络地址都是相等的。将后面的全部视为主机号,只取前24位为网络号,就得到了合并后的超网网络地址
192.168.1.0/24(11000000.10101000.00000001.00000000)
个人博客:https://www.rainc.top/2020/03/31/essay/ip-address-study