IP地址长度为32位,常分成4个8位,一共有 2^32 = 4294961296 个IP地址。IP地址常使用点分十进制来表示(0~255. 0~255. 0~255. 0~255)
- 分类的IP地址
- 划分子网
- 无分类编址CIDR
分类的IP地址
IP地址分为 A、B、C、D、E 5类。其中DE为特殊类暂不记录。由上图可以得出ABC三类地址的子网数量和主机数量,如下表:
特殊的主机号
- 主机号为全1表示广播地址,向当前网络段所有主机发消息,不可分配为特定主机
- 主机号全0表示当前网络段,不可分配为特定主机
例如:
有一个 A类地址:1.2.3.4
(取出前8位 00000001
来判断)
1.0.0.0
,主机号全为0,表示A类地址的网络段,不可分配为特定主机
1.255.255.255
,表示1.0.0.0
网络段的广播地址,当给1.255.255.255
发送信息时,将会发送给该网络段的所有主机
特殊的网络号
- A类地址网络段全0(00000000)表示特殊网络
- A类地址网络段后7位全1(01111111:127)表示回环地址
- B类地址网络段(10000000.00000000:128.0)是不可使用的
- C类地址网络段(192.0.0)是不可使用的
减去 特殊的主机号 和 特殊的网络号,我们可以更新上表,如下:
划分子网
划分子网:把32位的IP地址的第25位分为 0
和 1
这个两个子网。
例如,C类地址 192.10.10.0
划分为两个子网 193.10.10.0 ~ 93.10.10.127
和 193.10.10.128 ~ 193.10.10.255
划分子网后,ABC类地址的子网号就会有很多了,有没有办法快速判断某个IP的网络号?
子网掩码
- 子网掩码和IP地址一样,都是32位
- 子网掩码由连续的1和连续的0组成
- 某一个子网的子网掩码具备网络号位数个连续的1
ABC类地址的子网掩码的点的十进制如下:
A类:255.0.0.0
B类:255.255.0.0
C类:255.255.255.0
例子:
现有IP 192.10.10.6,如何通过子网掩码快速的得到该IP地址的网络号呢?
192.10.10.6 的子网掩码为 255.255.255.128,用他们的二进制的每一位进行 &&运算
:
得到 11000001.00001010.00001010.00000000
,再换算为点的十进制,得193.10.10.0
。
所以IP 192.10.10.6的子网号为 193.10.10.0
无分类编址CIDR
- CIDR中没有A、B、C类网络号、和子网划分的概念
- CIDR将网络前缀相同的IP地址称为一个“CIDR地址块”
- 网络前缀是任意位数的