文/章思宇 沈海云 賴學(xué)亮
網(wǎng)絡(luò)質(zhì)量監(jiān)測對掌握校園網(wǎng)運行狀況、發(fā)現(xiàn)網(wǎng)絡(luò)故障、優(yōu)化用戶上網(wǎng)體驗、評價網(wǎng)絡(luò)建設(shè)成效等均有重要意義。目前,用戶接入側(cè)的質(zhì)量作為影響用戶上網(wǎng)體驗的關(guān)鍵因素之一,仍是校園網(wǎng)質(zhì)量監(jiān)測的難點所在。對于此,在用戶接入位置部署撥測探針,或請用戶主動進(jìn)行測速,依舊是校園網(wǎng)質(zhì)量監(jiān)測的最常用手段。
現(xiàn)代的瀏覽器提供Performance API接口,允許使用JavaScript 獲得與當(dāng)前頁面相關(guān)的性能信息。通過getEntries 或getEntriesByType 函數(shù)獲取“resource”類型的記錄,可得到頁面上各資源加載的高精度時間線信息,包括域名查詢的開始和結(jié)束時間、連接開始和結(jié)束時間、請求開始時間、響應(yīng)開始和結(jié)束時間等。Performance API 提供的時間戳精度可達(dá)5 微秒。
本文基于瀏覽器的網(wǎng)絡(luò)質(zhì)量主動測量系統(tǒng),利用Performance API 獲取頁面主動發(fā)起的HTTP 請求的精確處理時間,以此來計算網(wǎng)絡(luò)延遲和資源下載速度。開源的測速軟件LibreSpeed 亦采用了類似的方法在瀏覽器里進(jìn)行網(wǎng)絡(luò)測速。系統(tǒng)使用的API 功能在IE 11 瀏覽器,2015 年之后的Chrome、Firefox 瀏覽器和Android 系統(tǒng)版本,以及2017 年之后的iOS 系統(tǒng)版本中可得到支持,對用戶當(dāng)前普遍在用的瀏覽器和手機設(shè)備具有較好的兼容性。
為測量網(wǎng)絡(luò)延遲,系統(tǒng)利用JavaScript從用戶瀏覽器主動發(fā)起Ajax 請求,服務(wù)器迅速返回響應(yīng),然后通過瀏覽器Performance API 獲得該請求和響應(yīng)的時間戳。由于HTTP 請求和響應(yīng)尺寸較小,在一個TCP 報文中即可容納,因此忽略瀏覽器和Web 服務(wù)器處理請求消耗的少量時間后,瀏覽器發(fā)送請求(requestStart)與收到響應(yīng)(responseStart)的時間差可基本代表客戶端與服務(wù)器之間的網(wǎng)絡(luò)延遲。
為驗證該方法與ICMP ping 測量延遲和抖動的結(jié)果差異,在校園網(wǎng)內(nèi)分別使用ICMP ping 和該方法發(fā)送10 次請求,對比Wireshark 報文分析和瀏覽器Performance API 計算結(jié)果差異。測試主機上使用Wireshark 計算10 次ICMP ping 的平均延遲為0.33 ms,抖動0.05 ms。Wireshark計算10 對HTTPS 請求響應(yīng)報文的平均時間差為0.66 ms,抖動0.11 ms。瀏覽器Performance API 計算得到10 次HTTPS 請求響應(yīng)的平均時間差為2.02 ms,抖動0.48 ms。對比結(jié)果顯示,Web 服務(wù)器和瀏覽器引入的處理耗時約1.7 ms,對抖動影響小于0.5 ms,該差異對監(jiān)測接入質(zhì)量較差用戶的影響輕微,因為這些用戶的延遲和抖動通??蛇_(dá)數(shù)十毫秒。
系統(tǒng)通過HTTP Keep-alive 保持連接,避免每次請求均新建TCP 連接增加耗時。同時,通過URL 添加隨機GET 參數(shù),并在HTTP 響應(yīng)頭設(shè)置Cache-Control 的no-store屬性來避免緩存。
系統(tǒng)使用瀏覽器Performance API 測量從服務(wù)器加載特定尺寸資源所需時間,估算用戶網(wǎng)絡(luò)的下載速率。由于頁面跳轉(zhuǎn)會中斷后臺資源加載,必須選取合適的下載尺寸和超時時間以尋求測試成功率和結(jié)果準(zhǔn)確性的平衡。經(jīng)真實用戶終端試驗,每次測試下載5 MB 數(shù)據(jù)、最多等待20 秒時間,可取得95%以上的測試成功率。
在高帶寬網(wǎng)絡(luò)下,受TCP 擁塞控制算法慢啟動機制影響,5 MB 數(shù)據(jù)的平均下載速率可能明顯低于實際帶寬。為了驗證校園網(wǎng)環(huán)境下5 MB尺寸測速的準(zhǔn)確性,我們在百兆、千兆校園有線網(wǎng)和無線網(wǎng)下分別進(jìn)行多次實驗。使用百兆校園有線網(wǎng),5 MB 數(shù)據(jù)下載平均速率為91.2 Mbps,千兆有線網(wǎng)下平均為410.1 Mbps。在校園無線網(wǎng)下,使用LibreSpeed 測得下行帶寬約為273 Mbps 時,5 MB 數(shù)據(jù)下載平均速率為227.3 Mbps。該結(jié)果顯示雖然5 MB下載平均速率會與實際帶寬有一定差距,但已能基本反映用戶網(wǎng)絡(luò)下載速度優(yōu)劣。
系統(tǒng)對外呈現(xiàn)一個HTML 頁面,可通過iframe 嵌入校園網(wǎng)站或應(yīng)用系統(tǒng),用戶訪問這些網(wǎng)站或系統(tǒng)時后臺可自動進(jìn)行網(wǎng)絡(luò)測量。
瀏覽器停留在嵌入本系統(tǒng)的網(wǎng)站頁面期間,系統(tǒng)持續(xù)進(jìn)行每秒1 次的延遲測量,每10 秒上傳一次統(tǒng)計數(shù)據(jù)。為避免下載測速功能消耗用戶手機移動數(shù)據(jù)流量,系統(tǒng)只對使用學(xué)校校園網(wǎng)的用戶,以及PC系統(tǒng)用戶開展下載測速。同時,同一終端(根據(jù)相同IP 地址和User-Agent 識別)在6 小時內(nèi)只進(jìn)行一次測速。
系統(tǒng)僅采集IP 地址、User-Agent 和網(wǎng)絡(luò)延遲、下載速率,不采集用戶名等其他信息。其中,IP 地址和User-Agent 在各網(wǎng)站服務(wù)器訪問日志中均有留存,因此引入本系統(tǒng)不增加個人信息的采集。瀏覽器同源策略確保了通過iframe 嵌入的本系統(tǒng)無權(quán)訪問父頁面內(nèi)容,因此不會對嵌入本系統(tǒng)的網(wǎng)站和應(yīng)用系統(tǒng)產(chǎn)生安全風(fēng)險。系統(tǒng)首頁將系統(tǒng)功能和數(shù)據(jù)采集情況向用戶說明,并提供退出網(wǎng)絡(luò)測量的方法和聯(lián)系方式。
基于瀏覽器的網(wǎng)絡(luò)質(zhì)量主動測量系統(tǒng)部署在上海交通大學(xué)云平臺,并在網(wǎng)絡(luò)信息中心網(wǎng)站首頁、線上辦事服務(wù)大廳頁面進(jìn)行了嵌入。
根據(jù)對2021 年9 月全月運行數(shù)據(jù)的統(tǒng)計(如圖1 所示),系統(tǒng)平均每天測量終端3.24 萬個(根據(jù)不同IP 地址和User-Agent計算),其中移動終端(安卓和iOS 系統(tǒng))占74.9%,桌面終端占25.1%。被測終端來自校園有線網(wǎng)的占11.6%,校園無線網(wǎng)占55.5%,校外網(wǎng)絡(luò)占32.9%。當(dāng)前部署情況下,平均每日測量的校園網(wǎng)終端已達(dá)2.17萬個,基本實現(xiàn)了較廣范圍測量的目標(biāo)。
圖1 2021 年9 月每日測量終端統(tǒng)計
2021 年9 月全月系統(tǒng)采集延遲測量記錄2.04 億條(見表1),每條包含10 次延遲測量值,相當(dāng)于采集了總共20.4 億個ping 值。延遲測量記錄81.2%為校園網(wǎng)內(nèi)終端產(chǎn)生,97.1%為桌面終端,說明桌面用戶在測量嵌入的網(wǎng)站頁面停留時間較長,平均每個終端每天8119 秒,而移動終端用戶平均每天頁面停留僅79 秒。全月系統(tǒng)采集下載測速記錄68.2 萬條,90.3%為校園網(wǎng)內(nèi)測速。
表1 2021 年9 月測量記錄統(tǒng)計
利用系統(tǒng)采集的測量數(shù)據(jù),可開展多維度的校園網(wǎng)接入質(zhì)量分析。
表2 按網(wǎng)絡(luò)類型做總體比較,通過校園有線網(wǎng)接入的終端,網(wǎng)絡(luò)穩(wěn)定性(通過延遲、抖動和請求失敗率評價)及下載速率優(yōu)于校園無線網(wǎng)。有線網(wǎng)終端通過5 MB 數(shù)據(jù)下載測得平均下載速率127.55 Mbps,無線網(wǎng)平均為68.15 Mbps。根據(jù)之前的分析,實際下行帶寬要比該數(shù)值更高。
表2 按網(wǎng)絡(luò)類型測量均值
全月測量覆蓋校園有線網(wǎng)IP 地址共1.44 萬個,下載測速顯示30.6%的IP 地址取得100 Mbps 以上的下載速率,為終端全面支持千兆的用戶,其余用戶盡管校園網(wǎng)提供了千兆接入能力,但用戶終端或自購路由器仍只支持百兆。根據(jù)是否有移動終端,或不同類型操作系統(tǒng)的PC 同時接入,分析得知約66.7%的校園有線網(wǎng)IP 地址使用了自購的NAT 路由器,且其中98%以上為無線路由器(有移動終端接入)。
表3 將校園無線網(wǎng)分為3 個區(qū)域進(jìn)行比較。區(qū)域A 建設(shè)于2018 年以前,以WiFi 5 無線AP 為主,有少量WiFi 4 AP;區(qū)域B 建設(shè)于2018 至2019 年間,全部為WiFi 5 無線AP;區(qū)域C 建設(shè)于2020 至2021 年間,以WiFi 6 無線AP 為主,有少量WiFi 5 AP。測量結(jié)果顯示,近四年建設(shè)的區(qū)域B、C 用戶接入穩(wěn)定性優(yōu)于更早建設(shè)的區(qū)域A,其中區(qū)域B 的穩(wěn)定性最優(yōu)。采用了WiFi 6 設(shè)備的區(qū)域C 用戶下載速率得到顯著提升,平均下載速率是區(qū)域A 的2 倍,比區(qū)域B 也提升了59%。
表3 校園無線網(wǎng)按區(qū)域均值
校園有線網(wǎng)用戶接入質(zhì)量與大樓建成及用戶入住年限有關(guān)。表4 選擇校內(nèi)4 個區(qū)域的有線網(wǎng)進(jìn)行比較,區(qū)域D 為啟用超過十年的某學(xué)院大樓,區(qū)域E 為2020 年啟用的學(xué)院大樓,區(qū)域F 為大四學(xué)生宿舍,區(qū)域G 為大一學(xué)生宿舍。結(jié)果顯示,無論是學(xué)院大樓還是學(xué)生宿舍,較新啟用和入住的區(qū)域(E、G),因用戶設(shè)備更新、布線質(zhì)量更好,支持千兆的用戶比例及區(qū)域整體的下載速率都要更高。
表4 校園有線網(wǎng)按區(qū)域均值
除了評價校園網(wǎng)整體質(zhì)量外,利用系統(tǒng)采集的數(shù)據(jù)對個體區(qū)域進(jìn)行逐一深入分析,可定位低速、低穩(wěn)定性用戶集中的區(qū)域,為校園有線、無線網(wǎng)絡(luò)和布線系統(tǒng)改造計劃的制訂提供數(shù)據(jù)支撐。
本文設(shè)計并實現(xiàn)了一套基于瀏覽器的輕量級網(wǎng)絡(luò)質(zhì)量主動測量系統(tǒng),并在校園網(wǎng)內(nèi)開展了較大規(guī)模的實驗驗證,平均每天主動測量終端3.24 萬個,采集的數(shù)據(jù)在分析校園網(wǎng)整體質(zhì)量、評價有線與無線網(wǎng)升級改造成效、發(fā)現(xiàn)區(qū)域和個體用戶網(wǎng)絡(luò)質(zhì)量異常方面發(fā)揮了實際價值。與現(xiàn)有網(wǎng)管和測速工具相比,本文方法的優(yōu)勢在于:1.基于瀏覽器測量延遲、抖動和下載速率,對桌面和移動終端普遍適用;2.測量全部從真實用戶終端發(fā)起;3.可快速開展大范圍測量,且對用戶無感;4.長時間后臺測量可發(fā)現(xiàn)偶發(fā)的網(wǎng)絡(luò)抖動。