IPv4 + IPv6 = IPv10?是的,IPv10就是IPV4 + IPv6!

2023-05-16

你一定知道IPv4和IPv6,IPv6号称为地球上每一粒沙子都分一个IP地址。你有可能也听过大名鼎鼎的IPv9,但是从数学上面考虑,IPv10肯定比IPv9厉害啊。

前面发了一篇IPv6的协议规范RFC8200,正式发布时间是2017年7月份,它废止了RFC2460,RFC2460又废止了RFC1883,RFC1883的草案是1995年3月份提出来的。什么概念呢?1994年4月,中国NCFC(中国国家计算机与网络设施,The National Computing and Networking Facility of China)率先与美国NSFNET(美国国家科学基金会网络,national science fund network)直接互联,实现了中国与Internet全功能网络连接,标志着我国最早的国际互联网络的诞生。也就是说,中国接入互联网的第二年,美国人就已经在研究IPv6了。

时间又过了22年,在2017年9月2日,也就是RFC8200正式发布两个月之后,埃及工程师Khaled Omar提出了IPv10的协议规范。很不幸,这份草案在6个月之后就失效了,没有再更新。

下面,让我们一起走进这份IPv10草案。

Internet Protocol version 10 (IPv10) Specification

Internet 协议版本 10 (IPv10) 规范

本备忘录的状态

本互联网草案完全符合 BCP 78 和 BCP 79 的规定。

Internet- Drafts 是 Internet Engineering Task Force (IETF) 的工作文件。请注意,其他组也可以将工作文档作为 Internet 草案分发。当前 Internet 草案的列表位于 http://datatracker.ietf.org/drafts/current/。

Internet- Drafts 是有效期最长为六个月的草稿文件,可以随时更新、替换或被其他文件淘汰。将互联网草案用作参考材料或引用它们而不是“正在进行的工作”是不合适的。

该互联网草案将于 2018 年 3 月 2 日到期。

