zoukankan      html  css  js  c++  java
  • iOS 应用如何完全支持 IPv6-ONLY 网络?

    iOS 应用如何完全支持 IPv6-ONLY 网络?

    警告

    您当前查看的页面是未经授权的转载!
    如果当前版本排版错误,请前往查看最新版本:http://www.cnblogs.com/qin-nz/p/ipv6-only-ios-application.html

    提示

    更新时间:2016年05月07日。

    最近一条新闻引起了我的注意:

    注解

    5月5日消息,苹果昨日向开发者发出提醒,App Store将于今年6月1日实施全新策略,届时所有提交至苹果App Store的iOS应用申请必须要兼容面向硬件识别和网络路由的最新互联网协议–IPv6-only标准。

    什么是 IPv6-ONLY ?

    以前,大家都在用 IPv4,就是地址看起来是 114.255.40.66 的样子。然而,这样的地址已经不够用了,就有了类似 2001:da8:215:4009:250:56ff:fe97:40c7 这样的 IP 地址。

    目前,一个网卡会同时使用这两张地址;在未来,一个网卡将仅有后面这样的 IPv6 地址。 使用这两种地址的设备是不能互相访问的,后来有了一些过渡技术让他们在某些情况下可以互相访问了。(如 DNS64/NAT64)

    如何满足苹果要求?

    ?苹果公司为什么要这么做?

    现在有极小一部分用户处在IPv6-ONLY的环境中,未来这个比例会扩大。

    苹果这样要求,对于大多数开发者而言,并不困难。目前大多数应用无需任何操作即可满足要求。

    ?我不太懂这些,我该怎么做呢?

    在你的应用中使用域名(如 www.bupt.edu.cn),不要在任何地方使用 IPv4地址(114.255.40.66)。

    ?我的服务器必须有 IPv6 地址么?

    不是的,服务器只需要有公网 IPv4 地址即可,但要求必须使用域名(FQDN)来表示服务器。

    如何创造 IPv6-ONLY 测试环境

    MacOS 提供了这个功能。 使用 Mac 把有线网络共享到 WiFi,中间勾选 创建NAT64网络 即可。

    https://qinblog.blob.core.windows.net/images/create-nat64-network.png

    详情可参看 Apple Support

    IPv6客户端访问IPv4服务器原理

    首先,这个是无法直接访问的,必须网络的提供商支持过渡技术。

    • 第一步:DNS 污染

      例如我们想要访问 example.com ,假设这个网站只有 IPv4 地址(93.184.216.34,用16进制表示为 5d b8 d8 22) 那么,被“污染”的DNS返回的 IP 地址是 64:ff9b::5db8:d822。 其中 `64:ff9b::/96`是IANA分配用于DNS64的前缀。

    • 第二步:IPv6 转 IPv4

      访问 64:ff9b::5db8:d822 时,IPv6 包头被替换为 IPv4 包头,继续访问。 同时回来的数据包会被做反向处理。

    详情可参看 RFC6146RFC6147

    现有应用的支持情况

    • QQ 【支持】
    • 淘宝 【支持】
    • 高德地图 【支持】
    • Worktile 【不支持】
    • Wechat 【不支持】

    我本人不用微信很久了,但我知道,微信的DNS查询,使用的 HTTP 协议自己封装的,这样在 IPv4 网络下可以避免相当多的问题。 如图,微信直接查询 A 记录,即使我的设备在 IPv6-ONLY 的网络环境下。 因此,微信就跪掉了……

    ../_images/ipv6-only-wechat-dns.png
    ../_images/wechat.jpg

    声明 知识共享许可协议

    【微信要跪】 iOS 应用如何完全支持 IPv6-ONLY 网络? 勤奋的小孩 创作,采用 知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议进行许可。
    本许可协议授权之外的使用权限可以从 http://space.cnblogs.com/msg/send/qin-nz 处获得。

  • 相关阅读:
    几行代码搞定图片模糊模式
    SVN源代码管理规范
    模仿苹果手机虚拟键的代码分享,有兴趣的可以玩玩。 下面的是链接,复制粘贴到浏览器就能下载
    keytool使用方法
    Unity导出APk出错解决方法二
    学习网址
    eclipse中手动设置library,选择编译工具方法
    apk接入google play邮箱登陆及充值注意事项
    unity导出apk错误出错解决方法
    java自动生成jar包工具
  • 原文地址:https://www.cnblogs.com/qin-nz/p/ipv6-only-ios-application.html
Copyright © 2011-2022 走看看