目录

简介

测量支持语音的数据网络的延迟、抖动和丢包

测量延迟、抖动和信息包丢失的重要性

定义延迟、抖动和信息包丢失

SAA 和 RTTMON

配置延迟和抖动代理路由器

在哪里部署

模拟语音呼叫

延迟和抖动探测部署示例

数据收集示例

轮询 MIB 表

阈值前摄监控

SAA 阈值命令

RMON 报警和事件

Appendix

Cisco SAA 延迟抖动探测中的抖动计算

延迟和抖动探测路由器硬件和软件配置

相关信息

简介

本文档介绍使用Cisco IOS®服务保证代理(SAA)和往返时间监控器(RTTMON)功能和Cisco路由器测量数据网络延迟、抖动和丢包的方法。

测量支持语音的数据网络的延迟、抖动和丢包

测量延迟、抖动和信息包丢失的重要性

随着数据网络上新应用的出现，准确预测新应用部署的影响对客户来说变得越来越重要。不久前，通过上层协议的超时和重传功能，为应用程序分配带宽并让应用程序适应流量激增的特性还很容易。但是，现在，新的世界应用（如语音和视频）更容易受到数据网络传输特性变化的影响。在部署新世界应用之前，必须了解网络的流量特征，以确保成功实施。

定义延迟、抖动和信息包丢失

IP语音(VoIP)易受网络行为（即延迟和抖动）的影响，这会使语音应用降级到普通用户无法接受的程度。延迟是从网络中的点到点花费的时间。延迟可以单向延迟或往返延迟测量。单向延迟计算需要昂贵的复杂测试设备，超出了大多数企业客户的预算和专业知识。但是，测量往返延迟比较容易，而且需要的设备也比较便宜。为了得到单向延迟的一般测量，测量往返延迟并将结果除以二。VoIP通常可以容忍高达150毫秒的延迟，否则呼叫质量将无法接受。

抖动是随时间的延迟从点到点的变化。如果VoIP呼叫中传输的延迟变化过大，呼叫质量将大大降低。网络上可容忍的抖动量受语音路径中网络设备上抖动缓冲区深度的影响。可用的抖动缓冲区越多，网络可以减少抖动的影响就越多。

数据包丢失正在沿数据路径丢失数据包，这严重降低了语音应用的性能。

在部署VoIP应用之前，评估数据网络上的延迟、抖动和丢包非常重要，以确定语音应用是否工作。然后，延迟、抖动和丢包测量有助于正确设计和配置流量优先级，以及缓冲数据网络设备中的参数。

SAA 和 RTTMON

SAA和RTTMON MIB是12.0(5)T及更高版本中提供的Cisco IOS软件功能。这些功能使您能够测试和收集数据网络上的延迟、抖动和丢包统计信息。网际网络性能监控器(IPM)是思科网络管理应用，可配置功能并监控SAA和RTTMON数据。SAA和RTTMON功能可通过部署小型Cisco IOS路由器作为代理来模拟客户终端站，来测量延迟、抖动和丢包。路由器称为延迟和抖动探测。此外，一旦确定基线值，延迟和抖动探测功能可以配置远程监控(RMON)警报和事件触发。这允许延迟和抖动探测器监控网络的预定延迟和抖动服务级别，并在超过阈值时报警网络管理系统(NMS)站。

配置延迟和抖动代理路由器

在哪里部署

延迟和抖动可以通过部署Cisco路由器17xx或更高版本（Cisco IOS软件代码版本12.05T或更高版本）和配置Cisco IOS SAA功能来测量。路由器应放置在园区网络中主机旁。这提供端到端连接的统计信息。由于测量网络中的每条可能的语音路径并不可行，请将探测器放置在提供典型语音路径统计采样的典型主机位置。一些个示例包括：

- 本地园区到园区路径

- 通过384 kbs帧中继电路的本地园区到远程园区路径

- 通过ATM永久虚电路(PVC)的本地园区到远程园区

在使用使用外部交换站(FXS)端口连接到思科路由器的传统电话进行VoIP部署时，使用连接到电话的路由器作为延迟和抖动探测。部署后，探测功能将收集统计信息并填充路由器中的简单网络管理协议(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秒。

这些参数为64 kb/s，持续60秒。

- (（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在request-data-size中不考虑，因为路由器会自动将其添加到内部大小。

注意：目前，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

数据收集示例

轮询 MIB 表

延迟和抖动探测功能开始收集随后放置在SNMP MIB表中的数据。rttMonStats表提供过去一小时内所有抖动操作的平均一小时。rttMonLatestJitterOper表提供上次完成操作的值。有关延迟和抖动的一般统计信息，请每小时轮询一次rttMonStats表。要获得更精细的统计信息，请以比抖动操作更高的频率级别轮询rttMonLatestJitterOper表。例如，如果延迟和抖动探测功能每五分钟计算一次抖动，则不要以小于五分钟的任何间隔轮询MIB。

以下屏幕截图显示从HP OpenView网络节点管理器MIB轮询收集的rttMonJitterStatsTable中的数据。

SAA报告示例

以下SAA数据图是一对延迟和抖动探测器在8小时内延迟、抖动和丢包数据点的汇编。

命令行数据示例

在延迟和抖动探测功能的命令行中，也可以使用Cisco IOS show命令查看数据。Perl Expect脚本可用于从命令行收集数据并将其导出到文本文件以供以后分析。此外，命令行数据还可用于实时监控和排除延迟、抖动和丢包故障。

以下示例显示sarouter1路由器上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警报和事件的功能。

SAA 阈值命令

SAA功能集阈值命令设置生成反应事件并存储操作历史信息的上升阈值（滞后）。延迟和抖动探测功能上的以下SAA阈值配置可监控抖动，并在5毫秒阈值违规时创建SNMP陷阱。

saarouter1#

rtr 100

rtr reaction-configuration 100 threshold-falling 5 threshold-type immediate

RMON 报警和事件

延迟和抖动探测功能使用SAA Cisco IOS功能或Cisco IOS RMON警报和事件方法监控预定阈值。无论哪种情况，路由器都会监控延迟、抖动和丢包，并通过SNMP陷阱向NMS站发出违反阈值的警报。

以下RMON警报和事件陷阱配置会导致saarouter1在上升阈值超过140毫秒最大往返时间时生成SNMP陷阱。当最长往返时间回落到100毫秒以下时，它还会发送另一个陷阱。然后trap被发送到路由器上的日志，同时发到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

Appendix

Cisco SAA 延迟抖动探测中的抖动计算

抖动是单向延迟的差异，根据连续发送的数据包的发送和接收时间戳来计算。

时标

发件人

响应方

T1

发送pkt1

T2

recv pkt1

T3

向pkt1发送回复

T4

pkt1的recv应答

T5

发送pkt2

T6

recv pkt2

T7

向pkt2发送回复

T8

pkt2的recv应答

对于上述数据包1和数据包2，请使用以下源和目的计算。

- 从源到目的地的抖动（抖动SD）=(T6-T2)-(T5-T1)

- 从目的设备到源设备的抖动（抖动DS）=(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 — 带两个WAN插槽和Cisco IOS IP软件的10/100BaseT模块化路由器

- 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

相关信息

- SAA用户指南

- 技术支持 - Cisco Systems