35

Click here to load reader

P2P 基础知识简介

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

Page 1: P2P 基础知识简介

P2P 基础知识简介

李振华 在读博士

北京大学计算机系网络所 P2P 组Homepage: net.pku.edu.cn/~p2p

Page 2: P2P 基础知识简介

提纲• 1 P2P 是什么?• 2 P2P 历史(工业界)• 3 P2P 历史(学术界)• 4 国内科研情况• 5 AmazingStore 系统简介• 6 基础实验平台简介• 7 上机作业

Page 3: P2P 基础知识简介

1 P2P 是什么?网上众说纷纭……

我们的看法:• 1 、一种思想• 2 、一种工具• 3 、一类应用

Page 4: P2P 基础知识简介

1.1 一种思想• 计算机网络 因特网 Internet• 网络的基础结构:1 、集中式: C/S = Client/Server

-- 好:管理简单,控制有效-- 坏: Server 瓶颈

2 、分布式: Distributed-- 好:无瓶颈,资源充分利用-- 坏:管理松散,难于控制

P2P = 分布式的极端 ( since 1956 年)

自由平等互联

Page 5: P2P 基础知识简介

1.2 一种工具• Peer-to-Peer• 一切网络皆可 P2P 化! But……

Page 6: P2P 基础知识简介

1.3 一类应用• 文件共享

• 媒体播放

• 数据存储

• 分布计算等

Page 7: P2P 基础知识简介

2 P2P 的历史(工业界)• 2.1 溯源: Napster

-- 1999 年, 18 岁的美国学生 Shawn Fanning-- 宿舍开发,朋友共享 mp3-- 半年 5000 万用户!-- 2001 年,版权纠纷,被迫关闭

1999-2009 , P2P 十年……

Page 8: P2P 基础知识简介

• Napster 运行原理

Page 9: P2P 基础知识简介

2.2 Gnutella

• 2000 年 3 月, Nullsoft 公司• Justin Frankel & Tom Pepper: Winamp 发明人• 版权问题上线一个半小时关闭• 无结构 P2P 系统代表• 其思想和代码被多出复制、改写、继承

Page 10: P2P 基础知识简介

• Gnutella 运行原理、洪泛问题

Page 11: P2P 基础知识简介

2.3 KaZaa/Skype, eDonkey/eMule

• 2009 年 7 月, KaZaa• Niklas & Friis• 300 万在线用户!• Niklas 继续创办 Skype

• 2000 年, eDonkey• 2002 年, Merkur 改良

eDonkey eMule• 国内 VeryCD

层次化无结构 P2P系统

Page 12: P2P 基础知识简介

2.4 BT

• 2002 年 10 月• Bram Cohen 穷困潦倒……

企业家 Gilmore 资助生活费 • 2003 年 BitTorrent 流行

Bram Cohen 依然穷困潦倒 2003 年末找到工作!

Page 13: P2P 基础知识简介

2.5 PPLive, PPS, UUSee

• 2003 年,中国• PPLive :姚欣(华中科大本科)• PPStream :张洪禹(哈尔滨师大本科) + 雷量

(成都一程序员)• UUSee :李竹(清华本科) + 刘怀宇(清华硕

士)

Page 14: P2P 基础知识简介

2.6 迅雷, QQ 旋风• 迅雷• 2003 年,深圳• 邹胜龙(硅谷海归) +

程浩(硅谷海归)• 中国最大的互联网资

源聚合平台

• QQ 旋风• 2007 年,上海• 腾讯研究院• No.2 互联网资源聚合

平台

Page 15: P2P 基础知识简介

Relaxation 1

• “ 出名要趁早啊,来得太晚的话,快乐也不那么痛快。”

—— 张爱玲

房子、车子、妻子、孩子、……

互联网是造就青年英雄的园地!

Page 16: P2P 基础知识简介

3 P2P 历史(学术界)• 3.1 O’reilly 的 P2P峰会

-- 2000 年 8 月, O’reilly 组织 P2P峰会-- 澄清 P2P 的理念,消除P2P恐惧-- 2001 年, O’reilly 出版最早的 P2P专著

Page 17: 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)

Page 18: P2P 基础知识简介

Chord前传:环形数组 /链表• 环形数组路由?

-- 二分查找-- O(logN)跳

• 环形链表路由?-- 二分查找 NO !

• 如何 O(logN) ?-- 带弦环= 路由表(网络)

Page 19: P2P 基础知识简介

Chord 介绍 1

• Chord :最简单、最精确• 拓扑结构:带弦环• 功能:

-- 节点 / 数据对象 映射到 拓扑网络中

• 映射方法:-- 节点 ID = Hash(IP, port)-- 数据 ID = Hash(Value)-- 节点按 ID顺时针排列-- 节点后继 vs 对象后继

匿名、虚节点

Page 20: P2P 基础知识简介

• 路由表( finger table )-- 指数距离: 1 、 2 、 4 、 8 、…、 2^m-- m项, m为节点 ID比特数

