IP地址与CIDR
IP(v4)地址是一个4字节(共32bit),32位的二进制的数字,被分为4段,每段8位,段与段之间用.号分隔,为了便于表达和识别,IP地址是以十进制形式表示,例如:127.0.0.1。由网络ID和主机ID组成,网络中唯一标识一台计算机。网络ID标识计算机所处的网段,主机ID标识计算机在网段中所处的位置。
网络ID的是Internet上的一个子网,而主机ID的是子网中的某台主机。网际地址分解成两个域后,带来了一个重要的优点:IP数据包从网际上的一个网络到达另一个网络时,选择路径可以基于网络而不是主机。在大型的网际中,这一点优势特别明显,因为路由表中只存储网络信息而不是主机信息,这样可以大大简化路由表。
IP地址分类:
为了方便IP寻址分为A、B、C、D、E五类,每类IP地址对各个IP地址中用来表示网络ID和主机ID的位数作了明确的规定。
1. A类
A类地址用IP地址前8位表示网络ID(1字节),后24位表示主机ID(3字节)。A类地址用来表示网络ID的第一位必须以0开始,其他7位可以是任意值, 当其他7位全为0是网络ID最小,即为0;当其他7位全为1时网络ID最大,即为127。完整的IP二进制:
00000000 . 000000000 . 000000000 . 000000000
a b c d
看a部分:
第一位为0,其他7位为0,那么a部分为00000000,转成十进制0*2^7+0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0 = 0
第一位为0,其他7位为1,那么a部分为01111111,转成十进制 0*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 127
网络ID不能为0,它有特殊的用途,用来表示所有网段,所以网络 ID最小为1. 网络ID不能为127;127用来作为网络环回测试用。
所以A类网络网络ID的有效范围是1-126共126个网络1.0.0.0~126.255.255.255,默认子网掩码/8,即255.0.0.0 (其中127.0.0.0~127.255.255.255为环回地址,用于本地环回测试等用途)。每个A类网络最多可以连接2^24-2台主机(2个保留地址)。
2. B类
B类地址用IP地址前16位表示网络ID(2字节),后16位表示主机ID(2字节)。B类地址用来表示网络ID的前两位必须以10开始,其他14位可以是任意值, 当其他14位全为0是网络ID最小,即为128;当其他14位全为1时网络ID最大,即为191。完整的IP二进制:
10000000 . 000000000 . 000000000 . 000000000
a b c d
看ab部分:
前2位为10,其他14位为0,那么ab部分为10000000 00000000,转成十进制1*2^7+0*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0 = 128
前2位为10,其他14位为1,那么ab部分为10111111 11111111,转成十进制 1*2^7+0*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 191
所以B类网络网络ID第一个字节有效范围是128-191,共16384个(2^14)B类网络128.0.0.0~191.255.255.255,默认子网掩码/16.每个B类网络最多可以连接2^16-2台主机(2个保留地址)。
3. C类
C类地址用IP地址前24位表示网络ID(3字节),后8位表示主机ID(1字节)。C类地址用来表示网络ID的前三位必须以110开始,其他21位可以是任意值, 当其他21位全为0是网络ID最小,即为192;当其他21位全为1时网络ID最大,即为223。,完整的IP二进制:
10000000 . 000000000 . 000000000 . 000000000
a b c d
看abc部分:
前3位为110,其他21位为0,那么ab部分为11000000 00000000 00000000,转成十进制1*2^7+1*2^6+0*2^5+0*2^4+0*2^3+0*2^2+0*2^1+0*2^0 = 192
前3位为110,其他21位为1,那么ab部分为11011111 11111111 11111111,转成十进制 1*2^7+1*2^6+0*2^5+1*2^4+1*2^3+1*2^2+1*2^1+1*2^0 = 223
所以C类网络网络ID第一个字节有效范围是192-223,共个2^21C类网络192.0.0.0~223.255.255.255,默认子网掩码/24.每个C类网络最多可以连接2^8-2(254台)台主机(2个保留地址)。
4. D类
一般于用组播,没有网络ID和主机ID之分,D类IP地址的第一个字节前四位必须以1110开始,其他28位可以是任何值,IP范围224.0.0.0~239.255.255.255。
5. E类
一般用于研究用途,没有网络ID和主机ID之分,E类IP地址的第一字节前四位必须以1111开始,其它28位可以是任何值,240.0.0.0~255.255.255.255(其中255.255.255.255为全网广播地址)
CIDR(无类域间路由)
将子网掩码转换为二进制,就会发现网络ID部分全部是1、主机ID部分全部是0。
CIDR(Classless Inter-Domain Routing,无类域间路由选择)它消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。它可以将好几个IP网络结合在一起,使用一种无类别的域际路由选择算法,使它们合并成一条路由从而较少路由表中的路由条目减轻Internet路由器的负担。
CIDR技术用子网掩码中连续的1部份表示网络ID,连续的0部份表示主机ID。比如,网络中包含2000台计算机,只需要用11位表示 主机ID,用21位表网络ID,则子网掩码表示为11111111.11111111.11100000.00000000,转换为十进制则为 255.255.224.0。此时,该网络将包含2046台计算机,既不会造成IP地址的浪费,也不会利用路由器连接网络,增加额外的管理维护量。
CIDR 还使用“斜线记法”,它又称为CIDR记法,即在IP地址后面加上一个斜线“/”,然后写上网络前缀所占的比特数(这个数值对应于三级编址中子网掩码中比特1的个数)。
CIDR表示方法:IP地址/网络ID的位数,比如192.168.23.35/21,其中用21位表示网络ID。
网络ID相同的计算机称之为本地网络,本地网络中的计算机相互通信不需要路由器连接;网络ID不相同的计算机称之为远程网络,远程网络中的计算机要相互通信必须通过路由器连接。
{% alert warning %} 注意:为什么计算IP地址时要减2,而计算子网数目时不减2呢?IP地址减2的原因是主机ID不能全为0也不能全为1;子网就不存在这个问题。 {% endalert %}