前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >海量之道系列文章之弱联网优化 (一)

海量之道系列文章之弱联网优化 (一)

原创
作者头像
樊华恒
修改2017-07-03 10:10:38
7.5K2
修改2017-07-03 10:10:38
举报
文章被收录于专栏:樊华恒的专栏

前言

【弱联网优化】作为海量之道2.0系列课题的基础方法论之一,望文生义,想必定是卖弄移动网络信号不佳时如何优化的奇技淫巧。恭喜你,感觉靠谱,不过我们还想多聊一点其它话题。

移动互联网颠覆着我们的生活方式,这个每时每刻伴随着我们的网络到底有哪些特点,又是如何影响我们接入信息世界的体验呢。以下场景如似曾相识,敬请对号入座:

上班路上收到朋友分享的一张美女图片,缩略图目测衣服用料相当节俭,立马兴奋点开欲详细钻研,却发现怎么脱也脱不下来,不对,是“拖”不是“脱”,仰望苍天,欲哭无泪。

进电梯前收到女友一条消息:“你到底爱不爱我!”,当然马上回复“必须的必!”,电梯门关闭了,北风那个吹,菊花那个转,等到春暖梯开,满屏都是女友的问候“在吗!”、“这都要想那么久!”、“跟哪个MM聊天呢!”、“我生气了!”、“你是好人,再见!”,看着自己的回复刚刚发送成功,停在最后一行,整个互动信息一气呵成,都是眼泪。

和朋友聚餐,菜端上先拍照分享,再大快朵颐,明明坐在对面,偏偏还得用手机聊天,世界最远的距离,莫过于我们坐在一起,却只能用手指切磋。

有因有果,有道有术,不入虎穴焉得虎子,不扯了,进入正题。

1. 移动网络的特点

我们看到移动网络和移动互联网时代用户的行为有如下三个典型特点:

1) 移动状态网络信号不稳定,高时延、易抖动丢包、通道狭窄;

2) 移动状态网络接入类型和接入点变化频繁;

3) 移动状态用户使用高频化、碎片化、非WIFI流量敏感;

为什么?参考【图一 无线网络链路示意】,我们尝试从物理上追根溯源:

【图一 无线网络链路示意】

第一、直观印象是通讯链路长而复杂,从(移动)终端设备到应用服务器之间,相较有线互联网,要多经过基站、核心网、WAP网关(好消息是WAP网关正在被依法取缔)等环节,这就像送快递,中间环节越多就越慢,每个中转站的服务质量和服务效率不一,每次传递都要重新交接入库和分派调度,一不小心还能把包裹给弄丢了;

第二、这是个资源受限网络,移动设备接入基站空中信道数量非常有限,信道调度更是相当复杂,如何复杂就不展开了,莫文蔚那首歌词用在这里正合适:“我讲又讲不清,你听又听不懂......”,最最重要的是分配的业务信道单元如果1秒钟不传数据就会立马被释放回收,六亲不认童叟无欺;

第三、这个链条前端(无线端)是高时延(除某些WIFI场景外)、低带宽(除某些WIFI场景外)、易抖动的网络,无线各种制式网络带宽上限都比较低而传输时延比较大(参见【表一 运营商移动信号制式带宽标准】),并且,没事就能丢个包裹玩玩,最最重要的是,距离基站的远近,把玩手机的角度、地下室的深度等等都能影响无线信号的质量,让包裹在空中飞一会,再飞一会......。这些因素也造成了移动互联网网络质量稳定性差、接入变化频繁,与有线互联网对比更是天上人间的差别,从【图二 有线互联网和移动互联网网络质量差异】中可以有更直观的感受;

【图二 有线互联网和移动互联网网络质量差异】

【表一 运营商移动信号制式带宽标准】数据来自互联网各种百科,定性不定量,仅供参考;

移动运营商

通信标准

信号制式

备注

中国移动

2.5G

GPRS

属2G网络,基于GSM,理论峰值速率172 Kbps(实际最高115 Kbps),图标“G”,时延300 ~ 500ms;

中国移动

2.75G

EDGE

属2G网络,基于GSM,理论下行峰值速率236 Kbps、上行峰值速率118 Kbps,图标“E”,时延200 ~ 400ms;

中国移动

3G

TD-SCDMA

属3G网络,理论下行峰值速率1.6 Mbps、上行峰值速率1.6 Mbps,图标“T”,时延100ms;

中国移动

3.5G

HSPA

属3G网络,基于TD-SCDMA,包括HSDPA和HSUPA,理论下行峰值速率2.8 Mbps、上行峰值速率2.2 Mbps,图标“H”,时延100ms;

中国移动

4G

TD-LTE

属4G网络,理论下行峰值100 Mbps,上行峰值 50Mbps,时延10 ~ 50ms;

中国电信

2G

CDMA 1X

