IP 地址
IP 就是一个编号,用 32 位二进制数表示,范围是 [0, 4294967295]。
为了阅读方便,IP 地址可以用点分十进制表示,也就是说,每八位用一个十进制数字表示,然后用小数点连接,比如 127.0.0.1。
那么,IP 的范围就可以表示为:0.0.0.0 ~ 255.255.255.255
总数:$2^{32} = 4294967296$ (约 43 亿)
分配机制
IP 的管理和分配是互联网号码分配局(Internet Assigned Numbers Authority,IANA)负责。
早期,IANA 是由美国南加州大学信息科学研究所(USC/ISI)依据美国国防部授权负责,后来移交给非盈利组织 ICANN。
由于互联网是从美国发展起来的,所以美国拿了大量可分配 IP 地址。
为了保证 IP 资源相对公平高效的分配,目前互联网的实际 IP 分配工作是在 IANA 的协调下,由五个区域互联网注册机构(Regional Internet Registry,RIR)负责:
- 美洲互联网号码注册管理机构(American Registry for Internet Numbers,ARIN)
管理北美、南极洲和部分加勒比地区事务 - 欧洲 IP 网络资源协调中心(RIPE Network Coordination Centre,RIPE NCC)
管理欧洲、中东和中亚地区事务 - 亚太网络信息中心(Asia-Pacific Network Information Centre,APNIC)
管理亚洲和太平洋地区事务 - 拉丁美洲及加勒比地区互联网地址注册管理机构(Latin American and Caribbean Internet Address Registry,LACNIC)
管理拉丁美洲和部分加勒比地区事务 - 非洲网络信息中心(African Network Information Centre,AfriNIC)
管理非洲事务
我国的网络地址就由 APNIC 分配。APNIC 总部之前在日本东京,后来由于成本问题,1998 年搬到了澳大利亚布里斯班。
非公网 IP(特殊用途地址)
最知名的 10/8
, 172.16/12
, 192.168/16
三个网段,我们在各种局域网中见到,完整的信息在负责网络地址分配的 IANA 那里可以拿到。
网段 | 数量 | 说明 |
---|---|---|
0.0.0.0/8 |
$2^{24} = 16777216$ | 本地网络,其中 0.0.0.0 表示本机。 |
10.0.0.0/8 |
$2^{24} = 16777216$ | 私有 |
100.64.0.0/10 |
$2^{16} \times 64 = 4194304$ | 私有, (100.64 - 100.127),ISP NAT |
127.0.0.0/8 |
$2^{24} = 16777216$ | 环回地址 |
169.254.0.0/16 |
$2^{16} = 65536$ | 链路本地地址(Link-local address) |
172.16.0.0/12 |
$2^{16} \times 16 = 1048576$ | 私有,(172.16 - 172.31) |
192.0.0.0/24 |
256 | IETF Protocol Assignments |
192.0.2.0/24 |
256 | TEST-NET-1 |
192.31.196.0/24 |
256 | |
192.52.193.0/24 |
256 | |
192.88.99.0/24 |
256 | IPv6 to IPv4 relay |
192.168.0.0/16 |
$2^{16} = 65536$ | 私有 |
192.175.48.0/24 |
256 | |
198.18.0.0/15 |
$2^{16} \times 2 = 131072$ | 私有,(192.18 - 192.19) |
198.51.100.0/24 |
256 | |
203.0.113.0/24 |
256 | MCAST-TEST-NET |
240.0.0.0/4 |
$2^{24} \times 16 = 268435456$ | (240 - 255),保留 |
不知道上面为什么没有列出组播网段 224/4
(224 - 239), 和 240/4
网段一样,共 268435456 个地址。
$2^{32} - (16777216 \times 3 + 4194304 + 65536 \times 2 + 1048576 + 256 \times 8 + 131072 + 268435456 \times 2) = 3702257664$
2 ** 32 - 16777216 * 3 - 4194304 - 65536 * 2 - 1048576 - 256 * 8 - 131072 - 268435456 * 2
3702257664
3702257664 * 100 / (2 ** 32)
392519680 * 100 / (2 ** 32)
392519680 * 100 / 3702257664
所以,可分配地址大约 37 亿,占总 IP 地址数的 86.2%。
根据 全中国一共有多少 IP 地址? 一文的计算(来自 APNIC 数据),中国(含港澳台)一共分配到 IP 地址大约 4 亿,占总 IP 数的 9.14,占可分配 IP 数的 10.6。
大陆 343881984
香港 12612096
澳门 336640
台湾 35688960
--------------
总计 392519680
网络分类
早期,可能包括我们的教科书,总是提到 A 类地址,B 类地址等概念。
标准的说法,叫做 Classful Addressing,分类地址,分级寻址,分类路由。
最早 IP 分配都是按照 IP 第一个字节分配,十分大方。但是最多只能分配 256 次。
眼看着网络发展壮大,接入的机构越来越多,这样下去 IP 地址根本就不够分。
所以想出了分级的概念,按照实际需求来分配 (RFC791, 1981)。
所有的 IP 按照前缀被分成 A, B, C, D, E 五类。
Class | 前缀位 | 网络地址位数 | 剩余的位数 | 网络数 | 每个网络的主机数 |
---|---|---|---|---|---|
A 类地址 | 0 | 8 | 24 | 128 | 16,777,214 |
B 类地址 | 10 | 16 | 16 | 16,384 | 65,534 |
C 类地址 | 110 | 24 | 8 | 2,097,152 | 254 |
D 类地址(群播) | 1110 | 未定义 | 未定义 | 未定义 | 未定义 |
E 类地址(保留) | 1111 | 未定义 | 未定义 | 未定义 | 未定义 |
比如:
A 类:100.0.0.0/8 0110
B 类:160.0.0.0/16 1010
C 类:208.0.0.0/24 1101
地址的分配按 8 位,16 位,24 位,三种级别,也就是说每次分配可以选择 256、65536、16777214,三种 IP 数量,IP 不够分配问题暂时得到缓解。
后来,IP 地址还是不够分配,又改成了更加合理的无类别域间路由(Classless Inter-Domain Routine)方案,支持 1, 2, 4, 8, 16, 32, 64, 128, 256, 512...更多细粒度的选择。
到现在为止,又支撑了一些年,不过眼看着 IP 最后还是会耗尽。
参考资料与拓展阅读
- 维基百科(en), IP address
- 维基百科(en), Reserved IP addresses
- 维基百科(en), List of assigned /8 IPv4 address blocks
- 维基百科(en), IPv4 >> Special-use addresses
- 维基百科, 分类网络
- 维基百科, 无类别域间路由
- 华为, IP 知识百科
- 淘宝 IP 地址库,统计报表
- IPIP,IP 库数据详情