IPv6-only适配方案

调研背景:
a) 苹果于2016 年5 月4 日告知开发者应用需要在6 月1 日前支持IPv6-only,也就是说在6 月1 日后发布的新版本是需要支持IPv6-only。
故需要对适配的工作进行调研

b) 注:原文地址:https://developer.apple.com/news/?id=05042016a

IPv6-only 背景介绍:
a) IPv6-only 为苹果在WWDC2015 首次宣布
b) 美国三大运营商(Verizon,AT&T,TMobile)已有一半以上的用户下正在使用IPV6 网络
c) 苹果提供的适配解决方案中,针对上层的网络API,可以自动的支持IPV6-only,也就是下图中的青色部分。而我们平常使用的包括第三方的网络库大部分都使用这一层的API。


但是如果产品中使且了一些底层的API,如POSIX socket API,可参考https://tools.ietf.org/html/rfc4038
e) 注:这里有两个概念,为了解决IPV6 与IPV4 网络互访问题,大家先了解下,我简单的描述
i. NAT64:是一种有状态的网络地址与协议转换技术,一般只支持通过IPv6 网络侧用户发起连接访问IPv4 侧网络资源。但NAT64也支持通过手工配置静态映射关系,实现IPv4 网络主动发起连接访问IPv6 网络。NAT64 可实现TCP、UDP、ICMP 协议下的IPv6与IPv4 网络地址和协议转换。

ii. DNS64:则主要是配合NAT64 工作,主要是将DNS 查询信息中的A 记录(IPv4 地址)合成到AAAA 记录(IPv6 地址)中,返回合成的AAAA 记录用户给IPv6 侧用户。

适配建议:
a) 官方说明:
https://developer.apple.com/library/mac/documentation/NetworkingInternetWeb/Conceptual/NetworkingOverview/UnderstandingandPreparingfortheIPv6Transition/UnderstandingandPreparingfortheIPv6Transition.html#//apple_ref/doc/uid/TP40010220-CH213-SW1
b) 不要使用IP 地址作为服务器地址,使和域名
c) 搜一下工程里有没有下面的这些API,这些都是只针对IPv4 做处理的,有的就删了。
i. inet_addr()
ii. inet_aton()
iii. inet_lnaof()
iv. inet_makeaddr()
v. inet_netof()
vi. inet_network()
vii. inet_ntoa()

viii. inet_ntoa_r()

ix. bindresvport()
x. getipv4sourcefilter()
xi. setipv4sourcefilter()
d) 将工程中以下的IPv4 类型替换成IPv6 的类型



如果霜要使用IP 地址信息,API 文档中有说明

关于IPv6-only 适配的验证方法:
a) MAC 系统中,本地建立IPv6 DNS64/NAT64 的网络wifi 热点,使用手机接入该热点进行联接服务器测试。配置流程如下:
i. 进入设置,点击分享。注意:在10.11 系统中进入时需要按Option键,否则会看不到 创建NAT64 网络选项

ii. 点击互联网共享(非勾选)

iii. 勾选红框

iv. 分享源为有线网络,设置wifi 热安全信息,建立wifi 网络共享。
b) 现在我们用iPhone 连接上这个刚创建好的热点就可以测试了,
c) 注意:要把iPhone 设成飞行模式,以保证只用Wi-Fi 上网。

5. 工作List 及建议

a) 严格排查代码不兼容的API,及代码书写格式
b) 每个功能点需要参考验证方法测试无误
c) 第三方依赖库需要尽早明确定工作时间结点
d) 第三方依赖库也需要参考验证方法进行测试
e) 外部第三方库也及早进行沟通比如分享模块


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值