这里我们看到一些关于 VoIP 的重要信息,理解 VoIP 需要这些信息。
要建立 VoIP 通信,我们需要
Base architecture Voice )) ADC - Compression Algorithm - Assembling RTP in TCP/IP ----- ----> | <---- | Voice (( DAC - Decompress. Algorithm - Disass. RTP from TCP/IP -----
这由硬件完成,通常由集成 ADC 的声卡完成。
如今,每张声卡都允许您以 16 位和 22050 Hz 的频带进行转换(为了采样,根据奈奎斯特原理,您需要 44100 Hz 的频率),从而获得 2 字节 * 44100(每秒采样数)= 88200 字节/秒,立体声流为 176.4 千字节/秒的吞吐量。
对于 VoIP,我们不需要如此高的吞吐量(176 千字节/秒)来发送语音数据包:接下来我们将看到用于它的其他编码。
现在我们有了数字数据,我们可以将其转换为可以快速传输的标准格式。
PCM, Pulse Code Modulation, Standard ITU-T G.711
ADPCM, Adaptive differential PCM, Standard ITU-T G.726
它仅转换实际语音数据包和前一个语音数据包之间的差异,需要 32 kbps(参见 ITU-T G.726 标准)。
LD-CELP, Standard ITU-T G.728 CS-ACELP, Standard ITU-T G.729 and G.729a MP-MLQ, Standard ITU-T G.723.1, 6.3kbps, Truespeech ACELP, Standard ITU-T G.723.1, 5.3kbps, Truespeech LPC-10, able to reach 2.5 kbps!!
最后这些协议是最重要的,因为它们可以使用源编码保证非常低的最小带宽;此外,G.723.1 编解码器具有非常高的 MOS(平均意见得分,用于衡量语音保真度),但要注意它们所需的处理性能,高达 26 MIPS!
现在我们有了原始数据,我们想将其封装到 TCP/IP 协议栈中。我们遵循以下结构
VoIP data packets RTP UDP IP I,II layers
VoIP 数据包存在于 RTP(实时传输协议)数据包中,而 RTP 数据包又位于 UDP-IP 数据包内部。
首先,VoIP 不使用 TCP,因为它对于实时应用程序来说太重了,因此改用 UDP(数据报)。
其次,UDP 无法控制数据包到达目的地的顺序或到达时间(数据报概念)。这两者对于整体语音质量(您能多好地理解对方在说什么)和对话质量(进行对话的容易程度)都非常重要。RTP 解决了这个问题,使接收方能够将数据包放回正确的顺序,并且不会等待太久那些丢失或花费太长时间到达的数据包(我们不需要每个语音数据包,但我们需要连续的、有序的许多数据包流)。
Real Time Transport Protocol 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M| PT | sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | timestamp | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | synchronization source (SSRC) identifier | +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ | contributing source (CSRC) identifiers | | .... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
其中
有关 RTP 协议及其所有应用的完整描述,请参见相关的 RFC 1889 和 1890。
VoIP 中还使用了其他协议,例如 RSVP,它可以管理服务质量 (QoS)。
RSVP 是一种信令协议,它在每个支持它的网络跳跃点中请求一定的带宽和延迟。
有关 RSVP 的详细信息,请参见 RFC 2205
我们多次说过,VoIP 应用程序需要实时数据流,因为我们期望交互式的数据语音交换。
不幸的是,TCP/IP 不能保证这种目的,它只是尽力而为。因此,我们需要引入一些技巧和策略来管理我们经过的每个路由器中的数据包流。
所以这里有:
有关 QoS 的详尽信息,请参见 IETF 的 区分服务。
H.323 协议被使用,例如,Microsoft Netmeeting 用于进行 VoIP 呼叫。
该协议允许各种元素相互通信
h323 不仅允许 VoIP,还允许视频和数据通信。
关于 VoIP,h323 可以承载音频编解码器 G.711、G.722、G.723、G.728 和 G.729,而对于视频,它支持 h261 和 h263。
有关 h323 的更多信息,请访问 Openh323 标准,此 h323 网站 和其标准描述:ITU H 系列建议。
您可以在各种应用程序软件中找到它的实现,例如 Microsoft Netmeeting、Net2Phone、DialPad、... 以及您可以在 Openh323 网站 找到的免费软件产品。