【问题标题】:Since IPv6 is going to replace IPv4, should I develop my new application to support it?既然 IPv6 将取代 IPv4,我应该开发我的新应用程序来支持它吗?
【发布时间】:2009-08-07 20:50:53
【问题描述】:

我使用多种语言和几个平台开发应用程序。据我所知,IPv6 将在未来 5 到 10 年内成为主流,一些 ISP 甚至提供与 IPv6 互联网的直接连接。在我的专用网络上,所有机器都具有双栈连接,并尽可能使用 IPv6 相互通信。

我的问题是:我的新应用程序是否应该支持 IPv6?如果是这样,我需要考虑哪些事情?现在支持 IPv6 有什么缺点吗?

我不知道这是否会有所帮助或伤害,但这里有一些更具体的细节可能会指导答案:

我的应用程序将在 Windows/Linux/Mac 上运行,它包含一个为每个平台单独编写的特定于平台的组件,以及一个用解释语言编写的通用“核心”组件。

我的应用程序应该能够定位在这三个平台中的任何一个上运行的其他自身实例,并支持任意两台机器之间的 TCP 和 UDP。

【问题讨论】:

    标签: architecture networking ipv6


    【解决方案1】:

    是:您的所有新应用程序都应支持 IPv6。正如您自己所说,它已经在许多 LAN 环境中使用。

    否:您无需进行太多更改即可支持 IPv6。底层框架应该为您处理差异。这假设您没有做“坏”的事情,例如存储或以其他方式操纵 IP 地址。

    【讨论】:

      【解决方案2】:

      我看到这里有些人引用了史蒂夫·吉布森对这个主题的看法。尽管 Gibson 先生在安全事务方面非常熟练(我确实会听每一期“Security Now”的插曲,并鼓励所有对安全感兴趣的人也这样做),但我相信他与当前的计划有点脱节。他预测 IPv6 没有未来。

      IPv6 的使用已经超越了单纯的学术用途,并且在国防研究行业中得到了相当多的关注,它不再是“是否”而是“何时”取代 IPv4(在军事领域)的问题。网络,即)。

      当然,我们现在的互联网在很长一段时间内仍将使用 v4,原因之一是大多数硬件和软件不兼容 IPv6。

      我想不出现在实施 IPv6 有什么缺点(当然,除了额外的编码时间和维护两个 IP 堆栈的额外复杂性)。事实上,有了 IPv6,事情就容易多了。例如,您可以忘记 NAT 穿越问题。

      【讨论】:

        【解决方案3】:

        安全研究员史蒂夫·吉布森对此发表了惊人的言论,并指出它不会在不久的将来出现。以下是一些提供更多信息的链接:
        http://www.grc.com/sn/sn-199.htm -- 中途,他开始在脚本/播客中谈论 IPv6。
        http://www.grc.com/sn/sn-200.htm -- 快速更正 199 中的错误剧集,以及更多细节。

        【讨论】:

        • 阅读这两页后,我没有得到同样的印象。也许它的读者偏见......
        • 不确定——它可能只是在翻译成文本时丢失了。我听过它的播客版本,“它还没有准备好”的意图似乎更强烈。我想说,对我来说,他的演讲意图的最好标志是:“但对于今天的任何类型的应用程序来说,IPv6 都不在这里。一些统计数据很有趣。信不信由你,俄罗斯的 IPv6 渗透率最高......他们是 0.76%......所以它只是没有发生。”
        【解决方案4】:

        如果可能,您的框架应该同时支持两者,但如果您可以选择其中之一,我会选择 IPv4,但请确保您可以添加/转换到 IPv6。但这也取决于谁是产品的最终用户以及您的项目有什么要求。这是要使用/将使用 IPv6 的用户,还是要接受主要使用 IPv4 的现有基础。

        根据我的经验,我目前正在从事的项目考虑使用 IPv6,因为必须能够支持 IPv6。在大多数情况下,我们发现硬件供应商(交换机、路由器、计算机)和 WAN 供应商能够支持切换到 IPv6。整合现有的 IPv4 硬件会有一些工作,但可以做到。根据成本,至少在硬件方面是差不多的。

        但是,我们正在使用的某些软件产品不支持 IPv6,也可能不会支持 IPv6,而其他软件产品似乎更易于支持 IPv6。基于此,我们正在升级到新版本的软件,但可能会暂时保持 IPv4,或者至少在软件赶上对 IPv6 的支持之前。

        【讨论】:

          【解决方案5】:

          我至少会开始尝试。我已经对我的一些代码进行了一些调整。它还没有经过全面测试,还有更多的调整要做,但即使它永远不会在这些特定的应用程序中使用,我也将不得不在某个时候支持它。还不如在沉没或游泳之前学习。

          【讨论】:

            【解决方案6】:

            我听到的最新消息是,有了 NPA……IPv6 的发展速度真的不会很快,如果有的话。 (史蒂夫吉布森 - GRC)

            这可能不值得你花时间。

            编辑...显然这是我不应该接受的可怜的远见。 IPv6 即将到来并将被需要。 IPv4 可能会一直存在,但应用程序应该能够在不久的将来同时处理这两种情况。

            【讨论】:

            • 你对这个“史蒂夫·吉布森”的名言有引用吗?
            • 第 199 集:grc.com/sn/sn-199.htm 该页面有相关剧集的文字记录。
            【解决方案7】:

            答案是肯定的。 IPv6 渗透率现在接近 50%。

            如果您打算为特定于平台的组件选择 Java 或 Go(这两个都是不错的选择,因为它们都适用于许多平台),那么一种选择是使用开源 IPAddress Java library or Go library。您可以使用这些库编写适用于 IPv4 和 IPv6 的多态代码。在Java repo,您会找到另一个链接“使您的 IPv4 应用程序与 IPv6 一起工作”,并附有摘要。

            免责声明:我是项目经理。

            【讨论】:

              猜你喜欢
              • 2014-03-07
              • 1970-01-01
              • 2011-01-24
              • 1970-01-01
              • 2010-11-07
              • 1970-01-01
              • 1970-01-01
              • 2016-11-16
              • 1970-01-01
              相关资源
              最近更新 更多