作 者:戚晨 董振江
摘要:SIP协议是当前VoIP和IM等多媒体协议的呼叫建立协议。P2P技术提供了分布式的网络架构中通信节点之间得对等通信能力,P2P网络架构经历了集中目录式网络架构、纯P2P网络架构、混合式P2P网络架构和结构化P2P网络架构。通过引入P2P技术,SIP网络的能力可以得到增强。P2PSIP网络主要有两个重要的操作:对P2P节点的操作和用户层面的操作。
关键词:SIP;P2P;P2PSIP网络
Abstract:SessionInitiationProtocol(SIP)is a fundamental protocol to initiate multi-media conversation such as Instant Messaging(IM) and Voice over IP(VOIP). P2P technologies realize P2P communications to spread in distributed networks. The P2P network architecture undergoes centralized directory network architecture, pure P2P network architecture, mixed P2P network architecture, and structural P2P network architecture. By incorporating P2P technologies, SIP network can be improved. There are two kinds of key operations for P2P SIP network: operations on P2P nodes and operations for users.
Keywords:SIP;P2P;P2P SIP network
1 SIP网络
会话发起协议(SIP)是互联网工程任务组(IETF)制定的多媒体通信应用层控制协议,用于建立、修改和终止多媒体会话。SIP协议借鉴了超文本传输协议(HTTP)、简单邮件传输协议(SMTP)等,采用基于文本协议控制方式,支持代理、重定向、登记定位用户等功能[1]。
SIP凭借其简单、易于扩展、便于实现等诸多优点而得到了广泛应用。3GPP等标准化组织已经选择SIP作为下一代网络(NGN)和3G多媒体子系统(IMS)中的通信协议,业界已广泛应用了多种基于SIP的多媒体业务[2]。
SIP网络采用客户端/服务器(C/S)的网络架构,按域划分用户。每个域的SIP服务器管理着本域内的用户,用户在使用SIP业务时,需要注册到SIP服务器。各用户之间的通信需要由SIP服务器来进行路由,因此存在SIP服务器的“单点故障”和“性能瓶颈”等问题。
目前有多种提升SIP服务器处理能力的方案,如采用高处理能力的服务器、采用多服务器间的N+1或热备份方案,或者采用多服务器负载均衡技术。
2 P2P技术在互联网上的应用
P2P技术本身并不是新的概念或技术,它的原理是将网络上的通信节点作为平等的通信终端,任意两个通信节点之间既互为“服务器”又互为“客户端”。这一点与互联网的基础协议TCP/IP一致,TCP/IP也没有服务器或客户端的概念,任意两个节点之间是平等通信的。随着互联网应用的扩展,P2P技术得到了广泛的应用。P2P网络采用分布式对象定位机制,使得信息或媒体流在节点之间直接传送,降低了中转开销,从而提高了网络的可扩展性,节省了网络带宽。
很多基于P2P技术如共享MP3格式音乐文件的Napster服务、SETI@Home计划,尤其是Skype应用的成功,使得P2P技术成为业界关注的焦点。
3 P2P网络架构
P2P 网络的技术核心是解决分布式节点之间的资源定位,这需要合适的网络架构,发展至今共经历了3代网络架构。
3.1集中目录式网络架构
最早出现的P2P应用模式就是集中目录式P2P网络,Napster是该架构模型最典型的代表。用户需要登录到中心目录服务器,通过目录服务器查询存储各个节点的资源信息。这种结构的最大特点是所有的资料都是存贮在各个用户节点中。用户获取资源时,节点根据网络流量和延迟等信息选择合适的节点建立直接连接,而不必经过中央服务器。
3.2纯P2P网络架构
纯P2P网络架构采用的是广播式的P2P模型。在这种架构下,没有集中的中央服务器,每个用户节点随机接入到网络,并与自己相邻的一组节点通过端到端连接构成一个逻辑覆盖的网络。节点之间的内容查询和内容共享都是直接通过相邻节点以广播方式接力传递。为了避免循环搜索现象,每个节点会记录其搜索轨迹。
Gnutella模型是现在应用最广泛的纯P2P网络架构,采用泛洪式的节点搜索算法,解决了网络结构中心化的问题,扩展性和容错性较好。但是Gnutella网络可用性较差,易被病毒攻击,并且极大地消耗了网络带宽,很容易造成网络拥塞与不稳定。
3.3混合式P2P网络架构
混合式P2P网络在纯P2P网络架构基础上加入了超级节点的概念。在这种网络下,将节点按能力 (计算能力、内存大小、连接带宽、网络滞留时间等)不同区分为普通节点和超级节点两类。超级节点与其临近的若干普通节点之间构成一个自治的簇,簇内采用基于集中目录式的P2P模式,而整个P2P网络中各个不同的簇之间再通过纯P2P的模式将超级节点相连。有时甚至也可以在各个超级节点之间再次选取性能最优的节点,或者另外引入一新的性能最优的节点作为索引节点来保存整个网络中可以利用的超级节点信息,并且负责维护整个网络的结构。
普通节点的文件搜索先在本簇内进行,只有查询结果不充分时再通过超级节点之间进行有限的泛洪。同时,每个簇中的超级节点监控着所有普通节点的行为,从而确保一些恶意的攻击行为能在网络局部得到控制,也在一定程度上提高了整个网络的负载平衡。
混合式P2P网络架构综合了集中目录式P2P快速查找和纯P2P去中心化的优势,Kazaa模型是P2P混合模型的典型代表。
然而,由于超级节点本身的脆弱性也可能导致其簇内的节点处于孤立状态,因此这种局部索引的方法仍然存在一定的局限性。这导致了结构化的P2P网络模型的出现。
3.4结构化P2P网络架构
结构化P2P架构采用纯分布式的消息传递机制,根据关键字进行节点查找定位。目前结构化网络的主流查询定位方法是采用分布式哈希表(DHT)技术,这也是目前扩展性最好的P2P路由方式之一。