IPv4的编址:
IPv4的地址有32位,通过使用点分十进制法,将其划分成4个由“.”隔断的部分,每一个部分的取值是0~255 {2^0~(2^8)-1}
IP地址是32位类似这样的二进制串:1100 0000 1111 1111 1111 1111 1111 1110(没有空格,空格是为了好看加上的),因为不易辨识,每8位合成一个十进制数字,然后用“.”分隔,得到192.255.255.254,这也可以表示一个IP地址
网络地址:表示互联网子网的地址,互联网是网络的网络,即由很多个子网通过形成不同的层次组织成的更大的网络,子网内才是真实的网络终端
主机地址:在一个子网中的网络终端的地址,一般而言,一个IP对应的是一个网络接口,一个网卡有一个网络接口,然后一台主机可以有多个网卡
传统的编址方式:将IP地址分为A、B、C、D、E五类
- A类:IP地址转换成二进制后以0开头,网络地址占8位,主机地址占24位,点分十进制即0.0.0.0~127.255.255
- B类:IP地址转换成二进制后以10开头,网络地址占16位,主机地址占16位,点分十进制即128.0.0.0~191.255.255
- C类:IP地址转换成二进制后以110开头,网络地址占24位,主机地址占8位,点分十进制即192.0.0.0~223.255.255
- D类:IP地址转换成二进制后以1110开头,和A、B、C类地址用途不同,不是表示网络终端的,而是用于多播的地址,点分十进制即224.0.0.0~239.255.255
- E类:IP地址转换成二进制后以1111开头,目前保留不用,点分十进制即240.0.0.0~255.255.255
从上,可以看到,传统的IPv4编址方式不够灵活,很容易出现一个子网,如果使用一个B类地址表示子网内主机数太浪费,而是用一个C类地址又不足以表示所有子网内主机的情况,使得IP资源被浪费。然后就出现了无类别域间选址(CIDR)
* 一些特殊用途的IP地址:下面几个IP段,它们是保留IP,在公网中是不可使用的,只能使用在固定的小范围内。
- 用于内网:10.0.0.0~10.255.255
- 用于私有网络:172.16.0.0~172.31.255.255
- 用于NAT网络(后面讲):192.168.0.0~192.168.255.255
无类别域间选址(CIDR):通过将IP地址配合一个叫做子网掩码的32位数使用,可以将IP灵活地以任意位数为网络地址。形如:a.b.c.d/x 其中x为子网掩码,表示IP地址a.b.c.d等同的二进制串从高位开始有x位表示网络地址,剩余部分表示主机地址,x还可以表示成一个32位的二进制串,从左往右(从高位到低位)有x个1,剩余部分为0,然后用点分十进制转换成一个形式与IP地址相同的串
Eg:
- IP地址:1100 0000 1111 1111 1111 1111 1111 1110 这是一个用32位二进制表示的地址,使用点分十进制,每8位二进制转换成一个十进制数字,然后用“.”分隔,得到地址:192.255.255.254
- 子网掩码:192.255.255.254/8,表示192.255.255.254对应的二进制串从高位到低位(从左往右)有8位表示网络地址,将子网掩码转换成二进制串就是:
1111 1111 0000 0000 0000 0000 0000 0000,再转换成点分十进制,也就是就是255.0.0.0。这里8,还有255.0.0.0都可以表示子网掩码
CIDR下的网络地址和主机地址:
CIDR化的IP很灵活,同一个IP地址,对于不同的子网掩码代表的就是不同子网的不同主机,那么问题来了,CIDR化的IP怎么确认网络地址和主机地址?
方法:将点分十进制的IP地址和子网掩码都转换成二进制,然后相“与”(&),得到的结果,就是网络地址(用二进制串或者再转换回点分十进制均可),而主机地址由IP地址减(-)网络地址得出