Chord 介绍 2

Page 21: P2P 基础知识简介

Chord 介绍 3• 路由:

-- 二分查找,由远及近-- 定位节点 / 数据对象平均路由跳数 O(logN)-- 思考题 1 :为什么是 O(logN)而不是 O(m) ?-- 思考题 2 :平均跳数是 (logN)/2 ,为什么?

Page 22: P2P 基础知识简介

DHT

• DHT (分布式散列表)

Page 23: P2P 基础知识简介

3.3 常数度结构化模型

• 常数度:每个节点有常数条边

• Viceroy :蝴蝶结构

• Koorde : Chord + 德布罗意图

• Cycloid : 3 维 CCC

Page 24: P2P 基础知识简介

3.4 结构化 P2P 的特点• 1 、节点度为常数或 O(logN)• 2 、数据对象存放位置确定( hash )• 3 、定位对象的路由跳数为 O(logN)• 4 、结构严格,维护开销大

迄今为止,除 Kademlia模型在 BT 、 eMule 中辅助使用外,没有实用的结构化 P2P模型

但是,结构化 P2P 的思想被用在服务器集群、云计算等领域,取得了不错的效果

Page 25: P2P 基础知识简介

3.5 专著

Page 26: P2P 基础知识简介

4 国内科研情况

• 北京大学网络所-- Maze 共享、 AmazingStore 存储

• 华中科大网格实验室-- AnySee视频直播

• 清华大学高性能所、多媒体所-- Granary 存储、 GridMedia视频直播

Page 27: P2P 基础知识简介

Relaxation 2

• P2P 科研领域目前的境况:-- 美国学者——引领、挖坑-- 中国学者——跟踪、灌水

为什么?——找祖宗、 2000 年怎么办?——没办法

“牢骚太盛防肠断,欲望太强睡不着。”

Page 28: P2P 基础知识简介

5 AmazingStore 系统简介• P2P 共享 + P2P 存储• 教育网• 网址: amazingstore.grids.cn• 兼容Maze 资源 • 开发小组:代亚非 教授,苏冰 /周模 /丁嵩 / 董嵬 /肖锋 /陈驰 /曲直

• 在线用户突破 800• 优良的 P2P 科研试验平台

Page 29: P2P 基础知识简介

5.1 AmazingStore 6 大功能1 、热门资源推荐 2 、所有资源搜索 3 、对等节点浏览

4 、经典资源收藏 5 、 P2P 网络硬盘 6 、开发中……

Page 30: P2P 基础知识简介

基础实验平台简介• 1 、最好的平台:自己搭建系统

-- 自由修改,数据齐全,适合研究

• 2 、较好的平台:利用现有系统 -- 如 QQ 旋风、 AmazingStore 等

• 3 、公认的平台: PlanetLabP2P研究者居家必备之良药!(北大已加入)

Page 31: P2P 基础知识简介

基础实验平台简介 2• 4 、凑合的平台:自己写代码模拟

-- 灵活方便,简单易行,但不具有说服力• 5 、最不好的平台:用他人写的模拟器

-- 手到擒来,但自由度太小,极易受他人置疑 -- MIT: p2psim, Trento: PeerSim, GaTech: GnutellaSim, 3LS

Page 32: P2P 基础知识简介

基础实验平台简介 3

• 推荐实验方式: 4 、自己写代码模拟-- Java 或 C# ,面向对象实现,单线程-- 1 个 Monitor对象 + N 个 Node对象-- Monitor对象记录所有运行数据-- Node对象属性:物理地址, ID ,路由表,邻居表等-- Node对象方法:定位对象、传递路由消息等-- 网络拓扑结构: GT-ITM 、 BRITE拓扑发生器、真实数据-- 权宜之计,发不了一流论文!

Page 33: P2P 基础知识简介

上机作业• 使用任意实验方式模拟 Chord 网络(单机)

-- 算法伪代码均在 Chord 原始论文中-- 节点 IP 、 port及数据对象 Value随机生成-- 节点 / 数据对象 ID产生可使用任意 Hash函数( SHA 、 MD5 在 Java 、 C# 类库中有)-- 节点顺序加入,不考虑并行-- 路由表构造( Table 1 )、路由算法实现( Figure 4 )参照原始论文-- 仅处理节点加入( Figure 6 ),不处理节点退出、意外-- 需要处理节点加入时数据对象的移交( Figure 6 )

Page 34: P2P 基础知识简介

上机作业(续)-- 网络拓扑结构可随机产生(使用拓扑发生器更好)-- 不考虑网络环境, RPC (远程过程调用)可实现为直接的函数调用

-- 统计每个节点存储的数据对象个数,将其分布作图,与原始论文作对照,分析原因-- 随机选取节点查找随机数据对象,记录路由跳数的分布并作图,与原始论文作对照,分析原因

Page 35: P2P 基础知识简介

结尾

• 感谢大家的耐心和支持!• P2P领域问题多多欢迎加入!• 祝大家学习进步、安心快乐!