1、什么是IP地址
IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照CP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。包括主机地址和网络地址两部分。如11000000 10101000 00000001 00000110(192.168.1.6)
2、什么是子网掩码
-
子网掩码(subnet masking)的功能是告知主机或路由设备,地址的哪一部分是网络号,包括子网的网络号部分,哪一部分是主机号部分。
-
子网掩码使用与IP地址相同的编址格式,即4个8位组的32位长格式。
-
在子网掩码中,网络部分和子网络部分对应的位全为“1”,主机部分对应的位全为“0”
-
通过将子网掩码与IP地址进行“与”操作,可提供所给定的IP地址所属的网络号(包括子网络号)
172.31.128.255/18
其中18就是子网掩码,表示32位中高18位是1,其它位为0。它的二进制形式为11111111.11111111.11000000.000000,转为十进制就是255.255.192.0,为了方便我们习惯于写单个数字18表示子网掩码
3、ip地址的两种表示方式
- 原始的划分方式
左边的某些连续位表示网络号,右边的某些连续位表示主机号,那么我们平常在讨论这一系列问题的时候,会有一个“网络地址”的概念,一般来说网络地址并不等于IP地址,网络地址就是IP地址中的网络号,将主机号置0,就可以得到网络地址。
- 目前使用的最新方式:CIDR
CIDR中已经废弃了IP地址的分类,无分类编址的命名也是由此得来的,所以目前基本已经不再采用所谓的A类、B类、C类的IP地址分类表示法,引入一个额外的子网掩码(subnet mask)来区分网络号和主机号;子网掩码也是一个32位的正整数. 通常用一串 “0” 来结尾;将IP地址和子网掩码进行 “按位与” 操作, 得到的结果就是网络号;网络号和主机号的划分与这个IP地址是A类、B类还是C类无关;
3、特殊的一类IP地址
例子: 给定IP地址和子网掩码 172.31.128.255 / 18
1、网络号
公式:将IP地址的二进制和子网掩码的二进制进行“&”(and)运算,得到的结果就是网络号。“&运算”的规则是1&1=1,0&1=0,1&0=0,0&0=0。
2、主机号
公式:用IP地址的二进制和(子网掩码的二进制的反码)进行“&”运算,得到的结果就是主机号。反码就是将原本是0的变为1,原本是1的变为0。
3、广播地址
公式:在得到网络号的基础上,将网络号右边的表示IP地址的主机部分的二进制位全部填上1,再将得到的二进制数转换为十进制数就可以得到广播地址。因为本题中子网掩码是11111111.11111111.11000000.00000000, 0有14个,主机位是14,我们将网络号172.31.128.0,转换为二进制是 10101100.00011111.10000000.00000000,从右边数起,将14个0全部替换为1, 即:10101100.00011111.10111111.11111111,这就是这个子网的广播地址的二进制表示法。将这个二进制广播地址转换为十进制就是
172.31.191.255
4、可用IP地址范围
因为网络号是172.31.128.0,广播地址是172.31.191.255,所以子网中可用的IP地址范围就是从网络号+1 ~广播地址-1,所以子网中的可用IP地址范围就是从172.31.128.1-172.31.191.254。
5、子网数目
首先将/18换成为我们习惯的表示法:
11111111.11111111.11000000.000000转为十进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是一致的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B类大网进行子网划分。B类掩码默类是用16位(16个0)来表示可分配的IP 地址,这里的掩码在B类默认掩码的基础上多出了两个表示网络号的1,也就是向主机位借了两个1这就是说是将B类大网划分为2的2次方个子网(2^n,n表示所借1的个数),所以最终的子网数目是4
例子: 已知IP 192.168.1.133 ,子网掩码为255.255.255.192;求划分的子网的个数和范围
首先将子网掩码写为二进制的形式方便观察将其转换成二进制后和255.255.255.0对比可发现,前掩码的前24位没有变化,只是在原来表示主机号的部分头两位变成了1。
我们把IP地址中的前24位(192.168.1)先不关注,因为前24位对应掩码没有变化它们始终表示网络号。
- 原本255.255.255.192在192为0,及255.255.255.0的情况下属于C类地址的默认子网掩码
- 按照子网掩码的定义,子网掩码1所对应的位为网络号位,而0所对应的位为主机号位
- 主机号中被借走了两位用来表示网络号了,这就是子网号。二进制一位用0或1表示,那么占用了两位就有2*2=4种表示,这里占用了2位,也就是说我们将原有的192.168.1.0这个网络分成了四份,即4个子网)这四段的网络号分别是00000000、01000000、10000000、11000000,现在我们将它们转换成10进制就分别是0、64、128、192,现在把前24位加进来。
- 此时再来看广播地址,既然我们把一个网段分成了四份,它就应该有4个广播地址。广播地址的定义是主机号位全位1的地址就是广播地址。所以这四个网段的广播地址末八位就是00111111、01111111、10111111、11111111,转换成10进制分别为63、127、191、255。加上原来的网络号位,广播地址就是
四个网段中去除网络地址和广播地址中间的部分就是可用的主机IP地址了。则可用IP为
例: 学校新建5个机房,每个房间有30台机器,如果给定一C类网络地址:192.168.1.0,问如何将其划分为5个子网,子网掩码该如何设置?
子网划分建议按以下步骤和实例计算子网掩码:
- 将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。
- 取上述要划分子网数的2m的幂m。如2^3,即m=3。
- 将上一步确定的幂m按高序占用主机地址m位后转换为十进制。
- 如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。
- 如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为255.255.224.0;如果是A类网,则子网掩码为255.224.0.0。
23 =8(大于5的最小的2的整幂次数),向主机号中借走三位作为网络号,而剩下的5位主机号,每个网段内可容纳的主机数是25即32,可用主机需要再减2即为30,满足每个房间30台机器的题目要求。取23的幂,即3,即占用了主机号中的高3位即为11100000,转换为十进制为224,所以该地址为C类地址的子网掩码应该设置为255.255.255.224。各机房IP和子网掩码配置如下(已经去掉广播地址和主机地址):
其它:
-
IP地址块为211.168.15.192/26、211.168.15.160/27和211.168.15.128/27三个地址块经聚合后可用地址数为(A)
A.126 B.62 C.128 D.68
地址聚合无非是找出它们相同的部分…将两个分配的IP地址块最后一部分换算成二进制(因为只有最后一部分不相同),之后可得出新的子网掩码(子网掩码中相同的部分用1表示,不同的部分用0表示):
211.168.15. 11000000 211.168.15. 10100000 211.168.15. 10000000
可得聚合地址块为211.168.15. 10000000,即211.168.15. 128
掩码是IP二进制前面相同的位数,由于从 1~25位三个子网完全相同,所以经过聚合后的地址为211.168.15. 128/25,所以可用地址为:2^(32-25)-2=126 -
如果将网络IP段40.15.128.0/17划分成2个子网,则第一个子网IP段为40.15.128.0/18,则第二个子网为:(D)
A.40.15.129.0/18 B.40.15.128.128/18 C.40.15.192.0/17 D.40.15.192.0/18
1.IP地址32位,分为两段:网络地址+主机地址。其中可由主机地址分离出一些位来作为子网地址 2.斜线后的数字是表示用多少位来表示网络地址,这里很明显是17位,那么只有15位表示主机地址 3.这里分成了两个子网,也就只需要用一位来表示。也就是第18位 4.第一个地址的第十八位明显是0,第二个只能是1 -
对于IP地址130.63.160.2,MASK为255.255.255.0,子网号为(B)
A.160.2 B.160 C.63.160 D.130.63.160
30.63.160.2是B类IP地址,B类IP地址前16位(两个字节)为网络号,后16位是主机号,划分子网就是将主机号中的一部分拿出来当做子网号,这里子网掩码为255.255.255.0也就是把前三个字节当成了网络号,与B类IP默认的前两个字节作为网络号相比,第三个字节就是子网号,就是160。所以这个ip的网络号是130.63 ,子网号是 160 ,主机号是2
总结:本篇总结了IP计算方面的一些常见问题,不足之处欢迎指正,觉得写得不错的可以点个赞