摘要:在物聯網飛速發展的今天,嵌入式移動終端設備得到廣泛的應用。移動設備固有的移動特性,使得應用程序遠程升級、業務數據遠程下載成為一項重要功能指標。文章就如何實現嵌入式移動終端設備同遠程服務器之間數據的快速交互更新,從數據預處理和交互機制兩方面提出切實可行的方法。
關鍵詞:嵌入式移動設備;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.
作者簡介:陳挺,廈門雅迅網絡有限公司工程師,研究方向:嵌入式移動設備。
(責任編輯:劉 艷)