基于sip的p2p和原理分析终稿学位论文.docx

上传人:b****7 文档编号:10469510 上传时间:2023-02-13 格式:DOCX 页数:23 大小:87.92KB
下载 相关 举报
基于sip的p2p和原理分析终稿学位论文.docx_第1页
第1页 / 共23页
基于sip的p2p和原理分析终稿学位论文.docx_第2页
第2页 / 共23页
基于sip的p2p和原理分析终稿学位论文.docx_第3页
第3页 / 共23页
基于sip的p2p和原理分析终稿学位论文.docx_第4页
第4页 / 共23页
基于sip的p2p和原理分析终稿学位论文.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于sip的p2p和原理分析终稿学位论文.docx

《基于sip的p2p和原理分析终稿学位论文.docx》由会员分享,可在线阅读,更多相关《基于sip的p2p和原理分析终稿学位论文.docx(23页珍藏版)》请在冰豆网上搜索。

基于sip的p2p和原理分析终稿学位论文.docx

基于sip的p2p和原理分析终稿学位论文

基于Sip的P2P设计和原理分析

1.1.           SIP网络

2.2.           P2P技术在互联网上的应用

3.3.           P2P网络架构

1.3.1.   集中目录式网络架构

2.3.2.   纯P2P网络架构

3.3.3.   混合式P2P网络架构

4.3.4.   结构化P2P网络架构

5.3.5.    三种结构的P2P(DHT,树形,网状)

6.3.6.    BitTorrent工作原理

7.3.7.    eMule工作原理

8.3.8.    迅雷工作原理

9.3.9.    PPLive工作原理

10.3.10.          Skype工作原理

4.4.           SIP协议和voip

1.4.1.    SIP:

会话初始化协议(SessionInitiationProtocol)

2.4.2.    SDP:

会话描述协议(SessionDescriptionProtocol)

3.4.3.    SAP:

会话通知协议(SessionAnnouncementProtocol)

4.4.4.    RTP(Real-timeTransportProtocol)

5.4.5.    RTCP(RealtimeTransportControlProtocol)

5.5.           ICE(InteractiveConnectivityEstablishment)

1.5.1.      ICE基于SIP工作方法

6.6.           基于SIP的P2P网络架构

1.6.1.   P2PSIP节点操作

2.6.2.   P2PSIP用户注册操作

3.6.3.   P2PSIP会话建立操作

7.7.           基于ICE的SIPNAT解决方案设计和实现

8.8.           结束语

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路由方式之一。

  DHT将节点管理的资源或文档作为“关键字”,将节点的IP地址作为“数值”,组成关键字-数值对,并能根据关键字查找数值。

DHT技术中的存储和查询是分布在多个节点上进行的,对单一节点的依赖性低,容易实现网络上任一节点的无序加入或退出,对整个网络性能影响较低。

   DHT各节点并不要维护整个网络的信息,只需存储其临近后继节点信息,因此通过较少的路由就可以到达目标节点。

DHT又取消了泛洪算法,有效地减少了节点信息的发送操作数量,增强了P2P网络的扩展性。

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

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

目前基于DHT的研究项目主要还集中在具有相同能力的较小规模的网络中,对于大规模的Internet部署还在研究中。

同时大量实际的P2P应用还大都是基于无结构的拓扑和泛洪广播机制,采用DHT方式的P2P系统缺乏在Internet中大规模真实部署的成功实例。

3.5.    三种结构的P2P(DHT,树形,网状)

   

(1)DHT结构

   分布式哈希表(DHT)[1]是一种功能强大的工具,它的提出引起了学术界一股研究DHT的热潮。

虽然DHT具有各种各样的实现方式,但是具有共同的特征,即都是一个环行拓扑结构,在这个结构里每个节点具有一个唯一的节点标识(ID),节点ID是一个128位的哈希值。

每个节点都在路由表里保存了其他前驱、后继节点的ID。

如图1(a)所示。

通过这些路由信息,可以方便地找到其他节点。

这种结构多用于文件共享和作为底层结构用于流媒体传输[2]。

   

(2)树形结构

   P2P网络树形结构如图1(b)所示。

在这种结构中,所有的节点都被组织在一棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。

信息的流向沿着树枝流动。

最初的树形结构多用于P2P流媒体直播[3-4]。

   (3)网状结构

   网状结构如图1(c)所示,又叫无结构。

