1.语音数据包封装的实现与CODEC不论在呼叫控制信令上采用何种协议语音包的传输基本上都基于RTP real-time transport protocol RFC 1889RFC 3350协议在网络上传输。
这是一种为传输实时媒体流而由IETF制定的协议。
几乎所有的VoIP相关产品都利用RTP收发语音信息。语音包的结构如下所示在IP层上封装后被送出到网络上 Payload部分的信息量多少取决于所采用的编码方式。
一般说来在VoIP的世界里采用G.729编码的较多而在运营商提供的IP电话服务中则是G.71 1较多0G.71 1是在ISDN网中也被使用的CODE,音质较好但与G.729相比信息量较多。而G.729则是一种压缩率高且音质也较好的CODEC在传输一路语音信息时G.71 1所需的带宽是64kbps,而G.729只需要8kbps。两者一般都以20msec间隔这个间隔可变发送数据包因此我们可以推算出实际的包大小。
语音信息是一种模拟信号而将语音转换成数据包首先需要将模拟信号转换为数字信号数-模转换 。相信大家对此都有所了解将模拟式的语音信息用数字式传输的过程大致如下图所示。
现有的电话交换网中采用的编码方式是G.71 1 PCM在通话的两端必须采用同样的方式分别进行编码/解码操作才能实现语音通话 这里的编码/解码功能合称为CODECCOder/DECode0r
VoIP应用中常见的两种具有代表性的CODE如下
G.71 1 (PCM方式PCMk脉码调制Pulse Code Modulation )
@采样率 8kHz
@信息量 64kbpschannel
@理论延迟 0.125msec
@品质MOSS 4.10
G.729(CS-ACEL方式Conjugate Structure Algebraic CodeExcited Lin earPred iction )
@采样率 8kHz
@信息量 8kbpschannel
@帧长 10msec
@理论延迟 15msec
@品质MOSS 3.9
接下来就以这两种CODE为基础进行探讨。光使用CODE将语音信息数字化还不算是将语音数据包封装完成0
为了完成封包工作 VoIP终端内置了被称为DSP Digital Signal Processor 的芯片0简单地说就是对模拟信号编码后产生的大量数字信息进行实时处理的
丄
芯片0
实际的封包过程还需要使用RTP协议将语音数据包发送到网络上去。 RTP包中包括载荷类别CODE的类别 、序列号语音包的顺序 、时间戳语音包的发送间隔 等信息接受方就以这些信息为基础将收到的数字信息还原为模拟的
语音信号。
2.计算语音数据包的大小和所需带宽
实际的语音信息在IP层上封装后的数据包格式如下。
IP Header 20Byte +UDP Header 8Byte +RTP Header 12Byte +Payload 净载部分可变长
将语音信息封装为IP包在3层以上就必然产生40Byte的额外开销那么使用
G.71 1/G.729CODEC分别以20msec周期封装语音信息包的话所生成的包长度如下。
G.71 1时
每秒送出的包为 1000/ 20msec= 50pps
一路语音信息所需的带宽64kbps= 50ppsxPayload大小
Payload大小=64000/50= 1280bit= 160byte语音包的长度为200byte。
G.729时
每秒送出的包为 50pps
一路语音信息所需的带宽8kbps= 50ppsxPayload大小Payload大小= 800050=160bit=20byte语音包的长度为60byte。
在实际应用中具体应该使用哪种CODE呢仅从语音通话业务的角度来看是用哪一种CODE都没有问题的。
但是如果需要利用传真服务或是与VoIP运营商互联的话就必须使用G.71 1 。而拥有多处分支机构的企业用于分支间互联的往往不会是与 LAN等同的10/100Mbps的线路。多数分支甚至还在用128kbps的线路互联。
此时如果选择G.71 1的话光是语音信息就有可能把可用带宽消耗光。有些产品支持为不同的连接对象使用不同的CODEC利用这一功能就可以做到在窄带连接上使用G.729,而在宽带连接上使用G.71 1 。如果采用这类产品为了统一运用管理策略可以考虑使用“分支间采用 G.729;同一LAN内采用G.71 1 ”的设计。但如果有需要在分支间使用传真服务则必须在分支间也使用G.71 1 。
此外在进行带宽计算时还必须考虑二层上的开销。具体到采用以太网传输时必须加上以太帧的开销。
以太网传输所需的额外开销包括
@前同步Preamble : 7byte 为了通知帧发送开始而取同步的信号
@SFD 1 byte Start Frame Del imiter 数据帧开始部分
@对端MAC地址 6byte
@源MAC地址 6byte
@协议 2byte VLAN时包含于802.1 q
@802.1q 4byte 使用VLAN时
@FCS4byte
下面再举两个实例。
实例1 以太帧带VLAN Tag
@Preamble 7byte
@SFD 1 byte
@对端MAC地址 6byte
@源MACM址 6 b yte
@802.1 q 4byte 使用VLAN时
@FCS 4byte
根据实例1的计算可知在使用VLAN功能的以太网上每个三层的数据包需要加上28byte的开销。
实例2:不带VLAN Tag的以太帧
@Preamble 7byte
@SFD 1 byte
@对端MAC地址 6byte
@源M ACM址 6 b yte
@协议类别 2byte
@FCS 4byte
根据实例2的计算可知无VLAN环境下每个3层包在以太网上需要的额外开销是26byte。
最后来简单计算一下不同CODE下所需的实际带宽。
计算的前提是RTP包送出间隔为20msec且2层上不使用VLAN此时每个包需要附加还必须加上40Byte 3层以上的开销+26Byte 2层的开销=66Byte的额外开销。而每一秒钟共产生50个包50pps ,因此除了净载的语音信息64kbps 外开销部分所占用的带宽是66Byte x8X50=26.4kbps。
由此得出G.71 1在实际传输中需要占用90.4kbps的带宽而在实际的网络设计中一般都是按照每路通话100kbps来进行估算的。G.729所占的带宽是34.4kbps 虽然加上额外开销后它所需的带宽仍远低于 G.71 1 但考虑到消耗带宽中包头的开销和净载分别占用的比例不免令人觉得有些遗憾。
这样就需要采用包头压缩等技术来进一步提高带宽的利用效率了
Codec BR NEB
G.71 1 64 Kbps 87.2 Kbps G.7298 Kbps 31 .2 Kbps G.723.1 6.4 Kbps 21 .9 Kbps G.723.1 5.3 Kbps 20.8Kbps G.72632 Kbps 55.2 Kbps G.72624 Kbps 47.2 Kbps G.72816 Kbps 31 .5 Kbps iLBC 15 Kbps 27.7Kbps
BR=Bit rate
NEB=Nominal Ethernet Bandwidth(one direction)
根据我的使用经验
8K的G.729加上IP封装后达到32K,
为了防封杀还有的用户使用 IP Sec设备将语音做成VPN这样G.729加上IP封装再加
上VPN会达到60多K 。
CloudCone的[2021 Flash Sale]活动仍在继续,针对独立服务器、VPS或者Hosted email,其中VPS主机基于KVM架构,最低每月1.99美元,支持7天退款到账户,可使用PayPal或者支付宝付款,先充值后下单的方式。这是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,也经常提供一些促销套餐,数据中心在洛杉...
搬瓦工最新优惠码优惠码:BWH3HYATVBJW,节约6.58%,全场通用!搬瓦工关闭香港 PCCW 机房通知下面提炼一下邮件的关键信息,原文在最后面。香港 CN2 GIA 机房自从 2020 年上线以来,网络性能大幅提升,所有新订单都默认部署在香港 CN2 GIA 机房;目前可以免费迁移到香港 CN2 GIA 机房,在 KiwiVM 控制面板选择 HKHK_8 机房进行迁移即可,迁移会改变 IP...
10gbiz发布了9月优惠方案,针对VPS、独立服务器、站群服务器、高防服务器等均提供了一系列优惠方面,其中香港/洛杉矶CN2 GIA线路VPS主机4折优惠继续,优惠后最低每月仅2.36美元起;日本/香港独立服务器提供特价款首月1.5折27.43美元起;站群/G口服务器首月半价,高防服务器永久8.5折等。这是一家成立于2020年的主机商,提供包括独立服务器租用和VPS主机等产品,数据中心包括美国洛...