浅谈iOS IPv6-only 新规
5月份苹果发布新规,对于开发人员只需要做到以下几点就能顺利上线啦!
1.苹果从6月1日起,提供App Store审核的应用必须要兼容面向硬件识别和网络路由的最新互联网协议--IPv6-only标准。也就是说,如果不能兼容,就面临着不能审核上线的。
2.什么是IPv6-only(64位编码地址),它时最新的互联网协议,以前我们大部分用的是IPv4(32位编码地址),例如:192.168.1.1然而,这样的地址已经不够用了!!所以就有了类似2001:da8:215:4009:250:56ff:fe97:40c7这样的地址,这样的地址就叫做IPv6地址。在目前,一个网卡会同时使用这两张地址,但是在以后就会只使用IPv6了。一般情况下,使用这两种地址的设备是不能相互访问的,但是后来经过一些过度的处理旧可以让它们在某些情况下可以相互访问。(DNS64/NAT64)
3.如何做到满足苹果要求呢?
(1)在应用中使用域名(例如:www.baidu.com),不要在任何地方使用IPv4地址(例如:114.255.40.60)
(2)我们的服务器需要改成IPv6 地址么?这个不需要,但是必须使用域名(或者主机名)来表示服务器!
(3)使用更高层次的网络API,避免使用socket API。
WebKit,(NSURL,NSURLSession,NSURLRequest,NSURLConnection),CFNetWork都是能支持IPv6的。
如果不能避免使用socket,参考https://tools.ietf.org/html/rfc4038
(4)检查IPv4代码:
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_netof()
inet_network()
inet_ntoa()
inet_ntoa_r()
bindresvport()
getipv4sourcefilter()
setipv4sourcefilter()
4.如何创造IPv6-ONLY 测试环境?MacOS 提供了这个功能。 使用 Mac 把有线网络共享到 WiFi,中间勾选 创建NAT64网络 即可。
5.IPv6客户端访问IPv4服务器原理?首先,这个是无法直接访问的,必须网络的提供商支持过渡技术。
(1)第一步:NDS污染:例如我们想要访问 example.com ,假设这个网站只有 IPv4 地址(93.184.216.34,用16进制表示为 5d b8 d8 22) 那么,被“污染”的DNS返回的 IP 地址是 64:ff9b::5db8:d822。 其中 `64:ff9b::/96`是IANA分配用于DNS64的前缀。
(2)第二步:IPv6 转 IPv4:访问 64:ff9b::5db8:d822 时,IPv6 包头被替换为 IPv4 包头,继续访问。 同时回来的数据包会被做反向处理。
详情可参看 RFC6146 、 RFC6147
浅谈iOS IPv6-only 新规的更多相关文章
- 浅谈iOS中的userAgent
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
- 浅谈iOS视频开发
浅谈iOS视频开发 这段时间对视频开发进行了一些了解,在这里和大家分享一下我自己觉得学习步骤和资料,希望对那些对视频感兴趣的朋友有些帮助. 一.iOS系统自带播放器 要了解iOS视频开发,首先我们从 ...
- 浅谈iOS多线程
浅谈iOS多线程 首先,先看看进程和线程的概念. 图1.1 这一块不难理解,重点点下他们的几个重要区别: 1,地址空间和资源:进程可以申请和拥有系统资源,线程不行.资源进程间相互独立,同一进程的各线程 ...
- 浅谈iOS中MVVM的架构设计与团队协作
说到架构设计和团队协作,这个对App的开发还是比较重要的.即使作为一个专业的搬砖者,前提是你这砖搬完放在哪?不只是Code有框架,其他的东西都是有框架的,比如桥梁等等神马的~在这儿就不往外扯了.一个好 ...
- IOS中 浅谈iOS中MVVM的架构设计与团队协作
今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- 浅谈iOS中MVVM的架构设计与团队协作【转载】
今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...
- 浅谈 iOS 与 H5 的交互- JavaScriptCore 框架
前言 小的作为一个iOS程序猿,可能研究JavaScript以及H5相关的知识并不是为了真正的要去转行做这一方面,其实更多的为了要研究OC中的JavaScriptCore框架,JavaScriptCo ...
- 浅谈iOS需要掌握的技术点
鉴于很多人的简历中的技术点体现(很多朋友问我iOS需要知道注意哪些)! 技术点: 1.热更新 (及时解决线上问题) 2.runtime(json解析.数据越界.扩大button点击事件.拦截系统方法) ...
- 浅谈iOS 5的StoryBoard
转自:http://blog.163.com/wangy_0223/blog/static/450146612012318113233218/ 示例代码的Github地址:https://github ...
随机推荐
- (转)IOS UITableView学习
转自:http://www.cnblogs.com/smileEvday/archive/2012/06/28/tableView.html 作者:一片枫叶 看TableView的资 ...
- spring tx:advice 和 aop:config 配置事务
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 利用android proguard混淆代码
利用android proguard混淆代码 2014-02-05 17:50 1207人阅读 评论(1) 收藏 举报 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上 ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- markdown插件学习
1.Markdown的定义 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.它用简洁的语法代替排版,而不像一般我们用的字处理软件Wo ...
- hdu 1166 敌兵布阵(线段树单点更新,区间查询)
题意:区间和 思路:线段树 #include<iostream> #include<stdio.h> using namespace std; #define MAXN 500 ...
- SORT UNIQUE|AGGREGATE|GROUP BY|ORDER BY|JOIN
相信做oracle开发和管理的朋友对sort肯定不会陌生,大家通常都遇到这样那样的排序性能问题,所以我写这一系列关于sort的文章告诉大家在oracle里面sort是怎么一回事以及如果调整sort获得 ...
- 【转】loadrunner检查点设置
转自:http://www.cnblogs.com/fnng/archive/2013/03/10/2953257.html 判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的HTT ...
- jquery小技巧汇总 持续更新中
1.jquery高亮当前选中菜单 $("document").ready(function(){ $(".menu li").click(function(){ ...
- VMware 命令行下安装以及导入Ubuntu系统
前提: 鉴于个人PC性能太弱,考虑是否可以将在PC上搭建好的环境移植到高性能服务器上.想到后就干呗. 下载完对应操作系统的安装包后按如下步骤操作: 安装包名称:VMware-Workstation-F ...