
影响:跨网最显著的影响就是访问变慢
跨网访问,运营商涉及到流量结算的难题。比如联通用户的请求转发给了移动,相当于联通委托移动的服务器去干费力的大事,所以两方会有结算的难题。
描述:运营商通过技术方式将内部域名强行指向了运营商的IP
原因:
影响:
描述:运营商本身不进行域名递归解析反复出现您当前的网络存在链路层劫持,而是转发到这些运营商的协程DNS上的行为
原因:一些小运营商为了节约资源
影响:跨网访问。用户流量被导向了错误的IDC(可以认知为数据中心,服务器)。比如,qq针对北京移动和深圳宽带有不同的分发服务器,但解析转发可能加剧北京移动用户访问的是深圳宽带服务器,也就是跨网访问,导致访问变慢。

描述:DNS服务器本身自身存在多出口,且配置了目标路由NAT,结果加剧LocalDNS最终进行递归解析的时候出口IP有几率出错,不为本网IP地址。比如,DNS出口有移动、联通、电信,对电信用户请求来说,路由转发本来也是用宽带IP的,但是出错了成为联通IP转发,导致解析结果导致用户被导向了错误的联通IDC,发生跨网。
影响:跨网访问
描述:直接ip请求
作用:为了后面说过的可能出现的域名劫持、跨网访问等难题
背景:H5页面打开速度慢
思路:H5资源预先打包本地,WebView访问本地资源
内容:页面不常变化,主要是静态资源
方案:拦截网络请求,加载本地文件
拦截的手段有两种:

苹果提供的功能API,可以改变URL加载行为的全部细节
子类化NSURLProtocol
+canInitWithRequest: 方法或者前往YES,该请求才会被其控制;返回NO则直接掉入下一个Protocol,继续走原来的请求路径
参考
原因:主要是为了方便调试
描述:开发期间H5只会部署到试验环境,客户端调试的时候,打开H5代理开关,访问的时候走代理服务器(测试服务器)。如果不走代理,可以通过修改客户端的host达到目的反复出现您当前的网络存在链路层劫持,但明显不快捷测试。
接管NSURLProtocol,拦截当前的url请求,然后新建请求,免流用户的请求的是运营商的免流服务器,从而实现免流逻辑。
- (void)showChinaUnicomWebView:(NSString*)url;联通购买流量包列表,url带上取值是否为联通用户
- (void)backGroudCheck 设置后台任务,间隔24小时拉取一次订购关系;10分钟上报流量消耗;

- (void)requestFreeFlowProtocol 请求免流协议,拉取订购关系
- (void)onNotifyNetStateChange:(NSNotification*)notification 网络状况变化后的止损,在这里需要再次请求免流协议
ChinaUnicomFreeFlowProtocol 免流协议,回调事件比较繁杂待研究
免流协议:
切换免流服务器: switchFreeFlowServer
记录免流数量: FreeFlowCount
isForbiddenFreeFlow表示protocol请求是否禁止免流
如果forbidden为NO,真正cgi请求asi层实现的时候,判断或者是免流用户,会添加proxy,请求免流服务器,真正实现免流逻辑。
ChinaUnicomFreeFlowManager

-(void)startChinaUnicomFreeFlowProtocolWithPhoneNumber:(NSString *)phoneNumber 拉取用户免流订购关系,回调中会有重试逻辑
-(void)onlyStartGetPhoneNumberProtocol 只拉取号码
-(void)startGetPhoneNumberProtocol 拉取号码,成功后继续拉取免流信息
-(void)reachabilityChanged:(NSNotification *)notification
-(void)netChange 网络状况变化后,检测到图片恢复且在蜂窝网络现象下回再次请求免流协议,且只请求一次
WangsuFreeFlowManager
网速是否漫游: isWangsuFreeFlowRoam
1.app启动打算数据,QMFreeFlowManager开始initAction
获取号码的条款NetGetNumberProtocol
2.cgi免流量
3.webview免流量
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-119641-1.html
只要他不像那样耍赖坐滩
老成持重并不优于年轻热血
你的配音简直是整个电影的败笔