本檔案介紹使用Cisco IOS®服務保證代理(SAA)和來回時間監控器(RTTMON)功能和Cisco路由器測量資料網路上的延遲、抖動和封包遺失的方法。
隨著資料網路上新應用的出現,客戶準確預測新應用推廣的影響變得越來越重要。不久前,通過上層協定的超時和重新傳輸功能,為應用分配頻寬很容易,並讓應用能夠適應流量的爆炸性增長。但是,現在,新的世界應用,如語音和影片,更容易受到資料網路傳輸特性變化的影響。在部署新的全球應用之前,必須瞭解網路的流量特性,以確保成功實施。
IP語音(VoIP)易受網路行為(稱為延遲和抖動)的影響,這可能會使語音應用降級到普通使用者無法接受的程度。延遲是網路中點對點所用的時間。延遲可以按單向或往返延遲來衡量。單向延遲計算需要昂貴的精密測試裝置,超出了大多數企業客戶的預算和專業水準。但是,測量往返延遲比較容易,並且需要的裝置也比較便宜。為了得到單向延遲的一般測量值,測量往返延遲,並將測量結果除以二。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)實現本地園區到遠端園區
在使用VoIP部署時,使用傳統電話連線到使用外部交換站(FXS)埠的Cisco路由器,使用連線到電話的路由器作為延遲和抖動探測器。部署完成後,探測器將收集統計資訊並填充路由器中的簡單網路管理協定(SNMP)MIB表。然後,可通過Cisco IPM應用程式或SNMP輪詢工具訪問資料。此外,一旦建立了基線值,可以配置SAA在超過延遲、抖動和資料包丟失閾值時向NMS工作站傳送警報。
使用SAA作為測試機制的優點之一是可以模擬語音呼叫。例如,假設您要模擬G.711語音呼叫。您知道它使用RTP/UDP埠14384及更高版本,大約為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網路節點管理器MIB輪詢中收集的rttMonJitterStatsTable中的資料。
以下SAA資料圖是一對延遲和抖動探測器在8小時內的延遲、抖動和丟包資料點的集合。
還可以在延遲和抖動探測器上的命令列使用Cisco IOS show命令檢視資料。Perl Expect指令碼可用於從命令列收集資料並將其匯出到文本檔案,以供日後分析。此外,命令列資料還可用於即時監控延遲、抖動和丟包故障排除。
以下示例顯示路由器1上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指令。另一種方法是使用Cisco IOS主行代碼中名為RMON Alarm and Event的功能。
SAA功能設定閾值命令設定上升閾值(滯後),該上升閾值生成反應事件並儲存操作的歷史記錄資訊。延遲和抖動探測器上的以下SAA閾值配置支援對抖動的監控,並在違反5毫秒閾值時建立SNMP陷阱。
saarouter1# rtr 100 rtr reaction-configuration 100 threshold-falling 5 threshold-type immediate
延遲和抖動探測器使用SAA Cisco IOS功能或Cisco IOS RMON警報和事件方法監控預定閾值。無論哪種情況,路由器都會監控延遲、抖動和資料包丟失,並通過SNMP陷阱向NMS站點發出閾值違規警報。
如果上升閾值超過140 ms最大來回時間,以下RMON警報和事件陷阱配置會導致saarouter1生成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的recv回覆 | |
T5 | 傳送pkt2 | |
T6 | recv pkt2 | |
T7 | 為pkt2傳送回回覆 | |
T8 | pkt2的recv回覆 |
對於上面的資料包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模組化路由器,帶兩個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 |
初始版本 |