【概述】
连接在 Internet 中的每一台主机或路由器,都会被分配一个 $32bit$ 的全球唯一标识符,即 IPv4 地址,常被称为 IP 地址
IP 地址的发展阶段经历分类 IP、子网划分、无分类编址三个阶段
本文主要介绍分类 IP
【分类 IP 的构成】
传统的 IP 地址是分类的地址,被分为 A、B、C、D、E 五大类,但无论是哪种 IP 地址,都由网络号、主机号两部分组成,即:
其中,网络号 Network Id
,用于标识主机或路由器所连接到的网络,一个网络号在整个 Internet 范围内是唯一的;主机号 Host Id
,用于标识该主机或路由器,一个主机号在它前面的网络号所指明的网络范围内必须是唯一的
【五类 IP 地址】
五类 IP 地址结构
下图说明了五类 IP 地址的结构
可以看出,对于常用的 A、B、C 类网络,有:
- A 类:网络号 $8bit$,用点分十进制表示时,范围从
0
到127
- B 类:网络号 $16bit$,用点分十进制表示时,范围从
128.0
到191.255
- C 类:网络号 $24bit$,用点分十进制表示时,范围从
192.0.0
到223.255.255
特殊用途 IP 地址
在各类 IP 地址中,有一些 IP 地址表示特殊用途,不能用作主机 IP 地址
网络号 | 主机号 | 作为源地址 | 作为目的地址 | 用途 |
---|---|---|---|---|
全 $0$ | 全 $0$ | 可以 | 不可以 | 本网范围内表示当前主机,路由表中表示默认路由 |
全 $0$ | 特定值 | 可以 | 不可以 | 本网范围内表示特定值表示的主机 |
全 $1$ | 全 $1$ | 不可以 | 可以 | 受限广播地址,常表示本网广播地址 |
特定值 | 全 $0$ | 不可以 | 不可以 | 网络地址,表示当前网络 |
特定值 | 全 $1$ | 不可以 | 可以 | 直接广播地址,对特定网络内所有主机进行广播 |
$127$ | 非全 $0$、全 $1$ | 可以 | 可以 | 环回地址,用于本地环回测试 |
使用范围
对于 A、B、C 类地址来说,在排除掉特殊用途的 IP 地址后,各类别 IP 地址的使用范围如下表
类别 | 最大可用网络数 | 第一个可用的网络号 | 最后一个可用的网络号 | 每个网络中最大的主机数 |
---|---|---|---|---|
A | $2^7-2$ | 1 |
126 |
$2^{24}-2$ |
B | $2^{14}-1$ | 128.1 |
191.255 |
$2^{16}-2$ |
C | $2^21-1$ | 192.0.1 |
233.255.255 |
$2^{8}-2$ |
其中,对于最大可用网络数来说,有:
- A 类:减去的 $2$ 分别为代表本网络的全 $0$、代表环回地址的全 $1$
- B 类:减去的 $1$ 为不可指派的
128.0
- C 类:减去的 $1$ 为不可指派的
192.0.0
【网络地址转换 NAT】
概述
网络地址转换(Network Address Translation,NAT),是指通过专用网络地址转换为公用网络地址,从而对外隐藏内部管理的 IP 地址
NAT 使得整个专用网只需要一个 IP 地址即可与 Internet 连通,大大减少了 IP 地址的消耗,同时,隐藏了内部网络结构,降低了内部网络受攻击的风险
私有地址
为了网络安全,分类 IP 划出了部分 IP 地址作为私有 IP 地址,这些私有 IP 仅用于局域网 LAN 中,不用于广域网 WAN 连接,同时,允许这些私有 IP 可被 LAN 重复使用
因此,私有 IP 不能直接用于 Internet,必须通过网关利用 NAT 将私有 IP 转换成 Internet 中合法的全球 IP 后才可使用,从而解决了 IP 地址不足的问题
私有 IP 的网段如下表所示
类别 | 网段个数 | 范围 |
---|---|---|
A | $1$ 个 A 类网段 10 |
10.0.0.0 到 10.255.255.255 |
B | $16$ 个 B 类网段 16 到 31 |
172.16.0.0 到 172.31.255.255 |
C | $256$ 个 C 类网段 0 到 255 |
192.168.0.0 到 192.168.255.255 |
NAT 路由与 NAT 转换表
使用 NAT 时,需要在专用网连接到因特网的路由器上安装 NAT 软件,该路由被称为 NAT 路由器,其至少有一个有效的外部全球 IP 地址
当使用本地地址的主机与外界通信时,NAT 路由器将使用 NAT 软件中的 NAT 转换表将本地地址转换为全球地址,或将全球地址转换为本地址,从而进行专用网与外部网络通信
NAT 转换表中存放着 {本地 IP:端口}
到 {全球 IP:端口}
的映射,通过这样的映射方式,即可令多个私有 IP 映射到同一个全球 IP 上
一个典型的 NAT 转换表如下图所示
需要说明的是,普通路由器在转发 IP 数据报时,不改变数据报的源 IP 地址与目的 IP 地址,而 NAT 路由器在转发 IP 数据报时,会转换数据报的源 IP 地址与目的 IP 地址
同时,普通路由器仅工作在网络层,NAT 路由器的 NAT 转发表由于涉及到端口,因此需要查看和转换传输层的端口号
【分组转发算法】
对于网络层来说,当采用分类 IP 时,路由器执行分组转发算法的算法流程如下:
1)从 IP 数据报的首部提取目的主机的 IP 地址 D,并从 D 中得出目的网络地址 N
2)若网络 N 与当前路由直接相连,则将 IP 数据报直接交付给目的主机 D,此时,被称为路由器的直接交付,否则,被称为路由器的间接交付,执行步骤 3)
3)若当前路由器的路由表中,含有目的地址为 D 的特定主机路由(对特定的目的主机指明一个特定的路由,通常为了控制或测试网络),则将 IP 数据报传送给路由表中指明的下一跳路由器,否则,执行步骤 4)
4)若当前路由器的路由表中,含有到达网络 N 的路由,则将 IP 数据报传送给路由表指明的下一跳路由器,否则,执行步骤 5)
5)若当前路由器的路由表中,含有一个默认路由,则将 IP 数据报传送给路由表中所指明的默认路由器,否则,执行步骤 6)
6)报告转发分组出错