目录

简介

背景信息

VoIP - 每个呼叫使用的带宽

术语解释

带宽计算公式

计算示例

在Cisco Call Manager和Cisco IOS网关中配置语音负载大小

更改语音负载大小的影响

语音活动检测

RTP 报头压缩或压缩的 RTP (cRTP)

压缩试探

相关信息

简介

本文档介绍使用IP语音(VoIP)时，语音编解码器带宽计算和修改或节省带宽的功能。

背景信息

当您建立分组语音网络时，要考虑的最重要因素之一是适当的容量规划。在容量规划中，带宽计算是在设计和排除分组语音网络故障以提供良好语音质量时需考虑的重要因素。

注意：作为本文档的补充，您可以使用 TAC 语音带宽编解码计算器（仅限注册用户）工具。此工具提供有关如何计算分组语音呼叫所需带宽的信息。

VoIP - 每个呼叫使用的带宽

以下协议报头假设用于计算：

- IP（20 字节）/用户数据报协议 (UDP)（8 字节）/实时传输协议 (RTP)（12 字节）报头的 40 字节。

- 压缩实时协议(cRTP)将IP/UDP/RTP报头缩减为2或4个字节（cRTP在以太网上不可用）。

- 多链路点对点协议 (MP) 或帧中继论坛 (FRF).12 第 2 层 (L2) 报头的 6 字节。

- MP 和帧中继帧上帧结尾标记的 1 字节。

- 用于以太网 L2 报头的 18 个字节，包括 4 个字节的帧校验序列 (FCS) 或循环冗余校验 (CRC)。

注意：此表仅包含Cisco Call Manager或Cisco IOS®软件H.323网关中默认语音负载大小的计算。对于其他计算，包括不同的语音负载大小和其他协议（例如帧中继语音 [VoFR] 和 ATM 语音 [VoATM]），请使用 TAC Voice Bandwidth Codec Calculator 工具（仅限注册客户）。

编解码信息

带宽计算

编解码比特率 (Kbps)

编解码样本大小（字节）

编解码采样间隔（毫秒）

平均意见评分 (MOS)

语音有效载荷大小（字节）

语音有效载荷大小（毫秒）

每秒数据包数 (PPS)

带宽 MP 或 FRF.12 (Kbps)

带宽 w/cRTP MP 或 FRF.12 (Kbps)

带宽以太网 (Kbps)

G.711 (64 Kbps)

80 字节

10 毫秒

4.1

160 字节

20 毫秒

50

82.8 Kbps

67.6 Kbps

87.2 Kbps

G.729 (8 Kbps)

10 字节

10 毫秒

3.92

20 字节

20 毫秒

50

26.8 Kbps

11.6 Kbps

31.2 Kbps

G.723.1 (6.3 Kbps)

24 字节

30 毫秒

3.9

24 字节

30 毫秒

33.3

18.9 Kbps

8.8 Kbps

21.9 Kbps

G.723.1 (5.3 Kbps)

20 字节

30 毫秒

3.8

20 字节

30 毫秒

33.3

17.9 Kbps

7.7 Kbps

20.8 Kbps

G.726 (32 Kbps)

20 字节

5 毫秒

3.85

80 字节

20 毫秒

50

50.8 Kbps

35.6 Kbps

55.2 Kbps

G.726 (24 Kbps)

15 字节

5 毫秒

20 毫秒

50

42.8 Kbps

27.6 Kbps

47.2 Kbps

G.728 (16 Kbps)

10 字节

5 毫秒

3.61

60 字节

30 毫秒

33.3

28.5 Kbps

18.4 Kbps

31.5 Kbps

G722_64k(64 Kbps)

80 字节

10 毫秒

4.13

160 字节

20 毫秒

50

82.8 Kbps

67.6 Kbps

87.2 Kbps

ilbc_mode_20 (15.2Kbps)

38 字节

20 毫秒

不适用

38 字节

20 毫秒

50

34.0 Kbps

18.8 Kbps

38.4 Kbps

ilbc_mode_30 (13.33Kbps)

50 字节

30 毫秒

不适用

50 字节

30 毫秒

33.3

25.867 Kbps

15.73 Kbps

28.8 Kbps

术语解释

编解码比特率 (Kbps)

根据编解码器，此为实现语音通话每秒需要传输的位数。（编解码比特率 = 编解码样本大小/编解码采样间隔）。

编解码样本大小（字节）

根据编解码，这是数字信号处理器在每编解码采样间隔捕获的字节数 (DSP)。例如，G.729 编码器的采样间隔为 10 毫秒，与此对应，每个样本为 10 个字节（80 位），比特率为 8 Kbps。（编解码比特率 = 编解码样本大小/编解码采样间隔）。

编解码采样间隔（毫秒）