属2G网络,基于CDMA,理论下行峰值速率153Kbps、上行峰值速率153 Kbps,图标“1X”,时延500 ~ 600ms;

中国电信

3G

EDVO

属3G网络,基于CDMA 2000,理论峰值下行3.1 Mbps、上行1.8 Mbps,图标“3G”,时延100ms;

中国电信

4G

TD-LTE FDD-LTE

均属4G网络,TD-LTE理论下行峰值速率100 Mbps,上行峰值 速率50Mbps,FDD-LTE理论下行峰值速率150 Mbps,上行峰值速率40 Mbps,时延10 ~ 50ms;

中国联通

2.5G

GPRS

属2G网络,基于GSM,理论峰值114 Kbps,图标“G”,时延300 ~ 500ms;

中国联通

2.75G

EDGE

属2G网络,基于GSM,理论下行峰值速率236 Kbps、上行峰值速率118 Kbps,图标“E”,时延200 ~ 400ms;

中国联通

3G

HSPA

属3G网络,基于WCDMA,包括HSDPA和HSUPA,理论下行峰值速率14.4 Mbps、上行峰值速率5.76 Mbps,图标“H”,时延100ms;

中国联通

4G

TD-LTE FDD-LTE

均属4G网络,TD-LTE理论下行峰值速率100 Mbps,上行峰值 速率50Mbps,FDD-LTE理论下行峰值速率150 Mbps,上行峰值速率40 Mbps,时延10 ~ 50ms;

N/A

WIFI

WLAN IEEE 802.11a/b/g

论峰值速率54 Mbps,时延10 ~ 50ms;

N/A

WIFI

WLAN IEEE 802.11n

理论峰值速率<600 Mbps,时延10 ~ 50ms;

【表一 运营商移动信号制式带宽标准】

第四、这是个局部封闭网络,空中信道接入后要做鉴权、计费等预处理,WAP网络甚至还要做数据过滤后再转发,在业务数据有效流动前太多中间代理人求参与,效率可想而知。产品研发为什么又慢又乱,广大程序猿心里明镜似的;最最重要的是,不同运营商之间跨网传输既贵且慢又有诸多限制,聪明的运营商便也用上了缓存技术,催生了所谓网络“劫持”的现象。

如果我们再结合用户在移动状态下2G/3G/4G/WIFI的基站/AP之间,或者不同网络制式之间频繁的切换,情况就更加复杂了。

2. 移动网络为什么“慢”

我们在移动网络的特点介绍中,很容易的得到了三个关键字:“高时延”、“易抖动”、“通道窄”,这些物理上的约束确实限制了我们移动冲浪时的速度体验,那么,还有别的因素吗。

当然有,汗牛充栋、罄竹难书:

1) DNS解析,这个在有线互联网上司空见惯的服务,在移动互联网上变成了一种负担,一个往复最少1s,还别提遇到移动运营商DNS故障时的尴尬;

2) 链路建立成本暨TCP三次握手,在一个高时延易抖动的网络环境,并且大部分业务数据交互限于一个HTTP的往返,建链成本尤其显著;

3) TCP协议层慢启动、拥塞控制、超时重传等机制在移动网络下参数设定的不适宜;

4) 不好的产品需求规定或粗放的技术方案实现,使得不受控的大数据包、频繁的数据网络交互等,在移动网络侧TCP链路上传输引起的负荷;

5) 不好的协议格式和数据结构设计,使得协议封装和解析计算耗时、耗内存、耗带宽,甚至协议格式臃肿冗余,使得网络传输效能低下;

6) 不好的缓存设计,使得数据的加载和渲染计算耗时、耗内存、耗带宽;

现在终于知道时间都去哪了,太浪费太奢侈,还让不让人愉快的玩手机了。天下武功,唯快不破,我们一起踏上“快”的探索之路吧。

3. 移动联网快的四个方法

在移动互联网时代,对我们的产品和技术追求提出了更高的挑战,如何从容和优雅的面对,需要先从精神上做好充分的准备,用一套统一的思考和行动准则武装到牙齿:

1) 不要我等,一秒响应;

2) 可用胜于完美;

3) 水到渠成,润物无声;

听起来很抽象,也不着急解释(罗老师说:除了亲人和法院,其它人误会,都TND懒得解释),耐心看完整篇文章再来回味,定有醍醐灌顶,昏昏欲睡之功效。

从来就没有什么救世主,只有程序猿征服一切技术问题的梦想在空中飘荡。屡败屡战,把过往实践中的经验教训总结出来,共同研讨。针对移动网络的特点,我们提出了四个方法来追求极致的“爽快”:快链路、轻往复、强监控、多异步。

下面逐一展开研讨。

海量之道系列文章之弱联网优化 (二)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. 移动网络的特点
  • 2. 移动网络为什么“慢”
  • 3. 移动联网快的四个方法
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档