当前位置: 首页 > news >正文

IPv4枯竭时代:从NAT技术到IPv6的演进之路

  

在这里插入图片描述


🔍 开发者资源导航 🔍
🏷️ 博客主页: 个人主页
📚 专栏订阅: JavaEE全栈专栏

IPv4(Internet Protocol version 4)是互联网最核心的通信协议之一,自 1981 年正式标准化以来,支撑了全球互联网近 40 年的发展,但是因为其数量的限制,正在逐步退出历史的舞台

IPv4 因为使用 32 位地址,因此其理论最大地址数量为:

2^{32}=4,294,967,296(约 42.9 亿个)

截止目前为止,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都是网络层的协议,但是他们的数据包格式不同。

对比项IPv4IPv6
地址长度32 位(4 字节)128 位(16 字节)
地址表示192.168.1.12001: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技术可能会减少,但是不会完全消失。

http://www.dtcms.com/a/292140.html

相关文章:

  • C++函数 vs Go函数
  • C++ 中重载函数右值引用和左值引用匹配的优先级
  • 【机器学习】第四章 回归算法
  • 主流开源LLM架构对比与突破·
  • 控制器(Controller)模块的架构与工作流程 -OpenExo
  • Azure可靠性架构指南:构建云时代的高可用系统
  • Java函数指南:从Function到BiFunction的深度解析
  • 电商项目_秒杀_架构及核心
  • 【Linux】进程概念
  • 以Java程序员角度理解MCP
  • 项目复盘核心要点
  • SQL Server 查询优化
  • Vue 脚手架基础特性
  • 前端自动化埋点:页面模块级行为跟踪与问题定位系统​​的技术设计方案
  • 浏览器地址栏输入URL回车后白屏分析
  • 【Web APIs】JavaScript 节点操作 ④ ( 节点操作案例 - 下拉菜单案例 )
  • Java+Vue构建的固定资产内控管理系统,融合移动端便捷与后台管理强大功能,模块完备,提供全量源码,轻松实现资产智能管控
  • 第十二章 用Java实现JVM之结束
  • 学习pwn需要的基本汇编语言知识
  • 漫画版:细说金仓数据库
  • LangGraph基础教程
  • 理解后端开发中的API设计原则
  • 哈希算法(Hash Algorithm)
  • 2025乐彩V8影视系统技术解析:双端原生架构与双H5免签封装实战 双端原生+双H5免签封装+TV级性能优化,一套代码打通全终端生态
  • Visual Studio Code 远端云服务器开发使用指南
  • gflags使用
  • Java 大视界 -- Java 大数据在智能交通自动驾驶车辆与周边环境信息融合与决策中的应用(357)
  • 新手向:基于Python的桌面便签与待办事项管理工具
  • [ARM]MDK出现报错error: A\L3903U的解决方法
  • Gradio, Streamlit, Dash:AI应用开发的效率之选