版权声明

 版权所有 (c) 2017 IETF Trust 和确定为文档作者的人员。版权所有。

 本文档受 BCP 78 和 IETF Trust 的与 IETF 文档相关的法律规定 (http://trustee.ietf.org/license- info) 的约束,在本文档发布之日生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文档中提取的代码组件必须包含 Trust Legal Provisions 第 4.e 节中所述的简化 BSD 许可文本,并且不提供如简化 BSD 许可中所述的保证。

梗概

 本文档指定了 Internet 协议 (IPv10) 的第 10 版,有时也称为 IP 混合(IPmix)。

1、 简介

 IP 版本 10 (IPv10) 是互联网协议的新版本,旨在允许 IP 版本 6 [RFC- 2460] 与 IP 版本 4 (IPv4) [RFC- 791] 通信,反之亦然。

- Internet 是用于连接到它的主机之间通信的全球范围的网络。

- 这些连接的主机(PC、服务器、路由器、移动设备等)必须具有全局唯一地址才能通过 Internet 进行通信,这些唯一地址在 Internet 协议(Internet Protocol,IP) 中定义。

- Internet 协议的第一个版本是 IPv4。

- 在 1975 年开发 IPv4 时,因为IPv4 地址空间的数量非常庞大,预计连接到 Internet 的主机数量不会超过 IPv4 地址空间,而且IPv4最初旨在用于实验目的。

- IPv4 是(32 位)地址,允许大约 43 亿个唯一 IP 地址。

- 几年前,随着连接到 Internet 的主机的大量增加,IPv4 地址开始耗尽。

- 1990 年代中期引入了三种短期解决方案(CIDR、私有寻址和 NAT),但即使使用这些解决方案,IPv4 地址空间还是在 2011 年 2 月用完了,正如 IANA 所宣布的那样, RIR 的 IPv4 地址空间如下:

 * 2011 年 4 月:APNIC 公告。

 * 2012 年 9 月:RIPE NCC 公告。

 * 2014 年 6 月:LACNIC 公告。

 * 2015 年 9 月:ARIN 公告。

- 引入了长期解决方案 (IPv6) 以增加 Internet 协议使用的地址空间,这在 Internet 协议版本 6 (Internet Protocol version 6,IPv6) 中进行了定义。

- IPv6 由 Internet 工程任务组 (IETF) 于 1998 年开发。

- IPv6 是(128 位)地址,可以支持大量的唯一 IP 地址,大约等于 2的128次方个唯一地址。

- 因此,在 IPv4 地址空间耗尽后,为了能够支持连接到 Internet 的主机的大量增加,对 IPv6 的需求成为一个至关重要的问题。

- 从 IPv4 到 IPv6 的迁移成为必要的事情,但不幸的是,要完成这种完全迁移需要几十年的时间。

- IPv6 已经发展了 19 年,但直到现在还没有完全迁移,这将导致互联网分为两个部分,因为 IPv4 仍然主导着互联网流量(谷歌在 2017 年 4 月测量的 85%)。新的 Internet 主机将被分配纯 IPv6 地址,并且只能与 15% 的 Internet 服务和应用程序进行通信。

- 所以,对于IPv4和IPv6共存的解决方案的需求成为迁移过程中的一个重要问题,因为我们无法早上醒来发现所有IPv4主机都迁移到IPv6主机,尤其是大多数企业还没有这样做迁移以创建完整的 IPv6 实施。

- 此外,在所有企业网络中除了现有的 IPv4 地址(IPv4/IPv6双栈)之外,还要求使用 IPv6 地址并没有实现能够使 IPv6 成为互联网中最主要的 IP 的大规模实施,因为许多人认为他们不会因为拥有更大的 IP 地址位和 IPv4 满足他们的需求而受益,此外,并非所有企业设备都支持 IPv6,而且许多人担心由于这种迁移可能导致服务中断。

- 最近针对 IPv4 和 IPv6 共存的解决方案是:

本机双栈(IPv4 和 IPv6)

双栈精简版

NAT64

464xlat

映射

(也存在其他技术,例如 lw6over4;它们可能有更具体的用例)

- IPv4/IPv6 双栈,通过同时为所有主机使用 IPv4 和 IPv6 地址,允许 IPv4 和 IPv6 共存,但该解决方案不允许 IPv4 主机与 IPv6 主机通信,反之亦然。此外,在 IPv4 地址空间耗尽后,新的 Internet 主机将无法使用 IPv4/IPv6 双栈。

- 隧道,允许 IPv6 主机通过 IPv4 网络相互通信,但仍然不允许 IPv4 主机与 IPv6 主机通信,反之亦然。

- NAT- PT,允许 IPv6 主机与 IPv4 主机通信,只使用主机名并让 DNS 参与通信过程,但该解决方案效率低下,因为它不允许使用直接 IP 地址进行通信,还需要对源 IP 地址和目标 IP 地址使解决方案变得复杂且不适用,这就是为什么将其移至 RFC 2766 中的历史状态。此外,NAT64 需要如此多的协议转换和静态配置绑定,并且还需要在通信过程中使用 DNS64 .

2、 Internet 协议版本 10(IPv10)

- IPv10 是此 Internet 草案中提出的解决方案。

- 它以一种简单且高效的方式解决了仅允许 IPv6 主机与仅 IPv4 主机进行通信的问题,反之亦然,尤其是在使用直接 IP 地址和在 IPv10 主机之间使用主机名完成通信时,因为没有 需要协议转换或让 DNS 参与通信过程,而不是其正常的地址解析功能。

- IPv10 允许来自两个 IP 版本(IPv4 和 IPv6)的主机能够进行通信,这可以通过在同一 IP 报文头中包含 IPv4 和 IPv6 地址混合的 IPv10 报文来实现。

- 从这里出现了 IPv10 的名称,因为 IP 报文可以在同一个第 3 层报文标头中包含 (IPv6 + IPv4 /IPv4 + IPv6) 地址。

3、 四种通信方式

3.1、IPv10:IPv6 主机到 IPv4 主机

- IPv10 报文:

 

- 发送 IPv10 主机 TCP/IP 配置:

 IP 地址:IPv6 地址

 前缀长度:/length

 默认网关:IPv6 地址(可选)

 DNS 地址:IPv6/IPv4 地址

- IPv10 操作示例:

 

IPv10:IPv6 主机到 IPv4 主机

3.2、 IPv10:IPv4 主机到 IPv6 主机

- IPv10 报文:

 

- 发送 IPv10 主机 TCP/IP 配置:

 IP 地址:IPv4 地址

 子网掩码:/mask

 默认网关:IPv4 地址

 DNS 地址:IPv4/IPv6 地址

- IPv10 操作示例:

 - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

IPv10:IPv4 主机到 IPv6 主机

3.3、 IPv10:IPv6 主机到 IPv6 主机

- IPv10 报文:

 

- 发送 IPv10 主机 TCP/IP 配置:

 IP 地址:IPv6 地址

 前缀长度:/Length

 默认网关:IPv6 地址(可选)

 DNS 地址:IPv6/IPv4 地址

- IPv10 操作示例:

 - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

IPv10:IPv6 主机到 IPv6 主机

3.4、 IPv10:IPv4 主机到 IPv4 主机

- IPv10 报文:

 

- 发送 IPv10 主机 TCP/IP 配置:

 IP 地址:IPv4 地址

 子网掩码:/Mask

 默认网关:IPv4 地址

 DNS 地址:IPv6/IPv4 地址

- IPv10 操作示例:

 - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

IPv10:IPv4 主机到 IPv4 主机

重要说明:

所有路由器都必须启用 IPv4 和 IPv6 路由,因此当路由器收到 IPv10 报文时,应根据 IPv10 报文中的目标地址使用适当的路由表。

也就是说,如果接收到的 IPv10 报文的目的地址字段中包含 IPv4 地址,则路由器应该使用 IPv4 路由表来做出路由决策,如果接收到的 IPv10 报文的目的地址字段中包含 IPv6 地址,则路由器应该使用 IPv6 路由表来做出路由决定。

所有连接互联网的主机都必须是 IPv10 主机才能进行通信,无论使用的 IP 版本如何,并且 IPv10 部署过程可以由所有为主机网络和安全设备开发操作系统的技术公司完成。

4、 IPv10 报文头格式。

- 下图显示了与 IPv6 报文头几乎相同的 IPv10 报文头:

 

Version:版本, 4 位 Internet 协议版本号。

 - 0100 : IPv4 报文

 (Src. 和 dest. 是 IPv4)。

 - 0110 : IPv6 报文

 (Src. 和 dest. 是 IPv6)。

 - 1010 : IPv10 报文

 (Src. 和 dest. 是 IPv4/IPv6)。

Traffic Class:流量类别, 8 位流量类别字段。

Flow Label:流标签, 20 位流标签。

Payload Length:有效载荷,16 位长度无符号整数。有效载荷的长度,即此 IP 标头后面的报文的其余部分,以八位字节为单位。(请注意,存在的任何扩展标头 [第 4 节] 都被视为有效载荷的一部分,即包含在长度计数中。)

Next Header:下一个头部, 8 位选择器。 标识紧跟在 IP 标头之后的标头类型。

Hop Limit:跳数限制, 8 位无符号整数。 每个转发报文的节点减 1。 如果 Hop Limit 减少到零,则丢弃该报文。

Source Address:源地址,报文始发者的 128 位地址。

 

Destination Address:目标地址,报文预期接收者的 128 位地址(如果存在路由报文头,则可能不是最终接收者)。

 

5、 IPv10 的优势。

1) 介绍了一种 IPv6 主机和 IPv4 主机之间有效的通信方式。

