杜 经 纬
(运城学院 计算机科学与技术系,山西 运城 044000)
基于SIP的P2P VoIP技术研究
杜 经 纬
(运城学院 计算机科学与技术系,山西 运城 044000)
随着三网融合的推进,将会给VoIP带来广阔的发展空间。针对目前常用的VoIP系统存在的网络开销高、呼叫接通率低、信令过于复杂等问题,在对SIP协议在P2P网络环境下实现VoIP的关键技术进行认真分析的基础上,提出了基于SIP的P2P VoIP。通过给出基于SIP的P2P VoIP的基本体系结构,分析了该系统中对等点的发现、用户注册及离线、呼叫建立等功能的实现方法,最后提出了基于SIP的P2P VoIP系统还应该考虑的一些问题。
对等网络;VoIP;信令;SIP;网络地址转换
VoIP,即Voice over IP,也称为IP电话。VoIP的基本工作原理是:通过模数转换将电话系统的模拟信号转换为数字信号,再经过语音压缩算法对普通模拟语音信号进行压缩编码后,再把这些数字语音信号利用TCP/IP网络体系中的相关协议进行封装,最后通过因特网把语音信号数据包发送到接收端,接收方将收到的数据包进行合并,经过数模转换后恢复出原来的模拟语音信号,从而实现通过因特网传输模拟语音信号的目的。每个传统的电话数据传输率为64kb/s,但在IP电话中语音信号经过转换和压缩,每部电话在IP网中的数据传输率仅需要8-11kb/s,实现了廉价便捷的通信方式。所以,IP电话的出现使长途电话的费用大幅下降。
VoIP系统主要是由通信终端设备、网关设备及网守设备等几部分构成。[1]通信终端设备负责语音信号的转换及压缩,网关负责信道编码的转换及信令控制的转换、接续等,呼叫用户所需的地址解析及资源管理等工作由网守负责完成。VoIP目前的主要用途为实现在PC间的通信、PSTN电话间的通信、PSTN电话与PC机间的通信等三种场合。
传统VoIP是基于C/S模式,用集中式的专用服务器处理用户的请求。P2P VoIP是建立在P2P网络上的IP电话,具有P2P结构的特点,充分利用了对等实体的资源及处理能力,减少了对集中式资源的需求,网络开销比较低,成为IP电话的发展趋势。
与PSTN网络不同,VoIP是通过分组交换网IP网传输语音信号的,但IP网设计之初是用来传输数据业务的,采用的是无连接的、尽最大努力交付的不可靠的通信方式。因特网中普通的数据业务对数据到达的实时性要求并不是很高,但通话所需的语音信号对传输的实时性要求非常高,并且对传输的时序及相关时延也有严格的要求。因此,VoIP必须通过其他机制来满足语音通话的业务质量要求。在因特网上实现语音传输的关键技术主要包括信令技术、通话产生的语音信号的处理技术、语音模拟信号经过数字化后的数据的即时传输技术等。[2]
2.1 信令技术
信令技术是用来确保用户呼叫成功和提供语音质量保障的,主要包括ITU-T的H.323和IETF的SIP两种。
(1)H.323协议
H323协议栈的整体结构如图1所示。呼叫控制采用H.225和Q.931结合在一起构成的呼叫信令协议实现。通信过程中的信道信令控制、模式选择等过程规范由H.245协议负责。在语音通信时,首先通过Q.931来建立通话,控制信息通过H.245在用户间传递,最后语音数据通过RTP进行传输,使用RTCP来控制媒体流的传输。其中,Q.931和H.245都是基于TCP协议的可靠传输。
图1 H323协议栈整体结构
(2)SIP协议
由IETF提出的SIP协议是一种基于文本的协议,类似于HTTP协议,支持单点和多点传输,具有了多播的功能,能够实现一对多的通信。SIP的体系结构如图2所示。
图2 SIP体系结构
SIP协议相比H.323协议在VoIP通信中更具优势。H.323采用电话网中的信令,非常庞大,实现和管理都非常复杂。而SIP协议则是以现有的因特网为基础构建的计算机网络电话专用的应用层协议,支持单播和多播通信,和IP网一样,将网络设备的复杂性推向了网络边缘,使核心网成为一个尽最大努力交付的传输通道,大大提高了网络核心设备的数据处理能力。
2.2 语音处理技术
常用的语音处理技术有ITU-T定义的G.729协议、G.729a协议及G.723.1协议等。G.729可以在几乎不失真的情况下将语音信号压缩到8kbit/s;G.723.1是采用5.3kbit/s和6.3kbit/s两种速率的语音编码,数据压缩率非常高而且语音质量也非常好,但缺点是处理时延较大。
2.3 实时传输技术
实时传输协议RTP(Real-time Transport Protocol)是由IETF制定的应用层标准协议,提供端到端的实时多媒体传输服务[3],通常使用UDP协议进行通信,但也可以通过TCP或者ATM等协议进行通信。RTP有实时传输协议和实时控制协议两部分组成。
2.4 QoS保障技术
由IP网的工作原理决定了IP电话在其上面传输时容易导致通话产生较大的时延和抖动从而影响通话质量,利用QoS可以通过资源预留协议来避免IP网络的拥塞和保障语音通话的质量。
除了VoIP本身涉及的关键技术外,还应考虑P2P网络中涉及的一些关键技术,包括用户注册、用户定位、全球索引技术、对等发现和呼叫建立、网络地址转换和穿越防火墙等技术。[4]
当前基于SIP的VoIP采用的都是C/S结构,SIP服务器在其中起着关键作用,其扩展性和容错性同C/S结构一样比较脆弱,并且存在着很多缺点。如果采用完全P2P结构而不用再维护SIP服务器作为静态超级节点可以提高系统的可靠性,实现低成本高可靠的VoIP系统。[5]
基于SIP的P2P VoIP是指每个SIP终端都是一个节点,既作为服务器也作为客户端,利用P2P实现用户的注册、加入、注销、查找定位和信令的路由等功能。
基于SIP的P2P VoIP终端节点包括用户注册模块、用户定位模块、DHT网络模块、SIP协议模块、媒流体控制模块、防火墙和网络地址转换探测模块等,如图3所示。
图3 终端节点
下面将具体分析基于SIP的P2P VoIP系统的工作过程。
3.1 结点启动及对等点发现
当SIP的终端节点启动之后,用户首先输入标识码,如abc@ycu.edu.cn,节点将会通过本地域名服务器找到SIP服务器的IP地址,并发送SIP注册消息给SIP服务器,如图4所示。
图4 结点启动及对等点发现
终端节点也可以通过发现网络中可能的超级节点从而加入到P2P VoIP网络中,终端节点一旦发现一个Chord中的节点,就可以通过Chord节点的关键字加入到Chord DHT网络中,从而便加入到了P2P VoIP网络。[6]
3.2 用户注册
终端节点在探测到超级节点的地址后,会选择其中的两个(选择两个是为了做冗余备份)发送SIP REGISTER消息,进行注册。普通节点还会周期性地发送REGISTER消息探测超级节点是否有效,而超级节点是通过OPTIONS消息来确保附属节点存活并不断的监控其状态。
3.3 结点离线或失效
当一个普通节点需要退出某个P2P VoIP系统时,需要发送注销消息给它所依附的超级节点,而超级节点会将这个消息发送给保存了这个节点关键字信息的那些节点。
当一个超级节点需要退出某个P2P VoIP系统时,它的所有附属节点和DHT中的邻居都将要更新这个节点的状态,其附属节点会在下次注册更新时自动调整并发现新的超级节点,而DHT中的邻居节点会调整DHT网络信息从而接收管理失效节点保存的节点信息,如图5所示。
图5 结点离线或失效
3.4 用户定位与呼叫建立
节点在呼叫其他用户时,基于SIP的查找和P2P网络的查找会同时进行。采用P2P网络查找时,普通节点会向它所依附的超级节点发送一个Invite或Message消息,而超级节点充当SIP代理服务器,通过掌握的DHT关键字信息来定位目的节点的位置。当通信线路确定以后,超级节点通过重新定向数据包使两个节点之间建立连接,从而实现语音数据的通信。但是当需要穿越防火墙或有网络地址转换时,就只能通过超级节点的代理转发实现了。
为了保障基于SIP的P2P VoIP系统的连接畅通、功能完善等还有一些其他问题需要解决。这些问题包括穿越防火墙和网络地址转换、离线消息分发以及多点会话等。[7]
4.1 穿越防火墙和网络地址转换
基于SIP的P2P VoIP中穿越防火墙和网络地址转换包括两个步骤:自动检测防火墙和网络地址转换的类型,建立完成输入和输出消息的NAT穿越隧道。应用程序启动后向超级节点进行连接注册,同时完成防火墙和网络地址转换类型的检测。可以通过中继节点中转传输实现NAT穿越隧道的建立。
4.2 离线消息分发
在VoIP通信中,可能会出现一方呼叫另一方,但另一方不在线的情况,为了使另一方能够知道有谁呼叫过自己,就需要增加离线消息的存储和分发。可以通过在存储普通节点信息的DHT节点中存储用户的离线消息,当用户向DHT节点注册信息时,DHT节点就将离线消息发送给用户。
4.3 多点会话及设备独立性
可以通过建立分布式多播树实现多点会话,可以在P2P网络中分布存储加密的用户信息,用户登录后可以直接从P2P覆盖网中获得并使用这些用户信息,既避免了使用中心服务器同时有提高了设备的独立性。
基于SIP的P2P VoIP技术是VoIP系统的一种全新应用。目前VoIP系统普遍采用的是基于H.323的P2P VoIP系统和基于SIP C/S结构的VoIP系统,随着IP网络的普及和VoIP网络的大规模推广应用,这两种系统都无法满足人们对VoIP系统既要经济实用又要稳定可靠的要求。基于SIP的P2P VoIP系统能够实现低成本高性能的网络电话系统,将会在VoIP市场中占据重要地位,具有极高的应用和推广价值。
[1] 张春红等编著.P2P技术全面解析[M].北京:人民邮电出版社,2010.
[2] 刘冰.提高VoIP语音通信质量方法的研究[J].计算机时代,2013(7).
[3] 唐丰收,王志刚,李钒.IP网的实时视频传输技术[J].计算机与现代化,2008(3).
[4] 武静.P2P VoIP关键技术分析[J].中国多媒体通信,2006(04).
[5] Wookyun Kho, Salman Baset, Henning Schulzrinne. Skype relay calls:Measurements and experiments[J]. In Proc.INFOCOM,2008.
[6] 商文涛. SIP协议及其在下一代互联网中的应用[J].数据通信,2010(5).
[7] 杨建华,余永佳.SIP协议在异常状态下的工作策略研究[J].信息通信,2013(7).
【责任编辑 马太来】
Research on P2P VoIP Technology Based on SIP
DU Jing-wei
(DepartmentofComputerScienceandTechnology,YunchengUniversity,Yuncheng044000,China)
With the progress in the convergence of the telecommunication, internet and broadcasting networks, VoIP will be presented with broad space for development. However, existing VoIP systems usually suffer from high network overhead, low call completing rate, complex signaling, etc. To solve these problems, this paper, based on a thorough analysis of key technologists involved in VoIP using SIP protocol in the P2P network scenario, proposed the SIP-based P2P VoIP system. By introducing the basic architecture of the SIP-based P2P VoIP system, this paper also analyzes the implementation of functions including peer discovery, user registration and getting offline and call establishment, and points out some questions that should be considered in this system.
Peer-to-Peer network; VoIP; Signaling; SIP; NAT
2015-02-21
山西省自然科学基金资助项目(2009011022-2)
杜经纬(1979-),男,山西芮城人,运城学院计算机科学与技术系讲师,研究方向为计算机网络技术。
TP393
A
1008-8008(2015)03-0017-04