移动互联网的组织形态、架构、通讯机制等等与有线网络都有着巨大的差异,腾讯在处理这种差异的时候都有哪些经验呢?
编者注:本文转自腾讯大讲堂。在 2014 年 4 月 11 日的腾讯分享日活动上,来自腾讯 MIG 的移动互联网事业群运营总监/T4 专家,负责运营 QQ 手机浏览器、腾讯 PC 浏览器、腾讯手机安全管家、腾讯电脑管家产品的刘昕介绍了移动无线产品研发中的“一秒钟法则”。
移动互联网的一个很大问题在于无线网络跟以前的有线网络不一样,无论是网络的组织形态、架构、通讯机制,跟有线网络都有很大差异,这带来很多挑战。今天介绍的“一秒钟法则”就是根据我们在移动互联网研发、运营过程中总结出来的一条解决的原则。
手机接入服务器的流程
首先,手机要通过无线网络协议,从基站获得无线链路分配,才能跟网络进行通讯。无线网络基站、基站控制器这方面,会给手机进行信号的分配,已完成手机连接和交互。
获得无线链路后,会进行网络附着、加密、鉴权,核心网络会检查你是不是可以连接在这个网络上,是否开通套餐,是不是漫游等。核心网络有 SGSN 和 GGSN,在这一步完成无线网络协议和有线以太网的协议转换。
再下一步,核心网络会给你进行 APN 选择、IP 分配、启动计费。
再往下面,才是传统网络的步骤:DNS 查询、响应,建立 TCP 链接,HTTP GET,RTTP RESPONSE 200 OK,HTTP RESPONSE DATA,LAST HTTP RESPONSE DATA,开始 UI 展现。
这是手机通过无线网络接入服务器的全过程。整个过程当中有几个困扰开发者的问题:
无线网络是怎么给手机分配到无线链路的? 核心网络有接入点(APN),这里的 CMNET 和 CMWAP 有什么区别,仅仅是协议不同吗吗?数据转发又有什么区别?一个数据包在不同网络上传输有不同吗? 用户怎么最快的找到正确的服务器?内容怎么快速有效的加载,在第一时间显示出来?
这几个问题的重点在于其中的几个连接点:
无线链路分配(物理实连接); IP 层链接(逻辑虚连接); TCP 层链接(逻辑虚连接); HTTP 层链接(逻辑虚连接); 用户在线(逻辑虚连接)。
即使 TCP 连接建立,看到用户在线,也必须在手机获得无线链路分配的情况下,一个完整的通信才能真正完成,上行下行数据才能发送。这是移动互联网非常重要的特性。在现实中,手机已经分配 IP 也可能是没有无线链路,为什么?无线网络的资源是有限的,必须有效利用,这里由无线网络的信令机制完成无线网络资源的分配与释放。
以用手机打电话的场景示例:用户在手机上拨号出去后,手机会跟网络申请无线链路,呼叫申请会发给电路域的核心网,通过电话交换机找寻被叫电话,被叫方接通电话,无线链路建立;完成通话,挂断的时候,手机给网络发送指令,表示服务使用结束,把已经分配的无线链路释放。
上网的情况就比较复杂一些了。什么时候决定无线链路的分配?什么时候决定通讯完成?对于这两个时间点,不同的网络制式、不同的运营商都是不同的,不过大致上有几个区间值:
在 2G Edge 网络下,差不多是 1 秒钟不传数据,就释放物理连接,回收给其他人备用。3G 网络会延长几秒钟。
这样的设定是有原因的。比如现在我们这个会场里有 200 人,那么我们 200 人同时上网的前提是共享同一个基站的资源,共享资源必须要有规则,比如要有排序,根据资源情况、用户链接活跃决定分配还是回收,这都是通过无线网络信令控制的。
给一个手机分配无线信道的信令又有好几个情况,比如基站跟手机,基站跟基站控制器、核心网。举个例子,服务器从后台发送 push 消息,移动网络可能不知道这个手机是否活跃,不知道在哪个小区,移动网络就会发一个寻呼,在各个小区找这个手机,当然这个不能基于 IP,而是其他的网络标识。找到了之后,这个手机再去申请信道资源,然后才能接受 push。所以,这种场景下信令的消耗可能会在很多小区产生。
根据以上情况,就形成无线网络的一大特点:秒级状态管理,秒级状态转换。这两个操作都在几百毫秒到几秒之间进行,对于维持连接来说时间太短,对于从无连接到有连接的转换来说时间又太长。
相比之下,有线网络的状态管理如 IP 分配、TCP 连接释放,都是分钟级,而状态转换则是毫秒级。
这些通讯机制,同时加上无线网络的高延迟、高丢包。如何保证移动互联网的产品提供稳定的、可预期的服务质量,成为非常大的挑战: •2G 网络上无线部分数据传输的延迟有几百 ms,4G 网络上无线部分传输延迟减少到几十 ms,核心网状态转换、协议转换 30~100ms,IP 骨干网上的延迟又跟物理距离以及运营商互联互通质量有关,跨运营商 50-400ms,同运营商 5-80ms,这个还要取决于网络拥塞的情况。 •无线网络误码率比有线高两个数量级,在不同时间段的波动也非常巨大。
怎么基于移动网络的特性去优化服务?这就是我们总结的一秒钟法则:在一秒内要完成的规定动作。
2G 网络:1 秒内完成 DNS 查询、和后台服务器建立连接; 3G 网络:1 秒内完成首字显示(首字时间); WiFi 网络:1 秒内完成首屏显示(首屏时间)。
这些指标需要在终端度量,必须跟用户体验相关:首字时间、首屏时间都必须是用户可以直观感受到的。
文章评论 本文章有个评论