🔍 开发者资源导航 🔍 |
---|
🏷️ 博客主页: 个人主页 |
📚 专栏订阅: JavaEE全栈专栏 |
IPv4(Internet Protocol version 4)是互联网最核心的通信协议之一,自 1981 年正式标准化以来,支撑了全球互联网近 40 年的发展,但是因为其数量的限制,正在逐步退出历史的舞台。
IPv4 因为使用 32 位地址,因此其理论最大地址数量为:
截止目前为止,IPv4已经全部使用殆尽。
2011 年 2 月 IANA(国际互联网号码分配机构) 宣布 IPv4 地址池耗尽,最后 5 个 /8 地址块分配给全球 5 个 RIR(区域互联网注册机构)。
2011 年 4 月 APNIC(亚太地区) 第一个耗尽 IPv4 地址的 RIR,仅保留少量地址用于过渡。
2012 年 9 月 RIPE NCC(欧洲) 宣布 IPv4 地址耗尽。
2014 年 6 月 LACNIC(拉丁美洲) 耗尽。
2015 年 9 月 ARIN(北美) 耗尽。
而对于这个问题,现在使用的主流解决方法是NAT技术或者升级为IPv6。
NAT技术
NAT(Network Address Translation)是一种 IP 地址转换技术,主要用于解决IPv4 地址短缺问题,并提高网络安全性。它的核心功能是 将私有 IP 地址映射到公网 IP 地址,使多个设备可以共享一个公网 IP 访问互联网。
NAT技术将IPv4地址划分为两个部分:
私网IP:10.* && 172.16。*-172.31.* && 192.168.*
公网IP:除了上述的都是
公网和私网的关系可以看做是一个包含关系,同一个局域网的私网IP使用同一个公网IP进行上网,公网的IP是唯一的,而私网的IP在不同的局域网中是可以重复的。
对于同一个局域网的私网IP他是动态变化的,每次上网时都是公网随机分配给你一个空闲的IP地址,当然你也可以手动设置成固定的一个值(偶尔可能会被占用)。
私网在访问网络时,会先通过公网IP,然后使用公网IP再去访问网络。
+-------------------+ +---------------------+ +---------------------+
| 私网设备 | | NAT 路由器 | | 互联网服务器 |
| (192.168.1.100) | ---> | (公网IP: 203.0.113.1)| ---> | (8.8.8.8) |
| | <--- | | <--- | |
+-------------------+ +---------------------+ +---------------------+
在NAT路由器中,存在一种映射关系,用于私网和公网之间的转换,不同的私网在使用公网IP时是通过端口号进行区分的。
在返回响应时也是如此,根据映射关系替换掉IP地址以及端口号,然后转发给私网的设备。
除此之外,在NAT背景下网络通信还有以下规则:
1.同一个局域网下,两个设备可以互相通信
由于同一个局域下,私网IP地址不存在重复的情况,并不会涉及NAT。
2.公网设备A可以访问公网设备B
公网也不涉及IP地址冲突。
3.不同局域网下的设备A和设备B不允许互相访问
NAT机制禁止这样的访问方式,这也进一步提高了网络安全。
4.公网设备A不允许访问私网设备B
并不是绝对的,可以利用内网穿透的方式进行转发。
IPv6
IPv6(Internet Protocol version 6)是 IPv4 的升级版本,旨在解决 IPv4 地址枯竭问题,并提供更高效、更安全的网络通信。
IPv6是128位的地址,可以存储2^128位地址(约 340 万亿亿亿亿),这个数量即使给地球上的每一粒沙子都分配一个地址都够用。
IPv4和IPv6都是网络层的协议,但是他们的数据包格式不同。
对比项 | IPv4 | IPv6 |
---|---|---|
地址长度 | 32 位(4 字节) | 128 位(16 字节) |
地址表示 | 192.168.1.1 | 2001:0db8:85a3::8a2e:0370:7334 |
源/目标 IP 字段 | 各 32 位 | 各 128 位 |
头部大小 | 20-60 字节(可变) | 40 字节(固定) |
IPv6数据包格式(部分)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 版本 (6) | 流量类别 | 流标签 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 载荷长度 | 下一个头部 | 跳数限制 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 源 IP (128 位) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 目标 IP (128 位) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IPv6 仍然使用 IP 协议(只是版本不同),但 IPv6 通常不需要 NAT,因为它的地址空间足够大(2^128
个地址),每台设备都可以有全球唯一的公网 IP。
IPv4和IPv6两种协议并不兼容,因此IPv6的普及依旧需要时间。
- 截至 2023 年:全球 IPv6 采用率约 40%(中国、印度超 50%,美国仅 30%)。
- 旧硬件/软件可能并不支持 IPv6。
长远角度来看,IPv6是解决该问题的终极方法,NAT技术可能会减少,但是不会完全消失。