摘要:在物联网飞速发展的今天,嵌入式移动终端设备得到广泛的应用。移动设备固有的移动特性,使得应用程序远程升级、业务数据远程下载成为一项重要功能指标。文章就如何实现嵌入式移动终端设备同远程服务器之间数据的快速交互更新,从数据预处理和交互机制两方面提出切实可行的方法。
关键词:嵌入式移动设备;GZIP;窗口交互;断点续传
中图分类号:TN929文献标识码:A文章编号:1009-2374(2012)04-0114-02
在物联网飞速发展的今天,嵌入式移动终端设备得到广泛的应用。移动设备固有的移动特性,使得应用程序远程升级、业务数据远程下载成为一项重要功能指标。由于网络带宽有限,同时移动终端设备处于移动状态,往往导致移动终端的数据远程更新速度较慢,对终端用户的使用体验造成一定的不良影响。在此前提下,通过结合无线网络、数据压缩、数据快速交互技术实现移动终端设备数据远程更新具有重要意义和一定的研究价值。
在维持现有的网络带宽和无线数据传输速度不变前提下,要实现移动终端设备程序远程数据更新,只能从降低网络传输数据量、提高数据交互效率两方向着手。本文将根据上述两个方向,分别提出相应的解决方案。
一、降低网络传输数据量
时至今日,数据压缩技术已经非常成熟,各种数据无损压缩算法得到广泛应用,尤其是在网络数据传输应用中。此外,嵌入式移动设备硬件资源的飞速发展,嵌入式CPU的处理速度越来越快,不仅可以对静态文件进行压缩、解压处理,减小静态文件的大小,还可以对应用程序中的实时数据动态地进行压缩、解压处理,尤其在拨号上网和负载较重的网络应用中对通信数据进行压缩,可极大地提高传输效率和节省网络资源。
GZIP是目前广泛应用的一种无损压缩算法,它具有很高的压缩比和压缩效率。同时该算法支持多种操作系统、多种编程语、方便移植的特点,无疑是嵌入式移动设备最佳选择之一。采用GZIP算法,数据的压缩率大部分能够达到40%左右,有些甚至高达70%。在同等网络传输速率下,采用GZIP压缩后的数据,传输数据量大大降低,相应地传输时间就明显减少,有利于移动终端数据的快速下载及相关业务功能实現和终端客户使用体验。
为了减少网络数据传输量,在移动终端设备的应用程序升级或业务数据下载之前,我们建议对传输数据进行GZIP压缩预处理,以无损压缩的方式降低传输数据量,经由无线通讯网络下载至移动终端设备的上,再利用GZIP数据解压算法还原为原始数据,并最终在移动终端上应用更新数据。
交互数据预处理操作如下:
二、提高数据交互效率
移动终端通过TCP/UDP方式从远程服务器进行数据下载,通常利用各种用户定义的通讯交互方式来实现。其中“一帧下行数据,一次上行数据”交互机制即在数据下载过程,移动终端针对远程服务器的每帧数据都予以相应的应答,该方法简单可靠,但是数据交互次数较多,时间开销大,下载速度较慢;“无应答”下载机制,该方法在数据下载过程,移动终端在下载完所有数据后才对数据进行完整性、正确性进行判断,该方法无数据交互,时间开销小,下载速度快,但成功率较低;“窗口交互机制”针对上述两种方法的优点及缺点,予以改进,以窗口交互的方式,利用适当的交互次数,实现快速可靠地下载数据。
(一)窗口交互机制
我们约定N组数据帧为一个传输“窗口”的数据,移动终端设备和远程服务器通过窗口交互机制进行数据下载时,移动终端在接收完一个“窗口”数据、或接收等待计数器超时、或接收到远程服务器在应答等待计数器超时发送的查询包后,才向远程服务器一个接收结果通知,即“多帧下行数据,一帧上行数据”方式。
相对当前常用的数据传输“一帧下行数据,一次上行数据”方式,假定在相同网络环境和传输数据包大小的情况下,远程服务器下发数据至移动终端的传输时间等于移动终端上行数据至远程服务器的时间,均为T,则完成传输一个窗口的N(大于1)帧数据,理想状态下,窗口交互机制所用的时间为(N+1)* T,而“一帧下行数据,一次上行数据”窗口机制所用的时间为(2N)*T,理论上减少了(N-1)* T的传输时间,对于一个能分割M个窗口的更新文件的下载理论上将节省M*( N-1)*T的时间。
相对于“无应答”下载机制,本方法虽然增加数据交互的次数,在理想状态下,更新时间有所延长。但是,本方法通过有限的交互次数,能够有效地解决网络数据丢包、延时、设备异常重启等导致更新中断、延时问题,在实际运行环境下,以有限的时间开销,实现快速可靠地远程数据更新,实际更新速度甚至可能超过“无应答”下载机制。
其中传输窗口交互如图1所示:
(二)窗口数据帧数N的确定
对于N的取值,需要根据实际无线网络的带宽、数据帧大小、远程服务器网络带宽、移动终端连接数等因素予以选择,可以建立以下关系式择优确定:
N = ,其中为无线网络下行速率,为远程服务器网络带宽,单位取KBps,为移动终端连接数,为传输数据包大小(应不大于网络最大传输单元大小),单位取KB,其中和值涉及系统资源配置和运营成本。
通过结合实际运行条件择优选择N的数值,可以在有限的资源开销的前提下,最大化地发挥“窗口交互机制”的效率,减少移动终端和远程服务器的数据交互次数及时间,快速地将远程数据下载至移动终端上。
(三)断点续传机制
鉴于无线数据传输交互存在一定的不稳定性,嵌入式移动设备在数据交互过程中,除了利用“窗口交互机制”提高效率之外,还需要考虑传输网络中断等异常情况。本文方法在数据传输过程中还设计了断点续传的机制。机制实现流程如下:
1.嵌入式移动终端与远程服务器建立无线通信链路,依据“窗口传输机制”约定数据传输。
2.嵌入式移动终端与远程服务器在数据交互过程中,记录保存当前的数据交互情况,其中远程服务器需记住总数据包数、数据包长度等信息,嵌入移动终端需记住总数据包数、已接收数据序号等信息。
3.当出现无线网络中断、设备重启等异常状况,导致嵌入式移动终端同远程服务器之间数据交互中端,移动终端在检测到通讯恢复正常后,应根据自身保存的总数据包数、已接收数据序号等信息,在判断出数据未完整接收的情况下,向远程服务器发起断点续传请求,请求下载为接收数据包。
4.远程服务器在接收到移动终端的断点续传请求后,同自身保存数据交互信息相比较,并给予移动终端接受或拒绝响应。若为接受响应,则根据“窗口交互机制”启动数据补传;若为拒绝响应,则结束当前数据交互流程。
三、结语
在经济和科技高速发展的今天,具备无线通信功能移动设备得到越来越广泛地应用,嵌入式移动终端设备需要同远程服务器进行大量的数据交互。本文介绍的方法,主要是通过对远程数据进行GZIP等压缩预处理,同时利用兼具快速、可靠特点的“窗口交互”机制和断点续传机制,实现移动终端设备从远程服务器快速可靠地更新应用数据,保证终端设备的正常运行,提高终端用户的体验效果。
参考文献
[1]孙学康,刘勇.无线传输与接入技术[M].人民邮电出版社,2010.
[2](美)萨洛蒙著,吴乐南,等译.数据压缩原理与应用(第2版)[M].电子工业出版社,2003.
[3](美)史蒂文斯(W.Richard Stevens)著,范建华,等译.TCP/IP 详解[M].机械工业出版社,2007.
作者简介:陈挺,厦门雅迅网络有限公司工程师,研究方向:嵌入式移动设备。
(责任编辑:刘 艳)