VoIP协议分析

你知道IP电话的工作原理,知道语音是怎样通过IP(VoIP)网络的:声音信号被转换成数字信号,然后被分割成一个个的小数据包,通过Internet或者TCP/IP网络进行传输。但是你可能对那些听到的VoIP连接协议倍感迷糊。它们之间有什么区别?它们之间如何相互影响?为什么它们种类这么多?我们今天就来看看VoIP通讯中常见的一些公用协议。

呼叫信号协议
最频繁被引用的VoIP协议非“呼叫信号协议”莫属。VoIP网络使用这些协议定位通讯另一端的设备,然后在发送方和接收方之间协商交流。

最常用到的呼叫信号协议有两种:

# SIP协议(会话初始化协议,Session Initiation Protocol,简称SIP),由Internet工程任务组定义(IETF,Internet Engineering Task Force)
# H.323,由国际电信联盟定义(ITU,International Telecommunications Union)


这两个协议基本上做的是同样的事情,绝大多数设备都会使用两者中的一种。不过,他们实现VoIP连接的工作模式却完全不同;SIP是基于ASCII 码,而H.323却是基于二进制代码的。虽然H.323一开始更为流行,而且许多人因为它具有协同普通公众电话网(PSTN)工作以及传输视频的能力而感觉它很高级,SIP却因为许多VoIP制造商的支持而日益流行起来。许多用户也发现SIP更容易配置。


SIP
SIP是一种应用程序层面的协议,提供了一种类似呼叫及呼叫号码的识别方式,呼叫者和接收者的授权,以及对于呼叫的转移。在识别呼叫者和接收方时,SIP的地址非常类似于PSTN(公众电话网)的电话号码,只不过SIP的地址看起来更像是email地址;具体格式是:sip:userID@getway.com。用户注册他们的地址到SIP服务器(被叫做“注册者”)上,然后呼叫者向服务器发送一次SIP请求。用户可以通过TCP或UDP协议发送SIP信息。

你也可以在网页或者HTML文档中加入SIP地址,以便他人点击后和你语音联络。

H.323
H.323是一系列不同种类、完成不同任务的协议组合而成。这套协议中的一些成员有:
# H.225.0,用于建立连接
# H.332,用于大型会议
# H.235,用于提供安全和认证
# H.245,用于协商频道使用
# RAS,用于处理注册,管理和状态信息

想查看H.323协议的全部列表,并了解每个协议的作用,可以参看: http://www.protocols.com/pbook/h323.htm

网关协议
一个网关,在它的普通意义上,是一个在两种网络间提供接口的设备。一个VoIP网关则将一个基于IP的网络连到普通公众电话网上,或者连到一个正常模拟电话上。VoIP网关有两个部分:
# 媒体网关控制器(MGC,media gateway controller);也被称作软交换机。
# 媒体网关(MG,media gateway)

另一套协议,叫做设备控制协议,将VoIP网关中的电话控制逻辑和媒体处理逻辑分开。这些协议包括有:
# 媒体网关控制协议(MGCP,Media Gateway Control Protocol)
# H.248(也被称作媒体网关控制器,或者Megaco,Media Gateway Controller)

请求注释协议(RFC)3435定义了MGCP。它使用一个呼叫代理指挥和控制MG以及信号网关。多重呼叫代理建立了容错机制。MGC使用MGCP来查找VoIP终端的位置和性能。

IETF和ITU对同一标准使用不同的名字,前者用Megaco,后者使用H.248。两个组织通过联合工作发展了协议。MGCP是副产品,是设计被用于提供VoIP网关的远程控制,以及其他会话-意识的设备。MGCP和Megaco很相似,但是Megaco支持的网络类型更多,包括ATM网络。

VoIP网络一般使用Megaco和MGCP这样的中央架构;MGC/呼叫代理是中央设备,和媒体网关通讯。而网络则依赖于使用SIP和H.323的分布式结构。

实时传输协议(RTP)以及相关协议
一旦MG从公共电话网回路中取得声音信号,RTP就负载着它穿过TCP/IP网络。RTP是一个用于通过IP网络传输声音和视频的标准。RFC 3550定义了它,它和SIP以及H.323一起协同工作。一个VoIP通话使用两个RTP流,一个方向一个。

RTP一般使用高位端口号(16384-32767),但是对于RTP通讯来说却没有固定的标准端口。RTP自己也不提供质量控制服务(QoS,Quality of Service)。RTP和RTP控制协议(RTCP,RTP control protocol)一起工作,后者提供了对于RTP通讯的控制信息。RTP自行掌握对数据的传输。RTP能够收集相关信息(发送包数,丢包数,等等)以报告QoS结果。

安全实时传输协议(SRTP,Secure Real Time Transport Protocol)保证了RTP数据的安全,认证,以及完整性。SRTCP(安全RTCP,Secure RTCP)则为RTPC提供了同样的安全服务。SRTP和SRTCP使用高级加密标准(以前被称作Rijndael),该标准已被美国政府采用以取代数据加密标准(DEC,Data Encryption Standard)。

专有协议
并不是所有的VoIP部署都使用标准协议。Skype和其他VoIP设备使用专有协议。Skype的协议使用点对点的操作模式,而不是绝大多数VoIP客户使用的C/S(客户端/服务器)模式。因为它的编码是不公开源代码的,所以想了解它的协议以及具体工作方式就非常困难。

你可能也听说过SCCP(信令连接控制协议,Skinny Client Control Protocol),这是一个Cisco用于在呼叫管理(一个H.323代理)和他们的VoIP电话之间通讯的专有协议。H.323代理使用SCCP和Skinny客户端进行通讯。

总结

当试图弄清楚VoIP的通讯协议时,很容易会被弄得头昏脑胀,但是要想弄明白VoIP是如何工作的——以及何种部署能工作的最好,了解协议还只是第一步。


http://blog168.chinaunix.net/space.php?uid=15089195&do=blog&id=1758916

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值