Professional Documents
Culture Documents
P2P Sip
P2P Sip
目录
2. 高级描述................................................................................................................................... 4
2.1. 服务............................................................................................................................... 5
2.2. 客户............................................................................................................................... 5
2.3. 协议............................................................................................................................... 5
3. 定义和缩略语................................................................................................................... 6
3.1. 定义............................................................................................................................... 6
3.2. 缩略语........................................................................................................................... 8
5.2.3. 引导................................................................................................................. 13
6. 分布式数据库................................................................................................................. 13
8.1. 网络地址转换............................................................................................................. 22
9. 安全问题......................................................................................................................... 23
9.1. 启动............................................................................................................................. 23
9.2. 节点认证..................................................................................................................... 23
9.3. 对等体消息传送......................................................................................................... 24
9.4. 注册............................................................................................................................. 24
9.5. 会话端点的发现......................................................................................................... 24
9.6. 客户结点的行为......................................................................................................... 24
10. 其他................................................................................................................................. 25
11. 参考文献......................................................................................................................... 27
对等会话初始协议技术要求
1. P2P SIP 概述
在互联网节点之间进行多媒体通信的主要问题是找到通信双方的 IP 地址。通信双方通
常通过各自的特征名进行标识,一种可能的情况就是采用通用资源标识符(URI)的形式。
式在很多场合中不一定实用,比如自组织网络,无服务器和缺少管理的系统等。
在 P2P 网络模型中,参与的结点或者对等体共享他们的计算和网络资源,采用分布式
的方式执行部分或者全部服务器功能,因此全部或者部分消除了对服务器的需求。
2. 高级描述
通信的节点提供服务。叠加网中的节点共同提供分布式的机制实现名字到网络位置的映射。
据库算法。该算法允许数据存储在对等体中并能高效获取。它也可以将数据同时存在多个对
等体中,因此某个对等体的丢失不会导致叠加网中数据的丢失。
对等计算的实质是每个对等体提为其他对等体供服务,因此整个叠加网可以提供更大的
为了允许对等体提供附加服务,分布式数据库必须能存储服务的信息。比如:存储那个
对等体提供什么样的服务,甚至每个对等体都有什么样的容量以提供相关的服务等。
2.2. 客户
的争议,许多人认为不需要客户。如果存在客户的话,客户能够在叠加网中存贮和获取信息。
2.3. 协议
2.4. 对等体协议和客户协议的关系
协议和客户协议的语法可以完全不同,但是客户协议的所有操作对等体协议也应支持。
方法。
2.7. NAT 问题
穿越 NAT,同时也意味着对等体必须提供分布式传送功能,以允许某个对等体在叠加网中
3. 定义和缩略语
3.1. 定义
叠加网络:叠加网络是指构建于其它网络之上的网络。叠加网络中的节点通过虚拟的或
者逻辑的链路进行连接,每一条链路都对应于一个路径,这些路径可能是下层网络的物理链
路。
对等网络:对等网络的特征是:网络主要依赖于网络参与者的计算能力和带宽而并非相
对较少的中央服务器。例如,对等网络可以通过大量的自组织网络链路对节点进行连接。它
的应用包括:音频,视频,数据及任何以数据格式存储的内容的文件进行共享;实时数据,
P2PSIP 客户协议。
包括:加入,退出叠加网,在叠加网中进行消息传送,存储叠加网中的信息,在叠加网中插
入以及获得信息等。
P2PSIP 对等体标识符:在一个给定 P2PSIP 叠加网中用来唯一标识一个 P2PSIP 对等体
的信息。对等体标识符完全独立于在一个对等体上所关联的用户代理的任何用户标识。
互。通过对等体,客户能够请求插入信息(放置一个联系方式)或者请求得到一个信息(获
户帮助其完成注册或请求路由。
P2PSIP 服务:对等体提供给叠加网或者叠加网成员的能力。并非所有的对等体和客户
都将提供相同的服务。服务包括对请求的路由,路由数据和其他数据的存储,STUN 发现,
STUN 中继等。
分布式数据库算法采用该资源标识符来确定存储相应数据的叠加网对等体。由于资源标识符
与 P2PSIP 对等体标识符在同一个哈希空间中,所以可以在两个值之间进行映射。
据块。可能存在许多种资源记录类型。一些数据是关于用户的,另外一些是关于业务的,将
来也可能定义其他的类型。记录类型,使用方法和格式有待研究。
P2PSIP 叠加网络的协议。
议使用上可能存在差别。
P2PSIP 对等体协议连接/P2PSIP 客户协议连接:TCP,UDP 或者其他传送层协议连接用
客户,它们之间都相互认识并且不需要查表就可互通。
等体。
息,或者自身做为一个引导对等体。P2PSIP 引导对等体自身应该是相当的稳定的,并且是
众所周知的主机。为了使用方便,其它的节点必须能够很方便的定位该节点。一种方式是在
DNS 中有众所周知的记录。
言,
P2PSIP 准入对等体是由 P2PSIP 引导对等体选择的在逻辑上最靠近加入对等体的对等体。
体的行为。接入允许完成之后,加入对等体成为叠加网中的完整功能对等体。在接入允许过
程中,加入对等体可能要进行安全认证。
数据。
3.2. 缩略语
图 1 P2PSIP 参考模型
三个用户代理对等体“D”,“E”和“F”,两个代理对等体 “P”和“Q”,和一个重定向
网的信息。
叠加网的一部分,既不直接做为一个对等体又不间接做为一个客户。它既不使用 P2PSIP 对
进行交互。
理对等体“Q”进行通信。P2PSIP 客户协议仅允许对叠加网进行“获取”和“放置”操作,
一跳)
。
配过程。不同类型的对等体(重定向,用户代理,代理,网关)功能都是逻辑上的,单个实
体能够支持一种,数种,或者所有功能。
5. P2PSIP 协议及其操作方法
P2PSIP 对等体协议用在对等体之间进行通信,该协议至少要能够支持以下的行为:
o 注册对等体到叠加网
o 插入 P2PSIP 对等体到叠加网
o 注册资源或者用户到叠加网
o 插入资源或者用户到叠加网
o 从叠加网中获取资源或者用户的信息
P2PSIP 叠加网请求服务。对于能力有限的终端,比如智能手机,由于电池容量和带宽的限
制必须减少消息的传送,因此客户协议可以避免终端参与叠加网的维护。不过目前还不清楚
系,可以确定的是:
o 对等体具有客户的所有能力。
加网,因为客户只能关联到对等体。
识和相关的信任书。之后,每一次对等体连接上叠加网,它必须将插入叠加网。加入对等体
给它们。
5.2.2. 资源注册
一旦对等体加入叠加网,对等体所负责的用户和服务必须向系统进行注册。该注册过程
用户保存注册信息。
资源注册的路由过程与对等体注册相似。拥有资源的对等体通过分布式算法计算资源的
标识符并且将其注册到负责该资源的对等体处。
为了保险起见,资源可以备份到叠加网中的其他对等体上。备份资源的标识符是通过对
资源名加入备份号再进行哈希计算而得到的。通过这种方式,备份资源就可以存储在分布式
数据库其他节点上,消除单点失效的危险。
5.2.3. 引导
如果客户或者对等体正在初始化而且想加入到叠加网,那么它首先需要找到 P2PSIP 引
o 通过组播发现机制;
o 通过手工配置;
客户或者对等体可能会依次或者同时尝试每一种方式(可能还会有其它的方式)直到最
终成功的找到引导对等体。
现对等体的地址之后,节点的行为依赖于它是否想成为对等体还是客户。 如果它想成为对
P2PSIP 叠加网存储资源记录。如果它想成为客户,它不用叠加网插入,而只是联络已经被
发现的对等体,进而使用叠加网。
6. 分布式数据库
P2PSIP 叠加网具有分布式数据库的功能。数据库主要用来存储资源信息,其中的信息
块称为资源记录,并且可以通过称作资源标识符的键值从数据库中检索。资源标识符除了用
来唯一标识资源,它还可以被分布式数据库算法用来决定对等体或者对等体在叠加网中存储
的资源记录。与用户关联的资源记录中的信息包括用户的全名和用户使用的用户代理的位
置。
用户信息能够被存储在叠加网之前,用户需要一个用户名。用户名是一个可读的标识符,
该标识符能够唯一的标识叠加网中的用户。用户名不是资源标识符,而资源标识符却可以通
过叠加网使用的分布式数据库算法从用户名得到,比如加密的哈希算法。
叠加网可能还需要用户具有信任书。通过信任关系,用户可以用来鉴权和/或者证明自
己是叠加网授权用户。
拥有业务的对等体能够向叠加网中的其它对等体和客户提供服务。存储在与业务相关联
的资源记录中的信息包括对等体能够提供的业务。
每个业务拥有一个可读的业务名称用来唯一标识业务本身。和用户名一样,业务名不是
资源标识符,但是资源标识符却可以通过叠加网中采用的分布式数据库算法从业务名称中得
到。
6.1. 分布式数据库的应用
以下是分布式数据库应用的例子:
第一个例子是将用户的联络信息存储在资源记录中。对等体 Y 是该用户的联络点,它
把联络信息存到资源记录中去。而资源记录本身是存储在由分布式数据库算法得到的对等体
记录,然后从资源记录中获得用户的不同的联络点信息(包括对等体 Y)
,并且将 INVITE
消息转发到相应的联络点。
消息交换过程如下图所示。
“Put(U@Y)”表示分布式数据库操作--更新联络点 Y 上
的用户 U 的资源记录。
“Get(U)”表示分布式数据库操作--获取用户 U 的资源记录。注意,
第二个例子同样演示了用户如何存储他们的联络信息到资源记录中去。然而,对等体 X
体。
图 3 分布式数据库例二
由代理转发到对等体 Y 和其它联络点。
图 4 分布式数据库例三
7. 两种 P2PSIP 实现方式
种实现方式。
换有两个目的。第一个目的是用来维护分布式数据库,该类消息用来管理对等体加入和离开
叠加网以及在对等体之间进行信息的传送。第二个目的是用来完成注册用户、邀请其他用户
加入会话等基本的会话建立动作。由于分布式数据库被用作分布式注册器,注册和搜索都在
分布式数据库中完成。一旦目标资源被锁定,接下来的通信过程就直接在用户代理之间进行,
REGISTER 消息对资源名和其位置进行绑定。
当一个对等体发送一个消息到分布式数据库中,它就开始计算目标标识符,该目标标识
符很可能就是他自己。对等体自己的标识符可以通过哈希自己的用户注册信息而得到的。接
下来它就查询自己的路由表以找到他所知道的离目标标识符最近的对等体。通常在启动的时
候,应用仅知道一个启动对等体。消息被送到一个对等体后,如果该对等体负责这个标识符
的话,那么它就执行请求的操作。如果联络的对等体不负责这个标识符的话,那么这个对等
体产生一个重定向消息,告诉这个正在搜寻的对等体去往一个离负责该目标标识符对等体最
近的对等体。接下来搜索对等体就联络这个指定的对等体,该过程不断重复,直到最终找到
目标对等体。
7.1.1. 对等体注册
当一个对等体(加入对等体)希望加入叠加网,它生成自己的对等体标识符并且发送
REGISTER 消息到引导对等体,请求加入叠加网。任何在分布式数据库中的对等体都可以作
为引导对等体。按照以上的路由机制,引导对等体查找他所知道的离加入对等体标识符最近
的对等体,并且返回重定向消息给加入对等体,告诉它去往最近对等体。然后,加入对等体
加入对等体通过准入对等体学习到叠加网中的其他对等体,并且获得由自己维护的资源信
息。
此后,当有对等体加入或者离开时,都会产生消息交换用以维护叠加网。
7.1.2. 会话建立
会话建立第一步是通过资源搜索而定位对等体。目标资源的名字被用来计算出资源标识
404 消息――表示没有找到。接下来的会话可以在用户代理之间直接建立。
而言并不一定是优化的。
P2P 叠加网可以看成是在各种不同网络环境中,具有不同物理资源的对等体组成的网
那些不具备合适的物理资源的结点,应该免于被迫提供资源。
因此网络中节点被分为两种类型:对等体结点和客户结点。对基于分布式数据库的 P2P
叠加网而言,对等体结点参与建设和维护分布式数据库。客户结点不参与分布式数据库操作。
对等体结点通过查询请求路由和回复来提供查询服务。为了发现其他对等体的资源,客户结
点向对等体结点发送查询请求消息,对等体结点在分布式数据库中对查询请求路由。也就是
说,对等体结点组成分布式存储和查询服务网络;而客户结点和对等体结点都可以使用叠加
因为只有对等体结点参与分布式数据库,P2P 叠加网具有层次架构:核心层包括对等体
结点,他们之间形成分布式数据库,边缘是客户结点。每个客户结点和一个对等体结点相关
联。客户结点和对等体结点之间的关系类似主机和路由器之间的客户服务器关系。客户结点
如下:
改变现有叠加网中的资源。
更新 P2P 叠加网中的现有资源,如果给定键值的资源不存在,它将会创建新的资源记录。
更新操作仅仅允许现有资源的所有者(创建者)执行。如果存储的资源不和任何认证信任相
关联,该操作失败。
从 P2P 叠加网中删除给定键值的资源。和更新操作类似,它仅允许现有资源的所有者或创
建者执行。如果认证不成功或者没有关联的安全信任,该操作失败。
如果任何人都允许删除或者更新其他人的位置记录,那么很容易阻塞或者干扰特定用户
的呼叫。因此必须要求资源记录的所有者有权利设置对记录的访问控制策略,特别是对于删
录。总体而言,叠加网存储资源记录和相关的控制信息记录,包括资源的键值,所有者标识,
和所有者设置的访问控制策略等。
P2P 叠加网和 SIP 层的分离允许 P2PSIP 网络由多个 P2P 叠加网组成,其中 P2P Proxy
实体来自多个 SIP 域。
当 P2P UA 和同一个 P2P 叠加网中的另一个 P2P UA 建立呼叫的时候,
7.2.3. P2P UA 行为
在呼叫过程中,P2P UA 采用如下次序获取资源记录:
-关联被叫的目标 UA
-本域中的本地代理服务器 Proxy
位置记录可以通过基于信任的安全数字签名验证,信任书来自认证服务器。如果俩个查
如果被叫 URI 属于远端域, P2P Proxy 必须通过 DNS,定位 URI 关联的远端 Proxy,
叠加网把位置记录放在叠加网中。
8.1. 网络地址转换
由于 NAT 的存在,使得对等体之间不能进行直接的通信。在实际的网络当中,很多的
空间中,这就意味着对等体之间的通信要能够穿越 NAT,并且对等体要能够提供分布式传
具有公网地址的节点为一个组,不具有公网地址的节点为另外一组。然后网络将具有公网地
址的对等体挑选出来作为“对等体节点”,剩下的所有对等体则成为“客户节点”。由于对等
对等体节点以客户/服务器模式进行关联。一旦关联建立成功,客户节点 X 就可以将要发送
Y'转发给 Y。在客户节点和对等体对等体之间的连接是由客户对等体发起的,后续的消息都
能够很容易的穿越中间的 NAT。通过这种方法,两个节点之间的跳数最多只有 3 跳。
第二种方法就是将所有的对等体视为平等的关系,并且在他们之间建立部分网络连接。
从一个对等体发往另一个对等体的消息沿着连接进行路由,最后到达目的地。为了进行高效
的路由,部分网络连接连接采用结构化的组织方式。如果连接结构是基于通用的分布式数据
方法是假设大多数的对等体都具有公网地址,并能够参与到对等体对等体中,但是在一些应
法就失效了。
第二种方法虽然只适合于小规模的网络,但是可以在很多应用场合使用,特别是在第一
种方法失效的场景下。
客户的角色定位。
协议进行复用而实现。
9. 安全问题
对等网络需要在提供合适的信任和减少中心认证方面做出平衡。 它的目标不是去解决
广义分布信任问题,而是关注终端识别和会话建立的合适方式。
9.1. 启动
成为一个客户结点,需要使用动态配置的对等体结点信息。由于对等体结点的信息是从
不受信任的源或者不安全的途径获得的,因此在和相关结点联系的时候必须谨慎。
此外,将信任扩展到新发现的设备的时候同样必须保持谨慎,即使对等体结点的信息源
是可信任的。因为在收集对等体信息和客户用来启动期间,结点的信任关系可能发生改变。
9.2. 节点认证
当连接到网络的时候,结点要认证它选择的对等体是可信任的,并且它们之间可以直接
通信。同样,对等体要了解客户是网络中合法的参与者,并被授权执行查找,记录更新等操
作。
9.3. 对等体消息传送
私密性,必须采用加密。采用加密套件进行密匙交换不仅可以进行双方的验证,同时还可以
保证数据传送的安全。
9.4. 注册
和它联系。对该信息的修改要进行认证,以保证通信没有被重定向,或者中间人攻击。
9.5. 会话端点的发现
口,和在线信息。Get 命令的内容可能泄漏请求者的标识或者位置信息。为了保持私密性,
当代表其他对等体请求的时候,对等体结点可以删除标识信息。对源请求速率的限制是有必
9.6. 客户结点的行为
客户结点并不直接和分布式数据库相连,但是他们可以从分布式数据库读取和放置数
据。因此,他们获得了许多叠加网中的好处,但是并不贡献资源来维护。维护分布式数据库
需要带宽,计算和存储资源。虽然网络鼓励结点成为对等体结点,但是实际中还没有办法强
制他们扮演对等体结点角色。
任何结点都可以在叠加网中放置无用或者分散的信息。除非使用用户的信任作为检查,
否则其他用户的合法数据有可能被删除,而这会导致更多的安全问题。如果两个设备都声称
要对同一个记录添加信息,则两个记录都要维持,并通过他们的信任来区分,因为执行分布
式数据库操作的对等体通常不能区分谁是对的。
由于对哈希表的更新是计算上费力的事情,因此对等体结点要进行验证保证修改记录的
合法性。通过持续发送对等体消息有可能对部分哈希表进行拒绝服务攻击。
9.7. 对等体结点的行为
对等体结点可以直接改变叠加网的拓扑。它可以接受网络中的只读和修改操作,也可以
插入,修改,丢弃或者选择性发送它收到的消息。它有责任维持发送给它的数据的完整性,
并且在加人或者离开网络时候,把部分哈希表发送给其他对等体。因此,对等体是强有力的
结点,对整个叠加网有很大的影响。某个对等体可能(或部分对等体合谋)会毁坏整个网络
的运行。
因此,有必要采用强的认证和授权保证加人分布式数据库的对等体是合法的。另外,对
于可能出问题的对等体所关联的数据维持备份也是很重要的。原始认证,完整性和更新检查
至少可以保证存储在分布式数据库中的表项没有被改变。
10. 其他
10.1. 如何在提供相同服务的多个对等体之间选择
选择是需要考虑的问题。比如如下两种情况:
言更近的对等体,因此对呼叫也更有利?
径效率,所提供的话音质量,或者成本更便宜而言更优?
目前的考虑,P2PSIP 至少返回对等体列表及相关服务。
10.2. 中间对等体对消息的可见性
话,存在哪些安全隐患?
10.4. 客户,对等体和服务
1. 是否所有的对等体提供路由,存储和其他相关服务?还是某些对等体提供特定
服务?
2. 所有对等体必须提供什么服务?如果存在的话。
10.5. 域和叠加网的关系
1.在单个叠加网中,是否存在多个域的名字?
由到正确的叠加网?
3.地址记录(AOR)对应的域是否可以存在多个叠加网中?
4.是否要指定缺省的叠加网?
入叠加网。对于由于某些原因不能加入叠加网的节点,可以采用传统的 SIP,通过对等体代
1.SIP 是用来建立会话的协议,而对等体节点之间通信用来维护叠加网,并不是交互
式的会话。
的开销。
现实的考虑取决于对功能,简单性,通用性和效率的折中。
11. 参考文献
[1] D.Bryan, P.Matthews, E.Shim, D.Willis, “Concepts and Terminology for Peer to
[2] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Petersen,
J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol",
Proceedings of the 2005 Network and Operating Systems Support for Digital Audio
2005.
[8] Rosenberg, J., Weinberger, J., Huitema, C., and R. Mahy, "STUN - Simple Traversal
of User Datagram Protocol (UDP) Through Network Address Translators (NATs)", RFC 3489,
March 2003.