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! 的相关文章

  • 如何在 Perl 中对 IP 地址列表进行排序?

    我有一堆 IP 地址存储在一个数组中 例如 my ip qw 10 11 1 1 10 100 1 1 如何按升序对地址进行排序 我尝试过一个简单的sort但当然失败了 IPv4 地址只是 32 位数字 use Socket qw inet
  • 如何在c#中获取IPv6地址?

    I use Request UserHostAddress 只能获取IPv4地址 如何获取访问者的IPv6地址 我假设你正在谈论HttpRequest UserHostAddress 它将始终返回用于连接到您的地址 如果请求是通过 IPv6
  • 使用 IPV6 连接到 Google Cloud SQL

    我一直在尝试使用 Google 提供的 IPV6 地址连接到我的 google cloud sql 数据库 mysql 但没有成功 mysql h 0 0 0 0 0 aaaa aaaa aaaa u admin p 客户端提示输入密码 但
  • 本地主机上的双栈 ipv6/ipv4

    我有一个 ipv4 服务器 它只接受本地主机上的连接 使用INADDR LOOPBACK 我想将此服务器转换为双栈 ipv6 ipv4 然而 使用in6addr loopback只接受连接到 1 我发现我可以同时接受 ipv4 和 ipv6
  • 如何将 IPv4 映射的 IPv6 地址转换为 IPv4(字符串格式)?

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

    似乎流程没有进入包含 ipv6server c 中接受的 for 循环 因此无法接受并与客户端连接 有什么错误吗 此代码对于 IPV4 工作正常 但在 IPV6 更改后出现此问题 ipv6server c include
  • Spring Boot 应用程序在没有 -Djava.net.preferIPv4Stack=true 和 -Djava.net.preferIPv4Addresses 参数的情况下侦听 IPv6

    我关于 Spring boot jar 的问题 在生产机器上运行 jar 时 java jar xyz jar 它没有响应我的请求 因为它正在监听 ipv6 但是当我运行应用程序时java jar xyz jar Djava net pre
  • 强制 InetAddress.getHostAddress() 返回 IPv4 地址

    我正在使用一个使用的库java net InetAddress getLocalHost getHostAddress 获取我的本地IP地址 然而 这总是在我的计算机上返回 IPv6 地址 Gentoo Linux JDK 1 6 0 37
  • windows下修改ip地址的脚本

    我使用计算机通过以太网与硬件进行通信 为了与此设备通信 我将 IP 设置为 192 168 0 11 将子网掩码设置为 255 255 255 0 将 IPv4 的默认网关设置为 192 168 0 1 为了使用互联网 我通过控制面板选择
  • 重定向 ip6tables 中的端口

    如何使用 ip6tables 将一个端口重定向到另一个本地端口 例如像这样的东西 ip6tables t nat A 预路由 j 重定向 p tcp dport 443 to ports 8443 嗯 这是一个老问题 但因为我需要做同样的事
  • 如何测试iOS应用是否支持IPv6? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有 2015 年和 2014 年构建的应用程序 如何测试它们的 IPv6 性能 如果我的应用程序不支持 IPv6 我该怎么办 我的应用程序
  • 如何判断IPv6地址是否私有?

    我试图确定给定的 IPv6 地址在 C 中是否是私有的 并且我很想简单地使用 IPAddress 类上的 IsIPv6SiteLocal 属性 然而 正如本节中所解释的comment https stackoverflow com ques
  • 从 Dns.GetHostEntry() 获取 IPv4 地址

    我这里有一些代码在 IPv4 机器上运行得很好 但在我们的构建服务器 IPv6 上却失败了 简而言之 IPHostEntry ipHostEntry Dns GetHostEntry string Empty GetHostEntry 的文
  • 是否有用于 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 和 IPv4 的 C# 服务器

    是否有可能有一个同时侦听和接受 IPv6 和 IPv4 客户端的 Socket 我在 C 中使用了 IPv6 套接字 希望它能自动向后兼容 但 IPv4 客户端会导致无效的 ip 地址异常 看一看 您可以接受 IPv4 客户端以及 IPv6
  • IPV6 Curl POST 请求

    在 IPV6 中 如何使用 IPV6 地址和端口号构建 CURL POST http 请求 任何类型的线程都将受到赞赏 尝试构建如下请求 gt curl interface http 2001 0 db8 1111 0 0 0 11 809
  • 将 C++ TCP/IP 应用程序从 IPv4 转换为 IPv6。难的?值得这么麻烦吗?

    多年来 我使用 WinSock 为 Windows 开发了少量 C 服务器 客户端应用程序 路由器 Web 邮件 FTP 服务器等 等等 我开始越来越多地考虑创建这些应用程序的 IPv6 版本 当然 同时也保留原始的 IPv4 版本 问题
  • IPv6 接口上的链路本地和全局 IP

    我目前正在尝试了解 IPv6 地址的工作原理 链接本地地址和站点本地地址分别用于小型网络和组织网络 但如果其中一个客户端也可以访问互联网 那么它就需要两个 IP 对吗 一个本地链接 站点和一个全球地址 接口和路由器如何管理它 由于 IPv6

随机推荐