宋 飛,翟建偉,張思東,張宏科
(北京交通大學電子信息工程學院下一代互聯(lián)網互聯(lián)設備國家工程實驗室,北京 100044)
社交網絡[1-2]的演進離不開信息技術的發(fā)展,具體表現(xiàn)為以下方面:(1)隨著第三代移動通信(the 3rd Generation,3G)[3]業(yè)務的大規(guī)模推廣、WiFi 無線城市的部署和長期演進技術(Long Term Evolution,LTE)[4-5]的試運營,人們對于通信的要求早已不再局限于簡單的語音和短信,伴有社交行為的通信方式正在慢慢成為人們的習慣。(2)通信行業(yè)的發(fā)展使得用戶能夠更方便地接入互聯(lián)網,這為社交網絡的發(fā)展提供了廣闊的空間。目前,社交通信技術正呈現(xiàn)跨越式增長的趨勢,和傳統(tǒng)通信方式相比,該技術能夠更全面地迎合人類基本的社交和溝通的需求。(3)以iPhone[6]、Galaxy Note[7]為代表、擁有良好用戶體驗的智能手持終端,帶動了iOS[8]、Android[9]操作系統(tǒng)的普及。用戶爆炸式的增長也為構建社交網絡新的應用模式提供了條件。
但實際存在的問題仍然較多:(1)盡管3G 網絡覆蓋了用戶活動的大部分區(qū)域,但其實際接入速率卻仍然差強人意;(2)能夠提供高速率接入的WiFi 無線城市技術,信號覆蓋范圍還比較有限,而且不同接入點間的高速移動切換問題尚未得到很好解決;(3)LTE 的中規(guī)模部署還有待時日。因此,有必要討論如下問題:(1)如何在基礎設施不穩(wěn)定或不可用(如受地形因素及電磁波傳輸性能因素影響導致的信號不穩(wěn)定、自然災害或其他因素導致的基礎設施受損或發(fā)生故障)的情況下實現(xiàn)具有社交屬性的通信(即實現(xiàn)“應急通信”)。(2)對于某些保密內容,如何將通信范圍限定在一定的空間內(即實現(xiàn)“區(qū)域通信”)。
本文研究移動WiFi 熱點、對等網絡、智能手持設備操作系統(tǒng)等相關技術,并提出一種面向社交網絡的智能通信平臺構建方法。
本文提出的智能通信平臺根據(jù)結構劃分為3 個部分:底層網絡,中層接口和上層應用,分別負責基本組網功能、參數(shù)傳遞功能和高級通信功能。
為實現(xiàn)數(shù)據(jù)鏈路層的聯(lián)通,底層有必要采用一種靈活的組網方式。本文以移動WiFi 熱點為例進行描述,其他接入方式(如藍牙、Zigbee 等)亦可參考該思路進行設計。手持終端可以通過不同的方式建立WiFi 熱點,從而在多個設備之間建立獨立的端到端無線信道。有2 種組網方式可供選擇:中心化便攜式接入點方式和非中心化對等網方式。
(1)采用便攜式接入點方式時,首先選擇一臺手持設備作為WiFi 網絡的接入點建立便攜式熱點,在此基礎上其他手持設備可將接入點設備設為網關,然后接入該移動WiFi網絡。其中,作為便攜式熱點設備的無線網卡應工作在Master 模式下,用于提供穩(wěn)定的無線接入服務,而其他設備的無線網卡則應工作在Managed 模式下,并通過便攜式熱點設備連接到移動WiFi 網絡。此類網絡采用了中心化的組網方式,無線網絡所承載的數(shù)據(jù)需要由便攜式熱點設備集中進行轉發(fā),因此,一旦該熱點設備發(fā)生故障或離開網絡,處于Managed 模式下的其他終端將無法正常通信。
(2)采用對等網方式時,移動WiFi 網絡的無線環(huán)境由網內所有終端設備共同構建(根據(jù)隨機退讓算法發(fā)送網絡的狀態(tài)信息)。各個手持設備既是移動WiFi 網絡的建立者和維護者,又是該網絡的接入者和使用者。所有手持設備的無線網卡都應工作在Ad-Hoc 模式下,并使用公共的無線信道完成通信功能。此類網絡采用非中心化的組網方式,手持設備之間能夠實現(xiàn)點對點的無線通信。由于無線網絡環(huán)境的維系并不依賴于某一個特定的設備節(jié)點,因此移動WiFi 網絡的建立和維護將變得更加靈活。
根據(jù)服務功能不同,中層接口部分可進一步細化為單播消息模塊、單播傳輸模塊、組播消息模塊和終端管理模塊,如圖1 所示。單播消息模塊用于完成基于消息的端到端單播通信;單播傳輸模塊用于完成基于字節(jié)的端到端單播傳輸;組播消息模塊負責在多個終端設備之間建立基于消息的多播通信信道;終端管理模塊用于完成終端設備的發(fā)現(xiàn)、維護和尋址等功能。其中,單播消息模塊和單播傳輸模塊依賴于終端管理模塊所提供的尋址服務,而終端管理模塊和組播消息模塊則依賴于移動WiFi 網絡所提供的無線環(huán)境。
圖1 中層接口所處位置及包含模塊
結合社交網絡的具體需要,對于上層應用本文著重研究以下5 個方面內容:(1)友好的用戶操作界面;(2)允許終端用戶通過平臺感知到網內其他終端的地址信息,并發(fā)起通信;(3)允許網內終端用戶群發(fā)文本消息,并在多個終端用戶之間實現(xiàn)群聊;(4)針對感知到的網內特定終端用戶,通過即時消息進行文本通信;(5)針對感知到的網內特定終端用戶實現(xiàn)文件傳輸功能。因此,本文設計了用戶界面、鄰居感知、聊天室、即時消息和文件傳輸5 個模塊。
作為智能手持終端操作系統(tǒng)的代表,源于Linux 的Android 系統(tǒng)為開發(fā)者提供了廣闊的空間。根據(jù)權威市場調研機構Gartner 給出的數(shù)據(jù)[10],預計2015 年Android 系統(tǒng)的占有率將達到48.8%。基于該操作系統(tǒng)進行開發(fā),有助于提高智能通信平臺的通用性和可擴展性。本文分別從底層網絡、中層接口和上層應用3 個方面對平臺的實現(xiàn)進行闡述。
在2.2 版本之前,Android 系統(tǒng)并未提供通過內嵌方式建立便攜式移動熱點的功能,并且未向開發(fā)者開放用于建立便攜式移動熱點的相關API。同時,也未提供將無線WiFi網口設備配置為Ad-Hoc 模式的接口。因此,有必要通過腳本程序結合Java Native Interface[11](JNI)技術實現(xiàn)建立移動WiFi 熱點的目標。
在建立熱點的過程中,主要使用JNI 技術調用Linux命令和Shell 腳本。因此,需要在Java 程序中事先聲明本地方法的接口定義,并提供本地函數(shù)庫文件或命令行程序。
由于篇幅所限,本文未詳細介紹腳本程序編寫、Linux命令調用、建立Ad-hoc 熱點步驟等內容。
由于中層接口設計采用了傳輸層的UDP 和TCP 協(xié)議完成端到端的數(shù)據(jù)包交互,因此在Android 中可以調用Java 標準庫java.net 包下所提供的類庫完成基于這2 種傳輸協(xié)議的程序開發(fā)。
為更好地控制通信流程,有必要對通信控制協(xié)議類別進行定義,如表1 所示。各個模塊的代碼實現(xiàn)過程中將遵循該表所定義的協(xié)議類別,該定義將作為不同通信實體、相同模塊之間共同使用的統(tǒng)一規(guī)范。
表1 通信控制協(xié)議類別
本文采用JavaScript Object Notation(JSON)[12]作為不同通信實體之間進行信息交互的標準數(shù)據(jù)封裝格式。JSON 是一種輕量級的數(shù)據(jù)交換格式,以鍵值對的基本形式完成數(shù)據(jù)的組織,既有利于開發(fā)者的編寫和閱讀,也有利于機器的解析和生成,具有非常強大的結構化數(shù)據(jù)描述能力。本文所定義的協(xié)議交互信息結構如表2 所示。其中,body 鍵對應的值為JSONObject 類型,包含表中所列二級字段,根據(jù)type 值的不同,body 對象中的部分字段將得到使用。在組件開發(fā)過程中,使用org.json 包中提供的包括JSONObject、JSONArray、JSONException 等在內的用于JSON 生成、解析和異常處理的類庫,來實現(xiàn)數(shù)據(jù)的封裝與解封裝[13]。
表2 協(xié)議交互信息結構
在上述工作的基礎上,可以通過編程實現(xiàn)具體的模塊。現(xiàn)以終端管理模塊為例進行說明。
終端管理模塊由NeighborManager 類負責完成。該類實現(xiàn)終端設備IP 地址發(fā)現(xiàn)、維護服務功能的主要方法包括:(1)broadcastLocalInfo();(2)requestRemoteAddr();(3)listen()。其中,方法(1)在終端最初接入網絡時被調用,通過向組播地址230.0.0.1 發(fā)送包括本機IP 地址、MAC 地址在內的終端信息,用于通知網內其他終端本機的相關信息及可訪問性;方法(2)在獨立的線程中周期性地向組播地址230.0.0.1 發(fā)送終端信息請求,網內終端收到該請求報文時需要回送自身的IP 地址、MAC 地址等信息;方法(3)在獨立的線程中始終監(jiān)聽組播地址230.0.0.1,進而實現(xiàn)對表1中類別值為11、12 和13 這3 種類型協(xié)議交互數(shù)據(jù)包的解析處理。
由于篇幅所限,本文未介紹單播消息模塊、組播消息模塊以及單播傳輸模塊的實現(xiàn)過程。
結合中層接口部分的開發(fā)成果,本文實現(xiàn)了上文中提到的5 個模塊。這里只選取用戶界面和鄰居感知2 個部分進行介紹。
用戶界面部分共包括7 個界面,分別是登錄界面、主界面、鄰居終端列表界面、聊天室界面、即時消息界面、文件傳輸界面和設置界面。用戶通過手指點擊交互界面中的控件來獲取智能通信平臺所提供的各項社交功能。另外,為應對業(yè)務邏輯紊亂和網絡連接異常的情況,界面還設計了對話框、提示框和通知欄,分別用于詢問用戶是否執(zhí)行某項操作、顯示提示信息和通知提醒(如顯示文件傳輸進度等)。
鄰居感知功能通過調用NeighborManager 類(終端管理模塊)所提供的方法,動態(tài)、實時地獲取網內鄰居終端的IP地址、MAC 地址等信息,并將感知到的鄰居終端信息發(fā)送到列表界面中進行顯示;另外,鄰居感知功能還負責提供網內鄰居終端在加入或退出時列表界面的更新。
本文截取了部分界面(登錄界面、主界面和鄰居終端列表界面)對平臺的運行效果進行介紹。
(1)登錄界面主要包括可點擊的頭像顯示、昵稱、郵箱地址輸入框和登錄按鈕。點擊頭像圖標將彈出如圖2 所示的告知框,提示用戶在“圖庫”或“拍照”中選擇一種方式用于頭像的添加。
圖2 登錄界面
以“圖庫”為例,用戶選擇該方式后系統(tǒng)自動轉入本地圖庫,在選中一張圖片后跳轉回登錄界面,并將默認頭像的圖標更換為剛選擇的圖片。在輸入完整的昵稱和郵箱地址后,點擊界面中部的手掌型按鈕,該按鈕將出現(xiàn)上下抖動的動畫效果表示登錄成功并切換到主界面。
(2)主界面框架包括導航欄和子視圖面板2 個部分,如圖3 所示。導航欄包括“我說”聊天室、“身邊”鄰居終端列表和“更多”3 個部分;子視圖面板中內容的顯示則統(tǒng)一由管理器類進行管理,當用戶點擊底部導航欄時,子視圖面板區(qū)域顯示相應的子視圖。點擊“身邊”按鈕將進入鄰居終端列表。
圖3 主界面
(3)鄰居終端列表界面如圖4 所示。該界面動態(tài)地顯示當前網內的終端用戶。每一個列表項提示該用戶的相關信息,包括昵稱、IP 地址和MAC 地址。在列表項的右側提供用于觸發(fā)消息發(fā)送和文件發(fā)送功能的按鈕,點擊某一列表項的按鈕將在該條目下方彈出一個操作工具條(如圖4 所示),該工具條呈現(xiàn)從右向左的“推入”動畫效果。點擊非工具條區(qū)域或手機回退鍵,工具條將被從左到右移出界面。點擊工具條中的“發(fā)送消息”按鈕將觸發(fā)即時消息的交互流程,并將界面切換到即時消息界面;而點擊工具條中的“發(fā)送文件”按鈕將觸發(fā)文件傳輸?shù)慕换チ鞒?,彈出相應的文件選擇框。
圖4 鄰居發(fā)現(xiàn)界面
實際測試拓撲如圖5 所示,包括1 臺平板電腦和2 臺智能手機(共3 臺設備),分別記為P1、P2 和P3。在該測試拓撲中,3 臺手持設備通過將各自的WiFi 硬件設備運行于Ad-Hoc 模式接入到WiFi 無線環(huán)境。IP 地址采用靜態(tài)配置的方式。平板P1 為ZTE LightTab,搭載Android 2.2 操作系統(tǒng);智能手機P2 為小米MI ONE,搭載基于Android 2.3的MIUI 操作系統(tǒng);智能手機P3 為HTC Sensation G14,搭載基于Android 2.3 的MIUI 操作系統(tǒng)。測試地點均為空曠開闊地帶。
圖5 測試拓撲示意圖
為驗證智能通信平臺的基本功能,編寫測試用例分別針對網絡狀態(tài)提示功能、鄰居感知功能、聊天室功能、即時消息功能和文件傳輸功能進行測試,實際運行效果良好。由于篇幅所限,本文未詳細介紹功能測試結果。下文著重介紹智能通信平臺部分性能測試的結果。
選取P1 和P2 作為測試對象,有效距離測量使用米尺完成,測試的具體步驟如下:
(1)完成P1 和P2 移動WiFi 熱點的相關配置工作。
(2)開啟P2 的智能通信平臺,在登錄界面的昵稱輸入框中輸入Bob 并完成登錄。
(3)開啟P1 的智能通信平臺,使用Andy 作為昵稱登錄后,將其切換到鄰居終端列表界面。
(4)讓P1 保持不動,將P2 移至距P1 設備100 m 的位置,并在P2 上查看對應SSID 的網絡信號強度,如無法成功接入該網絡,則向P1 方向移動并記錄距離,直到剛好能夠接入網絡時暫停。
(5)在P2 上打開終端模擬器程序,在終端命令行中對P1 執(zhí)行ping 操作并查看丟包情況,打開P2 的智能通信平臺,觀察P2 鄰居終端列表中是否出現(xiàn)Andy 的列表項目。
(6)以1 m 為步長逐漸縮短P2 與P1 之間的距離,重復步驟(5),測定鄰居感知的有效臨界距離。
當測試距離為75 m 時P2 能夠接入網絡,但丟包嚴重(多次測試顯示相隔30 個~40 個ping 包可成功3 次~4 次),P2 鄰居終端列表界面中沒有顯示P1 對應的列表項;當測試距離為63 m 時,ping 包丟失情況有所緩解(多次測試顯示相隔2 個~3 個ping 包可成功1 次~2 次),P2 鄰居終端列表界面中延遲約30 s 后顯示P1 對應的列表項;當測試距離為60 m 時可連續(xù)ping 通,P2 鄰居終端列表界面中即刻顯示P1 對應的列表項。
在此基礎上,筆者還針對設定終端發(fā)射功率實現(xiàn)“區(qū)域通信”的功能進行了測試,效果均達到了預期的目標。
為更好地測試智能通信平臺的實際傳輸效果,筆者選擇10 MB~50 MB 不同文件大小進行對比。在底層分別選擇了WiFi 和藍牙2 種接入方式進行對比。在P1、P2 和P3 之間進行兩兩收發(fā),每個文件均傳輸30 次,測試距離為10 m。所有測試均正常完成,對比結果如圖6 所示。其中,縱軸選取對數(shù)坐標,Error bar 選取5%~95%,標記點為測試結果的均值??梢钥闯觯赪iFi 的傳輸效果在不同情況下均優(yōu)于藍牙模式下的傳輸效果。由于縱軸使用了對數(shù)坐標,WiFi 模式下測量結果的Error bar 相對明顯。
圖6 文件傳輸速率對比結果
本文結合社交網絡的發(fā)展趨勢和用戶對于新型通信平臺的需求,并分析傳統(tǒng)通信模式存在的不足,提出一種智能通信平臺的構建方法。該方法能夠在互聯(lián)網接入點不可用或不穩(wěn)定的情況下實現(xiàn)具有社交屬性的應急通信,而且對于某些保密內容,能夠將通信距離限定在一定范圍內。
為驗證該平臺的實際效果,本文基于Android 系統(tǒng)進行協(xié)議棧的開發(fā)和軟件代碼的編寫,并搭建了小規(guī)模測試環(huán)境。功能測試結果表明:用戶界面、鄰居感知、聊天室、即時消息和文件傳輸5 個功能模塊均工作正常。針對鄰居感知有效距離的性能測試結果表明:手持終端在直線距離60 m 的范圍內,基本功能不會受到通信距離增加的影響;當超過該臨界值時,終端仍然能夠感知到鄰居,但傳輸性能有所下降;當距離增加至75 m 后,終端無法感知到鄰居(依托該功能實現(xiàn)的“區(qū)域通信”測試效果也均比較理想)。針對文件傳輸速率的性能測試結果表明,智能通信平臺能夠穩(wěn)定、高效地完成終端間的文件傳輸,同時文中定量地給出了WiFi 和藍牙環(huán)境下不同文件的傳輸時間。下一步將重點研究如何完善該平臺的相關功能,同時針對不同的用戶需求設計更多易于操作的應用。
[1]Gao Wei,Li Qinghua,Zhao Bo,et al. Social-aware Multicast in Disruption-tolerant Networks[J]. IEEE/ACM Transactions on Networking,2012,20(5): 1553-1566.
[2]Pan Hui,Crowcroft J,Yoneki E. BUBBLE Rap: Social-based Forwarding in Delay-tolerant Networks[J]. IEEE Transactions on Mobile Computing,2011,10(11): 1576-1589.
[3]Punz G. Evolution of 3G Networks[M]. [S. l.]: Springer,2010.
[4]易睿得. LTE 系統(tǒng)原理及應用[M]. 北京: 電子工業(yè)出版社,2012.
[5]Dahlman E,Parkvall S,Skold J. 4G: LTE/LTE-advanced for Mobile Broadband[M]. [S. l.]: Academic Press,2011.
[6] Apple Inc.. Iphone Introduce[EB/OL]. [2013-01-02]. http://www.apple.com/iphone/.
[7] Samsung Inc.. Galaxynote Introduce[EB/OL]. [2013-01-02].http://www.samsung.com/global/microsite/galaxynote/.
[8]Apple Inc.. Develop App for iOS[EB/OL]. [2013-01-02]. http://developer.apple.com/technologies/ios/.
[9]Google Inc.. Discover a New Flavor of Jelly Bean[EB/OL].[2013-01-02]. http://www.android.com/.
[10] Gartner Inc.. Gartner Technology[EB/OL]. [2013-01-02]. http://www.gartner.com/.
[11] Oracle Inc.. Java Native Interface[EB/OL]. [2013-01-02].http://www.oracle.com/technetwork/java/index.html/.
[12] Sun Inc.. JavaScript Object Notation[EB/OL]. [2013-01-02].http://www.json.org/.
[13] 翟建偉. 基于WiFi 的移動社交通訊平臺設計與實現(xiàn)[D].北京: 北京交通大學,2012.