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 。
vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...
HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...
WordPress专业外贸企业网站搭建模版,特色专业外贸企业风格 + 自适应网站开发设计 通用流行的外贸企业网站模块 + 更好的SEO搜索优化和收录 自定义多模块的产品展示功能 + 高效实用的后台自定义模块设置!采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera...