Click here to load reader
Upload
cynthia-strong
View
114
Download
26
Embed Size (px)
DESCRIPTION
P2P 基础知识简介. 李振华 在读博士 北京大学计算机系网络所 P2P 组 Homepage: net.pku.edu.cn/~p2p. 提纲. 1 P2P 是什么? 2 P2P 历史(工业界) 3 P2P 历史(学术界) 4 国内科研情况 5 AmazingStore 系统简介 6 基础实验平台简介 7 上机作业. 1 P2P 是什么?. 网上众说纷纭 …… 我们的看法: 1 、一种思想 2 、一种工具 3 、一类应用. 1.1 一种思想. 计算机网络 因特网 Internet 网络的基础结构: - PowerPoint PPT Presentation
Citation preview
P2P 基础知识简介
李振华 在读博士
北京大学计算机系网络所 P2P 组Homepage: net.pku.edu.cn/~p2p
提纲• 1 P2P 是什么?• 2 P2P 历史(工业界)• 3 P2P 历史(学术界)• 4 国内科研情况• 5 AmazingStore 系统简介• 6 基础实验平台简介• 7 上机作业
1 P2P 是什么?网上众说纷纭……
我们的看法:• 1 、一种思想• 2 、一种工具• 3 、一类应用
1.1 一种思想• 计算机网络 因特网 Internet• 网络的基础结构:1 、集中式: C/S = Client/Server
-- 好:管理简单,控制有效-- 坏: Server 瓶颈
2 、分布式: Distributed-- 好:无瓶颈,资源充分利用-- 坏:管理松散,难于控制
P2P = 分布式的极端 ( since 1956 年)
自由平等互联
1.2 一种工具• Peer-to-Peer• 一切网络皆可 P2P 化! But……
1.3 一类应用• 文件共享
• 媒体播放
• 数据存储
• 分布计算等
2 P2P 的历史(工业界)• 2.1 溯源: Napster
-- 1999 年, 18 岁的美国学生 Shawn Fanning-- 宿舍开发,朋友共享 mp3-- 半年 5000 万用户!-- 2001 年,版权纠纷,被迫关闭
1999-2009 , P2P 十年……
• Napster 运行原理
2.2 Gnutella
• 2000 年 3 月, Nullsoft 公司• Justin Frankel & Tom Pepper: Winamp 发明人• 版权问题上线一个半小时关闭• 无结构 P2P 系统代表• 其思想和代码被多出复制、改写、继承
• Gnutella 运行原理、洪泛问题
2.3 KaZaa/Skype, eDonkey/eMule
• 2009 年 7 月, KaZaa• Niklas & Friis• 300 万在线用户!• Niklas 继续创办 Skype
• 2000 年, eDonkey• 2002 年, Merkur 改良
eDonkey eMule• 国内 VeryCD
层次化无结构 P2P系统
2.4 BT
• 2002 年 10 月• Bram Cohen 穷困潦倒……
企业家 Gilmore 资助生活费 • 2003 年 BitTorrent 流行
Bram Cohen 依然穷困潦倒 2003 年末找到工作!
2.5 PPLive, PPS, UUSee
• 2003 年,中国• PPLive :姚欣(华中科大本科)• PPStream :张洪禹(哈尔滨师大本科) + 雷量
(成都一程序员)• UUSee :李竹(清华本科) + 刘怀宇(清华硕
士)
2.6 迅雷, QQ 旋风• 迅雷• 2003 年,深圳• 邹胜龙(硅谷海归) +
程浩(硅谷海归)• 中国最大的互联网资
源聚合平台
• QQ 旋风• 2007 年,上海• 腾讯研究院• No.2 互联网资源聚合
平台
Relaxation 1
• “ 出名要趁早啊,来得太晚的话,快乐也不那么痛快。”
—— 张爱玲
房子、车子、妻子、孩子、……
互联网是造就青年英雄的园地!
3 P2P 历史(学术界)• 3.1 O’reilly 的 P2P峰会
-- 2000 年 8 月, O’reilly 组织 P2P峰会-- 澄清 P2P 的理念,消除P2P恐惧-- 2001 年, O’reilly 出版最早的 P2P专著
3.2 四大结构化模型• 2001 年, SIGCOMM (网络通信顶尖会议)
-- Chord: Ion Stoica 等( Berkeley 、 MIT )
-- CAN: Ratnasamy 等( Berkeley 、 AT&T )
• 2001 年,其它两个模型-- Pastry: Rowstron 等(微软、 Rice )
-- Tapestry: 赵燕斌等( Berkeley )
• 结构化 P2P 系统 = DHT(Distributed Hash Table)
Chord前传:环形数组 /链表• 环形数组路由?
-- 二分查找-- O(logN)跳
• 环形链表路由?-- 二分查找 NO !
• 如何 O(logN) ?-- 带弦环= 路由表(网络)
Chord 介绍 1
• Chord :最简单、最精确• 拓扑结构:带弦环• 功能:
-- 节点 / 数据对象 映射到 拓扑网络中
• 映射方法:-- 节点 ID = Hash(IP, port)-- 数据 ID = Hash(Value)-- 节点按 ID顺时针排列-- 节点后继 vs 对象后继
匿名、虚节点
• 路由表( finger table )-- 指数距离: 1 、 2 、 4 、 8 、…、 2^m-- m项, m为节点 ID比特数
Chord 介绍 2
Chord 介绍 3• 路由:
-- 二分查找,由远及近-- 定位节点 / 数据对象平均路由跳数 O(logN)-- 思考题 1 :为什么是 O(logN)而不是 O(m) ?-- 思考题 2 :平均跳数是 (logN)/2 ,为什么?
DHT
• DHT (分布式散列表)
3.3 常数度结构化模型
• 常数度:每个节点有常数条边
• Viceroy :蝴蝶结构
• Koorde : Chord + 德布罗意图
• Cycloid : 3 维 CCC
3.4 结构化 P2P 的特点• 1 、节点度为常数或 O(logN)• 2 、数据对象存放位置确定( hash )• 3 、定位对象的路由跳数为 O(logN)• 4 、结构严格,维护开销大
迄今为止,除 Kademlia模型在 BT 、 eMule 中辅助使用外,没有实用的结构化 P2P模型
但是,结构化 P2P 的思想被用在服务器集群、云计算等领域,取得了不错的效果
3.5 专著
4 国内科研情况
• 北京大学网络所-- Maze 共享、 AmazingStore 存储
• 华中科大网格实验室-- AnySee视频直播
• 清华大学高性能所、多媒体所-- Granary 存储、 GridMedia视频直播
Relaxation 2
• P2P 科研领域目前的境况:-- 美国学者——引领、挖坑-- 中国学者——跟踪、灌水
为什么?——找祖宗、 2000 年怎么办?——没办法
“牢骚太盛防肠断,欲望太强睡不着。”
5 AmazingStore 系统简介• P2P 共享 + P2P 存储• 教育网• 网址: amazingstore.grids.cn• 兼容Maze 资源 • 开发小组:代亚非 教授,苏冰 /周模 /丁嵩 / 董嵬 /肖锋 /陈驰 /曲直
• 在线用户突破 800• 优良的 P2P 科研试验平台
5.1 AmazingStore 6 大功能1 、热门资源推荐 2 、所有资源搜索 3 、对等节点浏览
4 、经典资源收藏 5 、 P2P 网络硬盘 6 、开发中……
基础实验平台简介• 1 、最好的平台:自己搭建系统
-- 自由修改,数据齐全,适合研究
• 2 、较好的平台:利用现有系统 -- 如 QQ 旋风、 AmazingStore 等
• 3 、公认的平台: PlanetLabP2P研究者居家必备之良药!(北大已加入)
基础实验平台简介 2• 4 、凑合的平台:自己写代码模拟
-- 灵活方便,简单易行,但不具有说服力• 5 、最不好的平台:用他人写的模拟器
-- 手到擒来,但自由度太小,极易受他人置疑 -- MIT: p2psim, Trento: PeerSim, GaTech: GnutellaSim, 3LS
基础实验平台简介 3
• 推荐实验方式: 4 、自己写代码模拟-- Java 或 C# ,面向对象实现,单线程-- 1 个 Monitor对象 + N 个 Node对象-- Monitor对象记录所有运行数据-- Node对象属性:物理地址, ID ,路由表,邻居表等-- Node对象方法:定位对象、传递路由消息等-- 网络拓扑结构: GT-ITM 、 BRITE拓扑发生器、真实数据-- 权宜之计,发不了一流论文!
上机作业• 使用任意实验方式模拟 Chord 网络(单机)
-- 算法伪代码均在 Chord 原始论文中-- 节点 IP 、 port及数据对象 Value随机生成-- 节点 / 数据对象 ID产生可使用任意 Hash函数( SHA 、 MD5 在 Java 、 C# 类库中有)-- 节点顺序加入,不考虑并行-- 路由表构造( Table 1 )、路由算法实现( Figure 4 )参照原始论文-- 仅处理节点加入( Figure 6 ),不处理节点退出、意外-- 需要处理节点加入时数据对象的移交( Figure 6 )
上机作业(续)-- 网络拓扑结构可随机产生(使用拓扑发生器更好)-- 不考虑网络环境, RPC (远程过程调用)可实现为直接的函数调用
-- 统计每个节点存储的数据对象个数,将其分布作图,与原始论文作对照,分析原因-- 随机选取节点查找随机数据对象,记录路由跳数的分布并作图,与原始论文作对照,分析原因
结尾
• 感谢大家的耐心和支持!• P2P领域问题多多欢迎加入!• 祝大家学习进步、安心快乐!