首页 >> 通信技术 >> 技术滚动 >> 正文
P2P SIP原理和应用
2007年12月29日 10:18    通信世界网    评论()    
作 者:戚晨 董振江

    DHT将节点管理的资源或文档作为“关键字”,将节点的IP地址作为“数值”,组成关键字-数值对,并能根据关键字查找数值。DHT技术中的存储和查询是分布在多个节点上进行的,对单一节点的依赖性低,容易实现网络上任一节点的无序加入或退出,对整个网络性能影响较低。

    DHT各节点并不要维护整个网络的信息,只需存储其临近后继节点信息,因此通过较少的路由就可以到达目标节点。DHT又取消了泛洪算法,有效地减少了节点信息的发送操作数量,增强了P2P网络的扩展性。

    在实际应用中,出于冗余度以及延时的考虑,大部分DHT总是在节点的虚拟标识与关键字最接近的节点上备份冗余信息,这样也避免了单一节点失效的问题。

    但是基于DHT的网络拓扑结构的维护和修复也比Gnutella模型和Kazaa模型等无结构的系统要复杂得多,有时甚至出现“绕路”的问题。

    目前基于DHT的研究项目主要还集中在具有相同能力的较小规模的网络中,对于大规模的Internet部署还在研究中。同时大量实际的P2P应用还大都是基于无结构的拓扑和泛洪广播机制,采用DHT方式的P2P系统缺乏在Internet中大规模真实部署的成功实例。

    4  P2PSIP网络架构

    P2P网络[3]的优点是没有中心服务器,节点间直接通信、交换资源和文档,并且可以扩展到分布式的负载分担网络。从理论分析看,P2P网络可以降低C/S结构网络中的“单点故障”和“性能瓶颈”问题。作为C/S结构网络一种的SIP网络也可以利用P2P技术来实现,并且具有以下特点:

    去中心化,避免中心SIP服务器的单点故障隐患;

    增强SIP网络的扩展性,降低网络中的存储、计算、带宽等性能瓶颈;

    提高网络的高可用性,采用P2P网络全分布的架构来提高网络的健壮性;

    降低成本,充分利用节点闲置的处理能力、存储和带宽资源。

    P2P SIP网络利用SIP协议的扩展和承载来完成P2P层叠加网络节点的加入、定位、查找和路由,降低P2P私有协议带来的扩展性和兼容性问题,实现不同P2P网络的互通。

    P2P SIP网络以SIP协议为基础,无需大规模改动现有设备,并且无需改动VoIP终端设备,只要升级现有SIP服务器的软件,即可实现SIP网络的P2P化,提升网络的处理能力和可用性。

    在P2P SIP网络中,原来管理一个域的单节点SIP服务器变成多台P2P SIP服务器(称为PN节点),PN之间通过P2P机制互联,彼此分担负载,构成一个逻辑上的重叠网络。每个节点将和它相连的下一节点当作下一跳PN可以承担原来服务中压力最大的部分,比如注册、代理和计费。用户连接到任一PN,都可以有效使用服务。部分PN的宕机或故障不会影响到整个P2P SIP网络的正常运行。当需要扩大P2P SIP网络的容量,加入新的PN就可以了[4]。

    P2P SIP网络有两个重要操作:一是对P2P节点的操作,包括节点注册和离开,实现重叠网络的维护[5];另一个是用户层面的操作,包括用户的注册、资源定位、会话建立等。

    4.1P2PSIP节点操作

    P2P节点在地理上散布各处,逻辑上根据选用的P2P机制的不同可以是环形的(Chord协议)、矩阵的(CAN协议)、网状的(Pastry协议和Tapestry协议)。基本的P2P节点至少包括注册和代理两种功能。从运营角度出发,还需要部署全局认证服务器、全局账务服务器和网管服务器等等,用于管理全部用户和所有节点。

    每个节点在网络中都有一个节点ID号,该ID号由节点IP地址和端口号进行哈希运算获得,节点信息被存储在一张DHT表中。每个节点负责存储对应信息,如用户注册信息等。

    当一个节点申请加入网络中时,先定位一个缺省的网络节点,并发送SIP REGISTER消息给该缺省节点,申请加入网络。如果该缺省节点是负责对应区域的节点,则响应200OK消息,并允许新加入节点加入网络。响应消息中包含邻近节点的信息。

    如果缺省节点不是负责对应信息区域的节点,则通过SIP 302响应提供新加入节点前转的网络节点。新加入节点向前转节点发送SIP REGISTER消息,申请加入。前转节点根据自己是否是负责该区域的节点对REGISTER消息进行处理。上述过程一直持续到找到对应的节点为止。

    当新加入节点成功加入网络后,新加入节点存储所需要负责的用户信息如用户注册信息,同时通知网络中其它节点更新自己的信息。

    4.2P2PSIP用户注册操作

    在P2P SIP网络中,每个用户被看成是一个资源,以资源ID标识,资源ID由资源名称经哈希运算获得。

    当用户申请注册时,首先生成对应的资源ID。用户所在的节点通过查找路由表,找到一个资源ID和节点ID最接近的节点,并向该节点发送REGISTER消息。如果该最近节点是负责该资源ID的节点,它会将用户名称和IP地址存储在注册表中,并回送200OK消息给用户节点。

    如果该最近节点不是负责该资源ID的节点,则通过302消息通知用户节点需要注册到下一节点。下一节点按照和上一节点同样的方式进行处理,直至找到对应的处理节点。对应的处理节点发送200OK消息给用户节点,并存储用户的名字和IP地址。

    4.3P2PSIP会话建立操作

    用户注册成功后,可以和其他用户进行会话。在会话前,会议发起方需要确定会话接收方的地址。发起方首先生成接收方的资源ID,并确定一个和资源ID最近的节点。然后发送INVITE消息给该最近节点,直到查找到负责接收方的节点。如果接收方用户没有注册,则负责节点通知发送方停止会话;如果接收方已正常注册,负责节点将接收方用户的IP地址通过302响应通过发送方。

    在获得了接收方的IP地址后,发起方和接收方就可以按照传统SIP协议的方式建立会议。

    5  结束语

    利用P2P技术的分布处理和无中心的架构来建设SIP网络是网络发展的一个重要方向。从现在的P2P SIP网络的应用和实践看,这种结合方案还有很多挑战,主要表现在:

    P2P技术还不成熟,资源动态分布的优化,资源恢复技术还在进一步研究中。现有的P2P应用主要还是集中在非实时的互联网数据应用上,对于实时的通信节点,以及资源的快速分配定位,还有很多需要P2PSIP网络研究的领域。

    P2P的成功应用目前还只是在互联网领域的非实时应用,对于SIP应用,特别是实时通信要求高的呼叫处理而言,基于P2P的SIP网络还需要进行优化。P2PSIP网络利用在去中心化的节点群集来代替原SIP网络中的服务器,现有的P2P技术发现,在P2PSIP网络中对等通信方的查找时间原大于普通SIP网络的对等通信方查找时间。实验发现,两种网络的查找实验时间比超过4倍。

    P2P对于带宽和资源的消耗,路由效率低下是P2P技术取得成功应用的难点。现有的成功的P2P应用大都利用“免费”的互联网资源,包括带宽、存储、计算能力等。对于一个可运营可管理的P2PSIP网络而言,需要提高P2P网络技术对资源的使用效率。

    P2PSIP网络结构复杂,对于运营商的管理带来了很大的困难。如何实现可运营可管理的P2PSIP网络是目前业界的一个重要课题。

[1]  [2]  [3]  编 辑:张翀
关键字搜索:SIP  P2P  P2PSIP网络  
  [ 发 表 评 论 ]     用户昵称:   会员注册
 
 
  推 荐 新 闻
  技 术 动 态
  通 信 圈