大约 3-13k/s ,根据对方的带宽情况、网络状况、以及 CPU 性能等而有所不同。
由于网络的不稳定性,消耗的流量也不是固定的,但是基本上都不会相差太多,微信语音通话一分钟消耗流量大致为1200k;
扩展资料:
无论在呼叫控制信令中使用哪一种协议,话音包的传输基本上都是基于实时传输协议RFC 1889 / RFC 3350协议进行网络传输。这是IETF开发的用于传输实时媒体流的协议。
几乎所有与voip相关的产品都使用RTP来发送和接收语音信息。语音包的结构如下所示。它被包装在IP层上并发送到网络上。有效载荷的数量取决于编码。
一般来说,网络电话的G.729码较多,而营办商提供的IP电话服务的g.711码较多。711是也用于ISDN的编解码器。它的音质更好,但是比G.729有更多的信息。
729是一个高压缩比和声音质量的编解码器。在传送语音信息的过程中,g.711需要64kbps,而G.729只需要8kbps。两者通常以20msec的间隔发送数据包(时间可能不同),因此我们可以计算实际的数据包大小。
关于语音带宽的解释,请见下文。不论在呼叫控制信令上采用何种协议,语音包的传输基本上都基于RTP(real-time transport protocol RFC 1889/RFC 3350)协议在网络上传输。这是一种为传输实时媒体流而由IETF制定的协议。
几乎所有的VoIP相关产品,都利用RTP收发语音信息。语音包的结构如下所示,在IP层上封装后被送出到网络上,Payload部分的信息量多少取决于所采用的编码方式。
一般说来,在VoIP的世界里采用G.729编码的较多,而在运营商提供的IP电话服务中则是G.711较多。G.711是在ISDN网中也被使用的 CODEC,音质较好,但与G.729相比信息量较多。而G.729则是一种压缩率高且音质也较好的CODEC。在传输一路语音信息时,G.711所需的带宽是64kbps,而G.729只需要8kbps。两者一般都以20msec间隔(这个间隔可变)发送数据包,因此我们可以推算出实际的包大小。
语音信息是一种模拟信号,而将语音转换成数据包首先需要将模拟信号转换为数字信号(数-模转换)。相信大家对此都有所了解,将模拟式的语音信息用数字式传输的过程大致如下图所示。
现有的电话交换网中采用的编码方式是G.711(PCM),在通话的两端必须采用同样的方式分别进行编码/解码操作才能实现语音通话,这里的编码/解码功能合称为CODEC(COder/DECoder)。
VoIP应用中常见的两种具有代表性的CODEC如下:
G.711(PCM方式:PCM=脉码调制 :Pulse Code Modulation)
? 采样率:8kHz
? 信息量:64kbps/channel
? 理论延迟:0.125msec
? 品质:MOS值4.10
G.729(CS-ACELP方式:Conjugate Structure Algebraic Code Excited Linear Prediction)
? 采样率:8kHz
? 信息量:8kbps/channel
? 帧长:10msec
? 理论延迟:15msec
? 品质:MOS值3.9
接下来就以这两种CODEC为基础进行探讨。光使用CODEC将语音信息数字化还不算是将语音数据包封装完成。
为了完成封包工作,VoIP终端内置了被称为DSP(Digital Signal Processor)的芯片。简单地说,就是对模拟信号编码后产生的大量数字信息进行实时处理的芯片。
实际的封包过程,还需要使用RTP协议将语音数据包发送到网络上去。RTP包中,包括载荷类别(CODEC的类别)、序列号(语音包的顺序)、时间戳(语音包的发送间隔)等信息,接受方就以这些信息为基础将收到的数字信息还原为模拟的语音信号。
(4)计算语音数据包的大小和所需带宽
实际的语音信息在IP层上封装后的数据包格式如下。
IP Header(20Byte)+UDP Header(8Byte)+RTP Header(12Byte)+Payload(净载部分,可变长)
将语音信息封装为IP包在3层以上就必然产生40Byte的额外开销,那么使用G.711/G.729 CODEC分别以20msec周期封装语音信息包的话,所生成的包长度如下。
G.711时
每秒送出的包为:1000/20msec = 50pps
一路语音信息所需的带宽64kbps = 50pps×Payload大小
Payload大小 =64000/50=1280bit=160byte
语音包的长度为200byte。
G.729时
每秒送出的包为:50pps
一路语音信息所需的带宽8kbps=50pps×Payload大小
Payload大小= 8000/50 =160bit=20byte
语音包的长度为60byte。
在实际应用中具体应该使用哪种CODEC呢?仅从语音通话业务的角度来看是用哪一种CODEC都没有问题的。
但是,如果需要利用传真服务或是与VoIP运营商互联的话,就必须使用G.711。而拥有多处分支机构的企业,用于分支间互联的往往不会是与LAN等同的10/100Mbps的线路。多数分支甚至还在用128kbps的线路互联。
此时如果选择G.711的话,光是语音信息就有可能把可用带宽消耗光。有些产品支持为不同的连接对象使用不同的CODEC。利用这一功能,就可以做到在窄带连接上使用G.729,而在宽带连接上使用G.711。如果采用这类产品,为了统一运用管理策略,可以考虑使用“分支间采用G.729;同一LAN内采用G.711”的设计。但如果有需要在分支间使用传真服务,则必须在分支间也使用G.711。
此外,在进行带宽计算时,还必须考虑二层上的开销。具体到采用以太网传输时,必须加上以太帧的开销。
以太网传输所需的额外开销包括
? 前同步(Preamble):7byte(为了通知帧发送开始而取同步的信号)
? SFD:1byte(Start Frame Delimiter:数据帧开始部分)
? 对端MAC地址:6byte
? 源MAC地址:6byte
? 协议:2byte(VLAN时包含于802.1q)
? 802.1q:4byte(使用VLAN时)
? FCS:4byte
下面再举两个实例。
实例1:以太帧带VLAN Tag
? Preamble:7byte
? SFD:1byte
? 对端MAC地址:6byte
? 源MAC地址:6byte
? 802.1q:4byte(使用VLAN时)
? FCS:4byte
根据实例1的计算可知,在使用VLAN功能的以太网上,每个三层的数据包需要加上28byte的开销。
实例2:不带VLAN Tag的以太帧
? Preamble:7byte
? SFD:1byte
? 对端MAC地址:6byte
? 源MAC地址:6byte
? 协议类别:2byte
? FCS:4byte
根据实例2的计算可知,无VLAN环境下,每个3层包在以太网上需要的额外开销是26byte。
最后来简单计算一下不同CODEC下所需的实际带宽。
计算的前提是RTP包送出间隔为20msec且2层上不使用VLAN,此时每个包需要附加还必须加上40Byte(3层以上的开销)+26Byte(2层的开销)=66Byte的额外开销。而每一秒钟共产生50个包(50pps),因此除了净载的语音信息(64kbps)外开销部分所占用的带宽是66Byte×8×50=26.4kbps。
由此得出G.711在实际传输中需要占用 90.4kbps的带宽,而在实际的网络设计中一般都是按照每路通话100kbps来进行估算的。G.729所占的带宽是34.4kbps,虽然加上额外开销后它所需的带宽仍远低于G.711,但考虑到消耗带宽中包头的开销和净载分别占用的比例,不免令人觉得有些遗憾。
这样,就需要采用包头压缩等技术来进一步提高带宽的利用效率了。
IP语音带宽通常取决与所用编码格式,采用 G.711语音编码时,一个会话将建立两个64kbps的RTP流,在UDP/IP/Ethernet上,并非在所有的时间都使用全部的带宽。一种编码方法发送64kbps的数据流,会导致大得多的IP网的数据流,引起额外带宽的主要原因是IP和UDP的报文头。当IP语音发送小的数据包时,在大多数时候,报文头实际上要比包中的数据大得多。下面的表列出了各种编码方法,所需要的带宽:编码方法 编码所需带宽 实际所需要的网络带宽
G.711 64 Kbps87.2 Kbps
G.729 8 Kbps 31.2 Kbps
G.723.1 6.4 Kbps 21.9 Kbps
G.723.1 5.3 Kbps 20.8 Kbps
内部分机互通时,由于局域网会具备10M或100M的带宽,因此不用担心带宽不足的情况。
总部与分支机构通信时,假设总部有50个人,以较大的收敛比来结算,例如5:1,即同时有10路并发,采用G.711编码需要大概0.1M的带宽,采用G.729编码需要大概0.03M的带宽,采用G.723编码需要大概0.02M的带
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)