顾名思义,这种结构中,所有的节点无规则地连在一起,没有稳定的关系,没有父子关系。

网状结构[5]为P2P提供了最大的容忍性、动态适应性,在流媒体直播和点播应用中取得了极大的成功。

当网络变得很大时,常常会引入超级节点的概念,超级节点可以和任何一种以上结构结合起来组成新的结构,如KaZaA[6]。

3.6.    BitTorrent工作原理

BitTorrent软件用户首先从Web服务器上获得下载文件的种子文件,种子文件中包含下载文件名及数据部分的哈希值,还包含一个或者多个的索引(Tracker)服务器地址。

它的工作过程如下:

客户端向索引服务器发一个超文本传输协议(HTTP)的GET请求,并把它自己的私有信息和下载文件的哈希值放在GET的参数中;索引服务器根据请求的哈希值查找内部的数据字典,随机地返回正在下载该文件的一组节点,客户端连接这些节点,下载需要的文件片段。

因此可以将索引服务器的文件下载过程简单地分成两个部分:

与索引服务器通信的HTTP,与其他客户端通信并传输数据的协议,我们称为BitTorrent对等协议。

BitTorrent软件的工作原理如图4所示。

BitTorrent协议也处在不断变化中,可以通过数据报协议(UDP)和DHT的方法获得可用的传输节点信息,而不是仅仅通过原有的HTTP,这种方法使得BitTorrent应用更加灵活,提高BitTorrent用户的下载体验。

 

3.7.    eMule工作原理

eMule软件基于eDonkey协议改进后的协议,同时兼容eDonkey协议。

每个eMule客户端都预先设置好了一个服务器列表和一个本地共享文件列表,客户端通过TCP连接到eMule服务器进行登录,得到想要的文件的信息以及可用的客户端的信息。

一个客户端可以从多个其他的EMule客户端下载同一个文件,并从不同的客户端取得不同的数据片段。

eMule同时扩展了eDonkey的能力,允许客户端之间互相交换关于服务器、其他客户端和文件的信息。

eMule服务器不保存任何文件,它只是文件位置信息的中心索引。

eMule客户端一启动就会自动使用传输控制协议(TCP)连接到eMule服务器上。

服务器给客户端提供一个客户端标识(ID),它仅在客户端服务器连接的生命周期内有效。

连接建立后,客户端把其共享的文件列表发送给服务器。

服务器将这个列表保存在内部数据库内。

eMule客户端也会发送请求下载列表。

连接建立以后,eMule服务器给客户端返回一个列表,包括哪些客户端可以提供请求文件的下载。

然后,客户端再和它们主动建立连接下载文件。

图5所示为eMule的工作原理。

 

3.8.    迅雷工作原理

  迅雷是一款新型的基于多资源多线程技术的下载软件,迅雷拥有比目前用户常用的下载软件快7~10倍的下载速度。

迅雷的技术主要分成两个部分,一部分是对现有Internet下载资源的搜索和整合,将现有Internet上的下载资源进行校验,将相同校验值的统一资源定位(URL)信息进行聚合。

当用户点击某个下载连接时,迅雷服务器按照一定的策略返回该URL信息所在聚合的子集,并将该用户的信息返回给迅雷服务器。

另一部分是迅雷客户端通过多资源多线程下载所需要的文件,提高下载速率。

迅雷高速稳定下载的根本原因在于同时整合多个稳定服务器的资源实现多资源多线程的数据传输。

多资源多线程技术使得迅雷在不降低用户体验的前提下,对服务器资源进行均衡,有效降低了服务器负载。

   每个用户在网上下载的文件都会在迅雷的服务器中进行数据记录,如有其他用户再下载同样的文件,迅雷的服务器会在它的数据库中搜索曾经下载过这些文件的用户,服务器再连接这些用户,通过用户已下载文件中的记录进行判断,如用户下载文件中仍存在此文件(文件如改名或改变保存位置则无效),用户将在不知不觉中扮演下载中间服务角色,上传文件。

 

3.9.    PPLive工作原理

  PPLive软件的工作机制和BitTorrent十分类似,PPLive将视频文件分成大小相等的片段,第三方提供播放的视频源,用户启矾PPLive以后,从PPLive服务器获得频道的列表,用户点击感兴趣的频道,然后从其他节点获得数据文件,使用流媒体实时传输协议(RTP)和实时传输控制协议(RTCP)进行数据的传输和控制。

