美文网首页
移动端弱网优化

移动端弱网优化

作者: 灰斗儿 | 来源:发表于2020-04-13 22:24 被阅读0次

https://cloud.tencent.com/developer/article/1150998

RTT(Round Trip Time):数据报文一次往返时间
MSS(TCP Maximum Segment Size): 单次传输最大数据报文长度

快链路

TCP/IP协议栈

  • 控制传输包大小
    避免数据报文大小超过物理网络层的限制触发IP分片,因为一旦触发会增加与服务器的交互次数

  • 放大TCP拥塞窗口
    TCP拥塞窗口(cwnd)初始值设为10,流量控制防止弱网依然疯狂发包,拥塞控制可检测网络情况

  • 调大SOCKET读写缓冲区
    SOCKET的读写缓冲区大小设置为64KB

  • 调大RTO(Retransmission TimeOut)初始值
    将RTO(Retransmission TimeOut)初始值设为3s。RTO既重传间隔,放大可以避免不必要的重传

  • 禁用TCP快速回收
    启用会使原来需要等待2MSL的变成1MSL,禁用可降低重传概率

  • HTTP协议:打开SOCKET的TCP_NODELAY选项
    避免大量小的数据报文在网络中流窜造成拥塞

接入调度

  • 就快接入
    CDN+客户端选路(测速和报告)。并非物理距离近,就一定快。
  • 去DNS的IP直连
    可减少一个RTT时间消耗,并避免因DNS单节点压力过大、设备LOCAL DNS错误、运营商劫持、DNS污染等问题
  • 网络可达性探测

链路管理

  • 链路复用
    避免多次客户端与服务器三次握手,连接一旦建立就保持。可通过HTTP Keep-Alive 属性实现
  • 区分网络类型的超时管理
    超时时间因网而异,重试策略
  • 优质网络下的并发链路
    积压的任务网好之后并发发送
  • 轻重链路分离
    小数据和大数据隔离,避免大数据延迟影响小数据
  • 长链接
    节省了三次握手的时间等待
  • 小心重试
    设置合适的重试测试,避免后台雪崩。比如无网不重试、动态重试时间、限制重试次数、服务器异常不重试
  • 及时反馈
    告知用户当前网络状态,不要一直loading
  • 异步IO
    设计异步总线,总线可能会涉及包括队列管理(优先级、超时、CRUD等)、事件驱动、任务调度等,客户端注意做缓存。
  • 并发控制
    避免滥用异步队列,任务有轻重缓急
  • 推拉结合
    apple apns
  • 断点续传
    网络恢复后,继续上次完成一半的任务,不要重头再来

轻往复

  • 协议二进制化
  • 高效协议
    Google SPDY
  • 协议精简
    减少不必要的数据传输
  • 协议合并
    例如两个接口合并成一个接口,原本请求两次变一次
  • 增量技术
    例如日志上传,每天一次全量上传,多次增量上传
  • 包压缩
    gzip、先压缩再加密(加密后的二进制数据流压缩率较低),webp

强监控

  • 接入质量监控:客户端汇总接入调度FSM执行过程元信息以及业务请求响应结果的元信息,并由此根据网络类型不同、运营商不同、网络接入国家和省市不同分析接入成功率、业务请求成功率(还可细化按业务类型分类统计)、前述二者失败的原因归类、接入302重定向次数分布暨原因、接入和业务请求测速等;
  • 建设云端可控的日志染色机制:便于快速有针对性的定点排查问题;
  • 终端硬件、网络状态的相关参数采集汇总;
  • 建设云端可控的接入调度(比如接入IP列表等)和网络参数(比如连接超时、IO超时、任务超时、并发链接数、重试间隔、重试次数等)配置下发能力;
  • 服务器根据汇总数据。

多异步

  • 请求任务划分优先级
  • 网络内容预加载
  • 适配网络调整请求数据大小,例如分页
  • 减少网络往复,要快
  • 减少网络流量,要轻

相关文章

  • 移动端弱网优化

    https://cloud.tencent.com/developer/article/1150998 RTT(R...

  • 弱网测试利器-Charles工具实战

    一:弱网测试要点 二:利用抓包工具charles进行弱网设置,适用PC端和移动端(IOS/Android) 1、以...

  • 移动app网络优化

    移动app网络优化的三个切入点:速度、弱网、网络安全 本章主要讲如何优化网络请求速度。弱网和网络安全都是轻描淡写,...

  • 【移动端测试】移动端测试要点

    1、移动端测试 1、定义 移动端软件测试就是符合多重网络(2G,3G,4G,wifi,弱网,断网),不同系统(io...

  • iOS 性能优化总结

    http://www.cocoachina.com/ios/20180412/22990.html 弱网下移动端网...

  • 移动端弱网测试实践

    弱网测试作为健壮性测试的重要部分,对于移动端测试来说必不可少。这是因为目前移动端产品的使用用户所处的网络并非完全的...

  • 移动端弱网优化的一次记录

    最近的困境 由于公司项目是原生+web的混合开发,而且web所占的比例还比较大,所以对web在移动端上的表现要求比...

  • 弱网测试测试点思考

    最近公司网络越来越差,移动端弱网测试就显得非常的急迫,简单的记录今天对弱网测试的一些想法。 弱网测试是网络测试的一...

  • 弱网测试

    大家好,我是阿萨。无论我们做Web测试还是做移动端的APP测试,都需要测试弱网。今天我们就来学习下弱网测试。 什么...

  • 百度APP移动端网络深度优化实践分享(三):移动端弱网优化篇

    本文由百度技术团队“蔡锐”原创发表于“百度App技术”公众号,原题为《百度App网络深度优化系列《三》弱网优化》,...

网友评论

      本文标题:移动端弱网优化

      本文链接:https://www.haomeiwen.com/subject/xrcomhtx.html