IP地址
IP地址(IPV4)分为A类、B类、C类、D类组播、E类保留五类,其中A、B、C三类为常用地址,D类组播、E类保留两类为特殊用途地址。
IP地址二进制形式表现为4段8位合32位二进制,主机号全0表示网络号,主机号全1表示广播号不是有效地址。
A类
最高位(标红)始终是0;最左端1组1段8位(下划线)为网络号,后3段24位为主机号;1个A类地址包含的地址数量是-2=16777214个,减掉的2个是后3段24位主机号全为0和全为1的地址。
类别 | 点分十进制 | 二进制 | |
A类 | 0.0.0.0 | 最低 | 00000000 00000000 00000000 00000000 |
127.255.255.255 | 最高 | 01111111 11111111 11111111 11111111 |
B类
最高2位(标红)始终是10;左端2组8段16位(下划线)为网络号,后2段16位为主机号;1个B类地址包含的地址数量是-2=65534个,减掉的2个是后2段16位主机号全为0和全为1的地址。
类别 | 点分十进制 | 二进制 | |
B类 | 128.0.0.0 | 最低 | 10000000 00000000 00000000 00000000 |
191.255.255.255 | 最高 | 10111111 11111111 11111111 11111111 |
C类
最高3位(标红)始终是110;左端3组8段24位(下划线)为网络号,后1段8位为主机号;1个C类地址包含的地址数量是-2=254个,减掉的2个是后1段8位主机号全为0和全为1的地址。
类别 | 点分十进制 | 二进制 | |
C类 | 192.0.0.0 | 最低 | 11000000 00000000 00000000 00000000 |
223.255.255.255 | 最高 | 11011111 11111111 11111111 11111111 |
D类组播和E类保留
类别 | 点分十进制 | 二进制 | |
D类组播 | 224.0.0.0 | 最低 | 11100000 00000000 00000000 00000000 |
239.255.255.255 | 最高 | 11101111 11111111 11111111 11111111 | |
E类保留 | 224.0.0.0 | 最低 | 11110000 00000000 00000000 00000000 |
239.255.255.255 | 最高 | 11111111 11111111 11111111 11111111 |
由上可知A、B、C3类地址中,每个地址所包含的地址数量都是固定的,固定数量的地址在实际应用中存在问题,例如此时为一个公司分配IP地址,该公司有500台主机,此时若分配C类地址,因为1个C类地址只包含254个地址,所以不够用,若分配B类地址,1个B类地址包含65534个地址,太过浪费,所以此时提出子网划分。
子网划分
在子网划分中:
需要将给定的十进制点分IP地址划分为二进制;
将一个网络划分成多个子网需要取部分主机号当子网号,将多个网络合并成一个大的网络需要取部分网络号当主机号;
子网掩码就是存在于子网号与主机号之间;
在二进制IP地址中,子网掩码为1对应的是网络号,子网掩码为0对应的是主机号;
判断出子网掩码之后,将子网掩码左侧全部化为1,将右侧全部化为0;
最后将二进制IP地址化为十进制点分IP地址得到子网掩码。
例题一:
将B类IP地址168.195.0.0划分成27个子网,子网掩码为多少?
十进制点分IP地址 | 二进制IP地址 |
168.195.0.0 | 10101000 11000011 00000000 00000000 |
B类地址中,前2段8位合16位二进制数是网络号,后2段8位合16位是主机号;
网络号 | 主机号 |
10101000 11000011 | 00000000 00000000 |
而子网号存在于网络号和主机号中间,因为题中要求将大的网络划分为子网,那么就需要根据子网需求划定部分主机号为子网号。
二进制数有0和1两种状态,因此一位二进制数可以确定2个子网,3位二进制数可以确定8个子网,由此可知=2;=8;得公式=N;k表示二进制位数,N表示子网个数,(大多数是一种≥N的状态)≥27可知k=5即需要将5位主机号划定为子网号,根据子网掩码的定义(在二进制IP地址中,子网掩码为1对应的是网络号,子网掩码为0对应的是主机号;)将主机号最左侧5位划为子网号将0改为1
网络号 | 子网号 | 主机号 |
10101000 11000011 | 11111 | 000 00000000 |
注:
确切来讲应该是使用-2=N作为公式,因为前面提到要抛除主机号全为0和主机号全为1的地址,但是随着设备的更新,现在这两个被抛除的地址已经逐渐被接受并可以正常使用,所以目前采取公式=N
判断出子网号之后,将子网号左侧全部化为1,将右侧全部化为0得二进制子网掩码
子网掩码 |
11111111 11111111 11111000 00000000 |
最后将二进制子网掩码化为十进制点分IP地址得到子网掩码
二进制子网掩码 | 十进制点分子网掩码 |
11111111 11111111 11111000 00000000 | 255.255.248.0 |
例题二:
将B类IP地址168.195.0.0划分成60个子网,子网掩码为多少?
十进制点分IP地址 | 二进制IP地址 |
168.195.0.0 | 10101000 11000011 00000000 00000000 |
B类地址中,前2段8位合16位二进制数是网络号,后2段8位合16位是主机号;
网络号 | 主机号 |
10101000 11000011 | 00000000 00000000 |
=N,≥60可知k=6即需要将6位主机号划定为子网号,根据子网掩码的定义(在二进制IP地址中,子网掩码为1对应的是网络号,子网掩码为0对应的是主机号;)将主机号最左侧6位划为子网号将0改为1
网络号 | 子网号 | 主机号 |
10101000 11000011 | 111111 | 00 00000000 |
判断出子网号之后,将子网号左侧全部化为1,将右侧全部化为0得二进制子网掩码
子网掩码 |
11111111 11111111 11111100 00000000 |
最后将二进制子网掩码化为十进制点分IP地址得到子网掩码
二进制子网掩码 | 十进制点分子网掩码 |
11111111 11111111 11111000 00000000 | 255.255.252.0 |
例题三:
将B类IP地址168.195.0.0划分为若干个子网,每个子网内有主机700台,子网掩码为多少?
十进制点分IP地址 | 二进制IP地址 |
168.195.0.0 | 10101000 11000011 00000000 00000000 |
首先计算700台电脑对应700个主机号,700个主机号需要多少二进制位实现,=512小于700;=1024大于700可以用;因此满足700个主机号需要10位二进制数;
由上分析可知,在二进制的IP地址中能确定右边10位用作主机号,那么中间6位划做子网号
二进制IP地址 | 二进制子网掩码 |
10101000 11000011 00000000 00000000 | 11111111 11111111 11111100 00000000 |
将二进制子网掩码转化为十进制点分子网掩码
二进制子网掩码 | 十进制点分子网掩码 |
11111111 11111111 11111100 00000000 | 255.255.252.0 |
无分类编址(无类域间路由)
打破原有的IP分类,在主机号之后加/n,n表示将IP地址转化成二进制之后前面n位是网络号;
例如:
十进制点分IP地址 | 二进制IP地址 |
128.14.32.0/20 | 10000000 00001110 00100000 00000000 |
表示十进制点分IP地址转化为二进制之后前20位是网络号,共包含个地址;
网络号 | 主机号 |
10000000 00001110 0010 | 0000 00000000 |
但是主机号全为0和主机号全为1得地址一般不使用,一般使用的地址个数是-2个
最大地址 | 主机号全为1 | 10000000 00001110 00101111 11111111 |
最小地址 | 主机号全为0 | 10000000 00001110 00100000 00000000 |
例题:
分配给某公司网络的地址块是210.115.192.0/20,该网络可以被划分为多少个C类子网?
地址块210.115.192.0/20转化为二进制之后前20位是网络号,而C类地址前24位是网络号,将此地址转化为C类子网还可以将此IP地址的4位主机号划为子网号,而4位主机号可以决定=16个子网,所以可以划分为16个C类子网。
十进制点分IP地址 | 二进制IP地址 |
210.115.192.0/20 | 11010010 01110011 11000000 00000000 |