P2P-SIP网络电话

时间:2020-11-08 19:43:15 通信工程毕业论文 我要投稿

P2P-SIP网络电话

摘要  由于P2P系统中没有中央服务器并且网络能够自组织所以P2P系统具有高扩展性,健壮性和容错性。这些特性是通过在P2P覆盖网络中定位感兴趣的源的更高的延迟来获得的。网络电话可以看作是参与者自组P2P覆盖网来定位其他参与者并与其他参与者交互的一种P2P结构的应用。我们提出一种用于基于会话初始化协议(SIP)的IP电话系统的纯P2P结构。我们的P2P-SIP结构既支持 基础的用户注册和呼叫建立也支持离线消息发送、语音/视频邮件和多方会议这样的高级服务。此外,我们简要介绍了执行情况。      关键词  P2P,网络电话,会话初始化协议(SIP) 1 引言      现存的基于会话初始化协议(SIP[1])的用户/服务器网络电话结构为每个域使用一个注册服务器。主要的系统消费是由一个专用系统管理器造成的维护和配置。这意味着在一个小型网络中迅速地建立系统(例如,紧急通讯或会议)是很困难的。另一方面,端到端(P2P)系统[2]因为没有单点错误,所以是可测量和可靠的。P2P系统对全局、灾难性失败是强壮的,虽然单个的结点可能会失败。      我们提出一种使用SIP的P2P网络电话结构。P2P-SIP有两个主要的目标:(1)一个增加健壮性完全的分布式模型;(2)不改变现存的控制结构(如DNS)进行配置的能力。分析了许多可选的设计,提出使用Chord[3]作为基本的分布式hash表(DHT)的P2P-SIP端点。新的混合结构既允许传统的SIP电话也允许用户在本地域没有SIP服务器时在P2P网络中查找。使用SIP在P2P-SIP中执行各种DHT功能,例如端发现,用户登记,结点故障发现,用户定位以及通过用P2P代替DNS[4]用于SIP中的下一跳查找的呼叫建立。      实现了一个P2P-SIP适配器,SIPPEER[5],允许现有的或者新的SIP用户代理不改变用户代理就可以连接到P2P-SIP网络。例如,SIPPEER在同一台主机上可以作为基于PC的SIP用户代理并充当它的输出代理。SIPPEER也可以作为独立的SIP用户代理商,代理人或有命令行用户界面的注册服务器。模块化的设计允许组件的重用和替换。例如,Chord可以替换为另一种DHT而不影响其他部分。开放的结构可以不影响现存的设计安装新的服务。例如,一个新的语音邮件模块可以添加到现存的结点上。除了P2P的扩展性和可靠性,P2P-SIP还有如下优点:     不需要维护或配置:这个系统是开箱即用的,不需要任何冗余的服务器安装(包括NAT和防火墙的配置)。我们的工作将TETF零配置网络工作组[6]的目标扩展到多媒体通讯和协作系统。     协同工作:不像Skype[7]之类的其他P2P系统,我们使用SIP与其他端点通讯。这可以很容易的与任何现存的SIP-PSTN网关的IP电话结构或象Asterisk的基于服务器的IP PBX一起工作。这些优点是增加资源查找延迟和安全的威胁来得到的。一个不使用集中的元件的用于认证的可靠结构不在这篇文章的讨论范围内。 结构框架      我们改进了分布式哈希表(DHT)的设计。一个极端是,这个分布式哈希表可以在服务器中用于服务器的领域同时仍然管理客户/服务器结构。另一个极端,所有的结点成为分布式哈希表的一部分。我们选择如图1所示的一种中间设计,具有高的容量(带宽,CPU,内存)和可用性(正常运行时间,公共IP地址)的一些结点成为超级结点并组成分布式哈希表,而其他的普通结点与一个或更多的超级结点相连而不是成为分布式哈希表的一部分。   

P2P-SIP网络电话

图1与DHT中超级结点相连的普通结点 

                                              图2 P2P-SIP结点中的块算法      图2给出了P2P-SIP结点中不同部件的算法。结点启动和用户用标识符登记时,发现模块被激活用于初始化网络地址翻译和防火墙探测[8],点发现和 SIP注册。组播SIP注册、上一引导周期存储的端地址和预配置的自举地址被用来初始化结点集。用户界面模块记录用户的“朋友列表”并调用用户定位模块定位这些朋友。用户定位模块使用SIP模块,或者,如果这个结点加入了DHT就使用DHT模块。DHT模块维护端信息(例如,Chord指针表)并执行像发现、加入和离开的一些DHT操作。      SIP被用作是定位其他用户或结点、加入DHT、注册用户、呼叫建立和即时消息的基础协议。一旦用户被定位,呼叫建立或即时消息就可以直接经由SIP模块发送到用户的电话。SIP REGISTER更新和OPTIONS消息用于探测结点失败。当一个超级结点关闭或者失败,注册被发送到DHT中的其他适当的超级结点。其他的SIP功能例如第三方呼叫控制和呼叫传输可以用相同的方法实现。媒介路径(音频设备,编解码器和传输)独立于P2P-SIP操作。      一些分布式哈希表允许对多端点并行搜索,不像Chord中的顺序搜索。在这种情况下超级结点可以担当背靠背用户代理并向邻居端点传播SIP消息。然而,除非是像美国的911这种紧急呼叫路由的情况,应该避免并行搜索以免网络中发生泛洪。       在实际的实施中允许多种P2P-SIP网络(分布式哈希表)相互连接是非常有用的。我们的混合结构允许P2P-SIP网络群和基于服务器的SIP结构共存。有两种方法:将一个网络中所有的用户与所有其他网络交互注册或者在呼叫建立的过程中在其余的网络中定位用户。前一种方法工作在少量的已知的P2P- SIP网络。后一种方法可以使用一个像DNS这样的全局命名服务器或层次化的P2P-SIP网络实现。第一种情况,每一个P2P-SIP网络用一个域名表示。这与基于服务器的SIP网络是没有区别的,域名在那个网络中解析一个或多个自举结点[4]。第二种情况,用P2P-SIP代替DNS来解析域名。例如,单独的大的组织可以有本地P2P-SIP网络与全局(公共)P2P-SIP网络连接,如图3所示。本地特定域的DHT有典型的服务结点,这些结点在全局DHT中也是可达的。例如,         private.com在全局DHT中映射到结点A和C。特定域DHT中的任何结点可以到达全局DHT,全局DHT中的任何结点可以经由域中的典型服务结点到达特定域DHT。                                                        图3 混合系统举例 混合结构允许用户在她的提供者可用的情况下用她的提供者注册,也可以用P2P-SIP网络。呼叫建立在可以用DNS解析时被发送到SIP目的地,同样也可以用P2P-SIP网络。