将数据下载到本地主机后,开放本地端口作为视频服务器,PPLive的客户端播放器连接此端口,任何同一个局域网内的用户都可以通过连接这个地址收看到点播的节目。

图6所示为PPLive的工作原理示意图。

 

3.10.          Skype工作原理

  Skype是网络语音沟通工具。

它可以提供免费高清晰的语音对话,也可以用来拨打国内国际长途,还具备即时通讯所需的其他功能,比如文件传输、文字聊天等。

Skype是在KaZaA的基础上开发的,就像KaZaA一样,Skype本身也是基于覆盖层的P2P网络,在它里面有两种类型的节点:

普通节点和超级节点。

普通节点是能传输语音和消息的一个功能实体;超级节点则类似于普通节点的网络网关,所有的普通节点必须与超级节点连接,并向Skype的登陆服务器注册它自己来加入Skype网络。

Skype的登陆服务器上存有用户名和密码,并且授权特定的用户加入Skype网络,图7所示为Skype的体系结构[18]。

   Skype的另一个突出特点就是能够穿越地址转换设备和防火墙。

Skype能够在最小传输带宽32kb/s的网络上提供高质量的语音。

Skype是使用P2P语音服务的代表。

由于其具有超清晰语音质量、极强的穿透防火墙能力、免费多方通话以及高保密性等优点,成为互联网上使用最多的P2P应用之一。

 

4.           SIP协议和voip

4.1.    SIP:

会话初始化协议(SessionInitiationProtocol)

会话初始化协议(SIP)是一种应用层控制协议,它可用来创建、修改或终止多媒体会话,如因特网电话呼叫。

SIP能够邀请参与者加入已存在的会话,如组播会议。

现有的会话中可以添加或删除媒体。

SIP支持名称映射和重定向服务,其支持用户移动性。

不管用户网络位置在哪,用户只需维持单一外部可视标识符。

SIP在五个方面支持创建和终止多媒体通信:

∙                  用户定位:

决定用于通信的终端系统的确定;

∙                  用户可用性:

决定被叫方是否愿意加入通信;

∙                  用户能力:

媒体和媒体参数的确定;

∙                  呼叫建立:

“响铃“,主叫方和被叫方的会话参数的建立;

∙                  呼叫管理:

包括传输和终止会话、修改呼叫参数和调用服务。

SIP可以结合其它IETF协议来建立完善的多媒体结构,如提供实时数据传输和服务质量(QOS)反馈的实时传输协议(RTP)、提供流媒体发送控制的实时流协议(RTSP)、为公用交换电话网络(PSTN)提供网关控制的媒体网关控制协议(MEGACO),以及描述多媒体会话的会话描述协议(SDP)。

因此,SIP需要与其它协议协同作用来为用户提供完善的服务。

然而SIP的基本功能和操作并不依赖于这些协议。

SIP提供了一组安全服务,包括防止拒绝服务攻击、认证(用户对用户和代理对用户)、完整性保护和加密及隐私服务。

SIP同时支持IPv4和IPv6。

关于因特网电话会话,SIP做如下工作:

通过SIP地址识别主叫方和被叫方。

当建立一个SIP呼叫时,主叫方首先定位适合的服务器,然后发出一个SIP请求。

最通常的SIP行为是邀请。

SIP请求会被代理重定向或者触发一系列的新SIP请求,而不是直接到达目的被叫方。

用户可以通过SIP服务器注册他们的位置。

SIP地址(URL)可以嵌入到网页中,因此只要点击一下就可以和对方建立呼叫会话。

协议结构

SIP信息可以在TCP上传输也可以在UDP上传输。

SIP信息是基于文本的,采用UTF-8编码中的ISO10646字符集。

信息的每一行必须通过CRLF终止。

大多数信息语法和头字段类似于HTTP。

SIP信息可以是请求信息也可以是响应信息。

一个请求信息具有以下格式:

Method

RequestURI

SIPversion

∙                  Method―资源上所执行的方法。

可能的方法有:

Invite、Ack、Options、Bye、Cancel和Register。

∙                  Request-URI―指一个SIPURL或一个通用URI;是请求要被寻址到用户或服务。

∙                  SIPversion―正在使用的SIP版本。

响应信息头的格式见下图:

SIPversion

Statuscode

Reasonphrase

∙                  SIPversion―正在使用的SIP版本。

