欢迎来到天天文库
浏览记录
ID:9513406
大小:60.50 KB
页数:10页
时间:2018-05-02
《p2p与sip技术的研究》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、P2P与SIP技术的研究~教育资源库 P2P(peer-to-peer)是一种人人为我、我为人人的开放与共享的思想,也是一种基于对等的计算模型和基于对等的应用层重叠网络架构。由于没有中央服务器并且网络是自己管理的这种特殊结构,P2P系统天生就拥有高扩展性、健壮性和高容错性的特点。 传统的P2P系统大致分为三种:(1)中心化P2P,索引服务放在一个中心服务器上,但是参与者之间的数据交换是对等的,例如Napster;(2)纯P2P,索引服务存储在每一个参与者上,通过发起洪泛式的请求来实现信息查询,效率较低,例如Gnutella;(3)混合式P2P,索引服务放在一些超级节点上,
2、通过向超级节点发起请求来实现信息查询,例如Kazza。 为了进一步提高效率,越来越多的P2P系统采用分布式散列表(DHT)实现查询,这类系统也称之为结构化P2P系统。结构化P2P系统(如Chord、CAN等)把精力主要集中在优化P2P的查询延迟以及对节点加入、离开的维护,从而代替大量发起请求这种低效率的模式。 SIP(SessionInitiationProtocol)是一个类似于HTTP和SMTP的基于文本的信令协议,在IP分组网络中处理端点之间的多媒体会话呼叫的建立、控制和终结等过程,主要被用来开发和实现VoIP、语音/视频会议、文本聊天、即时消息、交互游戏等业务的系
3、统和终端,尤其在VoIP和IM系统中得到了广泛的应用。 目前有不少研究机构已经尝试将P2P和SIP的优势进行互补和结合。本文提出的这种P2PSIP技术,主要采用基于DHT的P2P方法来实现SIP的注册以及资源定位,这里的DHT采用目前比较流行的CHORD算法。 1体系结构 1.1节点功能 在基于SIP的通信系统中,当呼叫建立之后,两个peer之间的媒体交流是直接进行的,所以从这个角度看似乎是P2P构架。然而,在呼叫建立之前,用户的注册、定位以及呼叫路由都不能缺少服务器的参与,因此传统的SIP系统采用的是C/S构架。而本文采用P2PSIP技术的系统不需要中心服务器,在这
4、种系统中,peer可以直接连接到其他的peer建立通信提供服务。因此,参与的节点不仅类似于传统的SIP客户端满足用户接打,而且将所有的peer作为一个整体来看,它们还起到了传统SIP网络中注册机和代理务器的作用,实现了资源定位、维持现有信息以及呼叫路由等功能。 如上所述,P2PSIP节点提供很多功能,超过了传统SIP体系结构中的任何单一实体。因此,每个节点必须是整个系统中活动的一员,必须提供一些类似于SIP系统中服务器的功能,至少,用来执行附加的类似于服务器以及维持DHT行为的节点应当分布在网络中。这样,一个节点既扮演服务器又扮演终端,从而提供了一个可扩展和可靠的服务器群架
5、构。然而,在实际情况中并不是所有节点的运算能力和性能都一样。如果采用纯P2P构架,每个节点都要扮演两个角色,则所有的节点终端都需要改进以满足要求,这样势必会造成资源的极大浪费。因此将节点按功能的大小分为普通节点和超级节点。 选择一些高性能(带宽、CPU、内存)并且可靠(在线时间、公网地址)的节点作为超级节点,这些超级节点在一起共同构成可靠的服务器群构架,通过使用DHT来定位用户。普通节点平时连接在这些超级节点上,通过这些超级节点来实现注册、定位。决定成为超级节点或者普通节点都在本地实现。当一个节点启动时,它首先是普通节点,当普通节点检测到自己有足够的性能和可靠性,它就可以把
6、自己变为超级节点。当存在的超级节点离开或者达到它的能力极限时,一个有高性能和可靠性的节点也可以被迫成为一个超级节点。此外,一些节点知道自己足够强大时,会在启动过程中就变成超级节点,同时,存在的节点也可以影响它的邻居节点成为超级节点。 1.2网络结构 P2PSIP系统结构图如图1所示。 网络由节点组成,这些节点在一起共同提供目录索引服务以帮助定位资源,例如用户等。在这里,所有的节点通过采用基于CHORD算法的DHTP2P结构来组织。CHORD是一个环形的拓扑结构,每个结点并不需要知道所有其他结点的信息,在由N个结点组成的网络中,每个结点只需要维护其他LogN个结点的信息,
7、查询的算法时间是O(LogN)。 每个节点设计了一个Node-ID来决定节点在DHT环中的位置以及资源的范围,Node-ID通过hashing节点的IP地址以及端口号来创建。相应地,每个资源也有一个Resource-ID,通过hashing资源的关键字来获得。Node-ID和Resource-ID应当映射到同一数字空间。 在CHORD算法中,一个Resource-ID为k的资源将被保存到第一个Node-ID大于或等于k的节点上。因此,当节点进入或离开时,资源就可以保存在不同的节点上。除此之外,节点还
此文档下载收益归作者所有