袁斌 黎文偉
摘要:
隨著用戶日益增長的網絡存儲需求,涌現出了大量個人云存儲(PCS)服務平臺。個人云存儲終端用戶使用過程中體驗質量(QoE)的測量是終端用戶和服務提供商所共同關注的問題。通過從控制流與數據流之間的不同特性方面分析了影響個人云存儲體驗質量的因素,從終端用戶的角度提出了能合理評估個人云存儲體驗質量的指標,設計了精確測量體驗質量評估指標的方法。利用被動測量技術,實現了一個面向終端用戶的個人云存儲服務體驗質量測量工具,同時給出了工具實現中的進程抓包、網絡流分類等問題的解決方案。實驗結果表明,測量工具運行健壯,測量數據準確,可以用于從用戶終端測量個人云存儲服務QoE。
關鍵詞:
個人云存儲;被動測量;體驗質量;測量工具
中圖分類號:
TP393.06
文獻標志碼:A
Abstract:
With the growing requirements of users in network storage, a large number of Personal Cloud Storage (PCS) service platforms are emerging. The Quality of Experience (QoE) perceived by the end users has become the common concerned issues of both end users and service providers. The factors that affect QoE in personal cloud storage were analyzed from the aspects of the different features between control flows and data flows. Several indicators were proposed from the end users perspectives which can reasonably evaluate the QoE of personal cloud storage. The accurate measurement method of the QoE indicators was designed. The measuring tool for QoE of personal cloud services was implemented based on passive measurement; at the same time, the solution was given to solve the issues in tool implementation like special process capture packets and network flow classification. The experimental result shows that the measuring tool can run robust and obtain accurate results, it can be used to measure the QoE of personal cloud services in terminals.
英文關鍵詞Key words:
Personal Cloud Storage (PCS); passive measurement; Quality of Experience (QoE); measuring tool
0引言
個人云存儲服務(Personal Cloud Storage, PCS)作為互聯網中的一種數據密集型應用程序,能為用戶提供在云中的服務器存儲文件和不同設備間同步文件的服務[1]。對于用戶,越來越多的人被這些服務所吸引,因為可以簡單地用來保存文件,同步設備。而服務繁多的市場使得用戶選擇一款合適的服務來滿足他們的需求也變得愈發困難。在樂觀的市場推動下,多個新的服務提供商悄然進入了市場。新的提供商必須與傳統的提供商,比如Dropbox,還有Google、Microsoft、Apple這些IT巨頭競爭,他們在用戶群和價格方面有著更大的優勢[2]。與此同時,國內也興起了云存儲熱潮,以百度云、快盤、360為首的各大提供商迅速占領了國內大部分的市場。所以,不管是終端用戶還是服務提供商都需要從理解個人云存儲中獲益。
用戶體驗質量(Quality of Experience, QoE)能夠衡量不同服務所提供的體驗差異,能為用戶和服務提供商在選擇和優化服務方面提供很大的幫助。如果服務的體驗質量水平沒有達到預期的期望,用戶可能就會拒絕繼續使用[3]。比如說,云游戲[4]和虛擬桌面[5]作為兩個高交互性的云服務就有著很高的響應需求,當出現由高延遲引起的體驗質量下降時,該服務對于用戶的價值也就會降低。這個問題對于服務的提供商也變得越來越具有挑戰性,他們需要知道哪些因素影響著用戶的體驗質量,進而能優化自身的服務。
近年來對個人云存儲已經有了很多方面的研究[6-10]:文獻[6]中提出了一個個人云存儲的主動測量方法,通過一個長期的測量實驗,分析了三個流行服務的傳輸性能,但該方法依賴于提供商的公共API,測量不同的服務需要開發不同的測量工具;文獻[7]也提出了一種主動測量方法并比較了5個主流的服務;文獻[1,8]都通過網絡中的被動測量研究了特定云服務和不同用戶的特征。另一方面,當前對個人云存儲的體驗質量還只有一些初步的研究:文獻[9]第一次研究了個人云存儲中的QoE問題,通過用戶的主觀評價,研究了網絡QoS和個人云存儲QoE之間的相互影響,網絡時延和帶寬被認為是QoE的兩個主要影響因素;文獻[3]根據云服務的交互程度,分析了不同云服務體驗質量的影響因素;文獻[10]通過在線調查分析出一系列QoE影響因素,同步時延被認為是用戶體驗質量的一個重要來源。但是,除了研究體驗質量的影響因素,終端用戶所能感知的體驗質量的測量也至關重要,因為用戶所獲得的體驗質量才能真正反映服務的實際優劣。所以,我們迫切需要開發出一個新的方法,使之能夠在終端用戶真實的使用壞境中來測量比較個人云存儲服務。
針對上述問題,本文使用被動測量技術,設計并實現了一個面向終端用戶的個人云存儲QoE測量工具PCSMeasure。通過分析個人云存儲的典型傳輸過程,并結合了個人云存儲控制流和數據流的特征,確定了一系列QoE的測量指標,這些指標能很直觀地反映出終端用戶所能獲得的體驗質量。測量工具易于使用且具有通用性,測量過程具有獨立性。
1個人云存儲
1.1基本概念和功能
個人云存儲的主要功能是網絡存儲,是網絡技術與存儲技術結合的產物。其實現原理就是在云中的服務器硬盤上為每個用戶開辟一塊空間,然后用戶能夠在此空間上實現對文件和目錄的自主管理,從而實現網絡環境下,用戶通過網站或者客戶端軟件對文件的異地存儲和管理。
個人云存儲有兩個常見的模式:Web模式和客戶端模式。這兩種模式所產生的流量有很大的差異,其中Web模式所產生的流量在網絡中個人云存儲流量總量中所占的比例非常低。根據文獻[1]中的研究可知,在四種不同的網絡環境中通過Web模式產生的Dropbox流量約占測量期間捕獲Dropbox總流量的8%~15%。因此,本文選擇對客戶端模式進行QoE測量方法的研究。
個人云存儲服務作為一個網絡存儲服務,給用戶提供了方便的文件存儲和管理,用戶能夠將文件遷移到云中實現數據的存儲和多設備共享,還能滿足多用戶的協作。但是,用戶在使用不同操作時,會有著不同的體驗需求,當服務無法滿足用戶的期望時,就會降低用戶的體驗質量。
1.2體系結構
云存儲系統依賴于成千上萬的服務器,核心構架由存儲服務器或者磁盤陣列、文件或者元數據服務器集群、通知服務器以及Web服務器集群組成[11]。Web服務器主要提供身份驗證;文件服務器主要存儲文件的元數據、文件位置等信息;通知服務器用于與客戶端進行文件改變的消息通信;云存儲系統存儲設備包括存儲服務器、磁盤陣列等設備。用戶可以通過互聯網或者局域網對云存儲系統進行訪問。
根據功能的不同,我們把通知服務器、Web服務器和文件服務器統稱為控制服務器,存儲服務器稱為數據服務器。在眾多不同的服務提供商中,服務器的部署策略也存在差異,而不同部署策略會給用戶的體驗質量帶來不同的影響。比如分布式部署方式減少了用戶服務器之間的往返時延(RoundTrip Time, RTT),能夠更快地完成短鏈接數據流的傳輸。
1.3客戶端功能及協議
為了分析個人云存儲的QoE影響因素,首先需要了解個人云存儲的通信協議。通過捕獲分析不同服務的數據包,結果顯示大部分國外服務提供商會采用HTTPS協議即加密傳輸數據,只有極少數服務的控制信息是通過沒有加密的HTTP協議來交換的;而國內多數的提供商都是使用HTTP協議來傳輸數據,除了重要的賬號登錄信息采用的是HTTPS。
個人云存儲服務客戶端軟件也會采用一些高級功能來處理用戶數據,這些功能能夠優化網絡的使用和提高用戶的體驗。這些功能主要包括:
捆綁在同時操作多個小文件時,將多個小文件作為一個單獨的對象來傳輸。
累計編碼只傳輸文件中被修改的部分。
分塊將單個大體積文件分成多個最大數據單元來處理。
重復刪除避免重新上傳已經在服務器可用的內容。
壓縮在數據傳輸之前進行壓縮。
負載均衡將同一個文件傳輸到不同的服務器。
每個不同的服務提供商都可以選擇實現不同的客戶端功能,這也是造成不同服務體驗質量差異的重要來源。
2測量方法及指標
2.1測量方法
網絡測量根據是否通過測量設備向網絡中注入額外的測量流量可以分為主動測量和被動測量。被動測量方法是從網絡中的某一點收集流量,統計數據包大小分布、組成的協議分布、數據包數量、字節數等信息,據此計算出測量指標。被動測量又可以通過三種方式來實現:服務器端測量、用戶端測量和利用網絡探測。
本文采用的是用戶端的被動測量方式來完成個人云存儲QoE的測量:通過將具有監測功能的工具安裝到用戶終端,從用戶的角度監測待測服務。選擇被動測量有以下幾個優點:1)通用性。通過API開發的云存儲主動測量工具,在測量不同的服務時需要開發多個工具,而通過被動的捕獲數據包來測量時,對于所有的服務都是通用的。2)基于數據包捕獲的被動測量可以提供不同粒度層次的信息。3)能夠在用戶的實際使用過程中測量真實的結果。
2.2QoE評估方法
體驗質量的評估方法根據用戶的參與度可以分為三類:主觀評價方法、客觀評價方法以及偽主觀評價方法。而其中偽主觀評價方法結合了主觀和客觀評價方法的優點。偽主觀評價方法的基本過程是:1)分析業務特征,確定QoE相應的指標;2)確定這些QoE指標的影響因素;3)準備測試的環境以及測試的樣本;4)選擇測試用戶,進行服務的評價,獲取數據;5)利用數據,選擇合適的數據模型將QoE與指標關聯,得到合理的評估模型。
本文的工作就是在完成1)、2)步,并為后續模型的研究設計一個測量工具。偽主觀的評價方法因為有著統計學和人工智能等學科的理論支持,而且有著很高的準確度,目前越來越受到研究人員的關注。
2.3典型傳輸過程分析
在被動測量方法中如何選擇QoE測量指標非常重要。而終端用戶的不同操作或傳輸的不同階段都有著不同的影響因素,用戶也有著不同的體驗要求,需要使用不同的測量指標。因此,接下來對個人云存儲的典型傳輸過程進行分析。
如圖1所示,描述了典型個人云存儲的傳輸過程。個人云存儲的典型同步過程可以分為兩部分:客戶端啟動過程和文件同步過程。客戶端啟動過程是指在用戶啟動客戶端到云存儲中的文件夾實際顯示,文件同步過程是指當用戶發起對文件操作到操作完成。具體的過程可以分為三步:
1)客戶端與控制服務器交換文件的元數據信息。
2)觸發文件的存儲操作,客戶端與數據服務器通過數據流直接完成數據的傳輸。
3)當數據成功傳輸完畢后,客戶端再次與控制服務器交換控制信息,來完成此次傳輸事務。
另外,在空閑階段(即沒有任何操作時)客戶端會與通知服務器保持信息的交換,用于通知客戶端存儲在服務器中的文件是否變化。
2.4QoE的影響因素
全面研究QoE的影響因素對于測量指標的確定非常重要,因為QoE測量的根本目的就是根據不同方面的影響因素來得到用戶的QoE。本文將QoE的影響因素分為三個方面:網絡方面、客戶端方面以及系統平臺方面。
如圖2所示,描述了個人云存儲的體驗質量被多方面的客觀因素所影響。網絡方面的參數主要反映網絡傳輸的狀況,如網絡帶寬、延遲;客戶端方面反映的是沒有經過網絡傳輸的服務體驗,包括一系列的優化機制;系統設計方面,主要包括傳輸協議、帶寬控制及服務器的部署方式等。
其中,每一種影響因素都以一種復雜的方式影響著服務的體驗質量。比如說,用戶所感受到的數據傳輸體驗很可能是由于網絡的帶寬過小或者客戶端服務器往返時延太大造成數據流吞吐量很小,也可能是因為服務客戶端并沒有采用優化傳輸的功能。另外,操作的響應體驗也是由網絡環境、客戶端功能、系統設計等多種客觀因素所影響的。
2.5主要測量指標
由于個人云存儲QoE的客觀影響因素的多方面性,使得在被動測量中準確測量并量化所有客觀因素非常困難。所以,本文通過結合個人云存儲的不同影響因素和不同網絡流的特征,分析出多個能夠準確評估終端用戶QoE的指標。下面各指標計算公式中的時間戳,如2.3節中的圖1所示。
1)客戶端啟動時延。
客戶端啟動時延Dc是指云存儲客戶端啟動到客戶端的文件夾完全顯示之間的時延。計算公式如(1)所示:
Dc=T1-T0(1)
其中:T0表示服務進程出現的時間;T1表示最后一個數據包到達的時延。
2)同步初始化時延。
同步初始化時延Ds是指在同步操作執行到文件數據流正式開始傳輸之間的時延。Ds在有些使用場景下對用戶的體驗非常重要,比如單獨傳輸小體積文件時。同步初始化時延通過式(2)計算:
Ds=T3-T2(2)
其中:T2為第一條控制流的建立時間;T3為第一條數據流的建立時間。
3)傳輸數據總量。
傳輸數據總量St是指整個同步過程中所有網絡流的體積總和。對于流量敏感的用戶而言,能夠用盡可能少的流量完成文件的傳輸能提升體驗質量。傳輸數據總量的計算方法如式(3)所示:
St=∑ni=1Di+∑mj=1Cj(3)
其中:Di和Cj分別表示每條數據流和控制流的大小,n和m分別表示數據流和控制流的數目。
4)數據傳輸速率。
數據傳輸速率DTS是指同步過程中傳輸的數據流總量與數據流的持續總時間之間的比值。它是描述個人云存儲體驗質量的重要參數,也是評估長期體驗傳輸變化性的一個基礎。數據傳輸速率的計算方法如式(4)所示:
DTS=∑ni=1Di/(T4-T3)(4)
其中:Di表示數據流的大小;T3表示第一條數據流的建立時間;T4表示最后一個數據流數據包的捕獲時間,我們忽略了數據流斷開和最后的控制信息交換時間。
5)控制開銷率。
控制開銷率COR是用于衡量傳輸一定大小的文件所需控制流開銷的指標。值越大說明傳輸相同體積的數據需要更多的控制開銷。計算方法如式(5)所示:
COR=St/∑ni=1Di(5)
其中:St表示指標(3)中的傳輸數據總量,Di表示數據流的大小。
3測量工具的實現
3.1工具設計
在選擇了QoE的測量指標、確定了被動測量方法后,接
下來進行工具PCSMeasure的設計和實現。工具PCSMeasure的結構如圖3所示,主要由三個模塊組成:第一個模塊是數據包捕捉模塊Packets Sniffer,通過調用數據包處理驅動WinPcap捕獲待測服務的所有數據包;第二個模塊是網絡流分析模塊Traffic Analysis,根據已有的數據包完成控制流和數據流的分類;最后一個模塊是指標計算模塊Metrics Computation。
PCSMeasure工具主要模塊的功能如下:
1)Packets Sniffer:獨立的網絡抓包模塊。接收WinPcap捕獲的數據包,進行逐層解碼,完成協議分析統計和數據包的本地化。該模塊是被動測量工具的主體。
2)Traffic Analysis:網絡流分析模塊。分析上層模塊捕獲的數據包,根據五元組信息,統計所有的網絡流信息,包括網絡流的開始時間、持續時間、數據包個數和網絡流大小等。根據網絡流的特征信息,使用聚類算法將網絡流分為數據流和控制流。
3)Metrics Computation:指標計算模塊。根據上層的網絡流分析結果結合個人云存儲的傳輸過程,計算出測量指標;同時,將計算出的結果反饋給用戶并完成本地化。
在三個模塊中,Packets Sniffer模塊和Traffic Analysis模塊是Metrics Compute模塊的基礎,測量結果的準確性也完全取決于這兩個模塊。如果Packets Sniffer模塊中沒有正確捕捉到服務的數據包就會給測量結果帶來誤差;而Traffic Analysis模塊中的網絡流分類不準確時,甚至會直接導致測量結果錯誤。
下面分別來討論這兩個問題的解決方法。
3.2服務進程抓包
在Packets Sniffer模塊中進行網絡數據包捕獲時,通過調用數據包處理驅動WinPcap的接口函數,將網卡設置為混雜模式,數據包經過兩次內存拷貝和系統調用,到達用戶空間[12]。但是在終端用戶使用環境中,存在著不同網絡進程的數據包。準確捕捉到待測服務進程的數據包對于計算測量指標就變得非常重要。
雖然Winpcap并沒有直接提供捕捉不同進程數據包的函數接口,但是Winpcap的一個強大特性是提供了過濾引擎。通過將相關的過濾器應用到所有來自網絡的數據包上,所有與過濾器特性一致的數據包將被復制給應用程序。因此,提出了一種基于Winpcap過濾機制的雙緩存進程抓包方法。該方法的有效性基于所有個人云存儲的傳輸層都是使用TCP協議這一假設。
捕獲特定進程的數據包最為直接的方法是能獲取目標進程所有網絡連接的端口,然后將Winpcap的過濾器設置為特定進程的端口號。但是,這個方法存在兩個問題:
1)在實際的服務傳輸過程中TCP連接的建立是隨機的,所以,需要動態地查詢目標進程的端口列表,當發現出現新的連接時,動態更新過濾器。
2)在動態更新過濾器的過程中,又可能在兩次更新過濾器期間出現新的TCP連接,導致漏包現象。針對這個問題,提出了一種雙緩存機制。雙緩存機制是指,通過開啟兩個抓包線程,創建兩個數據包緩存區,分別對應不同的過濾規則。在每次更新過濾器前,通過綜合兩個線程緩存區中的數據包來完整地捕獲到進程在這個周期內的數據包。
根據以上分析,PCSMeasure進程抓包的具體步驟如下:
1)獲取網卡接口和目標進程信息。開始測量后,首先創建兩個抓包線程C1和C2,同時都調用Winpcap所提供的pcap_open_live()方法,用于打開網絡設備準備捕捉網絡數據,分別返回adhandle1和adhandle2兩個用于捕獲網絡數據包的數據包捕獲描述字。對于這個網絡接口的操作都要基于此描述字。
2)分別調用Winpcap所提供的函數pcap_setfilter()給C1、C2設置過濾規則。其中C1的過濾器filter1設置為“TCP”。在C2中使用輪詢機制,通過定時查詢目標進程所有連接的端口號集合,根據端口號集合動態地更新過濾器filter2。
3)當在ti更新filter2時,首先調用自定義的函數GetAllPortsByID()根據進程ID查詢目標進程最新連接的端口集合,將結果與ti-1查詢的端口集合比較。當出現了新的端口號時,表示在ti-1~ti周期內出現了新的連接并且C2漏掉了這些新連接在ti-1~ti周期內傳輸的數據包。所以,根據新的端口號在C1的緩沖區中找出新連接的所有數據包,加上C2緩沖區內的數據包就是目標進程在ti-1~ti周期內完整的數據包。最后清空C1與C2緩沖區,更新C2的過濾器。
4)接下來討論C2的過濾器更新周期Ti。通過分析TCP的連接可知,一個最簡單的網絡流是由三次握手、POST+ACK、DATA+ACK和RST組成。因此Ti的最大值Tmax不能大于2RTT,才能保證在過濾器更新期間不會漏掉整個網絡流的所有數據包。而出于對進程端口查詢開銷的考慮,將Tmin設置為30ms。
5)最后討論Ti的變化策略。根據人工分析云存儲的網絡流變化發現,網絡連接的建立都是具有突發性的,即會在短時間同時建立多條新的連接,當數據傳輸穩定后,就會很少有新的連接建立。所以根據兩次端口查詢結果之間的差異來決定Ti的變化:當兩次端口查詢期間ti-1~ti沒有出現新的連接時,Ti以線性增長直至Tmax;當在ti-1~ti出現新的連接時,Ti賦值為Max(Ti / 2, Tmin)。
3.3個人云存儲流量分析
個人云存儲的控制流和數據流作為計算測量指標的基礎。在Traffic Analysis模塊中,區分出測量過程中的所有控制流和數據流也是一個重點。數據流和控制流的主要不同就是傳輸數據內容的不同,可是無法通過捕獲的數據包直接區分出不同服務的數據流和控制流。因此,我們基于個人云存儲數據流和控制流的特征差異,提出了一個改進初始聚類中心的kmeans聚類方法。
首先,主動通過分析捕獲到的不同個人云存儲服務的數據包,發現數據流與控制流存在兩個重要的差異特征:有效數據包(除ACK)的平均載荷和數據包的個數。1)數據流平均載荷大部分會大于當前網絡的最大傳輸單元(Maximum Transmission Unit, MTU),比如以太網中是1514字節,而控制流通常會小于1000字節;2)由于控制流通常傳遞的信息量較少,常常只是幾個或者幾十個數據包,而數據流的數據包個數則和文件的大小有關,一般都有幾百個。
如圖4所示,例舉了百度云和Google Drive在上傳10個100KB文件時網絡流的特征分布,所以我們可以采用聚類方法實現網絡流的分類。
其次,傳統的kmeans聚類方法采用隨機選擇初始聚類中心的方式,當結果簇是密集的而且簇之間的區分明顯時,它的效果較好。但是個人云存儲的網絡流分布呈現兩極現象:數據流多分布較為密集;而控制流因為作用的差異,不同控制流的數據包個數和平均載荷都各不相同,造成控制流的分布相對較為分散。所以采用隨機選擇初始聚類中心可能會導致聚類收斂速度慢、聚類效果差的問題。
針對這個問題,本文改進了kmeans 聚類算法初始中心的選擇方法。
1)針對數據流的密集分布特征,并且根據控制流應該離數據流中心盡可能遠這一原則,選擇數據包個數與有效大小乘積最大的流作為數據流的初始中心,從而盡可能避免可能出現的控制流距離數據流初始中心更近的情況。
2)根據控制流分布分散的特點,控制流的初始中心根據最小相似度方法來確定。首先給出網絡流相似度的定義,
S(xi,xj)=1/∑2t=1(xit-xjt)2(6)
其中:xi, xj分別為網絡流樣本,xit表示樣本的兩個特征分量。控制流初始中心的選擇方法如下:
步驟1新建鏈表L。以數據流初始中心為起點,找出與它相似度最高的樣本對象xtemp,存入鏈表L,并記住該相似度Smin和該樣本xmin。
步驟2找出其他剩下的樣本中(鏈表外的)與xtemp最相似的,同樣賦值給xtemp,并加入鏈表L,當它們的相似度Stemp小于Smin時,將Stemp、xtemp分別賦值Smin、xmin。
步驟3重復步驟2,直到遍歷完所有樣本對象。
至此,從數據流初始中心開始,找出了最小的樣本間相似度Smin及該樣本xmin。所以,鏈表L中排在xmin后的樣本就是最有可能為控制流的,因此控制流初始中心設置為這些樣本的平均值。
3.4測量流程
圖5描述了PCSMeasure被動測量個人云存儲QoE指標的流程。首先開啟測量工具,選擇需要測量的服務進程;當執行相關操作時,工具就會捕獲該進程的數據包,同時分析捕獲到的數據包;當數據傳輸完畢,工具會通過分析捕獲的數據包,統計網絡流的信息并完成網絡流的分類;最后,計算出測量指標并將結果反饋給用戶。
在測量完成后,結果被保存在一個以服務進程名和時間命名的文本文件中。文件中不僅記錄了相關的指標數據,還包括所有的流信息,可以用于分析及優化個人云存儲的QoE。
4測量工具的應用
百度云已經發展成為國內用戶最多的服務提供商,而Google Drive是全球最流行的個人云存儲服務提供商,故本文的實驗選擇百度云和Drive Google作為測量對象。
4.1實驗方案
為了驗證工具的有效性和比較工具的測量結果,設計了一個實驗方案,實驗平臺如圖6所示。實驗平臺搭建在一臺普通的PC上,并在其中安裝有多個待測服務客戶端、測量工具PCSMeasure和常用的數據包捕獲分析軟件Wireshark。
在實驗中,當用戶在待測服務客戶端執行某個操作后,測量工具PCSMeasure和Wireshark能夠同時捕捉到待測服務的
數據包。通過比較PCSMeasure的測量結果和Wireshark的手動分析結果來驗證工具的有效性,然后分別測量不同的個人云存儲服務,通過使用我們的工具測量比較了不同云存儲服務的并對比測量結果,對測量結果進行簡要的分析。
4.2工具的有效性
在測量工具PCSMeasure的指標計算中,最后測量結果的有效性取決于兩個方面,分別是完整地抓取待測服務進程的數據包和正確的網絡流分類結果,因此分別從這兩個方面比較了測量工具PCSMeasure和Wireshark。
如圖7所示,分別描述百度云和Google Drive在傳輸不同大小的文件時PCSMeasure和Wireshark捕獲到的數據包個數。Google Drive的數據包漏包率相對比較小,主要集中在2%~3%;而百度云就相對要高一些,尤其在傳輸更大(如5MB)文件時漏包率達到了7%。
出現這種情況的原因可能是因為Winpcap在捕獲數據包時,需要經過兩次拷貝將數據包從內核緩存中轉移到用戶空間的緩存區,當執行一次過濾器更新周期后,從用戶緩沖區獲取數據包時,內核緩存中還存在少量數據包沒有拷貝到用戶空間。這將會降低測量結果的準確性,也是我們下一步改進的主要工作。
4.3個人云存儲QoE測量結果
最后,使用PCSMeasure測量比較了百度云和Google Drive在傳輸不同類型文件時的QoE指標結果。表2總結了我們測量實驗的全部結果。
由表2中的數據可以知道兩種個人云存儲服務在QoE上有很大的差異。首先,由于Google的控制服務器都部署在國外,造成Google Drive控制流的平均RTT是百度云的近十倍。這也就使得Google Drive的客戶端啟動時延和同步控制時延都比百度云要大很多。其中同步控制時延中出現一個特殊值,Google Drive在上傳單個5MB的文件時同步控制時延為0。這是因為Google Drive在傳輸大體積文件時將文件分割成每單位8MB傳輸,而且當Google Drive傳輸單個小于8MB的文件傳輸時,文件的控制信息是直接通過數據流傳輸到服務器,因此出現了控制時延為0的情況;而百度云是以4MB為單位傳輸,所以傳輸單個5MB文件時分割成兩個數據單元傳輸。上傳過程和下載也有差異,當下載批次文件時明顯需要更多控制信息,所以需要更長的同步控制時延。
其次,百度云在傳輸表2中后三種類型的文件時,上傳的數據總量總是大于Google Drive,這主要是由于Google Drive在上傳文件前會進行壓縮以減少流量的消耗,這對于流量敏感的用戶而言是能提高體驗質量的。但是由于Google Drive沒有使用捆綁機制,當上傳大量小文件時會為每個文件開啟一條控制流交換文件元數據,所以在上傳100個10KB的文件時,Google Drive最后傳輸的數據總量反而大于百度云的數據總量。而下載過程中,由于兩個云存儲的服務器在傳輸文件之前都沒有使用壓縮處理,使得下載時傳輸的數據總量都大于文件本身的大小。
在全部四種文件類型中,不管是上傳還是下載百度云的數據傳輸速率都比Google Drive的大,這也是由于Google Drive數據流的平均RTT比百度云數據流的RTT更大,使得Google Drive每條數據流的平均吞吐量很小。
最后我們觀察到,當上傳100個10KB的文件時,兩個服務都有較高的控制開銷率。 Google Drive的控制開銷率為1.13,這是由于Google Drive沒有采用捆綁機制,使得每個文件都需要有與控制服務器交換信息。但是,百度云即使采用了捆綁機制,控制開銷也達到了1.44。通過分析百度云的控制流發現,雖然傳輸過程只有5條控制流,但是每條控制流都會與服務器進行多次數據交換,為每個文件提交元數據。同樣情況也出現在百度云的下載過程中,使得百度云在下載時控制開銷也達到了1.46。因此,百度云可以通過優化控制信息的交換策略來降低控制信息的開銷,以提高用戶的體驗質量。
PCSMeasure可以被動測量個人云存儲服務,在下一步研究中,可以選擇測試用戶,使用PCSMeasure進行服務的評價,獲取數據。利用這些數據,選擇合適的數據模型將QoE與指標關聯,得到合理的評估模型。同時,當特殊情況下服務出現體驗質量下降時,用戶能夠通過測量比較給用戶提供了更多的選擇性,并且對于服務提供商進一步改善自身服務也具有重要的指導意義。
5結語
本文提出了一種基于被動測量的個人云存儲QoE測量工具PCSMeasure。在工具的實現中,解決了待測服務進程數據包捕獲和個人云存儲網絡流分類等問題,實現了在用戶終端進行個人云存儲QoE測量的目的。工具的有效性在實驗中得到驗證,并且能夠測量得到較為準確的結果。
測量工具PCSMeasure在用戶的使用過程中通過被動抓捕數據包來完成測量,但是真實測量環境中存在其他進程數據包的影響,使得測量工具存在少量漏包現象。因此,怎樣在測量過程中捕獲到待測服務進程更為完整的數據包,以降低測量結果的誤差,將成為今后下一步研究的重點。而且,除了網絡、系統和客戶端功能方面,其他的因素,如安全、隱私、價格、客戶端界面等相關的問題對于用戶QoE也是非常重要的。我們的測量工具為下一步正確完整地提出個人云存儲QoE評估模型,打下了基礎。
參考文獻:
[1]
DRAGO I, MELLIA M, MUNAFO M M, et al. Inside dropbox: understanding personal cloud storage service [C]// IMC 12: Proceedings of the 2012 ACM Conference on Internet Measurement Conference. New York: ACM, 2012: 481-494.
[2]
NALDI M, MASTROENI L. Cloud storage pricing: a comparison of current practices [C]// Proceedings of the 2013 International Workshop on Hot Topics in Cloud Services. New York: ACM, 2013: 27-34.
[3]
CASAS P, SCHATZ R. Quality of experience in cloud services: survey and measurements [J]. Computer Networks, 2014, 68(11): 149-165.
[4]
JARSCHEL M, SCHLOSSER D, SCHEURING S, et al. An evaluation of QoE in cloud gaming based on subjective tests [C]// IMIS 11: Proceedings of the 2011 5th International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing. Washington, DC: IEEE Computer Society, 2011: 330-335.
[5]
CASAS P, SEUFERT M, EGGER S, et al. Quality of experience in remote virtual desktop services [C]// Proceedings of the 2013 IFIP/IEEE International Symposium on Integrated Network Management. Piscataway, NJ: IEEE, 2013: 1352-1357.
[6]
GRACIATINEDO R, ARTIGAS M S, MORENOMARTINEZ A, et al. Activity measuring personal cloud storage [C]// Proceedings of the 2013 IEEE Sixth International Conference on Cloud Computing. Piscataway, NJ: IEEE, 2013: 301-308.查不到
[7]
DRAGO I, BOCCHI E, MELLIA M, et al. Benchmarking personal cloud storage [C]// IMC 13: Proceedings of the 2013 Conference on Internet Measurement Conference. New York: ACM, 2013: 205-212.
[8]
BOCCHI E, DRAGO I, MELLIA M. Personal cloud storage: usage, performance and impact of terminals [C]// Proceedings of the 2015 IEEE 4th International Conference on Cloud Networking. Piscataway, NJ: IEEE, 2015: 106-111.
[9]
CASAS P, FISCHER H R, SUETTE S, et al. A first look at quality of experience in personal cloud storage services [C]// Proceedings of the 2013 IEEE International Conference on Communications Workshops. Piscataway, NJ: IEEE, 2013: 733-737.
[10]
AMREHN P, VANDENBROUCKE K, HOBFELD T, et al. Need for speed?: on quality of experience for cloudbased file storage services [C]// Proceedings of the 4th International Workshop on Perceptual Quality of Systems. Vienna: [s.n.], 2013: 184-190.
[11]
齊嬋穎,李戰懷,張曉,等.云存儲系統性能評測技術研究[J].計算機研究與發展,2014,51(S1):223-228.(QI C Y, LI Z H, ZHANG X, et al. Research on performance evolution technology in cloud storage System[J]. Journal of Computer Research and Development, 2014, 51(S1): 223-228.)
[12]
謝鯤,張大方,文吉剛,等. 基于WinPcap的實時網絡監測系統[J]. 湖南大學學報(自然科學版),2006,33(2):118-121.(XIE K, ZHANG D F, WEN J G, et al. The realtime network monitoring system based on WinPcap[J]. Journal of Hunan University (Natural Sciences), 2006, 33(2): 118-121.)