1.備忘錄狀態
本備忘錄給互聯網社會提供信息。它沒有明確任何種類的互聯網標準。不限制對本備忘
錄的分發和散布。
2. 版權通告
Copyright?TheInternetSociety(1998).AllRightsReserved.
3.介紹
本備忘錄的目的是給由互聯網工程任務組(IETF)的ip性能度量參數工作組努力開
發的特定度量參數定義一個通用的框架,這項工作由操作領域的基準測試方法學工作組
(BMWG)開始做的,現在由傳輸領域的IP性能度量參數工作組接手。
我們從展示對我們所采取的度量參數定的幾個準則開始。設計這些準則是為了提升
IPPM的成就,這個成就將使互聯網用戶和互聯網服務提供者對通過互聯網的端到端路
徑和包含這些路徑一部分的特定的“IP云(IPclouds)”的性能及可靠性獲得一個最大化
的普遍、準確的理解。
然后,我們定義了幾個互聯網的詞匯,這些詞匯使我們能清楚的講敘互聯網組件:
如路由器、路徑(paths)、和云(clouds)。
我們還定義了“度量參數(metrics)”和“測試方法學”的基本概念,以講清楚測試
時的問題。給出這些概念后,我們繼續討論測量不確定性、錯誤、開發一個解決方案、
某些精微的觀念與被互聯網工程學科許多方面所公認的分析框架的關系等重要的問題。
然后,我們介紹依據經驗定義的度量參數的概念,并以對度量參數能怎樣穩定的一般討
論作為這部分的結束。
本文的其它部分涉及與定義合理的度量參數和方法學相關的多種問題:怎樣處理不
完善的時鐘;與“主機時間(hosttime)”截然不同的“線時(wiretime)的概念;怎樣
將個體的度量集聚集為樣本且從這些樣本中的到合理的統計表;為什么推薦要避免用概
率論性的術語(如一個分組被丟棄的概率)來考慮互聯網的屬性,因為這些術語常對網
絡的行為包含了含蓄的假定;根據普通類型的分組來定義度量參數的有效性;傾向與采
用IP地址而不是DNS主機名的好處;和“標準構成”分組的概念。附錄討論了用于驗
證一組值是否符合一個給定的統計分布的Anderson-Darling測試算法,還給出了實現這
一算法的C代碼。
在本備忘錄的一些部分,我們將會用大括號來表明注釋文字{注釋:……}我們強調
注釋就只是注釋,而不是這個框架文檔自身的一部分,也不是對特定度量參數的建議。
在一些場合,注釋會討論測量標準可能預想到的一些屬性,但讀者應該假定任何這樣的
討論目的只是使這個框架文檔中的要點清楚明白地顯示出來,而沒有建議任何明確的度
量參數。
4. IP性能度量參數的準則
IPPM努力的整個目標是達到一個讓互聯網傳輸服務的用戶和提供者對他們所使用/
提供的互聯網組件“云”的性能和可靠性獲得一個準確的共同的理解的形勢。
為達到這個目的,必須為穿過互聯網的路徑開發性能和可靠性的度量參數。在幾次
IETF的會議中為這些度量參數明確了制定準則:
度量參數必須具體,定義明確。
一個度量參數的測量方法應該有可重復性:假如在同樣的條件下使用測量方法多次,相
同的測量應該得到相同的測量結果。
度量參數必須對采用相同的技術實現的IP云不表現出偏見(bias)。
度量參數必須對采用不同的技術實現的IP云能夠明白且清楚的表現出偏見。
度量參數必須對用戶和服務提供者理解他們所經驗或提供的性能有用。
度量參數必須避免引起人為的性能目標。
5. 路徑和云的術語
下面列出了定義的在開發路徑度量參數中需要有準確性的術語。我們從“主機
(host)”,“路由器(router)”,和“鏈路(link)”等低級的概念開始,然后定義“路徑(path)”,
“IP云(IPcloud)”,和答應我們將一條路徑分成相關的塊的“交換鏈路(exchange)”等
概念。
主機:能使用互聯網協議來通信的計算機;包括“路由器”。
鏈路:在兩個(或多個)主機之間的單個的鏈路層連接;包括租用線路,以太網,
幀中繼云,等。
路由器:在主機之間通過轉發IP分組來便利網絡層通信的主機。
路徑:有<h0,l1,h1,...,ln,hn>形式的序列,這里n>=0,每個hi是一個主機,每個
li是在hi-1和hi之間的一條鏈路,h1...hn-1的每一個都是一個路由器。一個<li,hi>對被
命名為一“跳(hop)”。在一個適當的操作配置環境中,在路徑中的鏈路和路由器便利了
從h0到hn分組的網絡層通信。注重路徑是一個單向的概念。
子路徑
給定一條路徑,子路徑是給定路徑的任何本身也是一條路徑的子序列。(因此,子路
徑的開始和結束元素是主機。)
云:一個頂點是路由器且邊是連接路由器對的鏈路的無向圖(可能有循環)。形式上,
以太網,幀中繼云,和其它連接多于兩個路由器而被模擬為圖邊的完全連接網格
(fully-connectedmeshes)的鏈路。注重連接到云意思是通過一條鏈路連接到云的一個路
由器,這條鏈路本身不是云的一部分。
交換鏈路(exchange):鏈路的一種非凡情況,交換鏈路直接地連接一個主機到云和
/或一個云到另一個云。
云子路徑:一給定路徑的子路徑,它的所有主機是一給定云的路由器。
分類路徑:有<h0,e1,C1,...,en,hn>形式的序列,這里n>=0,h0和hn是主機,
每個e1...en是一條交換鏈路,每個C1...Cn-1是一條云子路徑。
6. 基本概念
6.1.度量參數
在實際運行的互聯網中,有幾個我們想知道其值的與互聯網性能和可靠性相關的數量。
當這樣一個數量被仔細的明確時,我們給這個數量定義了一個度量參數。我們預計對于每個
度量參數(或每個緊密相關的度量參數組)都會有單獨的RFCs。
在有些場合,可能沒有明顯的方法來有效地測量度量參數;這是答應的,甚至我們認為
有時很有用。然而,要求度量參數規范說明必須盡可能地說清楚規定的是什么數量。因此,
測量實踐的困難有時可以接受,但是不答應意義上的含糊不清。
每個度量參數都根據測量的標準單位來定義。使用國際公制系統,且注重一下幾點:
當一個單位是簡單的以米(對距離/長度)或秒(對時間)來表達時,基于合適的單位的
千進制的適當的單位是可接受的。因此,答應距離用千米表達,時間用毫秒或微秒來表達,
但不答應用厘米。(因為這個單位不是千進制的。)
當一個單位是用單位的組合來表達時,基于合適的單位的千進制的適當的單位是可接受
的,但是所有的千進制單位必須是在前面的。因此,答應用千米每秒(km/s),但不答應米每
毫秒。
信息的單位是位。
在位或包含位的組合單位中用到千進制時,這些千進制使用其在公制系統中的含義(即
是指十進制的1000),而不是在計算機存儲中慣用的含義(即十進制的1024)。在任何定義而
使用的單位包含了位的RFC中,都將遵循這個約定并重復這點以確保澄清用戶的觀念。
當給出時間時,要應用UTC(世界時間代碼)來表達。
注重這些點是用于度量參數的規范中而不是,例如,用于分組的格式,分組格式或許會
優先采用八位組或以八位組作為位的補充。
最后,我們提醒一些度量參數也許是純粹根據其它的度量參數來定義的;這種度量參數
被稱為“生成度量參數”。
6.2.測量方法學
對于一給定的定義明確的度量參數集合,可能存在許多截然不同的測量方法。一個
局部的列表包括:
采用注入測試流量的方法來直接測量一個性能度量參數。例如:對給定時間,給定路由,
給定長度的IP分組的往返延遲的測量。
從低級別層的測量中來猜測一個度量參數。如:給出傳播延遲和延一路徑的每一步的帶
寬的準確測量,猜測給定長度的IP分組在路徑上的全部延遲。
從一個更聚合的測量中估計其組成之一的度量參數。如:給出一給定一跳路徑對不同長
度IP分組延遲的準確測量,估計這個一跳路徑上的鏈路的傳播延遲。
從一組相關的其它時間的度量值來估計在某時的測量值。如:給出過去時間的流量容量
的準確測量和過去時間及現在準確測量的延遲,以及給定流量動態的模型,估計在當前時間
將看到的流量容量。
這個列表絕不是毫無遺漏的,它的目的是指出測量技術多樣性。
當一個度量參數明確后,一個給定的測量方法必須提出并討論。然而,這個測量方法并
不是規范說明中的正式部分。
一個度量參數的測量方法應該有可重復性:假如在相同的條件下多次使用該測量方法,
得到的結果應當是一致的。
從前一段提到的“相同條件”后退一點點,我們可以用更準確的詞——“連貫性”來描
敘給定測量方法的屬性:一個度量參數的測量方法顯示出連貫性,假如條件的變化很小,得
到的測量結果的變化也很小。稍微精密一點說,對每一個正的ε,存在一個正的δ,因此假如
兩組條件在彼此的δ之內,那么測量結果將在彼此的ε之內。在這里,這應被視為是關于一
種健壯性的啟發式的直覺而不是精確的觀念。
至少有一種測量方法顯示出連貫性的度量參數就說它自身有連貫性。
注重,有些度量參數,如沿路徑的跳數,其值是整數所以不能完全顯示出上述意義的連
貫性。
此外要注重,實踐中,想知道(或能數量化)與特定時間測量相關的條件可能是不實際
的。例如:因為高速廣域網中給定路由器的即時負載(被服務的分組)在相對簡短的時期內
能相差很大地變化且對一個外部的觀察者來說確定其數量會非常困難,特定度量參數的不同
的統計量可能更有可重復性,或者較好的顯示連貫性。這時,當度量參數明確說明了時那些
特定的統計量也應該明確說明。
最后,有些測量行為不修改,或只是稍微地修改測量方法試圖測量的性能參數的值;在
這個意義下,這些方法可能是“保守”的。{注釋:例如,在適度負載的高速廣域網內,使用
幾個小的“ping”分組來測量延時的測量方法似乎不會影響(影響很大)被其他人觀測到的
網絡的延遲屬性。相應的,使用大的流量來測量流量容量的方法似乎會失敗。}
6.3.測量,不確定性,錯誤
即使是給表現最為明顯的度量參數使用的最好的測量方法也會產生錯誤。然而,那
些開發出這些測量方法的人應該努力爭取:
使他們的不確定性/錯誤最小,
理解并證實不確定性/錯誤的來源,還要
確定不確定性/錯誤的數量。
例如,在開發測量延遲的方法是,理解你的系統時鐘的任何錯誤是怎樣將錯誤引入
你的延遲測量中來的,并盡你所能的將這種影響數值化。在一些情況下,這會導致一個
必要條件:假如系統時鐘要用于做某種測量,它的質量至少要高于某個標準。
作為第二個例子,考慮計算機在做測量時由于測量的額外開銷引起的計時錯誤,與
互聯網被測組件的延遲相反。前者是一個測量錯誤,而后者反映了互聯網的度量參數。
注重,一種有助于避免這種額外開銷的技術是使用分組過濾器/嗅探器,在一臺分離的準
確地記錄分組和時間戳的計算機上運行。(見下面“線時”的討論。)然后記錄的結果可
用于分析以評價測試流量,使測量主機的延遲影響最小,或者至少使這些延遲能得到說
明。我們注重到,即使過濾器/嗅探器在同一臺機器上運行,這種技術也證實是有益的,
因為這種測量通常提供的是“內核級”時間戳,而不是精確度差點的“應用級”時間戳。
最后,我們注重到原始度量參數(derivedmetrics,如上定義)或有時間或空間合
成的度量參數(定義如下)為測量的不確定性的分析提供了特定的場合。即不確定性怎
樣因為原始的或合成的參數而傳播(概念上的)。
7.度量參數和分析框架
在互聯網從二十世紀六十年代早期的分組交換研究中發展時,互聯網工程界開發了一個
概念的普遍的分析框架。這個分析框架,或A-frame,為協議的設計者和實現者、與測量有
關的人、用仿真和分析工具研究計算機網絡性能的人所用,對我們的工作有極大的好處。這
里一個主要的目標是產生在分析和實踐的設置里都一致的網絡特征,因為這會使非經驗式的
網絡研究能更好的與實際網絡行為一致,并更好的用來促進我們對實際網絡行為的理解這兩
個機會最大化。
因此,無論何時,只要可能我們就應發展和借用(leverageoff)A-frame。這樣,無論何
時只要一個被明確說明的度量參數我們理解是與A-frame內的概念緊密相關的,我們就要試
著用A-frame的術語來明確說明這個度量參數。在這樣的規范里,我們將通過恰當的定義度
量參數所需的概念來發展A-frame,然后通過根據這些概念定義度量參數來借用A-frame。
這樣的參數將被稱為“分析確定度量參數(analyticallyspecifiedmetric)”,或者,更簡單
一點,分析度量參數(analyticalmetric)。
{注釋:這樣的分析度量參數的例子有:
鏈路傳播時間:
以秒計的,一個位從一個互聯網主機的輸出端口通過單一的鏈路傳輸到另一互聯網主機
所需的時間。
分組長k時的鏈路帶寬:
.以位每秒(bps)計的,只計數分組長k字節的IP分組時的容量。
路由:如第五節定義的,給定時間從A到B的路徑。
路由跳數:路由路徑的“n”值。}
注重,我們并沒有給出一個什么A-frame概念會在規范里顯現的優先的表格,但是我們
鼓勵他們的使用并要求仔細地明確說明他們;以至在我們的度量參數集開發時明確說明的
A-frame概念集技術上也會彼此一致,也與在一般互聯網界對這些概念的普遍理解一致。
這些A-frame概念將試著以這樣一種方法從實際互聯網組件中抽象出來:
組件的基本功能保留,
組件與我們想創建的度量參數有關的屬性保留,
這些組件屬性的子集被潛在地定義為分析度量參數,且
實際互聯網組件與我們想創建的度量參數不相關的那些屬性被丟棄。
例如,當在分組轉發的背景下考慮路由器時,我們可以把路由器抽象成這樣一個組件模
型:它從輸入鏈路接受分組,將它們在長度有限的先進先出(FIFO)的分組隊列中排隊,當
分組隊列滿了是采用尾部丟棄,將分組轉發到輸出鏈路。輸入和輸出鏈路的傳輸速度(位/
秒),路由器的延遲(秒),和分組隊列的最大長度(位)是相關的分析度量參數。
在某些情況里,這樣的涉及路由器的分析度量參數會與互聯網路徑性能的特定度量參數
非常緊密地相關。例如,一個顯而易見的包括路由器延遲(L),分組長度(P,以位計),和
輸出鏈路的傳輸速度(B)的公式(L+P/B)可能與因為沿路徑插入特定路由器引起的分組延
遲的增長緊密接近。
然而,我們強調,適當的定義恰當的A-frame概念及它們的分析度量參數要以不太明顯
的方式支持建立更一般的參數的努力。
{注釋:例如,當考慮路徑的流量容量時,能夠將沿著路徑的路由器轉化為上述的分組轉
發器是有實際價值的。估計路徑流量容量的技術可能斷然地以不顯然的方式將最大分組隊列
長度做為一個參數。例如,隨著最大分組隊列長度增長,盡管輸入鏈路的流量有起伏,路由
器持續地轉發流量至輸出鏈路的能力也會增加。然而,估計這個增加量還是一個在研究的問
題。}
注重,在我們明確說明A-frame概念和分析度量參數時,我們將不可避免的作出簡化的
假定。這些概念的要害任務是抽象出互聯網組件與給定度量參數相關的屬性。為避免作出使
模型和度量努力偏向某個設計的假定,需要判定。
{注釋:例如,路由器可能不使用尾部丟棄(tail-drop),即使對模型分析來說尾部丟棄可
能更輕易。}
最后,注重A-frame不同的元素可較好地作出不同的簡化假設。例如,促進路徑延遲定
義而用的路由器抽象可能將路由器的分組隊列看成一個簡單的先進先出隊列,但是促進資源
可預留分組(RSVP-enabledpacket)處理定義而用的路由器抽象可能將路由器的分組隊列看
成一個相反的假定——支持躍進延遲(supportingboundeddelay)。這并不是說我們同時作了
相矛盾的假定,而是出于不同的目的,我們工作的兩個不同部分可以兩種有分歧的方式來改
進更簡單的基本概念。
{注釋:用更數學化的話說,A-frame作為一個整體不需要一致,但用于定義特定度量參
數的A-frame特定元素集合必須一致。}
8.由經驗明確說明的度量參數
通常因為A-frame缺少處理它們的細節和能力,存在不完全符合A-frame的有用的
性能和可靠性度量參數。例如,“沿路徑使用遵從RFC2001-TCP可得的最大流量容量”
會比較好測量,但是我們沒有足夠豐富的分析框架來答應我們將這個流量容量當一個分
析度量參數對待。
這些概念仍可通過描敘一個測量它們的參考方法來很好的說明。
這樣的度量參數可被稱為“經驗說明度量參數”,或者更簡單,經驗度量參數。
這樣的經驗度量參數應具有三個屬性:
對每一個參數,我們應有根據互聯網組件而來的清楚地定義。
至少應該有一種有效的方法來測量它們。
為了可能的擴展,我們應對這種參數有根據A-frame的理解(這種理解必然是不完全
的),以此我們可以用我們的測量來思考A-frame組件和A-frame組件集合的性能和可靠性。
9.合成的兩種形式
9.1.度量參數的空間合成
某些場合下,以一種顯示出空間合成的方式來定義度量參數可能是現實的也是有用
的。
使用空間合成,我們意指一些路徑度量參數的特征,這里應用于一(完整的)路徑
的度量參數也能用于定義不同的子路徑;而且,該參數所用的適當的A-frame概念暗示
了在用于這些不同子路徑的參數之間的有用的關系(包括完整路徑,給定分類路徑的不
同的云子路徑,甚至沿路徑的單個路由器)。空間合成的有效性依靠于:
在應用于相關的A-frame組件時這些關系在分析中的有用性,
在應用于度量參數和測量方法時相應關系的實際使用。
{注釋:例如,考慮沿路徑P,100字節長分組的延遲的一些度量參數,并考慮路徑P的
分類路徑<h0,e1,C1,...,en,hn>。這樣一個度量參數的定義里可能包含了這樣的猜想:通過P
的延遲非常接近通過給定分類路徑交換鏈路(ei)和云(Ci)的相應的度量參數之和。這個定義也
會包含相應關系是怎樣用于對路徑P和對分類路徑的交換鏈路、云的相關的A-frame組件的
注解。}
當一個度量參數的定義包含了通過路徑的參數與通過該路徑的子路徑的參數有關的猜想
時,這個猜想規定了該參數顯示了空間合成性。那么,定義里就應包括:
用于該度量參數的明確的猜想,
在對路徑上該參數的準確測量方面,這個合成在實踐中有用的理由,
在更有效的使用A-frame概念對路徑作出分析方面,這個合成的有用性的理由,
對這個猜想怎樣會不正確的分析。
9.2.正式模型和經驗度量參數的時間合成
某些場合下,,以一種顯示出時間合成的方式來定義度量參數可能是現實的也是有用
的。
使用時間合成,我們意指一些路徑度量參數的特征,這里應用于在給定時間T時路
徑的度量參數也能用于定義不同的時間t0<t1<...<tn<T時的路徑,而且,該參數所用
的適當的A-frame概念暗示了在用于時間t0,...,tn和時間T的參數之間的有用的關系。
空間合成的有效性依靠于:
在應用于相關的A-frame組件時這些關系在分析中的有用性,
在應用于度量參數和測量方法時相應關系的實際使用。
{注釋:例如,考慮時間T內的5分鐘長的時間通過路徑P的預期的流量容量的度
量參數,并假定我們獲得了之前的4個5分鐘長的時間t0,t1,t2,和t3的相應值。這樣
一個度量參數的定義里可能包含了這樣的猜想:在時間T的流量容量能從t0,...,t3的值
的某種推斷中估計出來。這個定義也會包含相應關系是怎樣用于相關的A-frame組件的
注解。
注重:涉及流量容量的任何合成(時間或空間的)似乎很微妙,而且時間合成一般
要比空間合成更微妙,所以讀者應理解下面的例子是有意地考慮不周。}
當一個度量參數的定義包含了在給定時間T通過路徑的參數與在一組其它時間通過
該路徑的參數相關的假定時,這個猜想規定了該參數顯示了時間合成性。那么,定義里
就應包括:
用于該度量參數的明確的猜想,
在對路徑上該參數的準確測量方面,這個合成在實踐中有用的理由,
在更有效的使用A-frame概念對路徑作出分析方面,這個合成的有用性的理由,
10.與時間有關的問題
10.1.時鐘問題
對許多度量參數來說,時間的測量是一個中心問題。因為這點,在設計測量某參數
的方法時弄清由不完善的系統時鐘引起的不同類型錯誤和不確定性至關緊要。這一部分
里,我們定義討論時鐘特性的術語并簡單涉及任何合理的方法都應闡明的與測試相關的
問題。
網絡時間協議(NTP;RFC1305)定義了討論時鐘特性的術語,在適當時我們也是采用
它。NTP的主要目的是在相當長時間范圍內提供準確的記時,比如幾天內精確到分鐘;
然而,對測量目的而言,如在測量的開始到結束,或跨越收集測量樣本過程的一段時間,
短期內記時的準確性經常是更重要的。目標上的不同有時導致不同術語的定義,正如下
所討論的。
一開始,我們定義一個在特定瞬間的時鐘“偏移”為系統時鐘報告的時間與UTC
定義的“真實”時間的差。假如時鐘報告時間Tc,真實時間是Tt,那么時鐘偏移就是
Tc-Tt.
假如在特定瞬間的時鐘偏移是零我們說時鐘是“精確”的,更一般的,時鐘“精確
度”就是偏移的絕對值有多靠近零。對NTP而言,精確度還包括時鐘頻率的概念;對我
們的目的而言,我們把這個概念包含在時鐘的“脈沖相位差(skew)”中,因為我們是根
據單一時刻而不是一個時間段來定義精確度的。
在特定瞬間時鐘的“脈沖相位差”是時鐘和真實時間之間頻率的不同(它關于真實
時間的偏移的第一個派生)。
正如RFC1305中所敘,真實時鐘顯示了一些脈沖相位差的變化。即,時鐘關于真實
時間的偏移的第二個派生通常是非零的。為與RFC1305保持一致,我們定義這個數量為
時鐘“漂移”
時鐘“分辨率(resolution)”是時鐘時間更新的最小單位。它給出了時鐘不確定性的
低級的邊界。(注重時鐘可能有非常高的分辨率卻又不精確)分辨率是以秒來定義的。然
而,分辨率是相對于時鐘報告的時間而言而不是真實時間,所以例如說時鐘10毫秒的分
辨率只是意味著它的時間概念按0.01秒增長,而不是時間更新時的真實數值。
{注釋:系統在與時鐘接口的應用程序時鐘沒有提前時怎樣報告順序呼叫的時間這方
面是不同的。一些系統就是簡單的返回相同的沒變化的給前面呼叫的時間。其它一些系
統可能給報告的時間增加一個小的增量,以保持單調增加的時間戳。對于后一個系統,
在定義時鐘分辨率時我們不考慮這個小增量。實際上,它是評估時鐘分辨率的一個障礙,
因為一個很自然的評估時鐘分辨率的方法是重復的問詢系統時鐘來確定報告的時間里最
小的非零的不同。
我們期望時鐘分辨率很少變化(例如,因為硬件的更新)。
有許多有趣的度量參數,它們的一些自然的測量方法涉及比較兩個不同的時鐘報告
的時間。一個例子就是單向分組延遲[AK97]。這里,分組通過網絡所需要的時間經過比
較在分組走過路徑一端的時鐘報告的時間(相應的是分組第一次進入網絡的時間)和在
路徑另一端的時鐘報告的時間(相應的是分組結束通過網絡的時間)而得出。
因此我們也對描敘兩個時鐘C1和C2怎樣比較的術語感愛好。為了這個目的,我
們指出上面“真實時間”的概念被系統時鐘C1所報告的時間所代替。例如,時鐘C2在
一特定瞬間相對于C1的偏移是Tc2-Tc1,即由C2和C1所報告時間的即時差別。為了
消除兩個時鐘之間比較時術語的使用和與真實時間比較時術語的使用的歧義,我們在前
一種情況使用“相對”這個詞語。所以我們在這一段開始所定義的偏移是C2和C1之間
的“相對偏移”。
在比較時鐘時,“分辨率”與上一段術語的類似術語不是“相對分辨率”,實際上而
是“聯合分辨率”,亦即C1和C2分辨率之和。聯合分辨率暗示了對通過將一個時鐘產
生的時間戳減去另一個時鐘產生的時間戳而計算得的任何時間間隔的精確度的保守的較
低的限制。
假如兩個時鐘關于彼此是“準確的”(它們的相對偏移是零),我們就說這個時鐘對
是“同步”的。注重時鐘可能高度同步卻在它們報告真實時間方面很不精確。這一點很
重要,因為對許多互聯網測量來說,兩個時鐘之間的同步遠比時鐘的準確性重要。這對
脈沖相位差來說也有點正確:只要絕對脈沖相位差不是太大,那么最小的相對脈沖相位
差更重要,因為它引起通過比較由兩個時鐘產生的時間戳而測量到的分組傳輸時間的系
統的趨勢。
這些區別的說明是因為對互聯網測量而言,往往最重要的是那個通過比較兩個時鐘
輸出而計算的時間的差別。計算這些差別的過程清除了任何由于時鐘對真實時間不準確
而產生的錯誤;但是,這些差別本身要準確地反映真實時間的差別這一點至關重要,
測量方法會經常從保證兩個時鐘是同步的而且有最小的脈沖相位差和漂移這一步驟
開始。
{注釋:一個保證這些條件(和時鐘準確性)的有效的方法是使用從外部資源獲得時
間觀念的時鐘,而不只是主機計算機的時鐘(這后者往往會面臨很大的錯誤)。假如時鐘
直接獲得時間,例如通過與GPS(全球定位系統)單位有即時通道,就更好。}
假如時鐘使用如NTP的網絡時間同步協議來間接獲得它們的時間,就出現了兩個重
要的關注之點:
第一,NTP的準確性部分依靠于為NTP對等體所用的互聯網路徑的屬性(非凡是
延遲屬性),并且這些屬性可能恰恰就是我們希望測量的屬性,所以使用NTP來校準這
樣的測量可能是謬誤的。
第二,NTP的焦點在時鐘的準確性,它可能以短期的時鐘脈沖相位差和漂移為代價
來達到這點。例如,當一個主機的時鐘是間接地與時鐘源同步時,假如同步間隔很少出
現,那么主機有時候會面臨這樣的問題:怎樣以它剛剛知道的相當不同的、更準確的時
間Ta來調校它當前的不正確的時間Ti。達到這一目的的兩種方法是或者立即將當前時
間設置為Ta,或者調整當地時鐘的更新頻率(也即它的脈沖相位差)以至在未來某點當
地時間Ti會與更準確的時間Ta一致。前一個機制導致了不連續性而且也違反了時間戳
是單調增加的普遍假設。假如主機的時鐘被設置為向后“合拍”,有時這很輕易被探測到。
假如時鐘被設置為向前“合拍”,這會很難探測到。第二種機制引起的脈沖相位差在計算
時間的差別時,如上所討論的,能導致相當的不準確。
為了闡明為什么脈沖相位差是至關重要的,考慮以一分鐘為間隔測得的兩互聯網主
機間的單向延遲樣本。對一橫穿網絡的路徑,主機間的真實傳輸延遲似乎應該是50毫秒
的價數。假如兩個時鐘間的脈沖相位差是0.01%,亦即10000中的1份,那么在觀測10
分鐘之后引入測量中的錯誤是60毫秒。除非被糾正了,這個錯誤足夠徹底地抹殺傳輸延
遲測量中的任何準確性。最后,我們指出估計不同步的網絡時鐘之間的脈沖相位差錯誤
是個開放的研究領域(探測和補償這類錯誤的討論見[Pa97])。這個缺點使使用可靠的,
諸如GPS之類的獨立時鐘源變得非凡合意。
10.2.“線時(WireTime)”的概念
互聯網測量時常是復雜的,因為要使用互聯網主機自己來完成測量。這些主機能引
起延遲,瓶頸,和相似的由硬件或操作系統的影響且與我們想要測量的網絡行為無關的
事件。在網絡事件的時間戳出現在應用層時,這個問題非凡尖銳。
為了提供討論這些影響的一般的方法,我們引入“線時(wiretime)”的兩個概念。
這些概念只是根據在特定位置觀測互聯網路徑L的主機H來定義的:
對于一給定分組P,P在L上到H的“線路達到時間(wirearrivaltime)”是P的任
何位在H在L上的觀察位置出現的第一時間。
對于一給定分組P,P在L上到H的“線路退出時間(wireexittime)”是P的所
有位在H在L上的觀察位置出現的第一時間
注重,定義的本質是我們在鏈路哪里觀察的觀念。這個區別很重要,因為對于大延
遲鏈路,我們可能獲得非常不同的時間,恰恰依靠我們在哪里觀察鏈路。我們可以答應
觀察位置是沿鏈路的任意位置;然而,我們根據互聯網主機來定義是因為我們預期在實
踐中,對于IPPM測量參數,所有這樣的記時都應被限制由互聯網主機來完成,而不是
可能可以在主機不能觀察的位置監視鏈路的非凡的硬件設備。這個定義也考慮到了由多
個物理信道所組成的鏈路的問題。因為這些多個的信道在IP層不可見,它們不能按照上
面定義個別地觀察。
有可能,盡管希望不是普遍的,一個分組P因為轉發循環而可能多次通過特定鏈路
P,多次循環的旅程甚至可能相互重疊,由鏈路技術決定。無論何時出現這種現象,我
們定義一個與每個H在鏈路上的位置見到P的時刻關聯的單獨的線時。這個定義是值得
的,因為它暗示了分組通過互聯網內一點的唯一的時間是天生地需要小心對待的觀念。
歷史上,線時這個術語被用來寬松地表示分組在鏈路上出現的時間,沒有明確說明
這是指第一個位,最后一位,或者其它的考慮。這個非正式的定義普遍地已經非常有用,
因為它經常用來區分因為網絡而不是終端主機引起的分組的傳播延遲開始和終止。
在適當的時候,度量參數應根據線時而不是主機終點時間來定義,因此度量參數的
定義從由網絡引起的延遲里突出了由主機引起的單獨的延遲。
我們指出涉及到IP分段來處理線時的時候一個潛在的困難。可能會有這種情況,由
于分段,特定分組只有一部分通過H的位置。這樣的分片它本身是合法的分組并且有與
它相關聯的定義明確的線時;但它們集合而成的IP分組可能沒有。
我們還指出,根據我們的知識,對于互聯網流量這些概念先前還沒有以確切的術語
來定義。因此,我們可以憑經驗知道在將來這些定義需要一些修改。
{注釋:有時測量線時是困難的,一種技術是使用分組篩選器(packetfilter)來監視
鏈路上的流量。
這些篩選器的體系結構經常試圖將每一個分組與盡可能靠近線時的一個時間戳關聯
起來。然而我們指出一個普遍的錯誤來源是在終端主機之一上運行分組篩選器。這種情
況下,可觀察到一些分組篩選器接受了一些與分組被調度注入網絡時間相應的分組時間
戳,而不是分組實際被發送到網絡的時間(線時)。這兩個時間會有著實質的不同。處理
這一問題的技術是在單獨的被動地監視給定鏈路的主機上運行分組篩選器。然而,對一
些鏈路技術而言這可能是有問題的。對分組篩選器能引起的錯誤見[Pa97]。最后,我們
指出分組篩選器經常會只捕捉分段IP分組的第一個分片,因為篩選是根據IP內的域和
傳輸協議報頭的。由于我們通常希望我們的測量方法避免產生了分段流量的復雜性,使
當分組篩選器探知有分段時一個處理它們的出現的策略是:標記測量流量具有反常的形
式并放棄對分組記時的進一步分析。}
11.個體,樣本,與統計
根據經驗,我們發現在三個截然不同然而又相關的概念之間引入區別很有用:
用“個體”度量參數,我們是指在某種意義上度量參數是原子的。例如,從一個主
機到另一個主機的“桶吞吐量容量(bulkthroughputcapacity)”的單個例子可以被定義為
一個個體度量參數,即使這個例子涉及測量大量互聯網分組的記時。
用“樣本”度量參數,我們是指通過將大量獨特的例子合在一起從給定的個體度量
參數得出的度量參數。例如,從一個主機到另一個主機的單向延遲的樣本度量參數我們
可以定義為一小時長的測量,測量時間間隔服從泊松分布,平均每次測量持續一秒鐘。
用“統計”度量參數,我們是指源于通過計算一些個體度量參數在樣本上定義值的
統計量得出的特定樣本度量參數的度量參數。例如,上面給出的樣本的所有單向延遲的
平均可被定義為一個統計度量參數。
通過一致地使用個體,樣本,統計這些概念,我們可以重用怎樣定義不同的度量參
數的樣本和統計量的教訓。這三個概念之間的正交性因而使得我們所有的工作更有效更
可被業界理解
在這一節的剩余部分,我們將包括我們相信對多種度量參數定義和測量努力很重要
的話題
11.1.收集樣本的方法
收集樣本的主要理由是了解被測的參數呈現出何種變化和一致性。這些變化應該是
關于互聯網不同點或不同測量時間的。在基于樣本估計變化時,人們通常做出了樣本是
“沒有偏見的”假設,意味著收集樣本的測量結果的過程不會使樣本偏斜而以至它不再
準確地反映度量參數的變化和一致性。
一個普遍的收集樣本的方法是在由固定時間數分開的點測量:周期抽樣。因為它的
簡單,周期抽樣非凡吸引人,但它有兩個潛在的問題:
假如被測量的參數本身表現出周期行為,那么存在一個可能性:假如周期碰巧相同
(或者周期直接相同或者一個是另一個的倍數),抽樣會僅僅觀察到周期行為的一部分。
與這個問題有關的是周期抽樣能被輕易地猜測的觀念。假如有網絡組件能臨時被改動的
機制以至抽樣只能看到被改動了的行為,可猜測的抽樣是輕易被控制的。
測量的活動可能影響被測量的東西(如,注入測量流量到網絡中會改變網絡的擁塞
水平),而且重復的周期影響能驅動網絡到同步的狀態(見[FJ94]),極大地放大原本單
獨來說是較小的錯誤。
一個更合理的途徑是基于“隨機附加抽樣”:樣本在獨立地隨機產生的間隔獲得,間
隔有共同的統計分布G(t)[BM92]。這種抽樣方法的質量依靠于分布G(t)。例如,假如
G(t)以概率1產生常值g,那么這個抽樣就退化為周期是g的周期抽樣。
隨機附加抽樣具有顯著的好處:一般來說,它避免了同步效應且產生了被抽樣屬性
的無偏估計。它唯一的顯著缺點是:
它使頻率域(frequency-domain)分析變復雜,因為樣本不是如傅立葉變換
(Fourier-transform)技術所假定的以固定間隔出現;
而且,除非G(t)是指數分布(見下),抽樣仍會保持稍微的可猜測性,如上面所討論
的周期抽樣。
11.1.1. 泊松抽樣
可以證實假如G(t)是參數為λ的指數分布,即G(t)=1-eXP(-λ*t)。那么新樣本的到
達不能被猜測(就是說抽樣是無偏的)。此外,即使抽樣活動影響了網絡的狀態,抽樣也
是漸近無偏的。這種抽樣被稱作“泊松抽樣”。它不會傾向于誘發同步,它能用來準確地
收集周期行為的測量樣本,而且當新的樣本到達時它不會傾向于被猜測控制。
因為這些有價值的屬性,我們通常優先使用泊松抽樣來采集互聯網測量的樣本。
{注釋:然而,我們指出可能有適合使用不同G(t)的環境。如,指數分布是極大的,
所以它的使用有時會在抽樣時間之間產生過大的間隔。我們希望限制這樣的最長的間隔
為一個最大值dT,以加速源于抽樣的估計的收斂。這應通過G(t)=Unif(0,dT)來做,也
就是0到dT的均勻分布。當然,假如一個幾乎長達dT的間隔過去了而沒出現一個樣本,
這種抽樣會變得高度地可猜測.}
在它最純粹的形式,泊松抽樣是這樣實現的:產生獨立的,指數分布的時間間隔;
在每個間隔過去后采集一個測量樣本。能夠說明假如在時間T開始,某個人經過間隔dT
完成泊松抽樣,在這期間正好做了N次測量,那么這些測量將在時間間隔[T,T+dT]內是
均勻分布。因此另一個產生泊松抽樣的方法是選取dT和N,并在間隔[T,T+dT]內均一
地產生N個隨機抽樣時間。這兩個方法是等價的,除非N和dT是外部知道的。這種情
況下,測量時間不能被猜測的屬性被削弱了(其它屬性仍然保持)。N/dT方法有一個優
點:處理N和dT的固定值比處理固定了λ,但經過長度可變的時間間隔做可變數量的
測量簡單。
11.1.2. 幾何抽樣
與泊松抽樣緊密相關的是“幾何抽樣”,它以固定的概率p測量外部事件。如,某個
人可能捕捉了通過鏈路的所有分組卻只將分組記錄在追蹤文件,假如產生的在0到1之
間服從均勻分布的隨機數小于給定的概率p。幾何抽樣有如泊松抽樣的無偏和事前不可
猜測的屬性,所以假如它符合一個特定的互聯網測量任務,采用它也是合理的。更多的
討論見[CPB93]。
11.1.3. 產生帕松抽樣時間間隔
要產生帕松抽樣時間間隔,首先決定個體測量的平均測量間隔時間的參數λ(即,
對于30秒的平均抽樣間隔,我們有λ=1/30,假如時間單位是秒)。然后產生一系列(偽)
指數分布隨機數E1,E2,...,En。第一個測量在時間E1做,下一個在時間E1+E2做,以
次類推。
一個產生(偽)指數分布隨機數的技術是基于能夠產生在0到1之間服從均勻分布
的(偽)隨機數U1,U2,...,Un的能力。許多計算機提供了做到這點的函數庫。給出了
Ui,產生Ei使用公式:Ei=-log(Ui)/λ。這里log(Ui)是Ui的自然對數。{注釋:這個技術
是更一般的以一給定分布產生隨機數的“逆變換”的一個實例。}
實現細節:
對于近似帕松抽樣至少有三種不同的方法,這里我們描敘為方法1到3。方法1是
最輕易實現但有最多的錯誤,方法3是實現最困難的但有最少的錯誤(可能沒有)。
方法1如下進行:
1. 產生E1并等那么久。
2. 完成一個測量。
3. 產生E2并等那么久。
4. 完成一個測量。
5. 產生E3并等那么久。
6. 完成一個測量。
這種方法的問題是“完成一個測量”步驟本身需要時間,所以抽樣不是在時間E1,
E1+E2,等等做出的,而是在時間E1,E1+M1+E2,等等做出的,這里Mi是第i次測量
需要的時間。假如Mi與1/λ比較非常小那么由這個方法引起的可能錯誤同樣也小。當
Mi與1/λ比較不可忽略時,可能的錯誤增大了。
方法2試著通過考慮測量所需的時間(即Mi)并與之相應的調整等待時間間隔來糾
正這個錯誤:
1. 產生E1并等那么久。
2. 完成一個測量,并測量它所費的時間M1
3. 產生E2并等E2-M1長時間。
4. 完成一個測量并測量M2。
只要E{i+1}>=Mi,這個方法工作得很好。但是,假如E{i+1}<Mi那么就不可能
等合適長度的時間了。(注重這種情況相當于需要同時完成兩個測量。)
方法3產生一個測量間隔時間的時間表E1,E1+E2,等等,然后堅持按表進行:
1. 產生時間間隔E1,E2,...,En。
2. 計算測量進行時間T1,T2,...,Tn,其中Ti=E1+...+Ei。
3. 在時間T1,T2,...,Tn安排做一次測量。
由于答應同時的測量,方法3避免了方法1和2的弱點。然而,假如同時進行的測
量彼此干擾,方法3就沒有任何優點還可能被正實比方法1和2還要差。
對于互聯網的現象,不知道這些方法不準確到什么程度是顯著的。假如Mi遠比1/λ
小,那么三種方法里的任何一種都可以采用。假如Mi比1/λ小但差得不多,那么方法2
比方法1要好。假如同時進行的測量彼此不干擾,那么可以采用方法3,盡管比較之下
它的實現相當的困難。
11.2自身一致性
合理的測量方法的一個基本要求是測量盡可能少的使用未經證實的假設。經驗已經
痛苦地表明作出一個(經常是內在的)假設卻實際是錯誤的有多輕易。一個例子是在測
量中將時鐘讀數的同步與高度準確的時鐘源混為一談。很輕易作出假設因此時間是準確
的,但由于軟件故障(bug),時鐘源的掉電,時鐘源和時鐘間通信丟失,時鐘實際上可
能很不準確。
這并不是辯論說在測量時不能做任何假設,而是說在實踐時,應該檢驗假設。做到
這一點的一個有力的方法是檢查自身一致性。這樣的檢查既適用于測量的觀察值又適用
于測量過程本身使用的值。前者一個簡單的例子是在計算往返時間時應檢查它是否為負
值。因為負的時間間隔沒有物理意義,一旦是負值就要立即標記一個錯誤。這種類型的
錯誤應該在事后研究!弄清楚錯誤在哪里至關重要,因為只有堅持不懈地這樣做,我們
才能對測量方法基本的合理性樹立信心。例如有可能因為在測量時時鐘被使它與另一個
時鐘源同步的過程設置后退而得出往返時間為負值。但是也有可能測量程序存取了它的
估計之一的未初始化的內存,并且,盡管非常少見,這會導致假的估計結果。假如同樣
的程序被其他人用來完成同樣的測量,這第二種錯誤更嚴重,因為別人也會遭受錯誤的
結果。此外,只要沒被發現它完全是固定的。
自身一致性的一個更精細的例子來自于收集單向互聯網延遲樣本。假如有這種延遲
的大的樣本,它們是否符合一條測量時間和延遲對的直線,以觀察結果有一明顯的非零
斜度,能被證實是充分高效的。假如是這樣,一個可能的解釋是測量使用的時鐘之一相
對另一個偏斜了。另一個解釋是這個斜度確實是網絡真正的影響。決定事實是那種解釋
很有啟示意義(分辨相對時鐘偏移和網絡的真正影響的討論見[Pa97])。此外,假如使這
個檢查成為測量方法的一部分,那么長期斜度非常接近零這個發現就是測量可能沒有被
時鐘的偏斜影響致產生有偏的結果的肯定的證據。
最后一個例子闡明檢查測量過程本身的自身一致性。上面我們略敘了泊松抽樣技術,
它基于產生指數分布的時間間隔。一個合理的測量方法應該包括檢查產生的時間間隔以
確認它們實際上是否為指數分布(也確認它們是否遭受了相關性干擾)。附錄里面我們討
論了一個這樣的技術并給出了C代碼,稱為Anderson-Darling測試的一個普遍目的的,
充分熟悉的擬合良度(Goodness-of-Fit)測試。
最后,我們指出真正與互聯網泊松抽樣有關的經常不是測量何時開始而是與測量過
程相關的線時。由于用來完成測量的主機的復雜性,它們可能相當不同。因此,即使對
偽隨機數字生成器和并發的算法有完全的信任,也提倡盡可能多的考慮應該怎樣測試每
個測量過程所作的假設。
11.3.定義統計分布
一個描敘測量數據集合(樣本)的方法是把它們看作統計分布,非正式的看作百分
點。有幾個稍微不同的方法做到這點。這一節,我們定義一個標準的定義以使這些描敘
一致。
數量測量集合的經驗分布函數("empiricaldistributionfunction",EDF)為函數F(x),
對于任意x,給定整個測量的部分比例<=x.。假如x小于觀察到的最小值,那么F(x)為
零。假如它大于或等于觀察到的最大值,那么F(x)為1。
例如,給定了6個測量結果:
2,7,7,4,18,-5
那么F(-8)=0,F(-5)=1/6,F(-5.0001)=0,F(-4.999)=1/6,F(7)=5/6,F(18)=1,F(239)
=1。
注重我們能夠恢復不同的測量值和每個測量值在F(x)里出現次數—--值域內的任何
信息都沒丟失。另一方面,概括測量使用柱狀圖一般而言丟失了關于不同觀察值的信息,
所以首選EDF。
然而,或者使用EDF,或者使用柱狀圖,我們都丟失了關于觀測值的順序的信息。
是否有可能這個丟失的信息重要,依靠于我們所要測量的參數。
我們將使用術語“百分點”來指示對于給定百分比a,F(x)>=a的x的最小值。所
以上面那個例子中,第50百分點是4,因為F(4)=3/6=50%;而第25百分點是-2,因
為F(-5)=1/6<25%,且F(-2)=2/6>=25%;第100百分點是18;第0百分點是負無窮大。
在使用百分點來概括樣本時必須要小心,因為它們能導致無根據的比實際可得到的
結果更精確的現象。任何這樣的概括都必須包括樣本尺寸N,因為任何比1/N要低的百
分點差異都在樣本的分辨率之下。
關于EDF更具體的討論見[DS86]。
我們用對中值這一普遍(而又重要)概念的注解結束本小節。在統計學里,分布的
中值被定義為一個點X,X滿足觀察到的值小于等于X的概率等于觀察到的值大于X的
概率。在估計一個觀察值集合的中值時,這個估計依靠于觀察值的數量N,它是奇數或
偶數:
假如N是奇數,那么上面所定義的第50百分點就用做估計的中值。
假如N是偶數,那么估計中值是中間兩個觀察值的平均;也即,要是觀察值以升序
排序且配以從1到N的序號,這里N=2*K,則估計中值是第K個和第K+1個觀察值的
平均。
通常,術語“估計”被從詞語“估計中值”里去掉而簡單地稱這個值為“中值”。
11.4.擬合良度(Goodness-of-Fit)的測試
對于測量校準的一些形式,我們需要測試是否一組數據與那些被從特定分布里抽取
的數據一致。一個例子是:在使用泊松過程做的測量里應用自身一致性檢查,一個測試是檢
查是否抽樣時間的分隔真正符合指數分布;或者是否使用了上面討論的dT/N方法,是否時
間是在[T,dT]均勻分布。
{注釋:至少有三組可能的數據我們應該測試:被安排的分組傳輸時間,通過使用一個偽
隨機數字產生器獲得;正好在系統呼叫傳輸分組之前或之后做的用戶級時間戳;和使用分組
過濾器記錄的分組的線時。所有這三組數據都可能提供信息:被安排的分組傳輸時間未能符
合指數分布意味著隨機數字產生中的不準確;用戶級時間戳的錯誤意味著調度傳輸的記時器
的不準確;線時的錯誤意味著實際分組傳輸中的不準確,也許是因為共享資源的競爭。}
有許多統計學擬合良度技術完成這樣的測試。一個完全的討論見[DS86]。這本參考書推
薦了Anderson-DarlingEDF測試為一個好的所有目的的測試,這個測試也非凡適宜檢定給定
分布在EDF低尾和高尾的背離。
一個很重要的事是理解擬合良度測試的本性是:首先選擇“顯著度”,顯著度是測試會錯
誤地宣告測量的給定數據集合未能吻合特定的分布,而實際上測量確實是符合這個分布的。
這一事件的概率。
除非有別的聲明,IPPM擬合良度測試選取的顯著度為5%,這意味著:假如測試采用了
100個樣本而且這些樣本里有5個相信在測試中會失敗,那么樣本全部與被測試的分布一致。
假如有相當多的樣本測試失敗了,那么樣本與被測試的分布一致的假設就被推翻了。假如有
相當少的樣本測試失敗了,那么有可能樣本被修飾得太好而不符合分布。相似地,一些擬合
良度測試(包括Anderson-Darling算法)能檢定一個給定的樣本是否被修飾了。對這一情況
我們也使用5%的顯著度;也即,測試會報告給定的真實的樣本有5%的時間“太好了而不真
實”,所以假如測試報告這個發現比1/20更顯著,就暗示著出現了不平常的事情。
附錄給出了實現Anderson-Darling測試的示例C代碼,也進一步討論了它的使用。
在網絡測量的環境中擬合良度和擬合閉度測試的討論見[Pa94]。
12.消除隨機的度量參數
在定義用于路徑,子路徑,云,或其它網絡元素的度量參數時,我們一般不把它們定義
為隨機的術語(概率)。而是更喜歡確定性的術語。所以,例如不是定義參數為“A和B之
間分組丟失的概率”,而是定義為“A和B之間分組丟失率”。(由第一個定義得出的測量結
果會是0.73,而第二個定義會是100個分組里的73個。)
我們強調上面的區別涉及度量參數的定義。它不涉及我們用來分析測量結果的技術類型。
這個區別的理由如下。假如定義按照概率來定義參數,在這個定義的背后往往隱藏著一
個被測量的行為的隨機模型的假設。我們在參數定義中避免概率的基本目的是避免由于這樣
的隱藏假設而出現的偏見。
例如,一個輕易作出的隱藏假設是網絡組件中由于排隊溢出引起的分組丟失能被描敘為
對任何給定分組都以特定的概率發生的事情。然而,在今天的互聯網,排隊丟包事實上通常
是確定性的,而假定它們應該用概率來描敘會隱藏一組分組內排隊丟包之間至關重要的相關
性。所以明確地指出隨機假設更好,而不應將假設隱藏在我們的參數定義中。
這并不是意味著我們拋棄用來理解網絡性能的隨機模型!只是意味著在定義IP度量參數
時,我們避免使用“概率”這樣的術語代替“比例”,“比率”這樣的術語。例如,為了估計
由與IP度量參數有關的隨機模型所用的概率,我們仍然使用隨機抽樣。在它們真正適當時,
我們也不排除使用以概率定義的參數。(例如,由某種線路噪聲引起的傳輸錯誤的模擬。)
13.P型分組(PACKETSOFTYPEP)
許多互聯網度量參數的一個基本的屬性是參數的值依靠于做測量所用的IP分組的類型。
考慮一個IP連接參數:依靠于是否對分組的目的地是知名TCP端口或無限制的UDP端口的
連接感愛好,或者帶無效的IP校驗和的分組,或者例如TTL為16的分組,可能獲得不同的
結果,在有些環境,這些區別會很有趣(例如,有防火墻的場合,或RSVP預留)
因為這個區別,我們引入“P型分組(packetoftypeP)”的一般概念,在一些具體的環
境,P需要明確地定義(即:明確是指何種類型的分組),部分定義(例如:帶有B字節的有
效負載),或保持一般概念。因此我們可以討論一般的P型IP連接或更明確的IP-HTTP連接。
一些度量參數和測量方法可以使用一般的P型定義來有效地定義,在完成實際測量時,再給
P型分組以明確的說明。
無論何時,一個度量參數的值依靠于涉及它的分組類型,這個參數的名字應包括特定的
分組類型或如“P型”這樣的詞語。因此,我們不會定義“IP-連接”的參數而是定義“P型
IP-連接”的參數和/或“HTTP端口IP-連接”參數。這個命名規則作為一個重要的暗示提醒
我們必須清楚的意識到所測量流量的確切類型。
一個與之緊密相關的注重之點:知道是否給定的互聯網組件對不同類型分組組成的C類
平等對待是很有用的。假如是的,那么這些分組類型中的任何一種都可以用于接下來對該組
件的測量。這就提示我們設計盡量有確定的C類的度量參數或度量參數集合。
14.互聯網地址與主機
在考慮對一些穿過互聯網的路徑的參數時,經常會自然地設想它是屬于從互聯網主機H1
到H2的路徑的。盡管用這些術語做的定義,會有些模棱兩可,因為互聯網主機可以從屬于
多于一個的網絡。這種場合下,參數的測量結果將依靠于實際測量時所用的網絡。
由于有這個模糊性,通常這樣的參數定義應該根據互聯網IP地址來定義。對于穿過互聯
網的單向路徑的普遍場合,我們將用術語“源址”表示路徑的開始的IP地址,而“目的”表
示路徑終點的IP地址。
15.標準構成的分組
除非有另外的陳敘,所有涉及IP分組的度量參數的定義都包括了一個內在的假設:分組
是標準構成的。假如一個分組滿足所有下面的標準就是標準構成的:
在它IP報頭內給定的長度與IP報頭加上有效負載的長度一致。
它包含有一個有效的IP報頭:版本域是4(以后,我們會將其擴展到包括6);報頭長
度大于等于5;校驗和正確。
該分組不是IP分片。
源地址和目的地址和研究中的主機一致。
假如TTL域是每過一跳就減一,則要么分組擁有足夠從源主機傳到目的主機的TTL,要
么分組擁有最大的TTL:255。
除非明確的注釋,不能包含IP選項。
假如有傳輸層報頭,它也要有正確的校驗和以及其它的有效的域。
我們更要求假如分組被描敘為有“B字節的長度”,那么0,<=B<=65535;而且,假如B
是以字節表示的有效負載長度,那么B<=(65535-以字節表示的IP報頭長)。
所以,例如,可以想象定義一個IP連接的度量參數為“IPTOS域為零標準構成分組的P
類型IP連接”或更簡潔地,“IPTOS域為零的P類型IP連接”,因為由于約定,標準構成已
經包含在定義里。
一個考慮問題時往往有用的特定標準構成分組類型是“從A到B的最小IP分組”—這
是一個具有以下屬性的IP分組:
它是標準構成的。
它的有效負載是0。
它沒包含IP選項。
(注重我們沒有定義它的協議域,因為不同的值可能得到網絡的不同對待。)
在定義IP度量參數時,我們時刻要記得:沒有比這種分組更小或更簡單的分組能夠在正
常工作的IP網絡里傳輸。
16.致謝
感謝BrianCarpenter,BillCerveny,PadmaKrishnaswamyJeffSedayao和Howard
Stanislevic的批評。
17.安全考慮
本文檔涉及關于互聯網測量的定義和概念。我們只在高級術語上討論測量過程,涉及得
出合理測量的原則。因為這樣,討論的主題不影響互聯網或在互聯網上運行的應用程序的安
全。
也就是說,必須熟悉到進行互聯網測量能引起對安全和隱私的關注。主動測試技術,注
射流量到網絡中去,被濫用的話,就是偽裝成合法測量活動的拒絕服務(DoS)攻擊。被動
技術,記錄并分析存在的流量,會把互聯網流量的內容暴露給無意識的接受者。因此,每個
度量參數和測量方法的定義必須包括相應的對安全考慮的討論。
18.附錄
下面我們給出了計算Anderson-Darling(A2)測試統計量的C程序,Anderson-Darling測
試算法用于決定是否一個值集與給定的統計分布是一致的。外表上,這兩個主要的程序是:
doubleexp_A2_known_mean(doublex[],intn,doublemean)
doubleunif_A2_known_range(doublex[],intn,doublemin_val,doublemax_val)
都采用它們第一次的聲明,x,被測的值n的數組(x的元素經過排序)。余下的參數描敘所
用分布的特征:或者mean(平均值),(1/λ),對于指數分布而言;或者上界和下界,對于均
勻分布而言。程序的名字強調了這些值必須事前就知道,而且不要從數據中估計得到(例如,
通過計算它的樣本平均)。從數據中估計得到參數改變了測試統計的顯著度。盡管[DS86]給
出了一些例子的顯著度表,這些例子中,參數是從數據中估計得到的,出于我們的目的,我
們希望我們應該實際上事前知道參數,因為我們將測量的東西是如分組發送時間之類的我們
希望檢驗是否符合已知分布的一般值
兩個程序都返回如早先描敘的顯著度。它是一個0到1之間的值。對程序的正確地使用
是事先選好測試的顯著度的閥值;通常為0.05,即如上所敘的5%。隨后,假如程序返回的
值嚴格小于閥值,那么可以認為數據與事前假設的分布不一致,面臨與顯著度相關的錯誤。
也即,對于5%的顯著度,事實上是從事前假設的分布中來的5%時間的數據會被錯誤地認為
不一致。
因此,記住這點很重要:假如這些程序使用頻繁,那么事實上會偶然面臨錯誤,即使數
據是無暇的。
另一個涉及顯著度的重要之點是為了決定兩個數據集哪個更好的符合事前假設的分布而
比較它們是不合理的。實際上這樣的測量應該使用如[Pa94]中所敘的參數λ2這樣的“擬合閉
度度量參數”來做。
盡管提供的程序是對于已知了參數的指數分布和均勻分布的,通常寫出類似的用于任何
已知參數分布的程序。A2測試的核心在于為測試數據集是否與0到1之間的均勻分布(我們
表示為Unif(0,1))一致而計算的統計量。假如我們希望測試一個數據集,X,是否與給定分
布G(x)一致,我們首先計算Y=G_inverse(X)假如X事實上分布服從G(x),那么Y將服從
分布Unif(0,1);所以通過測試Y與Unif(0,1)的一致性,我們也就測試了X與G(x)的一致性。
然而,我們指出,上面計算Y的過程可能產生的Y值超過(0,1)的范圍。這樣的值是
不應當出現的,假如X事實上分布服從G(x);而假如X不是,Y就很輕易出現這樣的值。
在后一種情況,我們需要避免計算中心A2統計量,因為假如有任何(0,1)范圍外的值,
浮點例外可能出現。相應的,程序檢查這個概率,而且假如出現,返回一個原始的A2統計
量-1。轉換原始A2統計量為顯著度的程序同樣地傳播這個值,返回顯著度-1。所以,對這些
程序的任何運用都必須為可能出現的負值顯著度預備。
最后一個關于A2統計量使用的重要之點關系到n,被測數據的數量。假如n<5那么測
試沒有意義,而且在這種情況下返回顯著度為-1。
另一方面,對于“真實”數據,隨著n變得很大,測試獲得了激勵。在統計學里從所周
知,真實的數據幾乎從不恰好符合理論分布,即使是在丟很多次骰子的情況下(簡要的討論
和參考見[Pa94])。A2測試是足夠敏感的,對于足夠大的真實數據集,測試會幾乎總是失敗,
因它會試著探測數據對分布符合的稍微的不完整性。
例如,我們發現在測試8192個以泊松間隔發送分組的測量線時時,測量幾乎總是通不過
A2測試。另一方面,如所期待的,測試128個測量只在約5%時間里失敗于5%的顯著度。
因此,通常,在測試失敗時,必須注重理解是什么原因導致的。
本附錄的剩余部分給出了上面提及的程序的C代碼。
/*計算Anderson-DarlingA2測試統計的程序*
實現基于“擬合良度技術”中的描敘R.D'AgostinoandM.Stephens,editors,MarcelDekker,
Inc.,1986.
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/*返回n個排序樣本的原始A^2測試統計量
z[0]..z[n-1],對于z~Unif(0,1).
*/
externdoublecompute_A2(doublez[],intn);
/*返回與A2的A^2測試統計量關聯的顯著度,假定被測分布的參數都不是從數據中估
計得出的。
*/
externdoubleA2_significance(doubleA2);
/*返回n個服從帶給定均值的指數分布觀察值x[0]..x[n-1]的A^2顯著度
? SIDEEFFECT:x[0..n-1]按返回值排序
*/
externdoubleexp_A2_known_mean(doublex[],intn,doublemean);
/*返回n個服從平均分布[min_val,max_val]觀察值x[0]..x[n-1]的A^2顯著度
? SIDEEFFECT:thex[0..n-1]aresorteduponreturn.
*/
externdoubleunif_A2_known_range(doublex[],intn,
doublemin_val,doublemax_val);
/*返回與給定均值的指數分布一致的偽隨機數分布
*/
externdoublerandom_exponential(doublemean);
/*qsort()用于排序雙精度浮點數值的輔助函數
*/
staticintcompare_double(constvoid*v1,constvoid*v2)
{
doubled1=*(double*)v1;
doubled2=*(double*)v2;
if(d1<d2)
return-1;elseif(d1>d2)
return1;
else
return0;
}
double
compute_A2(doublez[],intn)
{
inti;
doublesum=0.0;
if(n<5)
/*樣本數太少*/
return-1.0;
/*假如任何值超出(0,1)范圍,則程序立即失敗。(并避免在下面的代碼里出現可能
的浮點數例外。)
*/
for(i=0;i<n;++i)
if(z[i]<=0.0z[i]>=1.0)
return-1.0;
/*D'AgostinoandStephens書第101面*/
for(i=1;i<=n;++i){
sum+=(2*i-1)*log(z[i-1]);sum+=(2*n
+1-2*i)*log(1.0-z[i-1]);
}
return-n-(1.0/n)*sum;
}
double
A2_significance(doubleA2)
{
/*D'AgostinoandStephens書第105面*/if(A2<0.0)
returnA2;/*偽造A2值并傳播它*/
/*檢查可能地被修改值*/if(A2<=0.201)
return0.99;elseif(A2<=0.240)
return0.975;elseif(A2<=0.283)
return0.95;elseif(A2<=0.346)
return0.90;elseif(A2<=0.399)
return0.85;
/*檢查可能的不一致性.*/if(A2<=1.248)
return0.25;elseif(A2<=1.610)
return0.15;elseif(A2<=1.933)
return0.10;elseif(A2<=2.492)
return0.05;elseif(A2<=3.070)
return0.025;elseif(A2<=3.880)
return0.01;elseif(A2<=4.500)
return0.005;elseif(A2<=6.000)
return0.001;
else
return0.0;
}
doubleexp_A2_known_mean(doublex[],intn,doublemean)
{
inti;
doubleA2;
/*排序前n個值*/qsort(x,n,sizeof(x[0]),compare_double);
/*假定它們符合指數分布,傳輸到Unif(0,1).
*/
for(i=0;i<n;++i){
x[i]=1.0-exp(-x[i]/mean);
}
/*做A^2測試以檢查它們是真正符合均勻分布*/A2=compute_A2(x,n);return
A2_significance(A2);
}
doubleunif_A2_known_range(doublex[],intn,doublemin_val,doublemax_val)
{
inti;
doubleA2;
doublerange=max_val-min_val;
/*排序前n個值*/qsort(x,n,sizeof(x[0]),compare_double);
/*傳輸Unif(min_val,max_val)到Unif(0,1).*/for(i=0;i<n;++i)
x[i]=(x[i]-min_val)/range;
/*做A^2測試以檢查它們是真正符合均勻分布*/A2=compute_A2(x,n);return
A2_significance(A2);
}
double
random_exponential(doublemean)
{
return-mean*log1p(-drand48());
}
19.參考書目
[AK97]G.AlmesandS.Kalidindi,"AOne-wayDelayMetricforIPPM",WorkinPRogress,
November1997.
[BM92]I.BilinskisandA.Mikelsons,RandomizedSignalProcessing,PrenticeHall
International,1992.
[DS86]R.D'AgostinoandM.Stephens,editors,Goodness-of-FitTechniques,MarcelDekker,
Inc.,1986.
[CPB93]K.Claffy,G.Polyzos,andH-W.Braun,"applicationofSamplingMethodologiesto
NetworkTrafficCharacterization,"Proc.SIGCOMM'93,pp.194-203,SanFrancisco,
September1993.
[FJ94]S.FloydandV.Jacobson,"TheSynchronizationofPeriodicRoutingMessages,"
IEEE/ACMTransactionsonNetworking,2(2),pp.122-136,April1994.
[Mi92]Mills,D.,"NetworkTimeProtocol(Version3)Specification,Implementationand
Analysis",RFC1305,March1992.
[Pa94]V.Paxson,"Empirically-DerivedAnalyticModelsofWide-AreaTCPConnections,"
IEEE/ACMTransactionsonNetworking,2(4),pp.316-336,August1994.
[Pa96]V.Paxson,"TowardsaFrameworkforDefiningInternet
PerformanceMetrics,"ProceedingsofINET'96,
FTP://ftp.ee.lbl.gov/papers/metrics-framework-INET96.ps.Z
[Pa97]V.Paxson,"MeasurementsandAnalysisofEnd-to-EndInternetDynamics,"Ph.D.
dissertation,U.C.Berkeley,1997,ftp://ftp.ee.lbl.gov/papers/vp-thesis/dis.ps.gz.
20.作者地址
VernPaxson
MS50B/2239
LawrenceBerkeleyNationalLaboratory
UniversityofCalifornia
Berkeley,CA94720
USA
Phone:+1510/486-7504
EMail:vern@ee.lbl.gov
GuyAlmes
AdvancedNetwork&Services,Inc.
200BusinessParkDrive
Armonk,NY10504
USA
Phone:+1914/765-1120
EMail:almes@advanced.org
JamshidMahdavi
PittsburghSupercomputingCenter
44005thAvenue
Pittsburgh,PA15213
USA
Phone:+1412/268-6282
EMail:mahdavi@psc.edu
MattMathis
PittsburghSupercomputingCenter
44005thAvenue
Pittsburgh,PA15213
USA
Phone:+1412/268-3319
EMail:mathis@psc.edu
21.版權聲明
Copyright?TheInternetSociety(1998).AllRightsReserved.
假如上面的版權聲明和本段被包含在所有這樣的復制和派生工作里,本文檔和它的翻譯
可以復制并傳播給他人,派生出來的事情,如評價它或解釋它或幫助實現它可以被部分的或
全部的預備,復制,出版和分發,沒有任何的限制。然而,本文檔本身不可以以任何方式修
改,如移除版權聲明或提及互聯網協會(InternetSociety)和其他互聯網組織,除非出于發展
互聯網標準的需要,這時,必須跟隨互聯網標準過程里定義的版權,或必須翻譯為其他的非
英語語言。
上面提及的有限許可是永久的且不會被互聯網協會或它的繼續者或它的委派者撤回。
Thisdocumentandtheinformationcontainedhereinisprovidedonan"ASIS"basisandTHE
INTERNETSOCIETYANDTHEINTERNETENGINEERINGTASKFORCE
DISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,INCLUDINGBUTNOT
LIMITEDTOANYWARRANTYTHATTHEUSEOFTHEINFORMATIONHEREIN
WILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIESOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.
|
新聞熱點
疑難解答