百度应用商店优化 百度应用市场优化( 五 )


订制方面利用URL Stream Protocol机制将HttpURLConnection底层网络协议栈接管为cronet , 供各个业务和基础模块使用 , 连接优化的所有内容在cronet网络库内部实现 。
7.2 连接优化在iOS网络架构的位置及实践
▲ 连接优化在iOS网络架构的位置
百度App的iOS网络流量目前都在cronet之上 , 上层我们使用iOS的URL Loading System机制将cronet stack注入进URLSession里 , 这样我们就可以直接使用URLSession的API进行网络的操作而且更易于系统维护 , 在上层封装了网络门面 , 供各个业务和基础模块使用 。
在cronet内部实现了预连接(主要针对百度App的几个核心域名进行预连和保活) , 连接重建(针对所有请求) , 备用连接(针对所有请求) , 复合连接(iOS上暂时没有开启) , Session Resumption(针对所有请求) , False Start(针对所有请求) 。
八、实际收益
连接优化的收益主要体现在网络时延和网络成功率上 , 这两点收益需要结合业务来说 , 以百度App Feed刷新这个典型业务场景为例 。
Feed刷新文本请求网络时延降低16% , Feed刷新图片请求网络时延降低12% , 可谓收益相当明显 。
成功率方面 , Feed刷新文本请求成功率提升0.29% , Feed刷新图片请求成功率提升0.23% , 也是非常不错的收益 。
九、本文结语
连接优化是个持续性的话题 , 没有最优只有更优 。上面介绍的百度App的一些经验和做法并不见得完美 , 但我们会继续深入的优化下去 , 持续提升百度App的网络性能 。
以上优化由百度App团队 , 内核团队 , OP团队共建完成 。最后感谢大家的辛苦阅读 , 希望对你有所帮助 , 后面会继续推出-百度App网络深度优化系列《三》弱网优化 , 敬请期待 。
十、参考资料
[1]https://chromium.googlesource.co … ild_instructions.md
[2] https://chromium.googlesource.co … ild_instructions.md
[3] False Start:https://tools.ietf.org/html/rfc7918
[4] Session Resumption:https://tools.ietf.org/html/rfc5077
[5] TCP Fast Open:https://tools.ietf.org/html/rfc7413
(原文链接:点此进入)
附录:更多网络通信方面的精华文章
《TCP/IP详解 – 第11章·UDP:用户数据报协议》
《TCP/IP详解 – 第17章·TCP:传输控制协议》
《TCP/IP详解 – 第18章·TCP连接的建立与终止》
《TCP/IP详解 – 第21章·TCP的超时与重传》
《技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)》
《通俗易懂-深入理解TCP协议(上):理论基础》
《通俗易懂-深入理解TCP协议(下):RTT、滑动窗口、拥塞处理》
《理论经典:TCP协议的3次握手与4次挥手过程详解》
《理论联系实际:Wireshark抓包分析TCP 3次握手、4次挥手过程》
《计算机网络通讯协议关系图(中文珍藏版)》
《UDP中一个包的大小最大能多大?》
《P2P技术详解(一):NAT详解——详细原理、P2P简介》
《P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解》
《P2P技术详解(三):P2P技术之STUN、TURN、ICE详解》
《通俗易懂:快速理解P2P技术中的NAT穿透原理》
《高性能网络编程(一):单台服务器并发TCP连接数到底可以有多少》
《高性能网络编程(二):上一个10年 , 著名的C10K并发连接问题》
《高性能网络编程(三):下一个10年 , 是时候考虑C10M并发问题了》


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。