本文引用图片均来自 高军: 计算机网络
概述
在TCP/IP
体系中,IP地址
是最基本的概念,本文侧重于IPv4
地址
IPv4地址就是给因特网上每一台主机(路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符
IP地址
由因特网名字和数字分配机构ICANN(Internet Corporation for Assigned Names and Numbers)
进行分配,在我国个人用户的IP地址
一般都是从网络运营商
(电信、移动、联通等)处获取的
IP地址
是会被耗尽
的,IPv4地址
数量为,大约43亿
,在2011年2月3日
,IPv4地址
就已经分配完了
。我国在2014年至2015年也逐步停止向新用户和应用分配IPv4地址
,同时开始部署IPv6地址
,IPv6地址
数量为,在可预见的将来都不会耗尽
为了方便使用,IPv4地址
采用点分十进制
表示法:
IPv6
则将128位
划分成8个16位
的小段,每段的16位
中每4位
换算成16进制
字符,每个小段使用冒号
相隔,例如:1050:0000:0000:0000:0005:0600:300c:326b
IPv4编址
方法经历了三次迭代:
- 分类编址(1981年)
- 划分子网(1985年)
- 无分类编址(1993年)
下面简单介绍三种编址方法
分类编址
在分类编址中,IPv4地址
总共被分为A、B、C、D、E
五类,每类地址都是网络号+主机号
的格式,每类地址的网络号前几位
都是固定
的
以上各类地址中只有A、B、C
类地址可以分配给网络中的主机或路由器接口。另外,任意一类
地址中,主机号为全0
或全1
的地址都是保留地址
,全0的为网络地址
,全1的为广播地址
,都不能分配
地址指派
A类地址: A类地址中网络号0(7位网络号全0)
和127(7位网络号全1)
保留不指派,其中127
作为本地回环测试地址
(如常用的127.0.0.1),所以A类地址可指派网络数量为个,每个网络可分配的地址数量(可容纳的主机及路由器接口数量)为(减去主机号全0和全1的)
B类地址: B类地址没有保留的网络号,网络号范围为128.0(14位网络号全0)
到191.255(14位网络号全1)
,可指派的网络数量位,每个网络可分配的地址数量为(减去主机号全0和全1的)
C类地址: C类地址没有保留的网络号,网络号范围为192.0.0(21位网络号全0)
到223.255.255(21位网络号全1)
,可指派的网络数量位,每个网络可分配的地址数量为(减去主机号全0和全1的)
下面则是一些特殊的地址:
划分子网编址
先看例子:一个公司需要组网,内部有500
台主机,这时需要申请一个B类地址
。B类地址
可分配地址数量为,远超公司主机数量,大量的地址浪费
掉了
假设随着公司发展,需要将原来的网络划分为3
个独立网络,那么就需要新申请
两个网络地址,这会耗费
时间和资金,也会增加网络中路由器的负担
基于以上地址浪费和新申请网络耗费时间和资源等缺点,人们提出了子网
的概念。子网就是从原网络地址的主机号
中划分一部分作为子网号
在上例中,B类地址
有16比特网络号
和16比特主机号
,在主机号中划分8个比特
作为子网号就能划分出个子网,每个子网有8比特
主机号可以使用
在划分子网后公司就不用申请新的网络地址,且每个子网都有足够的地址分配给主机
子网掩码
子网是概念上的划分,单从IP地址
本身是看不出来的,所以需要子网掩码
来表明分类IP地址
的主机号有多少比特
被划分为子网号
子网掩码由连续的比特1
后接连续的比特0
组成,比特1
覆盖住分类IP地址的网络号和子网号
,结合IP地址
所在分类
分析就能得出主机号中有多少比特
被用来划分子网,进而知道每个子网有多少主机号
等信息。子网掩码
和IP地址
进行与运算
就能得到IP地址
所在子网的网络地址
下图是一个划分子网的C类IPv4地址
,子网号占1
比特,可以发现,划分子网后无非是多了一层子网号
,每个子网主机号的分配与普通分类IP地址
相同
一个网络如果没有划分子网,那么将使用默认子网掩码
,A、B、C
类网络的默认子网掩码比特1
的长度和网络号
长度相同
无分类编址
无分类编址准确讲应该叫做无分类域间路由选择CIDR(Classless Inter-Domain Routing)
,它消除
了传统的分类地址
以及划分子网
的概念可以更有效
的分配IPv4地址
CIDR地址
采用网络前缀+主机号
的格式,使用斜线记法
,在IPv4地址
后加斜线,斜线后写网络前缀
所占的比特数
CIDR
将网络前缀
相同的连续地址
称为CIDR地址块
,知道了地址块中任意一个
地址及网络前缀比特数量,我们就能推断
该地址块的全部细节
:
- 地址块的最小地址
- 地址块的最大地址
- 地址块中的地址数量
- 地址块聚合某类(A类、B类、C类)网络的数量
- 地址掩码(也可继续称为子网掩码)
下例展示从128.14.35.7/20
推断CIDR地址块
信息的细节
路由聚合
路由聚合也称构造超网
,简单讲就是找到一系列地址的最长共同前缀
并使用共同前缀作为网络前缀构造一个新的CIDR地址块(超网)
路由聚合可以缩减路由表
减小路由器负担,在下例中如果采用传统方法路由器R2
需要在路由表中增加5条
记录
但是对地址进行聚合后可以构造一个新的地址块(超网)172.1.4.0/22(最长公共前缀+剩余位置全0)
,此时路由器R2
的路由表只需增加一条记录
另外,如果路由器查表转发时发现有多条路由可选那么将选择网络前缀最长
的,称为最长前缀匹配
CIDR地址
分配规则
和前面章节提到的其他编址方法一样,此时可简单的将网络前缀当作网络号看待
参考文献
- 【1】高军: 计算机网络