向程超,雒江濤,羅 鵬
(重慶郵電大學通信網與測試技術重點實驗室,重慶400065)
當前,移動網的部署已經愈發廣泛,并提供了適應網絡發展趨勢的Internet接入服務。雖然Internet在固網中表現得還算穩定,但是在無線移動通信網絡中,由于受制于無線環境的差異性和無線鏈路質量的不穩定性,Internet協議簇中使用的傳輸控制協議(TCP)的傳輸性能受到一定程度的影響,工作效率不高,從而導致了移動數據的丟包、傳輸速率緩慢等一系列問題。
與此同時,移動互聯網中數據業務的比重越來越高,導致人們對于數據業務服務質量的要求也逐步上升。用戶在使用數據業務上網時,網頁的響應速度,文字、圖片等重要信息的顯示質量以及視頻流的播放效果都是評估互聯網業務質量的重要因素,同樣作為傳輸層的TCP傳輸性能的優劣與互聯網業務的質量優劣也緊密相關。因此對移動互聯網中的TCP性能監測和分析,能為優化改善TCP的傳輸效率提供有力的依據和改進方向,并且能幫助運營商在解決用戶數據業務相關問題時,快速定位問題原因,有助于改善移動端的數據傳輸質量,提升數據業務的用戶體驗。但對于具體的TCP性能評估方法[1-6],以往的TCP性能評估導向主要集中于整體評估,不足以體現用戶使用數據業務的特點,而且容易造成統計指標的不準確,比如速率過于平均導致TCP實際傳輸速率高于計算指標值。
本文結合TCP協議的傳輸特性,提出了一系列重要的TCP性能指標的監測統計細化評估方法,致力于縮小統計的時間粒度,盡可能準確地展現移動用戶業務數據的使用特征。除此之外,本文還基于CDMA2000-EVDO中的數據傳輸流程,提出了應用于1x-EVDO數據網絡中的TCP性能監測方案。
對待激增的移動互聯網中的數據業務,如何對其業務質量進行評估引發了一系列的研究,對于TCP性能的評估指標,主要集中在延遲、流量大小、瞬時速率等方面。
在《TCP業務質量評估方法》[4]一文中,扼要地提出了一種相對綜合的整體化研究方法,相應的TCP業務質量參數主要包括TCP平均帶寬、TCP平均時延、TCP時延抖動等,而且針對不同的TCP承載業務,該文方法還提出了不同的評估標準。針對TCP的具體傳輸性能,該類傳統方法主要統計了某個時間段內的總體流量,并評估了TCP性能的平均性能和趨勢。文獻[5]中提出了一種IPv6下的TCP性能評估方法,該方法評估的重點放在業務的服務質量之上,通過TCP消息中的序列號和確認號字段來分析單位時間內的TCP傳輸質量。文獻[6]中,作者通過對不同環境中結合TCP的實際吞吐量、丟包率和上下行流量比例對不同來評估網絡的傳輸質量。
整體評估帶來的最大好處就是節約評估服務器的運算資源,集中對所有的TCP連接進行集中處理和統計,也在一定程度上提高了對超大流量數據的處理效率。但是對于這類評估方法,并不能完全體現用戶的業務使用特點,因此本文旨在研究如何設計一種精確評估TCP性能,并能夠體現用戶數據業務使用特征的評估方法。其精細化的特點主要集中在針對每個用戶甚至每個TCP連接的使用特征進行實時的流量和速率統計,以獲得更為精準的用戶使用特征,方便運營商智能控制,節約無線資源。
為了統計分類,將TCP性能統計分為以下3個階段[7]:TCP連接建立階段,TCP數據傳輸階段和TCP連接釋放階段。在指標的計算過程中,涉及了相關的哈希表索引算法[8],以匹配不同TCP連接的建立釋放消息以及分片數據,其中哈希表的索引Key值由TCP連接中的源目的IP和源目的端口唯一確定。
指標計算過程,建立在對網絡數據采集并解碼之后進行統計,TCP的實時性能統計可以依據哈希表中記錄的TCP數據。其相應的匹配結構如圖1所示。為了保證評估指標精細化分析的準確性,用來存儲TCP連接消息的HASH表數據采用快照功能,按特定最小時間粒度(5 s)輸出統計結果。

圖1 TCP連接在哈希表中的存儲模式
TCP是面向連接的協議,在開始傳輸數據前,應當首先在通信雙方之間建立連接,此過程要先傳送3個只有TCP報文頭部組成的數據包來建立連接,該過程被稱為“三次握手”[7]。在TCP建立連接過程有以下幾個比較重要的指標:CR代表TCP連接請求數目;CA代表TCP成功連接數目;T1代表TCP建立連接時延;Rcon代表TCP連接成功率。這些指標的具體統計步驟的偽代碼如下:

該建立連接過程中,第一次握手之后會依次收到服務端的同步請求數據包即SYN+ACK握手包,客戶端收到同步包之后才是ACK包及第三次握手包。偽代碼中的TcpInfo中主要包括了TCP連接過程中的各項重要字段值以及到達時間、請求統計等。在STEP 4過程,若當前的ACK消息的序列號與確認號能與哈希表中的記錄匹配上,即滿足A1=S1+1和 S2=A1,則可視為完成了一次TCP 連接[7]。
由于TCP之上的應用層協議眾多,數據量巨大,通過可靠的TCP來傳輸時,通信雙方需要協商(或者說通告)最大的報文段長度,如此造成TCP傳輸過程中出現大量的分片數據,為確保數據傳輸的正確性與完整性,TCP層通過序列號和確認序號來確認數據包是否連續到達。除此之外,TCP/IP中使用窗口流控制[7]來提高數據的傳輸速度。該機制允許一次傳送多個數據包,數據包的多少按照雙方約定的緩沖區來確定。
在傳輸過程中,由于無線鏈路復雜的網絡環境,導致TCP傳輸過程時常有丟包和亂序包來造成數據錯誤,同時大多數應用通過TCP來傳輸的流量和速率也是運營商所需要關注的關鍵指標。同時,為了更精準地表現用戶的數據使用特征,在評估方法上采用更細化的統計方法,比如在統計速率的時候剔除用戶使用過程數據靜默時間,從而減少由于統計平均時間過長帶來的數據傳輸速率的誤差。此過程中,Rretr(TCP數據傳輸階段,下行數據包的重傳率),PKT0(數據傳輸上行TCP總包數),PKT1(數據傳輸下行TCP總包數),PKTretr(數據傳輸重傳數據包總包數),R1(TCP數據包上下行發送的速率)是數據傳輸過程的重要指標。其具體實現步驟偽代碼如下:

與TCP建立連接的過程相似,在釋放階段一般需要經過4個步驟,稱之為釋放連接的“四次握手”[7]。由于TCP連接是全雙工模式的,在連接的兩個方向上都需要分別關閉,主要依靠兩個FIN+ACK和ACK包。在這個階段主要指標是TCP的連接時長,其具體算法可以參照建立連接階段,先判斷標志位再記錄TCP數據包的時間,進行統計計算,具體過程在此不再贅述。
實驗針對EV-DO網絡中用戶面數據進行,在EVDO系統中,PCF(分組控制功能)和PDSN(分組數據業務節點)是主要負責處理用戶分組數據的網元,在該系統中的TCP性能監測主要圍繞這兩個網元之間的R-P接口中A10,A11數據的采集和分析來展開。為實現TCP的性能分析,首先需要將相關的業務數據采集出來之后再加以分析處理。如圖2所示,利用信令數據采集設備可以采集到PCF與PDSN之間R-P接口中的數據,其中包括了A11的信令數據以及A10的業務數據[9],A11的信令數據可用作用戶數據業務接入流程的分析,在此不進行贅述,而采集得到的A10的業務數據正是分析TCP性能的依據。

圖2 EV-DO測試平臺
利用采集獲得數據消息建立一套完整的EV-DO監測系統對于電信運營商規范和評估網絡性能有重大意義。該系統需要對分組的業務數據和信令數據加以區分以進行不同的分析,比如信令的數據可以用來追蹤用戶使用數據的流程,以定位網絡故障;而相應的業務數據則可以用作分析用戶的上網特征,以及本文中提及的TCP性能分析,其隸屬于業務過程連接質量的分析。該質量分析包括通過對TCP連接建立過程的成功率、重發率等相關指標進行查詢統計,快速定位問題,進行深入優化分析,從各維度統計分析的TCP連接建立的失敗事件,更重要的是對當前網絡中每個用戶的TCP連接流量進行相應的統計,以突出用戶的使用特征。
用戶業務的數據主要由A10業務通道進行傳輸,但是在傳遞業務數據之前需要經過PPP協商過程建立PPP連接。包括建立數據在內,A10接口的所有數據由GRE層進行承載,在解碼過程中,提取GRE層的關鍵字段GREKEY作為識別每個不同的PPP連接的關鍵字段,而且在現網架設中,一般都是多個PCF接入到同一個PDSN中,因此還需要 PDSN和 PCF的 IP結合GREKEY一起,唯一標識某個PPP連接,以此2個字段作為Key值建立存儲全網運行狀態的全局哈希表,其中包括每個PCF運行時間內的上下行總字節數,相關流程如圖3所示。

圖3 TCP性能分析流程圖
除此之外,還需要為TCP性能分析單獨建立一張哈希表,其索引Key包括PPP上層的IP源、目的地址,TCP源、目的端口。這張哈希表主要記錄了用戶使用業務數據過程中每條TCP連接的具體信息,哈希表的存儲結構在前面的章節已經介紹過。
相應的TCP流數據經過多層解碼器的解封裝之后,其提取出的有效TCP數據流會被送入到專門的性能分析處理模塊HandleTcp中,根據多條TCP流數據完善哈希表中各個字段的數據,該條TCP釋放之后即可在相應的出表文件中生成一條TCP記錄。
在系統模擬運行過程中,為測試算法的性能,借助計算機開設WiFi熱點,并用智能手機連接,模擬用戶手機上網的過程,并加以抓包分析TCP性能方面的各項指標,具體分析結果如表1所示。

表1 TCP連接信息
如表1所示,該過程是利用手機登錄某下載網站,選擇了一款軟件進行下載的過程,其時間連接信息如表2所示。為了模擬不穩定的手機網絡環境,測試通過遠離WiFi熱點造成網絡的不穩定,出現了一部分重傳包,其統計結果如表3所示。

表2 TCP連接時間相關統計

表3 重傳包相關統計
上下行數據包傳送速率以及位速率的精細化統計尤為重要,本文中的算法以每個數據包的傳送時間為統計時間粒度,在提高系統消耗效率的基礎上,大大提高了定位用戶上網行為的能力。其統計結果如圖4所示,在16:51:07到16:52:47這段時間內,源目的IP建立的這條TCP連接,實際的吞吐量大小與時間的變化可顯示出用戶的該條TCP連接中吞吐量是時高時低的,而且在一定時間內該條連接將不存在流量的交互,這段時間即為前文中指出的用戶靜默時間,在根據流量計算速率的時候就不能記入統計內。

圖4 精細化TCP流量統計
當采用細化評估方法時,速率和流量的統計更為準確,通過圖5可以直觀地觀察到。特別是當用戶手機打開網頁后幾分鐘之內不再瀏覽其他內容,這段時間屬于用戶靜默時間,不存在流量的交互,而進行整體化指標計算之后,整個過程中的流量被平均計算,導致了TCP交互速率的不準確。可見精細化的TCP速率統計,加強TCP性能的監控效率,能更準確地定位用戶的上網行為。

圖5 TCP性能評估方法下行速率對比
本文結合TCP的協議特征對TCP性能需求和細化統計指標的計算進行了深入的分析。伴隨著64位計算機系統的應用,基于其豐富的內存資源,以上在EV-DO系統監測的基礎上,提出了一種通過在內存中建立多張哈希表進行相應TCP性能分析的方案。該方案合理地利用了內存資源,提高了性能分析的效率,并借助TCP性能的精細化評估方法,以達到監測用戶具體業務數據,實時精準地統計,為快速定位網絡故障,評估用戶上網行為的優劣質量提供了精準的數據保障。當前的工作僅限于對少量數據的統計和分析,只有提高分析處理的效率以及優化內存的消耗才能保證該系統在現網系統中穩定地使用。針對目前的流量分析,還可以對流量分析統計進一步細化,統計不同用戶針對不同網站的流量分布,該分析能夠更準確地分析用戶的數據業務使用特征。
[1]劉玉軍,劉曉兵,房愛忠,等.網絡性能評估系統研究[J].計算機測量與控制,2007,15(5):692-694.
[2]徐昌彪,張坤,鮮永菊,等.認知無線電環境下TCP性能研究[J].電視技術,2011,35(19):67-71.
[3]王煥,姚遠程,張瑩.不同背景流量下TCP吞吐量的主動測量及分析[J].計算機工程,2007,33(7):92-93.
[4]張軼博,許豫飛,雷振明.TCP業務質量評估方法研究[J].計算機工程與應用,2004(18):8-9.
[5]IGOR K,YOUNG-TAK K,Performance evaluation and improvement of TCP Throughput over PFMIPv6 with MIH[C]//Proc.6th IFIP/IEEE International Workshop on Broadband Convergence Networks.[S.l.]:IEEE Press,2011:997-1004.
[6]KONSTANTINOS T,GEROGE S.Comparative performance evaluation of TCP variants in WiMAX(and WLANs)network configurations[J].Computer Networks and Communications,2012(1):1-8.
[7]RICHARD S W.TCP/IP詳解卷1:協議[M].范建華,胥光輝,張濤,譯.北京:機械工業出版社,2004.
[8]汪世龍,雒江濤.基于哈希的IP會話分時段統計方法[J].數字通信,2009(1):72-75.
[9]3GPP2.A.S0017-B,Interoperability specification(IOS)for CDMA2000 access network interfaces-part 7(A10 and A11 Interfaces)[S].2012.