2) 即使在 IPv4 地址空间耗尽后,也允许仅 IPv4 的主机存在并与仅 IPv6 的主机通信。

3) 在向 DNS 发送查询以进行主机名解析时增加了灵活性,因为 IPv4 和 IPv6 主机可以与 IPv4 或 IPv6 DNS 服务器通信,并且 DNS 可以使用它拥有的任何记录(IPv6主机 AAAA 记录或 IPv4主机A记录)进行记录回复。

4) 无需考虑迁移,因为 IPv4 和 IPv6 主机可以共存并相互通信,这将允许使用 IPv4 和 IPv6 的地址空间,从而使可用的连接主机数量更大。

5)IPv10对“所有”互联网连接主机的支持可以由开发操作系统的技术公司在很短的时间内部署(用于主机和网络设备,并且不会对企业用户产生依赖,它只是一个软件开发过程)所有主机的 NIC 卡允许将 IPv4 和 IPv6 封装在同一个 IP 报文头中。

6) 提供四种主机间通讯方式:

 - IPv6 主机到 IPv4 主机(6 to 4)

 - IPv4 主机到 IPv6 主机(4 to 6)

 - IPv6 主机到 IPv6 主机(6 to 6)

 - IPv4 主机到 IPv4 主机(4 to 4)

安全注意事项

