• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
P2P 设计经验谈
 

P2P 设计经验谈

on

  • 1,814 views

 

Statistics

Views

Total Views
1,814
Views on SlideShare
1,809
Embed Views
5

Actions

Likes
1
Downloads
41
Comments
0

2 Embeds 5

http://www.linkedin.com 4
http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    P2P 设计经验谈 P2P 设计经验谈 Presentation Transcript

    • P2P 设计经验谈 余锋 (mryufeng@gmail.com) 2008-06-08
    • 常见类型 • 对等的和中心节点方式 • 迅雷 • BT • 电驴( KAD) • Skype
    • 对等网络 • Peer 都是平等的 • 互相协作
    • 判断网络类型 • Stun 协议 • 可以由公网的 peer 参与实际连接进行判断
    • 传输通道 • UDP o 命令 可靠 udp 数据运行丢 o 开销很小 • TCP o tcp 公平分享带宽的特性 最好开 7 个链接 o 多点下载 o 需要握手 开销大
    • 心跳检查 • Peer 定期心跳来宣布自己的存在 • 频率不可过高
    • 结对互助 • Buddy 关系 • 充分利用公网机器的资源
    • 提高连通率 • Upnp • 防火墙 • Nat • http 隧道 • Udp 打洞 • 中间服务器中转
    • 通道的质量测量 • 需要持续统计 • 主通道有可能失效 必须有备用通道
    • 对抗运营商恶意丢包 • 运营商会对特定类型的包进行限制 • 加密处理
    • 局域网优先 • 广播找 peer • 资源优先在局域网请求
    • 抗攻击和恶意篡改 • Dos 攻击 • 篡改协议 • 修改程序
    • 协议加密和压缩 • xxtea rc4 • zlib • Aes • Rsa
    • 大容量服务器 • Edonkey 服务器 • 减少中间链的个数 提高稳定性 • 方便扩展
    • 错误容忍 • 错误必须可恢复 • 错误原因收集 • 有诊断代码
    • 对抗数据损坏 • Hash • 可检测小块数据损坏的算法
    • 成熟的语言与库 • ACE • Python • Lua • Erlang • Udt • libevent
    • 低资源占用率 • 执行 profile 代码 降低 cpu 使用率 • 减少内存使用量
    • bootstrap • 引导系统进入网络 • 多管道 预防失效 • 标准 http 请求
    • 通讯原语 • 名称查找 • 死亡通知 • RPC
    • 公平公正原则 • 收获必须付出 • 不能滥用用户资源 • 小心恶意用户
    • 平台移植 • 协议 • Api • 代码实现考虑
    • 测试 • P2P 环境的模拟 • 丢包 限速 • Nat 受限
    • 协议兼容性 • 最少保持 3 个版本 • 向前兼容 • 保留字段
    • 部署升级 • 自动升级 • 版本可回滚 • 分批升级
    • 避免触动警报器 • 不要发起的大量的操作,触动网络报警 • 小范围更新
    • 担心网吧和硬盘恢复卡 • 网吧大量用户共享一个 IP • 硬盘数据写后被恢复 • Clone 的客服端 引起混淆
    • 工具箱 • Netpeeker • Wireshark • Intel vtune • Rational Purify Quantity
    • Q&A