2008-05-18

P2P与即时消息(IM)

Views: 15229 | 2 Comments

一个比较常见的误解就是, 认为即时消息必须是 P2P 方式的. 这并不是普遍情况. 对于最具代表性的文本通讯, QQ, XMPP 等都不是 P2P 的, 而是经过中转服务器中转. 下面是可能的原因:

  1. P2P 连接并不总是能建立, 也就是说在某些情况下 P2P 是不可行的.
  2. 假设这样的情况, 一个节点向另一个节点发送了一条消息, 然后过了一个小时又发送另一条消息. 这是很常见的情况. 如果使用 P2P, 那么就需要在这一个小时内保持一条 P2P 连接(如 TCP 连接)或者建立两次连接. 这显示增加了系统的复杂性, 不如通过中转服务器进行中转简单.
  3. 通讯记录有时需要被保存和过滤(可能是政府的要求).

还有就是带宽问题. 在某些情况(有时是常见的)下, A 与 B 直接连接的带宽并不比 A 和 B 之间经过 R 中转的带宽高. 有一次我和一位朋友要传输大概 100 MB 的文件, 开始我们使用了聊天工具的 P2P 传输, 发现速率只有几 K. 后来我决定让他把文件传到我的网站空间的 FTP 上, 然后我再到该 FTP 上取. 估算的速率有 500 K 以上.

带宽问题是由基础网络造成的. 有一个极端的例子, 我经过美国的节点中转数据的速率要比在同一个城市内的网通和电信之间的直接通信要快得多!

还有一个比较重要的例子就是 HTTP 代理服务器, 我们花钱通过一个代理服务器来访问某些网站, 以代替我们直接连接这些网站的服务器.

Related posts:

  1. endlessssh – SSH 代理工具
  2. 使用 Ideawu.P2P.Core.AccountManager 登录服务中心
  3. P2P服务中心的开发
  4. SSH ProxyCommand及其思想
  5. 使用 Ideawu.P2P.Core.UdpLink 进行 NAT 穿透
Posted by ideawu at 2008-05-18 18:59:36

2 Responses to "P2P与即时消息(IM)"

Leave a Comment