4.3 IPv4地址
# 4.3 IPv4地址
本节课我们介绍IPv4地址的基本概念
# 4.3.1 IPv4地址概述
- 在TCPIP体系中,IP地址是一个最基本的概念,我们必须把它弄清楚。
- IPv4地址就是给因特网上的一台主机或路由器的每一个接口,分配一个在全世界范围内是唯一的32比特的标识符。
- IP地址,由因特网名字和数字分配机构ICANN(The Internet Corporation for Assigned Names and Numbers))进行分配。
- 我国用户可向亚太网络信息中心(Asia-Pacific Network Information Center,APNIC)申请IP地址,这需要缴纳费用,一般并不接受个人申请。
- 2011年2月3日,因特网号码分配管理局宣布,IPv4地址已经分配完毕
- 我国在2014~2015年也逐步停止了向新用户和应用分配IPV4、地址,同时全面开展商用部署IPV6
IPV4地址的编制方法,经历了如下三个历史阶段,依次是分类编制的IP地址,划分子网的IP地址,无分类编制的IP地址,我们将在后续课程中对IPVC地址的这三种编制方法进行详细讨论。
为了能够更好的掌握IPVC地址的编制方法,我们首先应该掌握IPv4地址的表示方法。由于32比特的IPV4地址不方便阅读记录以及输入等,因此IPV地址采用点分十进制表示方法,以方便用户使用。
我们来举例说明,这是某个32比特的IPV4地址,将每8个比特分为一组,共4组,写出每组8比特所对应的10进制数,每个10进制数之间用点来分隔,这就是IPv4地址的点分10进制表示方法。
接下来请同学们参照我们所举的例子来做几个练习,这些练习题的答案如下所示,要正确做出这些练习题,关键在于掌握8位无符号二进制整数转十进制数的方法,这是8位无符号二进制整数的一般形式。
B0是8位无符号二进制整数的最低位,B7是其最高位,括号外面的2表示这是一个二进制数,将8位无符号2进制整数的个位乘以其权值后再相加,就可以得出相应的十进制数。我们应该熟悉8位无符号二进制整数,各位的权值,由高到低依次为128,64,32,16,8,4,2,1。接下来我们来举例说明该方法。
- 将8位无符号二进制整数10101010转换为10进制数,就是将它的个位乘以其权值后再相加,最后可以计算出10进制数为170
- 将8位无符号二进制整数1111 1100转换为10进制数。 对于这种比特0在整个8位无符号二进制整数中数量不多的情况,我们可以用10进制数255减去这些比特0位的权值,这样计算更简单,例如本例用255减去最低两位各自的权值2和1,得到10进制数252,
- 请将8位无符号二进制整数11110000转换为10进制数,
- 将8位无符号二进制整数10000001转换为10进制数。对于这种比特1在整个8位无符号二进制整数中数量不多的情况,我们可以直接将这些比特1位的权值相加,而不用写出整个转换表达式,这样计算更简单。例如本例最高位和最低位都为1,其他位为0,最高位的权值为128,最低位的权值为1,因此用128+1得到10进制数129。
在进行IPV4地址的相关计算时,将点分十进制的IPV4地址中的十进制正整数转换为8位无符号二进制数,也是经常需要用到的。
将十进制正整数转换为二进制数的常用方法,是除二取余法。我们来举例说明,将10进制数130转换为二进制数,
用130÷2得商65余0,用65÷2得商32余1,用32÷2得36余0,用16÷2得商8余0,用8÷2得34余0,用4÷2得商2余0,用2÷2得商1余0,用1÷2得商0余1,做到商为0时结束,从下往上将余数写成比特串,就可得到所转换出的二进制数。
除二取余法是十进制正整数转二进制数的一般方法。对于IPv4地址的点分十进制数转换为8位无符号二进制整数这种特定应用,我们可以采用更快速的凑值法来进行,这需要大家熟悉8位二进制无符号整数各位的权值。我们来举例说明,将10进制数171转换为二进制数,只要我们熟悉8位二进制无符号整数各位的权值,就不难写出这样的凑值表达式,这些就是8位二进制无符号整数各位的权值,而这些就是8位二进制无符号整数的各个位。
本节课的内容小结如下
# 4.3.2 分类编址的IPv4地址
本节课我们介绍IPv4地址编制方法的第一个历史阶段,也就是分类编制的IPv4地址,
分类编制的IPv4地址分为ABCDE 5类
- A类地址的网络号部分占8比特,主机号部分占24比特,网络号的最高位固定为零。
- B类地址的网络号部分和主机号部分各占16比特,网络号的最高两位,固定为10,
- C类地址的网络号部分占24个比特,主机号部分占8个比特,网络号的最高3位固定为110,
- D类地址是多播地址,其最高4位固定为1110
- E类地址是保留地址,及最高4位固定为1111,
- 需要注意的是只有A类,B类和C类地址可分配给网络中的主机或路由器的各接口。
- 主机号为全0的地址是网络地址,不能分配给主机或路由器的各接口,
- 主机号为全1的地址是广播地址,不能分配给主机或路由器的各接口。
我们首先来看A类地址的细节
8位网络号的最高位固定为0,第7位全部取0时,就是A类网络的最小网络号,其十进制值为0,该网络号被保留,不能指派。
因此A类网络第一个可指派的网络号为最高位固定为0,低7位为000 0001,其十进制值为1,将24位的主机号全部取0,就可以得到该网络的网络地址,且点分十进制为1.0.0.0,
当8位网络号的第7位全部取1时,就是A类网络的最大网络号,其十进制值为127,该网络号被用于本地软件环回测试,不能指派
将127开头的IPv4地址的主机号部分的最低位取1,其他位取0,就可得到最小的本地软件环回测试地址,且点分十进制为127.0.0.1,
将127开头的IPv4地址的主机号部分的最低位取0,其他位取1,就可得到最大的本地软件环回测试地址,且点分十进制为127.255.255.254
因此A类网络最后一个可指派的网络号为最高为固定为0,低7位为1111 110,10进制值为126,将24位的主机号全部取0,就可以得到该网络的网络地址,且点分10进制为126.0.0.0。
可指派的A类网络的数量是多少?我们可以写出这样的表达式,由于网络号占8位,并且其最高位固定为0,因此网络号有2的8减一次的组合,-2的原因需要去掉最小网络号0和最大网络号127,他们不能指派
每个A类网络中可分配的IP地址数量是多少呢?我们可以写出这样的表达式,由于主机号占24位,因此主机号有2~24次方个组合,-2的原因是要去掉主机号为全0的网络地址 和主机号为全1的广播地址。
也就是说,一个IP地址的第一个数如果是1~126,就是A类地址
再来看B类地址的细节,16位网络号的最高两位固定为10,
- 低14位全部取0时,就是B类网络的最小网络号,且点分时进制为128.0。该网络号是B类网第一个可指派的网络号,将16位的主机号全部取0,就可以得到该网络的网络地址,且点分十进制为128.0.0.0
- 16位网络号的最高两位固定为10,低14位全部取一时,就是B类网络的最大网络号,且点分时进制为191.255,该网络号是B类网最后一个可指派的网络号,将16位的主机号全部取0,就可以得到该网络的网络地址,且点分时进制为191.255.0.0。
- 可指派的B类网络的数量是多少,我们可以写出这样的表达式。由于网络号占16位,并且其最高两位固定为10,因此,网络号有2~16-2次个组合
- 每个B类网络中可分配的IP地址数量又是多少,我们可以写出这样的表达式。由于主机号占16位,因此主机号有2的16 次个组合,-2的原因是要去掉主机号为全0的网络地址,和主机号为全一的广播地址。
- 需要说明的是有些教材中指出128.0是保留网络号,B类第一个可指派的网络号为128.1,但根据2002年9月发表的RFC3330文档,128.0网络号已经可以分配了,有兴趣的同学可以自行查询,以128.0开头的IP地址,看看他们属于哪些国家。
- 也就是说,IP地址第一个开头的如果是128~191,就是B类地址
再来看C类地址的细节,24位网络号的最高三位固定为110,
- 低21位全部取0时,就是C类网络的最小网络号,且点分时进制为192.0.0,该网络号是C类网第一个可指派的网络号,将8位的主机号全部取0,就可以得到该网络的网络地址,且点分十进制为192.0.0.0
- 24位网络号的最高三位固定为110,低21位全部取1是,就是C类网络的最大网络号,写点分十进制为223.255.255,该网络号是C类网最后一个可指派的网络号,将8位的主机号全部取0,就可以得到该网络的网络地址,其点十时进制为223.255.255.0。
- 可指派的C类网络的数量是多少呢?我们可以写出这样的表达式,由于网络号占24位,并且其最高三位固定为110,因此网络号有2的24减3次个组合。
- 每个C类网络中可分配的IP地址数量是多少,我们可以写出这样的表达式。由于主机号占8位,因此主机号有2的8次方个组合,减2的原因是要去掉主机号为全名的网络地址和主机号为全1的广播地址。
- 需要注意的是有些教材中指出,192.0.0是保留网络号,C类第一个可指派的网络号为192.0.1,但根据2002年9月发表的RFC3330文档,192.0.0网络号已经可以分配了,只不过目前还没有分配出去。
- 也就是说,IP地址第一个开头的如果是192~223,就是C类地址
接下来我们来做一些练习,判断这些IPv4地址属于哪个类别,是否可以分配给主机或路由器的各接口。
- 根据地址左起第一个10进制数的值,可以判断出网络类别:小于127的为A类,128~191的为B类,192~223的为C类,
- 根据网络类别就可找出地址中的网络号部分和主机号部分,A类地址的网络号为左起第一个字节,B类地址的网络号为左起前两个字节,C类地址的网络号为左起前三个字节,
- 以下三种情况的地址不能指派给主机或路由器接口,A类网络号0和127不能指派,主机号为全0的地址不能指派,因为这是网络地址
- 主机号为全1的地址不能指派,因为这是广播地址。
请同学们根据我们所做的分析,填写两个表格的内容
这是计算机专业考研全国统考计算机网络部分2017年的题36,答案是选项A
我们来一起分析一下,地址0.0.0.0是一个特殊的IPv4地址,只能作为源地址使用,表示在本网络上的本主机。封装有DHCP发现报文的IP分组的源地址,使用0.0.0.0。 以127开头,且后面三个字节非全0或全1的IP地址,是一类特殊的IPv4地址,既可以作为源地址使用,也可以作为目的地址使用,用于本地软件环回测试。例如常用的环回测试地址127.0.0.1,
地址255.255.255.255是一个特殊的IPv4,地址只能作为目的地址使用,表示只在本网络上进行广播,各路由器均不转发。
综上所述,选项A正确,这些是一般不使用的特殊IP地址,希望大家记住
再来看这道练习题,请根据本节课所学内容,给出下图各网络的IPv4、地址分配方案,请按照节约IP地址的原则进行分配。
我们来一起分析一下,首先应该找出图中都有哪些网络,
这是一个网络,这也是一个网络。三台交换机互联起来的交换式以太网也是一个网络,
不要忘记两台路由器通过一段链路直连,他们的直连接口也属于同一个网络,
- 之后可以根据各网络中主机和路由器接口总数量,来决定给各网络分配哪个类别的网络号。该网络的主机数量为65534加上一个路由器接口,需要可分配的IP地址数量为65535,只能给该网络分配一个A类网络号,
- 该网络的主机数量为254,加上一个路由器接口,需要可分配的IP地址数量为255,可以给该网络分配一个A类或B类网络号。本着节约IP地址的原则,给该网络分配一个B类网络号,
- 该网络的主机数量为40,再加上一个路由器接口,需要可分配的IP地址数量为41,给该网络分配一个A类B类或C类网络号都可以,本着节约IP地址的原则,给该网络分配一个C类网络号,
- 该网络没有主机,只有两个路由器接口,需要可分配的IP地址数量为2,给该网络分配一个A类B类或C类网络号都可以。本着节约IP地址的原则,给该网络分配一个C类网络号,
- 依据所确定的网络号类别,为每个网络挑选一个网络号,A类网络号的取值范围是1~126,可在该范围内挑选一个网络号,分配给网络
- B类网络号的取值范围是128.0~191.255可在该范围内选一个网络号分配给网络,
- C类网络号的取值范围是192.0.0~223.255.255,可在该范围内挑选一个网络号分配给网络,
- 在挑选另一个分配给网络,不同网络的网络号不能相同,
- 网络号分配完毕后,就可给各网络中的各主机和路由器的各接口,分配IP地址了。
- 需要注意的是所分配的IP地址应该互不相同,并且其主机号部分不能出现全0,因为这是网络地址,也不能出现全1,因为这是广播地址,网络地址或广播地址都不能分配给主机或路由器的各接口,因为他们无法唯一标识一台主机或路由器的某个接口,
小结:
# 4.3.3 划分子网的IPv4地址
本节课我们介绍IPv4地址编制方法的第二个历史阶段,也就是划分子网的IPv4地址。我们首先来举例说明,为什么会出现划分子网这样的需求,如图所示某单位有一个大型的局域网,需要连接到因特网,如果申请一个C类网络地址,其可分配的IP地址数量只有254个,不够使用。因此该单位申请了一个B类网络地址,其可分配的IP地址数量达到了65,534个,给每台计算机和路由器的接口,分配一个IP地址后,还有大量的IP地址剩余。
这些剩余的IP地址只能由该单位的同一个网络使用,而其他单位的网络不能使用。随着该单位计算机网络的发展和建设,该单位又新增了一些计算机,并且需要将原来的网络划分成三个独立的网络,我们称其为子网一、子网二和子网三。假设子网一仍然使用原先申请到的B类网络地址,那么就需要为子网二和子网三各自申请一个网络地址,但这样会存在一些弊端,申请新的网络地址,需要等待很长的时间,并且要花费更多的费用。
即便申请到了两个新的网络地址,这也会使其他路由器的路由表新增针对这两个新的网络的路由记录。另外这样还会浪费原有网络中剩余的大量IP地址。
如果可以从IP地址的主机号部分借用一些位作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量IP地址,而不用申请新的网络地址。
例如对于本例,我们可以借用16位主机号中的8位作为子网号,假设我们给子网一分配的子网号为0,给子网二分配的子网号为1,给子网三分配的子网号为2,之后就可以给各子网中的主机和路由器接口分配IP地址了。
现在请大家思考这样一个问题,如果我们未在图中标记子网号部分,那么我们和计算机又是如何知道分类地址中主机号有多少位被用作了子网号?
这样我们就引出了一个划分子网的工具,他就是子网掩码,32比特的子网掩码,可以表明分类IP地址的主机号部分,被借用了几位作为子网号。
如图所示,这是32比特的分类IPv4地址,它有网络号和主机号两部分构成。
当我们从主机号部分借用一些位作为子网号时,IP地址从两级结构的分类IP地址变成了三级结构的划分子网的IP地址,我们用连续的比特一来对应网络号和子网号,用连续的比特0来对应主机号,这样就构成了划分子网的IP地址的32比特的子网掩码,
将划分子网的IP地址与相应的子网掩码进行逻辑与运算,也就是逐比特相与,就可得到IP地址所在子网的网络地址,如图所示这样网络号和子网号被保留,而主机号被清零,结果为IP地址所在子网的网络地址。
接下来我们来举例说明划分子网的细节,已知某个网络的地址为218.75.230.0,使用子网掩码255.255.255.128,对其进行子网划分,请给出划分细节。
我们一起来分析,这是题目给定的网络地址,从它的左起第一个十进制数可知,这是一个C类网络地址,因此网络号占三个字节,主机号占一个字节。
这是题目给定的子网掩码,这3个10进制数255,其二进制为24个连续的比特1,他们对应IP地址中的网络号部分,而该子网掩码中的十进值数128,用来表示从IP地址的主机号部分借用多少比特来作为子网号,我们将其转换为8个二进制比特,其中只有1个比特1,这叫表明从主机号部分借用一个比特作为子网号,因此可划分出的子网数量为二的一次,也就是两个,每个子网可分配的地址数量为2的8-1次,然后再减去2,也就是126个。
由于原来的8位主机号被借走一位作为子网号,因此主机号还剩7位,这就是表达式装8-1的原因,可有2的7次方个组合,但是我们还要去掉主机号为全0的网络地址和全1的广播地址,这就是表达式中-2的原因。
我们先来看看题目所给的C类网地址,218.75.230.0的细节,218.75.230.0是该网络上的第一个地址,由于这是一个C类网地址,因此网络号占三个字节,主机号占一个字节,将网络号保持不变,而主机号取最大值255,这就是该网络上的最后一个地址。该C类网共有256个地址,其中第一个地址作为该网络的网络地址,也就是主机号全0的地址,最后一个地址作为该网络的广播地址,也就是主机号全1的地址,
这是比网络地址大一的地址,也就是该网络可分配给主机或路由器接口的最小地址,
这是比广播地址小一的地址,也就是该网络可分配给主机或路由器接口的最大地址
因此。该网络可分配给主机或路由器接口的地址数量为254个,之前我们已经分析过了
题目所给的子网掩码表明从主机号部分借用一个比特作为子网号,也就是将该C类网均分为两个子网,我们将主机号写成8比特的形式,
- 从主机号借用1个比特作为子网号,子网号只能是0或1,这就是子网0的网络地址,我们将其写成点分10进制形式。
- 保持网络号和子网号不变,主机号从7个比特0增加到7个比特1,这就是子网0的广播地址,我们将其写成点分十进制形式,
- 这是比子网0的网络地址大一的地址,也就是子网0可分配给主机或路由器接口的最小地址,我们将其写成点分10进制形式,
- 这是比子网0的广播地址,小一的地址,也就是子网0可分配给主机或路由器接口的最大地址,我们将其写成点分10进制形式,
- 这是比子网0广播地址大一的地址。请注意它的子网号部分为1个比特1,主机号部分为7个比特0,也就是说这是子网一的网络地址,我们将其写成点分10进制形式,
- 保持网络号和子网号不变,主机号从7个比特0增加到7个比特1,这就是子网一的广播地址,我们将其写成点分10进制形式,
- 这是比子网一的网络地址大一的地址,也就是子网一可分配给主机或路由器接口的最小地址,我们将其写成点分10进制形式,
- 这是比子网一的广播地址,小一的地址,也就是子网一可分配给主机或路由器接口的最大地址,我们将其写成点分10进制形式,
可见使用子网掩码255.255.255.128,可将C类网218.75.230.0均分为两个子网。
接下来请同学们参照我们所举的例子,完成这道练习题。本题的解答如下所示,希望同学们都能正确完成。
我们再来练习一道考研题,这是计算机专业考研全国统考计算机网络部分2012年的题39,答案是选项D
这是题目所给的IP地址。从它的左起第1个十进制数可知,这是一个B类网络地址,因此网络号占两个字节,主机号也占两个字节,
这是题目所给定的子网掩码,这两个10进制数255,其二进制为16个连续的比特1,他们对应IP地址中的网络号部分,而该子网掩码中后面两个10进制数,252和0,用来表示从IP地址的主机号部分借用多少个比特来作为子网号。我们将其转换为16个二进制比特,其中有连续6个比特1,这就表明从主机号部分借用6个比特作为子网号,
我们将IP地址的主机号部分转换成二进制形式,然后将子网掩码中连续6个比特一所对应的主机号部分作为子网号,
将网络号和子网号保持不变,而将主机号的10个比特全部取零就可以得到该主机所在子网的网络地址。写成点分十进制形式为180.80.76.0,
将网络号和子网号保持不变,而将主机号的10个比特全部取1,就可以得到该主机所在子网的广播地址,写成点分10进制形式为180.80.79.255。因此本题的答案为选项D
最后我们介绍默认子网掩码的概念,默认子网掩码是指在未划分子网的情况下使用的子网掩码:
- 这是A类地址,由8位网络号和24位主机号构成。根据子网掩码的构成规则,我们用8个连续的比特1对应IP地址中的8位网络号,用24个连续的比特0对应IP地址中的24位主机号,这样就要构成了A类地址的默认子网掩码,且点分十进制形式为255.0.0.0,
- 这是B类地址,由16位网络号和16位主机号构成。根据子网掩码的构成规则,我们用16个连续的比特1对应IP地址中的16位网络号,用16个连续的比特0对应IP地址中的16位主机号,这样就构成了B类地址的默认子网掩码,且点分时十制形式为255.255.0.0
- 这是C类地址,由24位网络号和8位主机号构成。根据子网掩码的构成规则,我们用24个连续的比特1对应IP地址中的24位网络号,用8个连续的比特0对应IP地址中的8位主机号,这样就构成了C类地址的默认子网掩码,写点分10进制形式为255.255.255.0
本节课的内容小结如下,希望大家能重点掌握这部分内容
# 4.3.4 无分类编址的IPv4地址
我们介绍IPv4地址编制方法的第三个历史阶段,也就是无分类编制的IPv4地址,尽管我们上次课所介绍的划分子网的IPv4、地址,在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网,因为其地址空间太小,并没有得到充分使用,而因特网的IP地址仍在加速消耗,整个IPv4地址空间面临全部耗尽的威胁。
为此因特网工程任务组又提出了采用无分类编制的方法来解决IPv4地址紧张的问题,同时还专门成立了IPv6工作组,负责研究新版本IP,以彻底解决IP地址耗尽的问题。
1993年因特网工程任务组发布了无分类域间路由选择的相关RFC文档,无分类域间路由选择的英文缩写词为CIDR可以读作sider,CIDR消除了传统A类B类和C类地址,以及划分子网的概念,因此可以更加有效的分配IPv4的地址空间,并且可以在新的IPv6使用之前,允许因特网的规模继续增长。
CIDR使用斜线记法或称为CIDR记法,也就是在IPv4地址后面加上斜线,在斜线后面写上网络前缀所占的比特数量。我们来举例说明,这是一个IPv4地址,在其后面写上斜线,斜线后面写上数字20,这就表明在32位IPv4地址的前20个比特为网络前缀,剩余12个比特为主机号。
实际上 CIDR将网络前缀都相同的连续的IP地址组成一个CIDR地址块,我们只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的全部细节,包括最小地址,最大地址,地址块中的地址数量,地址块聚合某类网络的数量以及地址掩码。
我们来举例说明,请给出CIDR地址块128.14.35.7/20的全部细节,斜线后面的数字为20,表明该IPv4地址的前20个比特为网络前缀,也就是说所给地址左起第一个字节,第二个字节以及第三个字节的前4个比特构成20比特的网络前缀,剩余12个比特为主机号,因此我们需要将该地址的第3个字节和第4个字节转换成二进制的形式,这样我们就可以很容易看出20比特的网络前缀和12比特的主机号。
将20比特的网络前缀保持不变,12比特的主机号全部取0,就可以得到该地址块的最小地址,点分10进制为128.14.32.0,将20比特的网络前缀保持不变,12比特的主机号全部取一,就可以得到该地址块的最大地址。点分10进制为128.14.47.255,该地址块中的地址数量为2的32-20次方个,因为32比特的IPv4地址中,前20个比特为网络前缀,剩余12比特为主机号,因此主机号可有2的12次方个组合,
聚合C类网的数量,用该地址块中地址数量除以一个C类网的地址数量2的8次方个,即可得出为2的4次方,即可以划分为16个C类网。聚合路由的作用:可以减少路由表的数量。例如将所有C类网的路由记录,聚合成一个。
地址掩码为20个连续的比特1和12个连续的比特0。20个连续的比特一用来对应网络前缀,12个连续的比特0用来对应主机号,将其写成点分时进制为255.255.240.0。
接下来请同学们参照我们所举的例子来完成这道习题
接下来我们介绍CIDR中有关路由聚合的概念,路由聚合也称为构造超网。我们来举例说明,如图所示路由器R1与5个网络以及路由器R2直接相连,路由器R1和R2互为相邻路由器,它们周期性的通告自己所知道的路由信息给对方。请大家思考一下,R1应该将怎样的路由信息通告给R2
如果R1将自己直连的这5个网络的路由记录都通告给R则R的路由表会增加5条路由记录,为了减少路由记录对路由表的占用,能否将这5条路由记录聚合成1条?
答案是肯定的,其方法是找共同前缀,也就是找出这5个目的网络地址的共同前缀,这5个目的网络地址的左起前2个字节都是相同的,从第三个字节开始不同,因此只需将第三个字节转换成二进制形式,这样就可以很容易找出这5个目的网络地址的共同前缀,共22个比特,我们将其记为斜线22,将共同前缀保持不变,而剩余的10个比特全部取0,然后写成点分10进制形式放在斜线22的前面,这就是聚合后的地址块,也可以称为超网。
通过本地我们还可以看出网络前缀越长,地址块越小,路由就越具体。需要说明的是若路由器查表转发分组时,发现有多条路由可选则选择网络前缀最长的那条,这称为最长前缀匹配,因为这样的路由更具体。
这是计算机专业考研全国统考,计算机网络部分2011年的题38,答案是选项C
这是题目所给的网络地址,斜线后面的数字为30,表明该IPv4地址的前30个比特为网络前缀,也就是说所给地址,左起第1个字节,第2个字节,第3个字节以及第4个字节的前6个比特构成30比特的网络前缀,剩余两个比特为主机号,因此我们需要将该地址的第4个字节转换成二进制的形式,这样我们就可以很容易看出30比特的网络前缀和两比特的主机号。将30比特的网络前缀保持不变,两比特的主机号全部取0,就可以得到该网络的最小地址,这也是该网络的网络地址,且点分十进制为192.168.4.0,
将30比特的网络前缀保持不变,两比特的主机号全部取一,就可以得到该网络的最大地址。这也是该网络的广播地址,其点分10进制为192.168.4.3,这是比网络地址大1的地址,也就是该网络中可分配给主机或路由器接口的最小地址,且点分10进制为192.168.4.1,这是比广播地址小1的地址,也就是该网络中和分配给主机或路由器接口的最大地址,其点分时进制为192.168.4.2。
题目中给定IP分组的目的地址为192.168.4.3,这是该网络的广播地址,因此该网络上的所有主机都能收到,由于该网络只有两个可分配的IP地址,因此网络中的主机数量最大为2,那么可以收到该IP分组的最大主机数就是2。
再来看2018年的提38,答案是选项C
路由聚合的方法是找共同前缀,也就是找出题目所给的这4个目的网络地址的共同前缀。这4个目的网络地址的左起前2个字节都是相同的,从第三个字节开始不同,因此只需将第三个字节转换成二进制形式,这样就可以很容易找出这4个目的网络地址的共同前缀,共19个比特,我们将其记为斜线19,将共同前缀保持不变,而剩余的13个比特全部取0,然后写成点分10进制形式放在斜线19的前面,这就是聚合后的目的网络地址
本节课的内容小结如下,希望大家能重点掌握这部分内容。
# 4.3.5 IPv4地址的应用规划
本节课我们介绍IPv4地址的应用规划,也就是给定一个IPv4地址块,如何将其划分成几个更小的地址块,并将这些地址块分配给互联网中的不同网络,进而可以给各网络中的主机和路由器接口分配IPv4地址,一般有以下两种方法:
- 一种是采用定长的子网掩码进行划分。就是使用同一个子网掩码来划分子网
- 另一种是采用变长的子网掩码进行划分。就是使用不同的子网掩码来划分子网
采用定长的子网掩码来划分子网,每个子网所分配的IP地址数量相同,容易造成IP地址浪费
而采用变长的子网掩码来划分子网,每个子网所分配的IP地址数量可以不相同,尽可能减少了对IP地址的浪费。
接下来我们举例说明,采用定长的子网掩码划分子网的方法,假设我们申请到了一个C类网络,218.75.230.0,要使用定长的子网掩码,给图中所示的小型互联网中的各设备分配IP地址。我们首先来统计一下图中各网络所需的IP地址数量。来看网络N1的IP地址需求,N1中有6台主机,因此主机需要的地址数量为6个,有1个路由器接口,因此路由器接口需要的地址数量为1个,再加上N1自身的网络地址1个和广播地址1个,总共需要9个IP地址。
再来看网络N2的IP地址需求,N2装有25台主机,因此主机需要的地址数量为25个,有1个路由器接口,因此路由器接口需要的地址数量为一个,再加上N2自身的网络地址一个和广播地址1个,总共需要28个IP地址,
相信同学们可以很容易的统计出网络N3和N4各自所需的IP地址数量
请注意我们可将途中两个路由器之间的这段链路看成是网络N5,其中没有主机,因此主机需要的地址数量为0,有两个路由器接口,因此路由器接口需要的地址数量为2个,再加上N5自身的网络地址一个和广播地址一个,总共需要4个IP地址,这样我们就可得到本例的应用需求,也就是将C类网218.75.230.0划分成5个子网,每个子网上可分配的IP地址数量不得少于各自的需求
这是所申请到的C类网地址218.75.230.0,这是它的3字节网络号,这是它的1字节主机号,我们需要从主机号部分借用3个比特作为子网号,这样可划分出的子网数量为2的3次方个,也就是8个,可以满足我们对子网数量的要求,而每个子网上的地址数量为2的8-3次个,也就是32个,可以满足我们对子网上IP地址数量的要求。这样我们就可以得出划分子网所需的子网掩码,用3个10进制数255来对应网络号部分,也就是用24个连续的比特1来对应网络号,而最后8个比特为1110 0000,其中3个连续的比特1表示,从主机号部分借用三个比特作为子网号,将这8比特写成10进制数为224。
接下来我们来看划分子网的细节:
- 这是24比特网络号部分,这是从主机号部分借用的3比特作为子网号部分,这是剩余的5比特主机号部分,
- 这是子网1的网络地址,这是它的点分十进制形式,
- 将网络号和子网号保持不变,主机号从5个比特0增长到5个比特1,就可得到子网一的广播地址,这是它的点分十进制形式。
- 这是比子网1的网络地址大1的地址,它是子网1上个分配给主机或路由器接口的最小地址,这是他的点分时进制形式
- 这是比子网1的广播地址小1的地址,它是子网1上可分配给主机或路由器接口的最大地址,这是它的点分十进制形式,
- 这是比子网1的广播地址大1的地址,它是子网2的网络地址,这是它的点分10进制形式,
- 将网络号和子网号保持不变,主机号从5个比特0增长到5个比特1,就可得到子网2的广播地址,这是它的点分10进制形式,
- 这是比子网2的网络地址大1的地址,它是子网2上可分配给主机或路由器接口的最小地址,这是它的点分十进制形式,
- 这是比子网2的广播地址小1的地址,它是子网2上可分配给主机或路由器接口的最大地址,这是它的点分十进制形式,
- 这是比子网2的广播地址大1的地址,它是子网3的网络地址,这是它的点分十进制形式,
- 以此类推,我们可以得到划分子网的全部细节
现在我们就可以从子网1~8中任选5个,分配给图中的网络N1到N5。通过本地可以看出采用定长的子网掩码进行子网划分,只能划分出二的N次方个子网,其中N是从主机号部分借用的用来作为子网号的比特数量,每个子网所分配的IP地址数量相同,容易造成IP地址的浪费。
例如图中的网络5只需要4个IP地址,但是我们只能给他分配32个IP地址,这样就造成了IP地址的严重浪费。
接下来我们举例说明,他用变成的子网掩码划分子网的方法,本例与之前的例子基本一样,只是划分子网的方法,改为采用变长的子网掩码,这是我们之前就统计过的各网络所需IP地址的数量。既然网络N1需要9个地址,那么分配给网络N1的地址的主机号应为4个比特,因为2的4次方等于16,这样网络N1就可有16个地址。由于使用4个比特作为主机号,因此剩余28个比特可作为网络前缀。
既然网络N2需要28个地址,那么分配给网络N2的地址的主机号应该为5个比特,因为2的5次方等于32,这样网络N2就可有32个地址,由于使用5个比特作为主机号,因此剩余27个比特可作为网络前缀,
相信同学们可以很容易的得出分配给网络N3 N4 N5的地址中的主机号所占比特数量和网络前缀所占比特数量。
我们将所得出的各网络所需地址块的大小标注在它们各自的旁边,这样我们就可得到本利的应用需求,
也就是从地址块218.75.230.0/24中,取出5个地址块,按需分配给图中所示的5个网络,218.75.230.0/24地址块所包含的全部地址如下所示,我们需要在该地址块中给图中所示的网络N1到N5分配子块,分配的原则是每个子块的起点位置不能随意选取,只能选取块大小整数倍的地址作为起点,建议大家先给大的子块进行分配。
- 例如将这32个地址作为一个地址块,分配给网络N2,地址块中最小的地址就是N2的网络地址,最大的地址就是N2的广播地址,网络地址和广播地址之间的这些地址,可分配给N2中的主机或路由器接口。我们将网络N2所分配到的地址块标注在它的旁边,
- 将这16个地址作为一个地址块分配给网络N1,地址块装最小的地址就是N1的网络地址,最大的地址就是N1的广播地址,网络地址和广播地址之间的这些地址,可分配给N1中的主机或路由器接口。我们将网络N1所分配到的地址块标注在它的旁边,
- 将这16个地址作为一个地址块分配给网络N3。地址块中最小的地址就是N3的网络地址,最大的地址就是N3的广播地址,网络地址和广播地址之间的这些地址,可分配给N三中的主机或路由器接口。我们将网络N三所分配到的地址块标注在它的旁边
- 将这16个地址作为1个地址块分配给网络N4,地址块装最小的地址就是N4的网络地址,最大的地址就是N4的广播地址,网络地址和广播地址之间的这些地址,可分配给N4中的主机或路由器接口。我们将网络N4所分配到的地址块标注在它的旁边,
- 将这4个地址作为1个地址块分配给网络N5。地址块中最小的地址就是N5的网络地址,最大的地址就是N5的广播地址,网络地址和广播地址之间的这些地址,可分配给N5中的主机或路由器接口。我们将网络N5所分配到的地址块标注在它的旁边,
- 原地址块装还剩余这些地址可以留作今后分配。通过本例可以看出采用变长的子网掩码进行子网划分,可以按需划分出相应数量的子网,每个子网所分配到的IP地址数量可以不相同,尽可能减少了对IP地址的浪费。
- 例如图中的网络5只需要4个IP地址,我们也非常精确的给他分配了4个IP地址,没有造成IP地址的浪费。
最后请同学们参照本节课所介绍的两个例子,完成下面这道习题。本题的答案并不唯一
本节课的内容小结如下