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