移动网络访问云上对象存储最佳实践

一、背景

随着移动应用的广泛应用,智能移动设备在不同的无线通信网络情况下,会有不同的网络速度,如何在2G、3G、4G、5G无线通信网络下访问云存储的用户体验更好,是应用设计的核心竞争力,特别是弱网情况下的体验。

二、网络技术分析

实际网络中,没有绝对的弱网,核心是“新应用针对新一代网络设计(4G下行速率为100Mbps)、从而在前一代网络运行(2G下行速率为9.6Kbps)时网络体验差”。因此,需要先分析网络速率。

2.1 移动网络分析

2.1.1 术语

简称 全称
2G 2nd-Generation
3G 3rd-Generation
4G 4rd-Generation
5G 5rd-Generation
GSM Global System for Mobile Communications
EGSM Extend-Global System for Mobile Communications
DCS Digital Cellular System/Digital Communications System
PCS Personal Communications Service
GPRS General Packet Radio Service
EDGE Enhanced Data rates for GSM Evolution
CDMA Code Division Multiple Access
TD-SCDMA Time Division - Synchronous Code Division Multiple Access
WCDMA Wide band Code Division Multiple Access

其中,2G 包含 GSM900/EGSM/DCS1800/PCS1800 技术、2.5G 包含 GPRS 技术, 3G 包含 CDMA2000/TD-SCDMA/WCDMA 技术、4G 包含 TD-LTE/FDD-LTE 技术。

2.1.2 网络速度

技术点 上行速率(bps) 下载速率(bps) 备注
1G 无数据传输 N/A N/A 发明于 1980s
2G GSM900 2.7K 9.6K 发明于 1995,短信应用
EGSM900 2.7K 9.6K
GSM1800 2.7K 9.6K
GSM1900 2.7K 9.6K
2.5G GPRS 42.8K 85.6K
EDGE 45K 90K
3G CDMA2000(中国电信) 1.8M 3.1M 发明于 2003,图片、语音应用
TD-SCDMA(中国移动) 384K 2.8M
WCDMA/HSPA/HSPA+(中国联通) 1.8M/5.76M 2.4M/7.2M/21M
4G 中国电信 50M 100~150M 发明于 2009,视频应用
中国移动 50M 100~150M
中国联通 50M 100~150M
5G WiFI 600M 1Gbps~20Gbps(理论带宽) 发明于2020,IoT 应用

2.2 网络环境参数

除了上述的上/下行带宽外,还要关注上/下行丢包率、上/下行延迟、最大传输单元(MTU, Maximum Transmission Unit)、DNS延迟、连接稳定性等指标。

三、访问云上对象存储实践

假设网络上传带宽为 uBW,下载带宽为 dBW,应用超时t
所以

上传数据包大小 uPKG = uBW * t
下载数据包大小 dPKG = dBW * t

例如 2.5G 网络技术GPRS下,上传带宽 uBW 为 42.8K,下载带宽 dBW 为85.6K,
假设为优化应用体验设置超时为 1 秒,那么:
  上传数据包大小 uPKG = 42.8 Kbps * 1s /8 = 5.35 KB
    下载数据包大小 dPKG = 85.6 Kbps * 1s /8 = 10.7 KB

例如 3G 网络技术WCDMA下,上传带宽 uBW 为 1.8M,下载带宽 dBW 为2.4M,
假设为优化应用体验设置超时为 1 秒,那么:
  上传数据包大小 uPKG = 1.8 Mbps * 1s / 8 = 230 KB
    下载数据包大小 dPKG = 2.4 Mbps * 1s / 8 = 300 KB

例如 4G 网络技术下,上传带宽 uBW 为 50M,下载带宽 dBW 为 100M,
假设为优化应用体验设置超时为 1 秒,那么:
  上传数据包大小 uPKG = 50 Mbps * 1s / 8 = 6.25 MB
    下载数据包大小 dPKG = 100 Mbps * 1s / 8 = 12.5 MB

例如 5G 网络技术GPRS下,上传带宽 uBW 为 600M,下载带宽 dBW 为 1G,
假设为优化应用体验设置超时为 1 秒,那么:
  上传数据包大小 uPKG = 600 Mbps * 1s / 8 = 75 MB
    下载数据包大小 dPKG = 1000 Mbps * 1s / 8 = 125 MB

四、总结

基于上述计算,如果希望在单次请求中传输更大的对象,可以设置更大的超时值,比如10 秒。如果传输的对象非常大,比如GB级的对象,可以使用分片上传。

当然,如果在网络速度较低时,比如2.5G网络的GPRS下每秒上传数据包为5.35KB、下载数据包为10.7KB,此时可以从前端缓冲区上进行优化控制。

典型的网络测试:

  1. SIM卡的网络切换
    手机—设置—移动网络设置—网络类型选择
  2. 具体弱网场景测试,常见场景包括:地铁、电梯、楼梯间、卫生间
  3. 使用无线网卡、路由器修改宽带速度模拟网络速度
  4. 使用软件进行网络代理,模拟不同的网络带宽、延时率、丢包率

参考

移动网络访问云上对象存储最佳实践

上一篇:689. Maximum Sum of 3 Non-Overlapping Subarrays


下一篇:web、app测试流程