目录
在 TCP/IP 体系中,IP 地址是一个最基本的概念。
1. IP地址及其表示方法
我们把整个互联网看成为一个单一的、抽象的网络。
IP 地址就是给每个连接在互联网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。
IP 地址现在由互联网名字和数字分配机构ICANN (Internet Corporation for Assigned Names and Numbers)进行分配。
IP 地址的编址方法
IP地址的编制地址共经过了三个历史阶段:
(1)分类的 IP 地址。这是最基本的编址方法,在1981年就通过了相应的标准协议。
(2)子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在1985年通过。
(3)构成超网。这是比较新的无分类编址方法。1993年提出后很快就得到推广应用。
分类IP地址
将IP地址划分为若干个固定类。
每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。
主机号在它前面的网络号所指明的网络范围内必须是唯一的。
由此可见,一个 IP 地址在整个互联网范围内是唯一的。
这种两级的 IP 地址可以记为:
IP 地址 ::= { <网络号>, <主机号>} (4-1)
::= 代表“定义为”
各类 IP 地址的网络号字段和主机号字段
点分十进制记法
例如:
11000000 00000101 00110000 00000011————192.5.48.3
00001010 00000010 00000000 00100101————10.2.0.37
2. 常用的三种类别的 IP 地址
IP 地址的指派范围
网络 类别 | 最大可指派 的网络数 | 第一个可指派的 网络号 | 最后一个可指派的 网络号 | 每个网络中 最大主机数 |
A | 126 (27 – 2) | 1 | 126 | 16777214 |
B | 16383 (214 – 1) | 128.1 | 191.255 | 65534 |
C | 2097151 (221 – 1) | 192.0.1 | 223.255.255 | 254 |
126 (27 – 2)中为什么要减2?
A 类地址的网络号字段占 1 个字节,只有 7 位可供使用(该字段的第一位已经被固定为 0),但可指派的网络号是 126 个(即 27 - 2)。减二的原因是:第一,IP 地址中的全 0 表示“这个(this)”。网络号字段为全 0 的 IP 地址是个保留地址,意思是“本网络”;第二:网络号为 127 (即 01111111)保留作为本地软件环回测试本主机的进程之间的通信之用。
若主机发送一个目的地址为环回地址(例如 127.0.0.1)的 IP 数据包,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的 IP 数据报永远不会出现在任何网络上,因为网络号为 127 的地址根本就不是一个网络地址。
A 类地址的主机号占 3 个字节,因此每一个 A 类地址中的最大主机数是 224 - 2,即 16777214。这里减 2 的原因是:全 0 的主机号字段表示该 IP 地址是“本主机”所连接到的单个网络地址(例如,一主机的 IP 地址为 5.6.7.8,则该主机所在的网络地址就是 5.0.0.0,我认为可以理解为 路由器ip),而全 1 表示“所有的(all)”,因此全 1 的主机号字段表示该网络上的所有主机。
IP 地址空间共有 232 个地址空间。整个 A 类地址空间共有 231 个地址,占整个 IP 地址空间的 50%。
A类IP地址的保留地址如下:
10.0.0.0 ~ 10.255.255.255是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)
127.0.0.0 ~ 127.255.255.255是保留地址,用做循环测试用的
0.0.0.0 ~ 0.255.255.255也是保留地址,用做表示所有的IP地址
由于网络号不能为全0和全1,所以网络号取得的最小值为0000 0001十进制为1,网络号取得的最大值为0111 1110十进制为126
实际上可用于分配的IP地址范围为 1.x.y.z ~ 126.x.y.z,其中x.y.z各位不能为全0或者全1
所以判断一个IP地址是不是A类地址,只要判断他的第一个十进制数是不是从1 ~ 126即可
B 类地址的网络号字段有 2 个字节,但前面两位(10)已经固定了,只剩下 14 位可以进行分配。因为网络号字段后面的 14 位无论怎样取值也不可能出现使整个 2 字节的网络号字段为全 0 或全 1,因此这里不存在网络总数减 2 的问题。但实际上 B 类网络地址 128.0.0.0 是不指派的,而可以指派的 B 类最小网络地址是 128.1.0.0。[注1] 因此 B 类地址可以指派的网络数为 214 - 1,即 16383。B 类地址的每一个网络上的最大主机数是 216 - 2,即 65534。这个需要减 2 是因为要扣除全 0 和全 1 的主机号。整个 B 类地址空间共约有 230 个地址,占整个 IP 地址空间的 25 %。
C 类地址有 3 个字节的网络号字段,最前面的 3 位是(110),还有 21 位可以进行分配。C 类网络地址 192.0.0.0 也是不指派的,可以指派的 C 类最小网络地址是192.0.1 [注1] [COME06],因此 C 类地址可指派的网络总数是 221 - 1,即 2097151。每一个 C 类地址的最大主机数是 28 - 2,即 254。整个 C 类地址空间共约有 229 个地址,占整个 IP 地址的 12.5%。
一般不使用的特殊的 IP 地址
网络号 | 主机号 | 源地址 使用 | 目的地址 使用 | 代表的意思 |
0 | 0 | 可以 | 不可 | 在本网络上的本主机(见 6.6 节 DHCP 协议) |
0 | host-id | 可以 | 不可 | 在本网络上的某台主机 host-id |
全 1 | 全 1 | 不可 | 可以 | 只在本网络上进行广播(各路由器均不转发) |
net-id | 全 1 | 不可 | 可以 | 对 net-id 上的所有主机进行广播 |
127 | 非全 0 或全 1 的任何数 | 可以 | 可以 | 用于本地软件环回测试 |
IP 地址的一些重要特点
(1) IP 地址是一种分等级的地址结构。分两个等级的好处是:
第一,IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。
(2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机 (multihomed host)。
由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。
(4) 所有分配到网络号 net-id 的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。
注1:在《计算机网络》第七版中,B、C网络类别可指派的网络数有所更改。