∙                  Status-code―3位整数结果代码,用于试图了解和满足请求要求。

∙                  Reason-phrase―statuscode的原文描述。

 

 

尽管sip有自己独特的用户代理和服务器,但是它并非自成一体封闭工作,Sip支持融合多媒体服务,与很多现有的协议协同工作。

(SIP用户代理、SIP注册服务器、SIP代理服务器和SIP重定向服务器)

             通常情况下,两个端点使用它来协商一次呼叫。

这里的协商包括介质(文本、语音等)、传输途径(Realtimeprotocol)、编码。

一旦协商成功,两端就会使用该方法进行通信,呼叫完成后,sip指示断开连接。

因此sip是一种信令机制。

sip还提供即时消息等等。

 

  SIP用户代理(UA)是终端用户设备,如用于创建和管理SIP会话的移动电话、多媒体手持设备、PC、PDA等。

用户代理客户机发出消息。

用户代理服务器对消息进行响应。

  SIP注册服务器是包含域中所有用户代理的位置的数据库。

在SIP通信中,这些服务器会检索参与方的IP地址和其他相关信息,并将其发送到SIP代理服务器。

  SIP代理服务器接受SIPUA的会话请求并查询SIP注册服务器,获取收件方UA的地址信息。

然后,它将会话邀请信息直接转发给收件方UA(如果它位于同一域中)或代理服务器(如果UA位于另一域中)。

SIP重定向服务器允许SIP代理服务器将SIP会话邀请信息定向到外部域。

SIP重定向服务器可以与SIP注册服务器和SIP代理服务器同在一个硬件上。

 

 

下图说明了在预订同一个ISP从而使用同一域的两个用户之间建立SIP会话的过程。

用户A使用SIP电话。

用户B有一台PC,运行支持语音和视频的软客户程序。

加电后两个用户都在ISP网络中的SIP代理服务器上注册了他们的空闲情况和IP地址。

用户A发起此呼叫,告诉SIP代理服务器要联系用户B。

然后,SIP代理服务器向SIP注册服务器发出请求,要求提供用户B的IP地址,并收到用户B的IP地址。

SIP代理服务器转发用户A与用户B进行通信的邀请信息(使用SDP),包括用户A要使用的媒体。

用户B通知SIP代理服务器可以接受用户A的邀请,且已做好接收消息的准备。

SIP代理服务器将此消息传达给用户A,从而建立SIP会话。

然后,用户创建一个点到点RTP连接,实现用户间的交互通信。

1.呼叫用户B

2.查询没?

>在哪里?

>

3.响应没?

SIP地址?

>

4.頂呼叫

5.响应

6.响应

7.多媒体通道已建立

 

 

4.2.    SDP:

会话描述协议(SessionDescriptionProtocol)

会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。

会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。

SDP即用于将这种信息传输到接收端。

SDP完全是一种会话描述格式―它不属于传输协议―它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME扩展协议的电子邮件以及超文本传输协议(HTTP)。

SDP的设计宗旨是通用性,它可以应用于大范围的网络环境和应用程序,而不仅仅局限于组播会话目录,但SDP不支持会话内容或媒体编码的协商。

在因特网组播骨干网(Mbone)中,会话目录工具被用于通告多媒体会议,并为参与者传送会议地址和参与者所需的会议特定工具信息,这由SDP完成。

SDP连接好会话后,传送足够的信息给会话参与者。

SDP信息发送利用了会话通知协议(SAP),它周期性地组播通知数据包到已知组播地址和端口处。

这些信息是UDP数据包,其中包含SAP协议头和文本有效载荷(textpayload)。

这里文本有效载荷指的是SDP会话描述。

此外信息也可以通过电子邮件或WWW(WorldWideWeb)进行发送。

SDP文本信息包括:

∙                  会话名称和意图;

∙                  会话持续时间;

∙                  构成会话的媒体;

∙                  有关接收媒体的信息(地址等)。

协议结构

SDP信息是文本信息,采用UTF-8编码中的ISO10646字符集。

SDP会话描述如下:

(标注*符号的表示可选字段):

∙                  v=(协议版本)

∙                  o=(所有者/创建者和会话标识符)

∙                  s=(会话名称)

∙                  i=*(会话信息)

∙                  u=*(URI描述)

∙                  e=*(Email地址)

∙                  p=*(电话号码)

∙                  c=*(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1