今天分享的論文主題是:如何開展一項(xiàng)科學(xué)準(zhǔn)確的互聯(lián)網(wǎng)測(cè)量研究。本文作者Vern Paxson是UC Berkeley教授、網(wǎng)絡(luò)測(cè)量領(lǐng)域頂會(huì)IMC的創(chuàng)始人,是互聯(lián)網(wǎng)測(cè)量領(lǐng)域的權(quán)威專家。作者從方法論的層面討論測(cè)量方法設(shè)計(jì)、測(cè)試工具選取、數(shù)據(jù)收集等方面存在的諸多挑戰(zhàn),并憑借豐富的網(wǎng)絡(luò)測(cè)量經(jīng)驗(yàn),分享了測(cè)量工作中常見的問題、應(yīng)對(duì)策略、注意事項(xiàng),以及影響結(jié)果的一些因素,幫助新入門的人避免一些“坑”。本文僅介紹通用的原則,而非具體的技術(shù)或工具。作者介紹這些方法策略,是為了讓測(cè)量工作更加科學(xué)、有理有據(jù),讓分析人員對(duì)測(cè)量中的優(yōu)勢(shì)和局限性有充分的了解。本文發(fā)表于互聯(lián)網(wǎng)測(cè)量領(lǐng)域頂會(huì)IMC 2004。
01【處理誤差或錯(cuò)誤】
1. 精度(Precision)
【資料圖】
精度屬于測(cè)量工具導(dǎo)致的實(shí)驗(yàn)誤差,是指測(cè)量工具對(duì)測(cè)試目標(biāo)所能提供的最高精準(zhǔn)程度決定測(cè)量結(jié)果的誤差范圍。例如,以毫秒為單位變化的時(shí)鐘無法提供微秒級(jí)別的時(shí)間精度。在互聯(lián)網(wǎng)測(cè)量中需要考慮多種“精度”信息,包括但不限于:
在對(duì)數(shù)據(jù)包、Web服務(wù)器日志信息、BGP路由信息進(jìn)行測(cè)量時(shí),確定保留或丟棄哪些信息也屬于精度范疇。例如,僅保留數(shù)據(jù)包Header信息比保留完整數(shù)據(jù)包信息精度低。
時(shí)間精度有時(shí)也是影響測(cè)量精確性的主要維度。有時(shí)可以忽視時(shí)間精度問題,例如,計(jì)算機(jī)時(shí)鐘的精確度是10毫秒,在進(jìn)行以秒為單位或更粗粒度的分析時(shí)無需考慮計(jì)算機(jī)時(shí)鐘帶來的誤差。因此,需要根據(jù)具體實(shí)驗(yàn)權(quán)衡判斷。
百分比的有效數(shù)字:網(wǎng)絡(luò)測(cè)量工作的方法決定了其精度不會(huì)太高,因此在進(jìn)行數(shù)據(jù)統(tǒng)計(jì)時(shí),小數(shù)位數(shù)不必保留過多。
2. 元數(shù)據(jù)(Meta-data)
測(cè)量分析中的元數(shù)據(jù)有多種類型,但并無明確定義,包括但不限于:
描述性信息,如文件大小、采集時(shí)間戳、采集條件、數(shù)據(jù)來源
數(shù)據(jù)存儲(chǔ)格式,如JSON格式、按行存儲(chǔ),是否需要以特定標(biāo)識(shí)開頭
數(shù)據(jù)存儲(chǔ)、處理、統(tǒng)計(jì)等中間過程信息
數(shù)據(jù)授權(quán)信息、版權(quán)信息、管理員權(quán)限
作者認(rèn)為,保存充分且完整的元數(shù)據(jù)信息與確定精度同等重要。一方面,有效數(shù)據(jù)很難收集,有時(shí)狀態(tài)改變便會(huì)導(dǎo)致所收集數(shù)據(jù)發(fā)生改變。另一方面,雖然很多元數(shù)據(jù)在收集時(shí)并無“立即收益”,但是當(dāng)發(fā)現(xiàn)其有意義時(shí)可能很難再次獲得。
3. 準(zhǔn)確度(Accuracy)
準(zhǔn)確度的影響因素包括丟包和時(shí)鐘問題。相較于精度而言,準(zhǔn)確度是一個(gè)更大的范圍,它將決定測(cè)量結(jié)果是否能夠作為真實(shí)情況的縮影。除了測(cè)試工具、方法本身帶來的偏差之外,測(cè)量中有很多因素會(huì)導(dǎo)致結(jié)果錯(cuò)誤,需要仔細(xì)評(píng)估各類錯(cuò)誤是否存在及影響規(guī)模。
案例1:報(bào)文數(shù)據(jù)采集、過濾和丟包
數(shù)據(jù)包過濾(filtering)的本質(zhì)是通過預(yù)設(shè)條件,將符合規(guī)則的包完整保留,或僅保留部分頭部信息。以tcpdump工具為例,用它進(jìn)行數(shù)據(jù)包采集和分析時(shí)將可能存在一系列問題,例如(注:本文作者為tcpdump的初代作者之一):
tcpdump無法跟上過濾器接收數(shù)據(jù)包的效率;過濾器跟不上原始數(shù)據(jù)包的流速
tcpdump在記錄故障信息方面存在缺陷,只能生成關(guān)于總丟包數(shù)量的摘要信息,無法將丟包與其發(fā)生的時(shí)間點(diǎn)關(guān)聯(lián)起來;而ipsumdump可以包括丟包信息和數(shù)據(jù)包。
案例2:時(shí)鐘不準(zhǔn)確
時(shí)鐘不準(zhǔn)確現(xiàn)象包括“與真實(shí)時(shí)間不同步”、“時(shí)間突然向前或向后飄移”,或者“時(shí)間以錯(cuò)誤的速率前進(jìn)”。與時(shí)鐘精度的區(qū)別在于,精度可以提前獲知,而準(zhǔn)確度需要后續(xù)進(jìn)行數(shù)據(jù)處理。作者建議在實(shí)驗(yàn)中可以盡可能與真實(shí)時(shí)間(true time)保持同步,例如GPS比通過NTP同步要準(zhǔn)確一些。但有時(shí)“絕對(duì)時(shí)間”未必重要,“相對(duì)時(shí)間間隔”或“時(shí)鐘變化速率”可能更重要。
另一方面,一些工作在實(shí)驗(yàn)設(shè)計(jì)時(shí)需要嚴(yán)格考慮“時(shí)鐘同步”問題。例如Cao等人[6]提出的TCP側(cè)信道攻擊模型中,Off-path攻擊者需要嚴(yán)格判斷1秒內(nèi)是否能夠接收到Server端發(fā)出100個(gè)Challenge ACK,因此需要與Server端保持時(shí)鐘同步。
4. 理解偏差(Misconception)
貫穿測(cè)量研究的一個(gè)主要問題是確認(rèn)“是否對(duì)所分析的問題存在理解偏差”,例如實(shí)驗(yàn)設(shè)計(jì)的測(cè)量方法模型可能與實(shí)際網(wǎng)絡(luò)情況不匹配。本文舉例介紹了以下兩方面問題:
案例1:方法設(shè)計(jì)中存在錯(cuò)誤????????????
(1)測(cè)量TCP數(shù)據(jù)包丟失的問題:若通過計(jì)算重傳的數(shù)據(jù)包數(shù)量方法評(píng)估,則可能忽略了數(shù)據(jù)包被網(wǎng)絡(luò)不必要地重傳或復(fù)制的問題。
(2)評(píng)估端到端Web傳輸時(shí)間:若直接計(jì)算RTT,則可能忽略了網(wǎng)絡(luò)中間件(middlebox)的影響。
(3)計(jì)算TCP連接大小的分布情況:若計(jì)算SYN和FIN的序列號(hào)之差,則未考慮到可能監(jiān)測(cè)開始時(shí)有連接已經(jīng)建立,或者監(jiān)測(cè)結(jié)束時(shí)有連接還未斷開的情況。
(4)觀測(cè)點(diǎn)的位置:無法通過一個(gè)AS觀察到BGP的全局可達(dá)性。
案例2:數(shù)據(jù)收集不具有代表性
不同網(wǎng)絡(luò)節(jié)點(diǎn),或者同一網(wǎng)絡(luò)節(jié)點(diǎn)的不同時(shí)期,互聯(lián)網(wǎng)性能存在較大差異
作者認(rèn)為,研究者難以自己發(fā)現(xiàn)對(duì)問題和方法的理解偏差,并且擁有“領(lǐng)域知識(shí)”(domain knowledge)的人也不一定能完全避免這類問題。因此作者建議做多次實(shí)驗(yàn)交叉驗(yàn)證,例如從不同位置或不同時(shí)間多次收集不同數(shù)據(jù)集。此外,在測(cè)量開始之前可以尋求同行專家的幫助。
5. 結(jié)果校驗(yàn)(Calibration)
在測(cè)量結(jié)束時(shí),需要進(jìn)行結(jié)果校驗(yàn),以解決方法存在誤區(qū)、糾正錯(cuò)誤結(jié)果等問題。具體從以下方面展開:
方面1:檢驗(yàn)離群點(diǎn)、異常值
在對(duì)結(jié)果進(jìn)行統(tǒng)計(jì)分析時(shí),通常會(huì)存在很多離群點(diǎn)(例如極高、極低的值)或驟增驟減的現(xiàn)象(例如短期內(nèi)的大量重復(fù))。這種異常現(xiàn)象可能是會(huì)影響結(jié)論的“特殊案例”(corner case),也可能是測(cè)量方法錯(cuò)誤導(dǎo)致的結(jié)果,因此需要額外分析原因。例如:
(1)流量瞬間增多,可能是因?yàn)榘l(fā)生了DDoS攻擊;
(2)計(jì)時(shí)器設(shè)置錯(cuò)誤(采集固定間隔的流量 或 定期采集流量)導(dǎo)致測(cè)量誤差;
(3)通過采集流量計(jì)算RTT的分布,但outbound和inbound packet匹配得不對(duì),導(dǎo)致分析錯(cuò)誤。
通常而言,發(fā)現(xiàn)異常值需要依靠直覺,而直覺是伴隨經(jīng)驗(yàn)積累的。
方面2:自洽性檢查
實(shí)驗(yàn)中需要對(duì)不同測(cè)量數(shù)據(jù)進(jìn)行交叉驗(yàn)證和比較,檢查測(cè)量方法、數(shù)據(jù)處理和分析等方面的一致性,發(fā)現(xiàn)任何潛在的錯(cuò)誤、異常值、實(shí)驗(yàn)前后的矛盾性。這就需要對(duì)實(shí)驗(yàn)結(jié)果預(yù)先設(shè)定心理預(yù)期,然后通過輔助實(shí)驗(yàn)或附加屬性對(duì)預(yù)期結(jié)論加以佐證。
例如,在追蹤TCP數(shù)據(jù)流時(shí),如何判斷獲取的流數(shù)據(jù)包是否完整?這個(gè)問題可以依賴于TCP協(xié)議設(shè)計(jì)中的“可靠性”加以排除,因?yàn)楦鶕?jù)標(biāo)準(zhǔn)規(guī)范約束,接收方只有在確認(rèn)接收?qǐng)?bào)文時(shí)才能發(fā)ACK,而ACK是可以量化統(tǒng)計(jì)的。因此可以通過驗(yàn)證流完整性來發(fā)現(xiàn)丟包問題。
(1)通過多種方法去驗(yàn)證一個(gè)問題或現(xiàn)象。可以使用相同方法多次測(cè)量,例如用兩個(gè)monitor同時(shí)監(jiān)聽,可以區(qū)分“丟包”和“包過濾”;也可以使用不同方法測(cè)同一個(gè)問題,例如統(tǒng)計(jì)HTTP數(shù)據(jù)流中GET和POST請(qǐng)求數(shù)時(shí),可以直接從原始報(bào)文解碼統(tǒng)計(jì),也可以分析由工具(如wireshark)生成的報(bào)告。在多次實(shí)驗(yàn)中,無需要求每次結(jié)果都一樣,只要差別不太“離譜”即可(異常情況靠經(jīng)驗(yàn)判斷)。
(2) 評(píng)估合成數(shù)據(jù)。實(shí)驗(yàn)中可以主動(dòng)構(gòu)造一些異常、錯(cuò)誤的數(shù)據(jù),判斷測(cè)量工具/方法是否能夠檢測(cè)出,以及進(jìn)一步分析如何處理(和魯棒性有關(guān))。此外,作者建議也可以使用一些數(shù)學(xué)方法,例如蒙特卡羅方法(統(tǒng)計(jì)模擬、隨機(jī)抽樣),即根據(jù)問題/場(chǎng)景預(yù)先估計(jì)統(tǒng)計(jì)分布函數(shù),然后通過真實(shí)數(shù)據(jù)判斷是否擬合。
總結(jié):評(píng)估和數(shù)據(jù)校準(zhǔn)過程通常需要在“目標(biāo)”之外做很多額外的工作,需要花費(fèi)大量的時(shí)間,尤其是當(dāng)處理的數(shù)據(jù)量很大時(shí)。有時(shí)這些過程難以避免,每次測(cè)量分析時(shí)可能都會(huì)有一些新的“坑”出現(xiàn),很多臟活累活出在這里,這是很正常的。此外,有一些異常值、不一致現(xiàn)象可以直接刪除,但要事先論證直接刪除不會(huì)對(duì)結(jié)果造成偏差。這些過程很痛苦,但有必要。
02【處理大規(guī)模數(shù)據(jù)】
處理和分析大數(shù)據(jù)時(shí),主要會(huì)受到系統(tǒng)、軟件等各方面的限制,下面介紹一些經(jīng)驗(yàn)或常見問題。
存儲(chǔ)問題:需考慮磁盤空間、最大文件大小、inode數(shù)/文件數(shù)、文件路徑長度(影響檢索效率)
可視化展示:數(shù)據(jù)點(diǎn)太多機(jī)器處理不動(dòng),可能需要?jiǎng)h除一些數(shù)據(jù)點(diǎn)
統(tǒng)計(jì)學(xué)方法自身的局限性:眾所周知,在統(tǒng)計(jì)學(xué)界,大型數(shù)據(jù)集幾乎從來沒有統(tǒng)計(jì)學(xué)上的精確描述。例如,大量重復(fù)扔骰子的實(shí)驗(yàn),在某些情況下不能通過對(duì)預(yù)測(cè)二項(xiàng)分布的卡方檢驗(yàn)。這是因?yàn)榻y(tǒng)計(jì)學(xué)檢驗(yàn)方法可能在某些情況下過于精確(例如能夠檢測(cè)到統(tǒng)計(jì)精確性的微小偏差),導(dǎo)致各種統(tǒng)計(jì)分布的誤差在數(shù)據(jù)量充足時(shí)會(huì)表現(xiàn)得很明顯。
開發(fā)和部署分析代碼時(shí),需要重復(fù)“edit–compile–debug”的過程:直接動(dòng)手分析大數(shù)據(jù)很慢,而且初期寫的代碼需要多輪調(diào)試,很可能運(yùn)行很久發(fā)現(xiàn)條件設(shè)置錯(cuò)誤
關(guān)于大數(shù)據(jù)處理的建議:
提取數(shù)據(jù)的小子集,并首先對(duì)這些子集進(jìn)行深入分析
子集的選取要隨機(jī),避免bias;或選取多個(gè)子集
可以結(jié)合一些可視化技術(shù),分析不同子集的特性、分布、統(tǒng)計(jì)特征
03【確保分析可復(fù)現(xiàn)】
很多人會(huì)在投稿DDL前完成了大量測(cè)量實(shí)驗(yàn)和結(jié)果分析,隔幾個(gè)月審稿人反饋了很多問題,或建議如何進(jìn)一步分析、補(bǔ)充測(cè)量數(shù)據(jù)或者步驟等等。但這個(gè)時(shí)候距離上次實(shí)驗(yàn)已經(jīng)過去很久了,如何進(jìn)行分析?
不推薦: 簡(jiǎn)單修改腳本,按照指示重新跑一遍數(shù)據(jù),直接用新結(jié)果替換。
推薦方案: 需要了解“原始文本”得出結(jié)論的細(xì)節(jié),先將原始數(shù)據(jù)復(fù)現(xiàn),在此基礎(chǔ)上繼續(xù)分析。
但是很多人會(huì)發(fā)現(xiàn),幾個(gè)月前在得出的結(jié)論現(xiàn)在無法復(fù)現(xiàn)了,因?yàn)檠芯咳藛T在緊張的數(shù)據(jù)分析階段,會(huì)臨時(shí)增加一些處理,例如:
刪除一些異常值
為糾正交稿前臨時(shí)發(fā)現(xiàn)的問題而采取的折中 (可能包含漏洞和不一致之處)
在論文的不同部分使用了不同版本的分析腳本
甚至可能存在各種錯(cuò)誤,例如把一個(gè)已經(jīng)四舍五入的數(shù)字重新四舍五入
作者建議:
為了避免數(shù)據(jù)分析無法復(fù)現(xiàn),同時(shí)便于在適當(dāng)環(huán)節(jié)修改數(shù)據(jù)分析方法或引入新的因素,需要采用一個(gè)系統(tǒng)的、結(jié)構(gòu)化的、可復(fù)現(xiàn)的分析方法,以保證數(shù)據(jù)分析鏈條可“審計(jì)-跟蹤”。具體建議如下:
制作從原始數(shù)據(jù)開始,最終導(dǎo)致衍生的結(jié)果和圖譜(例如,圖表1展示了一個(gè)粗淺的案例);
版本控制,詳細(xì)記錄特定結(jié)果生成的狀態(tài)、條件,有助于回退狀態(tài);
使用單一的主腳本,整合所有處理過程,并保存所有中間的、臨時(shí)的、簡(jiǎn)化的數(shù)據(jù)格式及當(dāng)時(shí)的處理?xiàng)l件;
維護(hù)一個(gè)筆記本,記錄數(shù)據(jù)處理過程;
上述方法要相互結(jié)合使用,必要時(shí)互相印證
圖表1:數(shù)據(jù)處理流程圖[5]
04【如何將數(shù)據(jù)集開源】
公開數(shù)據(jù)集可以作為一些分析工作的數(shù)據(jù)支撐,或用于證實(shí)其他研究者的分析工作,因此鼓勵(lì)研究者將數(shù)據(jù)集開源。但是,數(shù)據(jù)集公開要考慮很多問題,包括但不限于以下幾個(gè)方面:
1. 需要包含各類元數(shù)據(jù)信息?
例如數(shù)據(jù)集本身、數(shù)據(jù)采集的精度和準(zhǔn)確度、關(guān)于數(shù)據(jù)的解釋說明(是否記錄丟包信息、數(shù)據(jù)采集時(shí)的帶寬狀態(tài)、是否已對(duì)數(shù)據(jù)進(jìn)行排序)、測(cè)量時(shí)的輔助信息(如主機(jī)名-IP映射,路由信息等,這些會(huì)隨時(shí)間變化,若不記錄很難復(fù)現(xiàn))等。必要時(shí)可附上應(yīng)用于數(shù)據(jù)的分析工具和腳本,具體可參考[1]。
2. 建議定期重復(fù)測(cè)量工作
長期的測(cè)量數(shù)據(jù)很寶貴,不必每次都得出新結(jié)論,但可以對(duì)結(jié)果進(jìn)行一致性檢驗(yàn)、檢查結(jié)果準(zhǔn)確性,或分析變化趨勢(shì)。
3. 獲得授權(quán)或知情同意?
例如:
隱私、安全和商業(yè)敏感性等方面的原因可能影響數(shù)據(jù)集的公開
倫理道德性是測(cè)量工作需要重點(diǎn)考慮的問題(具體參考[2])
使用匿名化技術(shù),例如刪除數(shù)據(jù)包內(nèi)容、重寫IP或headers信息、刪除其他各類敏感信息。關(guān)于安全的匿名化問題可進(jìn)一步參考[3]中的討論。
請(qǐng)求削減數(shù)據(jù)(部分請(qǐng)求數(shù)據(jù)),即可以將數(shù)據(jù)分析程序發(fā)給數(shù)據(jù)提供方,請(qǐng)求其協(xié)助分析結(jié)果,而不要求其公開數(shù)據(jù)。這要求分析人員能夠開發(fā)出可移植的分析軟件和明確的分析步驟,能夠促進(jìn)分析技術(shù)的共享。但局限性在于:數(shù)據(jù)發(fā)布者可能未必愿意持續(xù)合作(除非他們覺得有意義);且數(shù)據(jù)采集可能是一次性的(有生命周期限制),而維護(hù)數(shù)據(jù)的過程是長期持續(xù)的。
更多關(guān)于如何合理使用公開數(shù)據(jù)集方面的問題,可以參考[4]。
05【總結(jié)】
開展有效且準(zhǔn)確的測(cè)量工作,建議采取以下策略:
收集全面的元數(shù)據(jù)信息;
校驗(yàn)并深入分析異常值,檢查實(shí)驗(yàn)自洽性,多次測(cè)量實(shí)驗(yàn)相互對(duì)比;
構(gòu)建系統(tǒng)性的分析框架,確保實(shí)驗(yàn)結(jié)果可復(fù)現(xiàn);
分析大數(shù)據(jù)前,先在子集中驗(yàn)證,以及觀察不同子集之間的差異;
開展長期、大規(guī)模測(cè)量實(shí)驗(yàn)時(shí),要周期性、自動(dòng)化地檢驗(yàn)結(jié)果,避免中間發(fā)生中斷,確保meta-data充分保留;
將數(shù)據(jù)分析程序發(fā)給數(shù)據(jù)收集者,保護(hù)敏感信息的同時(shí),可以開放共享分析方法、程序。
推薦的工具或方法:
數(shù)據(jù)管理:使用數(shù)據(jù)庫、實(shí)現(xiàn)版本控制
分析過程腳本化;大型的分析流程可能需要保存中間臨時(shí)結(jié)果
差異分析工具(可視化、差分測(cè)試組件)
通過實(shí)驗(yàn)筆記本記錄測(cè)量和分析過程的全部細(xì)節(jié)
鼓勵(lì)公開測(cè)試工具
鼓勵(lì)公開數(shù)據(jù)集
作者建議大家謹(jǐn)慎對(duì)待測(cè)量和分析過程中的細(xì)節(jié),可能需要補(bǔ)充很多簡(jiǎn)單、重復(fù)、冗余的工作,但這些是有意義的。這個(gè)過程可以讓研究人員深入思考測(cè)量工作背后的意義,從而獲得更深刻的見解。隨著時(shí)間的推移,仔細(xì)檢查這些過程可以幫助實(shí)驗(yàn)人員建立充分的信心(特別是對(duì)學(xué)生而言)。此外,數(shù)據(jù)校驗(yàn)過程中可能提供了偶然性的機(jī)會(huì),例如會(huì)有新的發(fā)現(xiàn)。最后,各種錯(cuò)誤累加起來可能導(dǎo)致結(jié)果不準(zhǔn)確,所以嚴(yán)格按規(guī)范的步驟執(zhí)行有助于研究者接近事實(shí)與真相。
原文鏈接
https://conferences.sigcomm.org/imc/2004/papers/p263-paxson.pdf
參考文獻(xiàn)
[1] DANE Study - Measurement artifacts. https://dane-study.github.io/security2022/measurement/
[2] Y. Zhang, M. Liu, M. Zhang, C. Lu and H. Duan, "Ethics in Security Research: Visions, Reality, and Paths Forward," EuroS&PW, 2022, doi: 10.1109/EuroSPW55150.2022.00064.
[3] Ruoming Pang and Vern Paxson. A high-level programming environment for packet trace anonymization and transformation. SIGCOMM, 2003. https://doi.org/10.1145/863955.863994
[4] Mark Alllman and Vern Paxson. Issues and etiquette concerning use of shared measurement data. IMC 2007. https://doi.org/10.1145/1298306.1298327
[5] 清華大學(xué)網(wǎng)絡(luò)研究院博士后陸超逸供圖
[6] Y. Cao, Z. Qian, Z. Wang, T. Dao, S. V. Krishnamurthy and L. M. Marvel, "Off-Path TCP Exploits of the Challenge ACK Global Rate Limit," TON, 2018, doi: 10.1109/TNET.2018.2797081.
張明明,編輯&審校 | 陸超逸、劉保君???????
關(guān)鍵詞:







