现在的位置: 首页 > 综合 > 正文

手机实时传输的问题集锦

2014年02月11日 ⁄ 综合 ⁄ 共 865字 ⁄ 字号 评论关闭

PC上建立实时传输通道相对容易,比如IM几本看不到延时,跨机PC间延时可以小到几十毫秒,用户感受不到。

wifi,3G下建立实时传输相对较难,A给B发一段语音或者文字需要一定的延时才能收到,当网络情况较好比如wifi下,用IM工具也可以建立实时传输的通道。

为了好看清问题,我将实时传输分成了两类:

1.不间断的传输

2.可间断的传输

对于第1类,实现起来相对容易,3G情况下网络给力的时候也可以实现实时通话,而对于第2类则相对麻烦。

举个例子,A给B用微信发起了实时对讲,B同意后不是立刻就能对讲,而要等几秒后。

不管是WCDMA还是CDMA2000,网络层都是建立在信道层基础上的,发射塔每个扇区的传输信道是有限的,所以需要快速回收,手机与发射塔建立信道需要一个一过程,一般需要1-5s的时间,如果你用安桌的手机会看到3G符号下面有上传下载的箭头,当箭头变灰的时候,代表信道已经中断,变彩色的时候代表信道建立。

信道的搭建与释放一般是伴随网络请求的过程。

如果你手里有手机,且后台没有一直连网的程序,打开浏览器,输入www.baidu.com,你会发现会有3-5秒的延时,当你的3G符号下面的箭头成彩色的时候,再次尝试,你会发现只要1-2秒的时间就可以成功。

对于第2种情况,如果需要实现实时传输,最重要的是需要用户一直占用发射塔的信道,保持短心跳。

实时传输一般需要建立在udp基础之上,因为udp有很高的传输速度,但不能保证传输质量,对于一些对传输质量高的应用场景,单UDP不能满足需要。

为了方便分析问题,我将应用场景分成以下三类:

1. 高速度,允许丢包

2. 高质量,收包有先后顺序

3. 高质量,可以不分先后顺序

一些实时PK的游戏,传输特点是包体很小,频率很高,前后无状态,第1类则正好符合,直接使用UDP就可以满足要求。

棋牌类的对战游戏,需要高质量的传输,发牌有先后顺序,正好是第2类,对每个收到的包都要做回包处理,而且要串行处理。

单画面并行对战的游戏,比如水果忍者里有多个西瓜,先切哪个不重要,重要的是对方收到你切掉了哪些,用第3种正好可以处理。

抱歉!评论已关闭.