IPv10 的安全特性在 Internet 协议的安全架构 [RFC- 2401] 中进行了描述。

致谢

作者要感谢 S. Krishnan、W. Haddad、C. Huitema、T. Manderson、JC。 Zuniga、A. Sullivan、K. Thomann、M. Abrahamsson、S. Bortzmeyer、J. Linkova、T. Herbert 和 Lee H. 提供了有关 IPv10 的有用输入和讨论。

参考

 [RFC- 2401] Stephen E. Deering and Robert M. Hinden, "IPv6 Specification", RFC 2460, December 1998.

IANA 考虑事项

IANA 必须为 IPv10 报文的第 3 层报文头中的 4 位版本字段保留版本号 10。

完整的版权声明

 版权所有 (C) IETF (2017)。版权所有。

 本文件及其译文可能会被复制和提供给他人,并且可以全部或部分地准备、复制、出版和分发对其进行评论或以其他方式解释或协助其实施的衍生作品,而不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文档本身,例如删除版权声明或引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准流程中定义的版权程序,或根据需要将其翻译成英语以外的语言。

 上述授予的有限权限是永久的,不会被撤销。

 本文档和此处包含的信息由 INTERNET ENGINEERING TASK FORCE 提供,不提供任何明示或暗示的保证,包括但不限于使用此处的信息不会侵犯任何权利或任何不适用的保证出于特定目的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IPv4 + IPv6 = IPv10?是的,IPv10就是IPV4 + IPv6! 的相关文章

  • hadoop和spark现在支持IPv6吗?

    我想在纯IPv6环境上构建Hadoop和Spark集群 我已经通过 IPv4 构建了它 如何配置在 IPv6 环境下运行它们 hadoop 和 Spark 现在支持 IPv6 吗 它不是 截至今日HADOOP 11890跟踪 IPv6 支持
  • 在 PHP 中检查字符串是否包含 IPV6 地址

    使用 PHP 我需要检查字符串是否包含 IPv6 地址 如果包含 则提取该 IPv6 地址 我有一个正则表达式 它匹配一个字符串 如果它恰好是 IPv6 matches regex 3 3 3 dA F 1 4 3 b 2 4 5 4 2
  • 此正则表达式 (RegEx) 标志有何含义 /iD

    我想使用这个正则表达式来验证 IPv6 但我想了解它所做的一切https stackoverflow com a 1934546 3112803 gt gt a f0 9 1 4 gt 1 7 a f0 9 gt 8 1 gt 1 0 6
  • 如何在 XAMPP 下配置 MySQL 以使用 IPv6 [关闭]

    Closed 这个问题是无关 目前不接受答案 我有 XAMPP v 3 1 0 出于测试目的 我需要使用 IPv6 格式连接到 MySQL 数据库 如何配置MySQL 找到我的 ini 更改 取消注释bind address for ipv
  • 如何将 IPv4 映射的 IPv6 地址转换为 IPv4(字符串格式)?

    我有一个struct sockaddr包含 IPv4 映射 IPv6 地址的结构 例如 ffff 10 0 0 1 我只想获取字符串中的 IPv4 版本 在本例中 10 0 0 1 用C语言编程 我该如何实现它 由于您的结构包含 IPV6
  • 如何将链接本地地址绑定到 ipv6 套接字

    这个问题可以看作是一个姐妹问题前一个 https stackoverflow com questions 2455762 why cant i bind ipv6 socket to a linklocal address我自己发布的 非常
  • 使用 JSP 发送电子邮件

    这个问题快把我逼疯了 我有以下代码
  • 在 MySQL 数据库中存储 IP 地址(IPv4 和 IPv6)

    好吧 现在我知道类似的问题可能已经被问过一百万次了 但我在这方面是一个真正的新手 我真的很感谢你在这里的帮助 基本上 我想将访问者的 IP 地址存储在 MySQL 中 以便以后检索和验证 我首先需要知道需要使用什么类型的字段来存储 IP 地
  • localhost 和 0.0.0.0 的 IPV6 是什么?

    众所周知 IPv4 地址localhost is 127 0 0 1 环回地址 IPv6 地址有什么用途localhost并为0 0 0 0因为我需要阻止一些广告主机 众所周知 IPv4 地址localhost is 127 0 0 1 环
  • 莫名其妙的node.js http抛出连接ECONNREFUSED(IPv6?)

    我正在运行node js 如下所示 gt http require http gt http get http myhost local 8080 function res console log RES res on error func
  • C++ 中的 IPv6 连接测试

    是否有任何 C 函数可以测试运行我的程序的计算机是否支持 IPv6 连接 我需要知道类似此页面的结果http test ipv6 com http test ipv6 com 但是在 C 中 EDIT 我试图使用getifaddrs 但返回
  • Android 从主机名获取 ipv6 地址

    我正在尝试从 Android 设备上的主机名获取 IPv6 地址 我的设备是 Nexus 7 和 6 0 1 版本 下面是我使用的API InetAddress inets InetAddress getAllByName hostname
  • 是否有用于 ipv4 和 ipv6 地址的标准 .NET 解码器?

    我想编写一个相当简单的客户端 服务器网络应用程序 我只使用纯 IPv4 网络 但如果我的代码能够面向未来 那就太好了 我可能会使用 TcpListener TcpClient 因为WCF初步调查 http msdn microsoft co
  • IPv6 地址的正则表达式

    我有一个 IPv6 地址的正则表达式 如下所示 IPV4ADDRESS t digit 1 3 3 digit 1 3 t x4 xdigit 1 4 xseq x4 x4 0 7 xpart xseq xseq xseq xseq IPV
  • 如何更改 IPV6 地址的字节顺序(从网络到主机,反之亦然)?

    我知道ntoh s l and hton s l 适用于 2 和 4 字节的整数 现在 我面临着转换 16 个字节长的 IPv6 地址的问题 是否有用于此目的的现成函数 TIA Jir 我不确定ntoh and hton与 IPv6 相关
  • 匹配有效 IPv6 地址的正则表达式

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我在编写匹配有效 IPv6 地址的正则表达式时遇到问题 包括压缩形式的地址 使用 或从每
  • 使用 IPv6 进行地理定位?

    我正在开发一个 IP 地理定位库 它使用 IPv4 地址的前三个八位字节来确定用户的国家 地区 城市 纬度 经度等 效果非常好 但它不处理 IPv6 地址 我希望它能够处理 有没有办法转换 IPv6 地址以获得 IPv4 地址的前三个八位字
  • OCLinEcore 和 Regex 创建有效的 IPv4 字符串

    我有一个 Ecore 模型 我试图在其中添加一些 OCL 约束 当我尝试创建有效 IPv4 形式的属性 字符串 时 我的问题就出现了 我想我应该使用正则表达式 但我根本不知道如何在 OCLinEcore 上使用正则表达式 从 Eclipse
  • 使用 boost asio 枚举我的卡的 ipv4 和 ipv6 地址

    我正在尝试枚举我的电脑的所有网卡 我有 2 张卡 的 ipv4 和 ipv6 地址 我正在使用以下代码来执行此操作 using boost asio ip tcp boost asio io service io service tcp r
  • 如何使用链接本地 IPv6 地址访问 Web 服务器或网站?

    以下是托管 Web 服务器的计算机的 ipconfig 输出 以太网适配器本地连接 连接特定的 DNS 后缀 链路本地 IPv6 地址 fe80 f85b 4256 ee76 24a4 11 IPv4 地址 10 213 254 119 子

随机推荐