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 。
全新PHP短网址系统URL缩短器平台,它使您可以轻松地缩短链接,根据受众群体的位置或平台来定位受众,并为缩短的链接提供分析见解。系统使用了Laravel框架编写,前后台双语言使用,可以设置多域名,还可以开设套餐等诸多功能,值得使用。链接: https://pan.baidu.com/s/1ti6XqJ22tp1ULTJw7kYHog?pwd=sarg 提取码: sarg文件解压密码 www.wn7...
在刚才更新Vultr 新年福利文章的时候突然想到前几天有网友问到自己有在Vultr 注册账户的时候无法用支付宝付款的问题,当时有帮助他给予解决,这里正好顺带一并介绍整理出来。毕竟对于来说,虽然使用的服务器不多,但是至少是见过世面的,大大小小商家的一些特性特征还是比较清楚的。在这篇文章中,和大家分享如果我们有在Vultr新注册账户或者充值购买云服务器的时候,不支持支付宝付款的原因。毕竟我们是知道的,...
美国知名管理型主机公司,2006年运作至今,虚拟主机、VPS、云服务器、独立服务器等业务全部采用“managed”,也就是人工参与度高,很多事情都可以人工帮你处理,不过一直以来价格也贵。也不知道knownhost什么时候开始运作无管理型业务的,估计是为了扩展市场吧,反正是出来较长时间了。闲来无事,那就给大家介绍下“unmanaged VPS”,也就是无管理型VPS,低至5美元/月,基于KVM虚拟,...