2007-10-08

P2P应用的架构

Views: 11837 | Add Comments

中心化拓扑(Centralized Topology)的 P2P 架构是最重要的一种. 比如在 IM 应用中, 如果没有中心服务器的存在, 身份识别, 账号管理, 好友功能等将很难实现.

和 IM 应用一样, 绝大部分的 P2P 应用, 如企业内部通讯软件, 文件共享, 视频电话等都必须拥有身份识别, 账号管理功能.

中心化拓扑的 P2P 架构包括以下 3 个部分:

1. 服务中心(Service Center)

服务中心最主要的功能身份识别和账号管理. 管理网络节点(Peer, 见下文)的加入和退出, 对节点之间的部分应用通信进行控制. 在一个 P2P 网络中, 可以包含多个服务中心, 提供不同的服务. 比如, 账号服务中心(Account Center), 数据中转服务中心(Relay Center)是最典型的服务中心. 不同的服务中心可以独立运行, 也可以合作成为一个整体.

2. 节点(Peer), Agent 和账号(Account)

在服务中心的一个账号对应一个节点, 一个节点可能使用对应多个服务中心的多个账号. 节点程序是运行在普通用户的个人电脑上软件. 账号是服务中心对节点软件进行管理的节点标识. Agent 是节点访问服务中心的接口.

3. 应用(Application)和 P2P 软件

P2P 软件运行于 P2P 网络之上, 提供各种应用. 比如 IM 应用, 文件共享应用, 流媒体应用等. 如果 P2P 软件提供 IM 应用, 那么该 P2P 网络至少需要 IM 账号服务中心. 如果 P2P 软件提供文件共享应用, 那么该 P2P 网络至少需要文件共享账号服务中心. 但是, 有可能一个 P2P 软件同时提供 IM 应用和文件共享应用, 而只使用一个账号服务中心.

节点之间通信数据分为:

1. 通过服务中心中转

1.1 控制中转. 这是 P2P 应用的开发者要求的, 比如两个节点需要建立直接连接时, 必须求助于服务中心, 这样服务中心才能进行管理, 包括计费等.

1.2 单纯的数据中转. 这种方式是为了应付两个节点无法在现有的网络上直接相连时的情况.

2. 直连

在不涉及到 P2P 网络管理的的通信, 由两个节点直接在现有的网络(如 TCP/IP)上建立连接. 这是 P2P 的本质, 资源是分布式的, 而不是存在于单一的节点.

Related posts:

  1. P2P 的定义
  2. iphp 框架增加 lazyload 特性
  3. 使用 Ideawu.P2P.Core.AccountManager 登录服务中心
  4. Raft Read Index 的实现
  5. SIP tag 和 Call-ID 的区别
Posted by ideawu at 2007-10-08 21:08:45

Leave a Comment