2024年2月10日发(作者:)
VoIP的协议
在浩瀚的IP网络中要如何正确的寻找到要通话的对方并建立对答,同时也能依照彼此资料的处理能力来传送语音数据,这中间必须藉由国际电信组织所拟定的标准协议才能达到。如今,市面上的网络电话大致都会遵循H.323、MGCP及SIP等3种标准协议。虽然目前产品仍以支持H.323为多,但SIP的支持将会成为今后主流,本文顺带介绍了应用较多的Skype。
1.H.323
ITU-T 国际电联第16研究组首先在1996年通过H.323第一版的制定工作,同时并在1998年完成第二版协议的拟定。原则上,该协议提供了基础网络(Packet Based Networks;PBN)架构上的多媒体通讯系统标准,并为IP网络上的多媒体通讯应用提供了技术基础。
H.323并不依赖于网络结构,而是独立于操作系统和硬件平台之上,支持多点功能、组播和频宽管理。H.323具备相当的灵活性,可支持包含不同功能节点之间的视讯会议和不同网络之间的视讯会议。
H.323并不支持群播(Multicast)协议,只能采用多点控制单元(MCU)构成多点会议,因而同时只能支持有限的多点用户。H.323也不支持呼叫转移,且建立呼叫的时间也比较长。
早期的视讯会议多半支持H.323协议,例如微软NetMeeting、Intel Internet Video
Phone等都是支持H.323协议的视讯会议软件,亦为现今VoIP的前辈。
不过H.323协议本身具有一些问题,例如采用H.323协议的IP电话网络在接入端仍要经过当地的PSTN电路交换网。而之后制定出的MGCP等协议,目的即在于将H.323网关进行功能上的分解,也就是划分成负责媒体流处理的媒体网关(MG),以及掌控呼叫建立与控制的媒体网关控制器(MGC)两个部分。
虽然如今微软的Windows Mesenger则已改采SIP标准,且SIP标准隐隐具有取代H.323的势头。但目前仍有许多网络电话产品依旧支持H.323协定。
(Session Initiation Protocol)
SIP是由IETF所制定,其特性几乎与H.323相反,原则上它是一种比较简单的会话初始化协议,也就是只提供会话或呼叫的建立与控制功能。SIP协议可支持多媒体会议、远程教学及Internet电话等领域的应用。
SIP同时支持单点播送(Unicast)及群播功能,换句话说,使用者可以随时加入一个已存在的视讯会议之中。在网络OSI属性上,SIP属于应用层协议,所以可透过UDP或TCP协议进行传输。
SIP另一个重要特点就是它属于一种基于文本的协议,采用SIP规则资源定位语言描述(SIP Uniform Resource Locators),因此可方便地进行撰改或测试作业,所以比起H.323来说,其灵活性与扩展性的表现较好。
SIP的URL甚至可以嵌入到Web页面或其它超文本连结之中,用户只需用鼠标一点即可发出呼叫。所以与H.323相比,SIP具备了快速建立呼叫快与支持电话号码之传送等特点。
原则上,MGCP协定与前两者皆不同,H.323和SIP协议是专门针对网络电话及IP网络所提出的两套各自独立的标准,两者间并不兼容及互通。反观MGCP协议,则与IP电话网络无关,而只牵涉到网关分解上的问题,也因为如此,该协议可同时适用于支持H.323或SIP协议的网络电话系统。
MGCP协议制定的主要目的即在于将网关功能分解成负责媒体流处理的媒体网关(MG),以及掌控呼叫建立与控制的媒体网关控制器(MGC)两大部分。同时MG在MGC的控制下,实现跨网域的多媒体电信业务。
由于MGCP更加适应需要中央控管的通讯服务模式,因此更符合电信营运商的需求。在大规模网络电话网中,集中控管是件非常重要的事情,透过MGCP则可利用MGC统一处理分发不同的服务给MG。
协议
无论传统电信运营商愿意看到与否,以Skype为代表的VoIP软件已经在全球拥有越来越多的拥趸。
Skype的工作原理:
1. Skype网络结构
与常规的电信业务网络不同的是,Skype的网络中除了注册服务器,没有其他任何集中的服务器,只是将用户节点分为普通节点和超级节点。Skype的系统连接结构如图2所示
注册服务器是Skype惟一需要维护的设备,它负责完成客户端的注册,存储并管理用户名和密码信息,当用户登录系统时,对用户进行身份认证。注册服务器还需要检验并保证用户名的全球惟一性。
普通节点即普通主机终端,只需要下载了Skype的应用,就具有提供语音呼叫和文本消息传送的能力。
超级节点实际上是满足某些要求的普通节点,这些要求包括:具有公网地址、具有足够的CPU、存储空间足够大、具有足够的网络带宽。也就是说,任何符合条件的主机终端都可以成为超级节点,当然前提是加载了Skype应用。
2. 通信流程
Skype的通信流程分为:启动、注册(认证)、查找用户、呼叫和释放的过程。其中注册流程只是在用户初次安装了Skype的客户端软件后进行注册,后期使用的过程中该步骤就变成认证过程。
(1)启动流程
Skype的用户终端启动时,采http协议连接到注册服务器,用户初次安装的启动流程中携带“installed”的参数,使用时启动流程则在消息中携带“getlatestversion”参数,具体流程分别见图3和图4。
(2)注册(认证)流程
注册(认证)流程可能是Skype所有流程中最复杂的一个,用户启动Skype后,首先需要连接到超级节点,通过超级节点向注册服务器发送身份认证信息,注册服务器验证用户名和密码的合法性,然后向其他对等节点及其好友发送在线信息,同时还需要判断该终端所在私网的NAT和防火墙类型。如果该终端先前默认的超级节点已不可用,则还要查找具有公网地址的Skype节点来作为该终端的超级节点,从而维持该终端与Skype网络的连接。 一旦超级节点都不可用,Skype的客户端采用了尽力而为的方式进行注册,即先用UDP包试注册,不成功超时则用TCP(80端口),再不成功则用TCP(443端口)。通常为防止其超级节点不可用,客户端必须建立一个可选连接节点列表,并定期维护该列表。
(3)查找用户
Skype采用了一种称做全球索引(Global Index)的技术来查找用户,该技术结合前面所述的分层网络,超级节点之间采用全分布式的连接,每个超级节点具有最小时延前提下所有可用的用户和资源的全部信息。具体来说,Skype采用了下面两种机制来保证顺利完成用户的查找。启动后向所有列表中的用户发送其上线信息,其他用户响应各自的信息。
(4)呼叫建立和释放
查找到希望连接的用户后,可以将其加入好友列表,Skype用户可以随时与在线的好友进行呼叫。经过了稍微复杂的认证过程和用户查找过程,呼叫建立和释放的过程
就变得简单了。用户位于公网和位于私网内部的情况会有所不同,两种情况下的呼叫建立和释放流程分别见图5和图6所示。
从上述流程图可见,Skype的呼叫信令都采用TCP封装,而媒体流则使用UDP封装,当有任何一方用户位于限制UDP包的防火墙内时,媒体流就会采用TCP封装。另外当Skype用户至少有一方位于私网内时,所有的信令和媒体消息都经过一个或多个中间节点转发。此时无需担心用户通话的媒体流因为经过中间节点转发而被窃听,因为Skype采用了对消息进行端到端加密的机制。
5.其它重要协议及技术
除了上述3大协议之外,还有许多左右VoIP通话品质及传输效率的重要协议与技术。在语音压缩编码技术方面,主要有ITU-T定义的G.729、G.723等技术,其中G.729提供了将原有64Kbit/s PSTN模拟语音,压缩到只有8Kbit/s,而同时符合不失真需求的能力。
在实时传输技术方面,目前网络电话主要支持RTP传输协议。RTP协议是一种能提供端
点间语音数据实时传送的一种标准。该协议的主要工作在于提供时间标签和不同数据流同步化控制作业,收话端可以藉由RTP重组发话端的语音数据。除此之外,在网络传输方面,尚包括了TCP、UDP、网关互联、路由选择、网络管理、安全认证及计费等相关技术。
1010010541
施为


发布评论