这是编解码器运行的采样间隔。例如，G.729 编码器的采样间隔为 10 毫秒，与此对应，每个样本为 10 个字节（80 位），比特率为 8 Kbps。（编解码比特率 = 编解码样本大小/编解码采样间隔）。

平均意见评分 (MOS)

MOS 是一种用于对电话连接的语音质量进行评分的系统。使用 MOS，各监听程序可判断语音样本的质量，质量等级从 1（差）到 5（非常好）。 计算分数的平均值是为了向编解码器提供 MOS。

语音有效载荷大小（字节）

语音有效载荷大小指填充到数据包的字节（或位）数。语音有效载荷大小必须是多个编解码样本大小。例如，G.729 数据包可以使用 10、20、30、40、50 或者 60 字节的语音有效载荷。

语音有效载荷大小（毫秒）

语音有效载荷大小也可表示为编解码采样。例如，20毫秒（两个10毫秒的编解码器示例）的G.729语音负载代表20字节[(20字节* /（20毫秒）= 8 Kbps ]

PPS

PPS 表示为提供编码解码器比特率而每秒需要传输的数据包数量。例如，对于每数据包语音有效载荷大小为 20 字节（160 位）的 G.729 呼叫，每秒需要传输 50 个数据包 [50 pps = (8 Kbps)/（160 位/数据包）]

带宽计算公式

使用以下计算：

- 数据包总大小 = (L2 报头：MP 或 FRF.12 或以太网）+（IP/UDP/RTP 报头）+（语音有效载荷大小）

- PPS = (编解码比特率)/(语音有效载荷大小)

- 带宽 = 数据包总大小 * PPS

计算示例

例如，假设采用 cRTP、MP 的 G.729 呼叫所需的带宽为 8 Kbps 编解码器比特率，默认的语音负载为 20 字节，则：

- 数据包总大小（字节）=（6 字节的 MP 报头）+（2 字节的压缩 IP/UDP/RTP 报头）+（20 字节的语音有效载荷）= 28 字节

- 数据包总大小（位）=（28 字节）* 8 位/字节 = 224 位

- PPS =（8 Kbps 编解码比特率）/（160 位）= 50 pps

注意：160 位 = 20 字节（默认语音有效载荷）* 8 位/字节

- 每呼叫的带宽 = 语音数据包大小（224 位）* 50 pps = 11.2 Kbps

在Cisco Call Manager和Cisco IOS网关中配置语音负载大小

可以在Cisco Call Manager和Cisco IOS网关中配置每个数据包的语音负载大小。

注意：如果Cisco IOS网关在Cisco Call Manager中配置为媒体网关控制协议(MGCP)网关，所有编解码器信息（编解码器类型、负载大小、语音活动检测等）都由Cisco CallManager控制。

在Cisco Call Manager中，每个数据包的语音负载大小可在系统范围内进行配置。此属性在Cisco Call Manager Administration(Service > Service Parameters > select_server > Cisco Call Manager)中使用以下三个服务参数设置：

- PreferredG711MillisecondPacketSize - （默认设置：20 毫秒.可用设置：10、20 和 30 毫秒。）

- PreferredG729MillisecondPacketSize -（默认设置：20 毫秒.可用设置：10、20、30、40、50 和 60 毫秒。）

- PreferredG723MillisecondPacketSize -（默认设置：30 毫秒.可用设置：30 和 60 毫秒。）

在Cisco Call Manager中，语音有效载荷大小是以毫秒(ms)采样为单位配置的。根据编解码，下表将部分毫秒采样映射到实际有效载荷大小（单位为字节）。

编解码器

语音有效载荷大小（毫秒）

语音有效载荷大小（字节）

备注

G.711

20 毫秒（默认）

160 字节

注意，始终保持编解码比特率。例如：G.711 编解码 = [240 字节 * 8（位/字节）]/30 毫秒 = 64 Kbps

30 毫秒

240 字节

G.729

20 毫秒（默认）

20 字节

30 毫秒

30 字节

G.723

30 毫秒（默认）

在 Cisco IOS 网关中，Cisco IOS 软件版本 12.0(5)T 添加了一项功能，该功能允许通过 CLI 更改 VoIP 数据包的语音负载大小（以字节为单位）。新命令语法如下：

Cisco-Router(config-dial-peer)#codec g729r8 bytes ?

Each codec sample produces 10 bytes of voice payload.

Valid sizes are:

10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120,

130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 230

Any other value within the range will be rounded down to nearest valid size.

<10-230> Choose a voice payload size from the list above

更改语音负载大小的影响

每数据包的编解码样本数是确定 VOIP 呼叫带宽和延迟的另一个因素。编解码规定样本的大小，但数据包中存储的样本总数将影响每秒发送的数据包数。

增大语音有效载荷大小时，VoIP 带宽将减少，且整体延迟增加。以下示例将说明这种情况：

- 语音有效载荷大小为 20 字节（20 毫秒）的 G.729 呼叫：（40 字节的 IP/UDP/RTP 报头 + 20 字节的语音有效载荷）* 8 位/字节 * 50 pps = 24 Kbps

- 语音有效载荷大小为 40 字节（40 毫秒）的 G.729 呼叫：（40 字节的 IP/UDP/RTP 报头 + 40 字节的语音有效载荷）* 8 位/字节 * 25pps = 16 Kbps

注意：

- 此计算中没有考虑 L2 报头。

- 这些计算表明，虽然负载大小增加了一倍，但每秒所需的数据包数随之减少了一半。

- 根据国际电信联盟电信标准化部门 (ITU-T) G.114 规范中的定义，建议的语音单向总延迟为 150 毫秒。对于专用网络，200 毫秒是一个合理的目标，而 250 毫秒必须是最大值。

语音活动检测

使用电路交换语音网络，不管有多少会话处于讲话状态，有多少会话处于沉默状态，所有语音呼叫都使用 64 Kbps 的固定带宽链路。使用 VoIP 网络，所有会话和沉默状态都进行了分组。使用语音活动检测 (VAD)，可以抑制无声数据包。

在超时期间以及平均呼叫容量超过 24 次时，VAD 最大可节省 35% 的带宽。这些节省不是在每个单独语音呼叫或任何特定点测量上实现的。就网络设计和带宽工程而言，不必考虑 VAD，特别是在同步传送 24 次以下语音呼叫的链路上时。有多种功能（例如保持音乐和传真）可使 VAD 无效。当针对全语音呼叫带宽设计网络时，VAD 提供的所有节省都可用于数据应用。

VAD 还提供舒适噪声生成 (CNG)。 由于您可能弄错断开呼叫的静音，因此 CNG 提供本地生成的白噪声，这样呼叫就看似正常地连接到呼叫双方。G.729 附录 B 和 G.723.1 附录 A 包括集成 VAD 功能，否则分别执行相同的 G.729 和 G.723.1。

在Cisco Call Manager中，可以使用以下服务参数启用（默认情况下禁用）VAD:

- SilenceSuppressionSystemWide - 此参数为所有瘦客户端终端选择 VAD 设置（例如，思科 IP 电话和瘦客户端网关）

- SilenceSuppressionWithGateways - 此参数为所有 MGCP 网关选择 VAD 设置。这对 H.323 网关没有影响。H.323 网关上的 VAD 必须在网关上禁用。

您可以在Cisco Call Manager Administration(Service > Service Parameters > select_server > Cisco CallManager)下找到这些服务参数。

RTP 报头压缩或压缩的 RTP (cRTP)

所有 VoIP 数据包都由两部分组成：语音样本和 IP/UDP/RTP 报头。虽然语音样本由数字信号处理器 (DSP) 压缩并且大小因使用的编解码而异，但这些报头的长度为恒量，即 40 字节。当与默认 G.729 呼叫中的 20 字节语音样本相比时，这些报头产生了相关数量的开销。使用 cRTP，可以将这些报头压缩到 2 字节或 4 字节。此压缩可大幅节省 VoIP 带宽。例如，不使用 cRTP 时，默认 G.729 VOIP 呼叫消耗 24 千字节，而启用 cRTP 时只消耗 12 千字节。

由于 RTP 逐个压缩每个链路上的 VOIP 呼叫，因此 IP 链路的两端需要配置 RTP。

在 Cisco IOS 软件版本 12.0.5T 及更低版本中，cRTP 采用进程交换模式，这会由于 CPU 性能问题而导致严重限制 cRTP 解决方案的可扩展性。大多数这些问题已通过在 Cisco IOS 软件版本 12.0.7T 中引进多种 cRTP 性能改进加以解决。以下是历史记录概要。

- cRTP 在 Cisco IOS 软件版本 12.0.5T 及早期版本中属于进程交换。

- 在Cisco IOS软件版本12.0.7T和12.1.1T中，引入了对cRTP的快速交换和思科快速转发交换支持。

- 在 Cisco IOS 软件版本 12.1.2T 中，引入了算法性能改进。

当您将cRTP移至快速交换路径时，会显着增加VoIP网关和中间路由器可以处理的RTP会话（VoIP呼叫）数量。

压缩试探

由于 RTP 本身没有不同的数据包报头，因此通过使用试探法将 RTP 流（用于cRTP）与 UDP 流(CUDP)区分开来。当前用于检测压缩 RTP 数据包压缩状况的确切试探如下：

- 目标端口号为偶数。

- 目标端口号在 16384-32767 或 49152-65535 范围内。

- RTP 版本字段设置为 2。

- RTP 分机字段设置为 0。

相关信息

- 语音技术支持

- 语音和统一通信产品支持

- Cisco IP 电话故障排除

- 技术支持 - Cisco Systems