本檔案介紹使用Cisco IOS®服務保證代理(SAA)和來回時間監控器(RTTMON)功能及Cisco路由器來測量資料網路上的延遲、抖動和封包遺失的方法。
隨著資料網路上出現新的應用,客戶準確預測新應用部署的影響變得越來越重要。不久之前,很容易為應用分配頻寬,讓應用透過上層協定的超時和重新傳輸功能適應流量的爆炸性成長。但是,現在,語音和影片等新的世界應用更容易受到資料網路傳輸特性變化的影響。在部署新的世界應用之前,必須瞭解網路的流量特徵,以確保成功實施。
IP語音(VoIP)容易受到網路行為(稱為延遲和抖動)的影響,這可能會使語音應用降級到普通使用者無法接受的程度。延遲是網路中點對點所用的時間。延遲可以用單向或往返延遲來衡量。單向延遲計算需要昂貴的精密測試裝置,超出了大多數企業客戶的預算和專業範圍。但是,測量往返延遲比較容易,並且需要的裝置也比較便宜。為了得到一般的單向延遲測量,測量往返延遲並將結果除以2。VoIP通常可以容忍長達150毫秒的延遲,直到呼叫品質達到不可接受的水準。
抖動是點到點之間延遲的變化。如果在VoIP呼叫中傳輸延遲變化過大,則呼叫品質會大大降低。網路上可容忍的抖動量受語音路徑中網路裝置上的抖動緩衝區的深度影響。可用的抖動緩衝區越多,網路就越能減少抖動的影響。
資料包丟失是指資料路徑上的資料包丟失,這會嚴重降低語音應用的效能。
在部署VoIP應用之前,必須評估資料網路上的延遲、抖動和資料包丟失,以確定語音應用是否正常工作。然後,延遲、抖動和丟包測量可以幫助正確設計和配置流量優先順序劃分,以及資料網路裝置中的緩衝引數。
SAA和RTTMON MIB是12.0 (5)T及更高版本中提供的Cisco IOS軟體功能。這些功能使您能夠測試和收集資料網路上的延遲、抖動和資料包丟失統計資訊。Internetwork Performance Monitor (IPM)是一種思科網路管理應用,可以配置功能並監控SAA和RTTMON資料。SAA和RTTMON功能可用於測量延遲、抖動和資料包丟失,方法是部署小型Cisco IOS路由器作為代理來模擬客戶終端站。路由器稱為延遲和抖動探頭。此外,一旦確定了基線值,可以使用遠端監控(RMON)警報和事件觸發器配置延遲和抖動探測器。這允許延遲和抖動探測功能監控預定延遲和抖動服務級別的網路並在超過閾值時警告網路管理系統(NMS)站點。
透過部署17xx或更高版本的Cisco IOS軟體代碼版本為12.05T或更高版本的Cisco路由器,並配置Cisco IOS SAA功能,可以測量延遲和抖動。路由器應放置在主機旁邊的園區網路中。這提供了端到端連線的統計資訊。由於無法測量網路中的每個可能的語音路徑,因此請將探測器放置在典型主機位置以提供典型語音路徑的統計取樣。一些示例包括:
本地園區到園區路徑
透過384 kbs幀中繼線路的本地園區到遠端園區路徑
透過ATM永久虛電路(PVC)從本地園區到遠端園區
如果使用傳統電話連線到使用外部交換站(FXS)埠的Cisco路由器的VoIP部署,請使用連線到電話的路由器作為延遲和抖動探測器。部署完成後,探測器將收集統計資訊並在路由器中填充簡單網路管理協定(SNMP) MIB表。然後,可以透過Cisco IPM應用程式或SNMP輪詢工具訪問資料。此外,一旦建立了基線值,SAA可以配置為在超過延遲、抖動和資料包丟失閾值時向NMS工作站傳送警報。
使用SAA作為測試機制的優點之一是可以模擬語音呼叫。例如,假設您要模擬G.711語音呼叫。您知道它使用14384及更高版本的RTP/UDP埠,大約是64 kb/s,資料包大小為200位元組{(160位元組負載+ 40位元組用於IP/UDP/RTP (未壓縮) }。可以透過設定SAA延遲/抖動探測來模擬這種型別的流量,如下所示。
抖動操作需要執行此操作:
將請求傳送到RTP/UDP埠號14384。
傳送172位元組封包(160個負載+ 12位元組RTP標頭大小)+ 28位元組(IP + UDP)。
每個頻率週期傳送3000個資料包。
傳送間隔為20毫秒的每個資料包,持續60秒,並在開始下一個頻率週期之前休眠10秒。
這些引數在60秒內可提供64 kb/s。
((3000個資料包*每個資料包160位元組)/ 60秒)) * 8位/位元組= 64 kb/s
路由器上的配置如下所示:
rtr 1 type jitter dest-ipaddr 172.18.179.10 dest-port 14384 num-packets 3000+ request-data-size 172* frequency 70 rtr schedule 1 life 2147483647 start-time now
注意:請求資料大小中不考慮IP+UDP,因為路由器會自動將其增加到內部大小。
注意:目前,Cisco IOS僅支援每個操作1000個資料包。此限制將在未來的版本中提高。
以下示例中的路由器每60秒模擬一次60秒的語音呼叫,並記錄兩個方向的延遲、抖動和資料包丟失。
註:延遲計算為往返時間,必須除以2後才能獲得單向延遲。
saarouter1# rtr responder rtr 1 type jitter dest-ipaddr 172.18.179.10 dest-port 14384 num-packets 1000 request-data-size 492 frequency 60 rtr schedule 1 life 2147483647 start-time now saarouter2# rtr responder rtr 1 type jitter dest-ipaddr 172.18.178.10 dest-port 14385 num-packets 1000 request-data-size 492 rtr schedule 1 life 2147483647 start-time now saarouter3# rtr responder rtr 1 type jitter dest-ipaddr 172.18.179.100 dest-port 14385 num-packets 1000 request-data-size 492 frequency 60 rtr schedule 1 life 2147483647 start-time now saarouter4# rtr responder rtr 1 type jitter dest-ipaddr 172.18.178.100 dest-port 14385 num-packets 1000 request-data-size 492 frequency 60 rtr schedule 1 life 2147483647 start-time now
延遲和抖動探測器開始收集隨後放置在SNMP MIB表中的資料。rttMonStats表提供過去一小時所有抖動操作的平均值。rttMonLatestJitterOper表提供上次完成的操作的值。有關延遲和抖動的一般統計資訊,請每小時輪詢rttMonStats表。如需更精細的統計資料,請以比快速變換作業更高的頻率層級來輪詢rttMonLatestJitterOper表格。例如,如果延遲和抖動探測器每五分鐘計算一次抖動,請不要在小於五分鐘的任何時間間隔輪詢MIB。
以下螢幕截圖顯示了從HP OpenView Network Node Manager MIB輪詢收集的rttMonJitterStatsTable資料。
以下SAA資料圖形彙編了延遲和抖動探查對在8小時內的延遲、抖動和丟包資料點。
還可以在延遲和抖動探報的命令列中使用Cisco IOS show命令檢視資料。Perl Expect程式檔可用於從指令行收集資料,並將其匯出至文字檔以供日後分析。此外,命令列資料還可用於對延遲、抖動和資料包丟失進行即時監控和故障排除。
以下示例展示在saarouter1路由器上show rtr collection-stats命令的命令輸出。
#show rtr collection-stats 100 Collected Statistics Entry Number: 100 Target Address: 172.16.71.243, Port Number: 16384 Start Time: 13:06:04.000 09:25:00 Tue Mar 21 2000 RTT Values: NumOfRTT: 600 RTTSum: 873 RTTSum2: 1431 Packet Loss Values: PacketLossSD: 0 PacketLossDS: 0 PacketOutOfSequence: 0 PacketMIA: 0 PacketLateArrival: 0 InternalError: 0 Busies: 0 Jitter Values: MinOfPositivesSD: 1 MaxOfPositivesSD: 1 NumOfPositivesSD: 23 SumOfPositivesSD: 23 Sum2PositivesSD: 23 MinOfNegativesSD: 1 MaxOfNegativesSD: 1 NumOfNegativesSD: 1 SumOfNegativesSD: 1 Sum2NegativesSD: 1 MinOfPositivesDS: 1 MaxOfPositivesDS: 1 NumOfPositivesDS: 7 SumOfPositivesDS: 7 Sum2PositivesDS: 7 MinOfNegativesDS: 1 MaxOfNegativesDS: 1 NumOfNegativesDS: 18 SumOfNegativesDS: 18 Sum2NegativesDS: 18 Entry Number: 100 Target Address: 172.16.71.243, Port Number: 16384 Start Time: 14:06:04.000 09:25:00 Tue Mar 21 2000 RTT Values: NumOfRTT: 590 RTTSum: 869 RTTSum2: 1497 Packet Loss Values: PacketLossSD: 0 PacketLossDS: 0 PacketOutOfSequence: 0 PacketMIA: 0 PacketLateArrival: 0 InternalError: 0 Busies: 0 Jitter Values: MinOfPositivesSD: 1 MaxOfPositivesSD: 1 NumOfPositivesSD: 29 SumOfPositivesSD: 29 Sum2PositivesSD: 29 MinOfNegativesSD: 1 MaxOfNegativesSD: 1 NumOfNegativesSD: 7 SumOfNegativesSD: 7 Sum2NegativesSD: 7 MinOfPositivesDS: 1 MaxOfPositivesDS: 1 NumOfPositivesDS: 47 SumOfPositivesDS: 47 Sum2PositivesDS: 47 MinOfNegativesDS: 1 MaxOfNegativesDS: 1 NumOfNegativesDS: 5 SumOfNegativesDS: 5 Sum2NegativesDS: 5
透過初始資料收集建立基線值時,有幾種方法可以監控網路中的延遲、抖動和資料包丟失水準。一種方法是使用SAA threshold命令。另一個方式是使用思科IOS主線代碼中的一個功能,稱為RMON警報和事件。
SAA功能集閾值命令設定上升閾值(滯後),可生成反應事件並儲存操作的歷史記錄資訊。以下延遲和抖動探測功能上的SAA閾值配置支援對抖動的監控,並在違反5 ms閾值時建立SNMP陷阱。
saarouter1# rtr 100 rtr reaction-configuration 100 threshold-falling 5 threshold-type immediate
延遲和抖動探測器使用SAA Cisco IOS功能或Cisco IOS RMON警報和事件方法監控預定閾值。無論哪種情況,路由器都會監控延遲、抖動和資料包丟失,並透過SNMP陷阱向NMS站點發出閾值違規警報。
以下RMON警報和事件陷阱配置導致saarouter1在上升閾值超過140 ms最大往返時間時生成SNMP陷阱。當最大往返時間回落到100毫秒以下時,它還會傳送另一個陷阱。然後,陷阱會傳送到路由器上的日誌以及NMS工作站172.16.71.19。
saarouter1# rmon alarm 10 rttMonJitterStatsRTTMax.100.120518706 1 absolute rising-threshold 140 100 falling-threshold 100 101 owner jharp rmon event 100 log trap private description max_rtt_exceeded owner jharp rmon event 101 log trap private description rtt_max_threshold_reset owner jharp
抖動是單向延遲的差異,根據連續發出的資料包的傳送和接收時間戳進行計算。
時間戳記 | 寄件者 | 回應者 |
---|---|---|
T1 | 傳送pkt1 | |
T2 | recv pkt1 | |
T3 | 回覆pkt1回覆 | |
T4 | 收到pkt1的回覆 | |
T5 | 傳送pkt2 | |
T6 | recv pkt2 | |
T7 | 回覆pkt2的回覆 | |
T8 | 收到pkt2的回覆 |
對於上面的資料包1和資料包2,請使用以下源和目標計算。
從源到目的地的抖動(JitterSD) = (T6-T2) - (T5-T1)
從目的地到來源的抖動(JitterDS) = (T8-T4) - (T7-T3)
抖動使用每兩個連續資料包的時間戳來計算。舉例來說:
Router1 send packet1 T1 = 0 Router2 receives packet1 T2 = 20 ms Router2 sends back packet1 T3 = 40 ms Router1 receives packet1 response T4 = 60 ms Router1 sends packet2 T5 = 60 ms Router2 receives packet2 T6 = 82 ms Router2 sends back packet2 T7 = 104 ms Router1 receives packet2 response T8 = 126 ms Jitter from source to destination (JitterSD) = (T6-T2) - (T5-T1) Jitter from source to destination (JitterSD) = (82 ms - 20 ms) - (60 ms - 0 ms) = 2 ms positive jitter SD Jitter from destination to source (JitterDS) = (T8-T4) - (T7-T3) Jitter from destination to source (JitterDS) = (126 ms - 60 ms) - (10 4ms - 40 ms) = 2 ms positive jitter DS
CISCO1720 — 10/100BaseT模組化路由器,帶2個WAN插槽和Cisco IOS IP軟體
MEM1700-16U24D — Cisco 1700 16 MB到24 MB DRAM工廠升級
MEM1700-4U8MFC — Cisco 1700 4 MB到8 MB微型快閃記憶體卡工廠升級
CAB-AC -電源線,110V
S17CP-12.1.1T — Cisco 1700 IOS IP PLUS
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
02-Dec-2013 |
初始版本 |