1、引言
一直以來,網(wǎng)絡和應用的SLA(Service Level Agreement,服務水平協(xié)議)都是通過下面的這些參數(shù)界定的:
(1)可用性。包括正常運行時間/停機時間、平均修復時間、保護倒換。
(2)性能。包括可用性(吞吐量)、鏈路突發(fā)性、服務完整性(丟幀率)、傳輸延遲(時延)、幀延遲變化(數(shù)據(jù)包抖動)。
盡管這些參數(shù)對于表征和界定SLA非常有用,但是它們只涵蓋了最多到網(wǎng)絡IP層的網(wǎng)絡性能。借助這些參數(shù),服務提供商和最終用戶可知曉網(wǎng)絡有傳輸幀的能力,但是不知道能讓它們的關鍵應用達到什么級別的性能。
2、通信網(wǎng)絡協(xié)議
為了成功交換信息,兩臺聯(lián)網(wǎng)設備需要一系列協(xié)議,以允許應用進行通信。這一協(xié)議組就是TCP/IP,它由7層組成,每一層都有特定的功能并向更高的層提供服務。頂層即應用層利用它下面的層來與另一臺終端設備通信,在這個過程中最重要的層就是傳輸層,因為它確保數(shù)據(jù)從網(wǎng)絡層傳輸?shù)綉脤印?/p>
用戶終端通常采用UDP(用戶數(shù)據(jù)報協(xié)議)和TCP(傳輸控制協(xié)議)進行通信,這些協(xié)議也是TCP/IP協(xié)議棧的組成部分。根據(jù)運行的應用不同,采用的傳輸協(xié)議可能不同。如果應用是實時性的并且允許丟失少量的信息,將采用UDP,因為它簡單、有效并且比TCP速度快。對于IPTV、VoIP或在線游戲等應用,它是非常合適的協(xié)議。但是,這種協(xié)議不具備TCP提供的可靠性和順序保證,信息可能雜亂無章地到達或在沒有通知的情況下丟失。如果應用需要在兩臺聯(lián)網(wǎng)設備之間可靠和有效的傳輸,例如電子郵件、客戶關系管理、企業(yè)資源規(guī)劃和文件傳輸?shù)葢茫瑧捎肨CP。
TCP比UDP更復雜,它有多個參數(shù)可進行配置以優(yōu)化其利用率?墒牵诓煌膽弥惺褂玫哪J值會降低網(wǎng)絡傳輸?shù)男阅,使服務提供商和最終用戶在網(wǎng)絡傳輸能力上出現(xiàn)爭議。
3、網(wǎng)絡的TCP吞吐量
在TCP中一些特定參數(shù)將影響設備在網(wǎng)絡上有效傳輸信息的能力,如傳輸窗口的大小、傳輸段的大小以及重傳超時。TCP外部參數(shù)也將影響其性能,其中環(huán)回延遲和丟幀率在TCP鏈路的運行中扮演最重要的角色。此外,如所使用的應用、TCP/IP棧的類型以及運行這些應用的計算機/服務器的性能等因素也會影響其傳輸性能。
從純理論的角度看,TCP最大的吞吐量可通過公式(容量=帶寬×環(huán)回時間,也稱作帶寬延遲乘積)定義。表1列出了基于40 ms環(huán)回時間的不同線路容量。
表1中“容量(字節(jié))”這一列的理論值指示在任何給定的時間系統(tǒng)中的最大字節(jié)數(shù),在此數(shù)值下能夠最大化占滿線路以及TCP可重新發(fā)送任何丟棄或錯誤的數(shù)據(jù)段。在標準的TCP應用中,傳輸窗口允許的最大容量是65535字節(jié)。也就是說在45 Mbit/s和更高的速率、環(huán)回時間為40 ms的情況下,運行普通TCP的服務器不能l00%占滿線路。因此,除非將傳輸窗口擴展到超過65535字節(jié),否則最終用戶在40 ms環(huán)回時間下將無法以超過13.1 Mbit/s的速率傳輸數(shù)據(jù)。以上都是理論值,在現(xiàn)實網(wǎng)絡中達不到這樣的吞吐量。
表1 基于40 ms環(huán)回時間的不同線路容量
4、測試TCP性能的好處
如上所述,網(wǎng)絡上的TCP性能取決于多個參數(shù),那么服務提供商應該如何選擇?服務提供商曾采用RFC 2544(網(wǎng)絡互連設備的基準測試技術)中的方法進行測試。如果在網(wǎng)絡上運行的應用基于UDP,此方法是評估網(wǎng)絡性能的有效方式。吞吐量、丟幀、突發(fā)性和延遲測試是網(wǎng)絡質量的全面快照,并以所有當前SLA為基礎。但是,如果在網(wǎng)絡上運行的應用基于TCP,此方法只能一般性地描述網(wǎng)絡的好壞,無法評估最終用戶將體驗到的服務質量。
最終用戶總是根據(jù)端對端模式測試TCP性能。他們的測試要么以運行他們應用的計算機/服務器提供的帶寬統(tǒng)計數(shù)據(jù)為基礎,要么使用軟件仿真TCP通信。這樣做會讓他們得出服務提供商的網(wǎng)絡有故障的結論,因為他們的測試結果顯示他們獲得的最大吞吐量與預期應該得到的帶寬相差甚遠。用來測試的軟件工具運行在計算機和操作系統(tǒng)上,可是每個操作系統(tǒng)的設置并不一樣,有些鎖定了它們的TCP/IP堆棧并使用為TCP定義的基本分窗口方案,即65535字節(jié);同時,這些軟件工具受限于運行它們的計算機,計算機性能不佳導致測量結果也不理想。因此,這種測量并不能反映真正的網(wǎng)絡性能。
一些測試方法考慮到傳輸窗口的限制而使用多個TCP會話填充帶寬。盡管此方法表明可用TCP會話占滿服務提供商的接入線路,但它不能證明單個應用可實現(xiàn)這一點。多個TCP會話同時運行也存在問題,它們每一個都嘗試向測試線路發(fā)送最大通信量。因為它們共享同一帶寬,有時會以允許的最大速率發(fā)送數(shù)據(jù),但有時會處于擁塞模式而將帶寬留給另一個會話。通過此方法獲得的測試結果是多次測試的平均值,測量結果可能無法重現(xiàn)。
正因為最終用戶會使用多種工具測試它們的網(wǎng)絡,所以服務提供商需要一種方法證明它們的網(wǎng)絡按照設計運轉正常。如果服務提供商擁有從網(wǎng)絡中的每個分界點發(fā)送TCP數(shù)據(jù)這樣一種測試工具,就可用來證明它們的網(wǎng)絡沒有故障,之后可以向最終用戶提供測試參數(shù),以便用戶嘗試通過自己的測試方法重現(xiàn)測試結果。
5、EXFO公司TCP測試方法的特點
Packet Blazer FTB-8510以太網(wǎng)模塊的“TCP吞吐量功能”將幫助服務提供商實現(xiàn)從最終用戶TCP應用角度所期望的服務質量的以太網(wǎng)服務,結合FTB-200或FTB-400平臺友好的圖形界面,技術人員和網(wǎng)絡專家可隨時測試網(wǎng)絡的TCP性能。
FTB-8510的TCP吞吐量測試功能基于RFC 1323中描述的傳輸窗口標度選項,即單個數(shù)據(jù)流可用來提供TCP吞吐量測量。在環(huán)回時間或傳輸帶寬對于標準TCP應用過大時,它用TCP應用填充線路的全部帶寬。而且吞吐量功能由硬件設備實現(xiàn),可以始終提供精確的測量,因為它不依賴PC操作系統(tǒng)或服務器中的任何通信堆棧的執(zhí)行。這樣格外便于使用,因為專業(yè)人員執(zhí)行測試不需要考慮配置多少會話以及每個會話使用哪個TCP端口,用戶不需要平均多個測試結果來驗證線路是否有能力傳輸TCP應用。此外,只有一個TCP測試會話,可重復性比較好。如果網(wǎng)絡條件(如丟幀、環(huán)回時間等)相同,TCP吞吐量測試應得到相同的結果。
作者:Bruno Giguere 來源:電信技術