目录
I. IP地址的定义与组成
II. A、B、C、D和E类网络
III. 子网掩码
IV. 子网掩码与IP地址的计算
IV.I 计算IP地址的网络地址
IV.II 广播地址的计算
IV.III 网段地址范围的计算
IV.IV 最大主机数量与可用主机数量的计算
IV.V 子网掩码自身的计算
V. IP寻址的过程
V.I 通过子网掩码
V.II 使用 CIDR(无类别域间路由) 查找路由的算法:
高质量前端博主,点个关注不迷路!(近期一直忙于考研,暂时不能频繁更新,只能在研途将一些所学分享给大家!)
网络层的寻址地址,按IPv4长度为32比特。其中,整个IP地址又分为网络部分和主机部分,网络址
指明了一个子网的前缀(内中有很多主机),主机地址指明了具体在一个网络中的某个主机,因此网
络地址往往是固定的,主机地址不固定,用来分配给各个主机。
例如一个IP地址为: 192.168.1.1, 且前24位为网络地址,则后8位为主机地址,即网络地址:
192.168.1.0、主机地址:0.0.0.1
A类网络,前8位为网络地址,后24位为主机地址,子网掩码为255.0.0.0,支持224 – 2台主机,用
于规模特别大的网络使用,B类地址分配给一般的中型网络,C类地址分配给小型网络。
B类网络, 前16位为网络地址,后16位为主机地址,子网掩码为255.255.0.0,支持216 – 2台主机,
用于一般的中型网络。
C类网络, 前24位为网络地址,后8位为主机地址,子网掩码为255.255.255.0,支持28 – 2台主机,
用于给小型网络。
D类网络用于多点广播;E类网络因特网保留。
子网掩码是一个32位的2进制数,(抓住主谓宾,它就是一个数) 它必须结合IP地址一起使用。
其中,子网掩码二进制中的1的个数代表了网络位数,0的个数代表了主机位数,通过子网掩码的1
和0,进而确定一个子网的网络部分和主机部分的长度。
子网掩码有两个作用:
(1) 用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是
在远程网上;
(2) 用于将一个大的IP网络划分为若干小的子网络
但对于我们学习而言,认识到子网掩码就是将某个IP地址划分成“网络地址”和“主机地址”两部分就
足够了。即给定一个IP地址,通过子网掩码,我们能够确定出它的主机部分是什么,网络部分是什
么,各自有多长?这些通过子网掩码与IP地址的运算可以实现。(下一部分)
子网掩码与IP地址的计算主要有四种类型,以IP为192.168.1.1,子网掩码为255.255.255.0 为例子:
将IP地址与子网掩码做与运算,即可实现。
1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1
&
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
=
1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
从而得到网络地址为:
1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
即192.168.1.0 (即前24位为网络地址,后8位为主机地址)
网络地址不变,主机地址全部置为1,即得到广播地址。
继续前例,192.168.1.1 = 11000000 10101000 00000001 00000001
保留前24位网络地址,将最后8位全部置为1,得到广播地址:
11000000 10101000 00000001 11111111 = 192.168.1.255
网络地址 + 1是第一个主机地址, 广播地址 – 1 是最后一个主机地址
于是有:
(第一个)起始主机地址: 192.168.1.0 + 1 = 192.168.1.1
(最后一个)末尾主机地址: 192.168.1.255 – 1 = 192.168.1.254
该子网地址范围为: [192.168.1.1, 192.168.1.254]
最大主机数 = 2主机位数
可用主机数 = 最大主机数 – 2 (减去广播地址和网络地址)
本例: 最大主机数 = 28 = 256
可用主机数 = 256 – 2 = 254
子网掩码中1和0的个数可以确定一个子网的网络部分和主机部分的位数,因此当得知子网IP地址中
的网络部分和主机部分的位数,则可以反求出子网掩码:
例题: 一个局域网中的某台主机的 IP 地址是 176.68.160.12,使用 22 位作为网络地址,那么该局
域网的子网掩码是 ( )
a) 255.255.255.0 b) 255:255.248.0 c) 255.255.252.0 d) 255.255.0.0
于是,22位作为网络地址,说明子网掩码的前22位为1,后10位 0,从而确定选C。
(1) 从收到的数据报的首部提取目的IP地址D。
(2) 先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码和D逐
位相“与”,看结果是否和相应的网络地址匹配。 若匹配,则把分组进行直接交付(当然还需要把D
转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行(3)
(3) 若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由
器;否则,执行(4)
(4) 对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码和D逐位
相“与”(AND操作),其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明
的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由;否则,执行(6)。
(6) 报告转发分组出错。
(1) 从 ISP 收到的数据报中提取目的 IP 地址 D;
(2) 把 D 分别和 ISP 的路由器的路由表中已有的各项的掩码逐位相 “与”,将所得的逐位 AND 操作的
结果按顺序写出;
(3) 根据最长前缀匹配的原理选择目的网络, 把收到的数据报转发到所选择的匹配的目的网络, 即选
择匹配地址中更具体的一个。