计算机网络——应用层-P2P文件分发

计算机网络系列博文——目录

P2P对等体系结构

对一直开启的基础设施服务器有最小程度的依赖,成对间歇连接的主机(对等方)彼此直接通信。

P2P文件分发与C/S文件分发的对比

文件分发模型

  • 将一个文件分发给一个固定的集合。
  • 假定因特网核心带宽充足,网络瓶颈在接入网
  • 服务器接入链路上载速率u_s
  • 对等方i接入链路上载速率u_i
  • 对等方i接入链路下载速率d_i
  • 待分发文件大小F
  • 要获得该文件的对等方数量N

客户/服务器文件分发

服务器向每个客户发送文件的一个副本,服务器负担大,服务器流量消耗大

D_{cs} = max \{ \frac{NF}{u_s},\frac{F}{d_{min} } \}

对足够大的N,分发时间随N线性增加

P2P文件分发

每个客户作为对等方,可重新分发它所有的文件的任何部分。

D{p2p} = max \{ \frac{F}{u_s}, \frac{F}{d_{min}},\frac{NF}{u_s+\sum_{i=1}^{n}u_i}\}

扩展性 对于变量用户规模,客户/服务器体系的总传输时间是线性的,而P2P体系的总传输时间是亚线性且有上界的。

BitTorrent协议

用于文件分发的流行P2P协议。

洪流(torrent) 参与一个特定文件分发的所有对等体的集合

文件块 洪流中的对等方彼此传输等长的文件块;

追踪器(tracker) 一个对等方加入洪流时,向追踪器注册自己,并周期性地通知追踪器自己仍在洪流中。追踪器维护正在参与洪流的对等方列表。
BitTorrent协议中的追踪器是分布式的,即后文中的DHT。

邻近对等方 洪流中,成功创建TCP连接的一对对等方 。

新对等方A加入洪流时,追踪器(随机地)将洪流的某个子集中所有对等方的ip地址发送给A;
A持有该对等方列表,并试图与该列表上的所有对等方创建并行的TCP连接;
A的邻近对等方不断变动,旧邻近对等方可能离开,新邻近对等方可能与A成功创建TCP连接;
A周期性地询问邻近对等方所持有的块列表,并根据列表信息,对A自身当前未拥有的块发出请求;

最稀缺优先技术 对等方A在决定请求哪些块时,首先请求那些A的邻近对等方中副本最少的块,以大致均衡每个块在洪流中的副本数量。

对换算法 对等方A决定响应邻近对等方们的那个请求。A根据当前向它提供数据的邻居的速率,给出优先权。每个时间周期,A根据优先权决定它向哪些邻居传送数据;每过多个时间周期,A随机选出一个邻居并向他发送数据。
以上关于交换的激励机制常被称为一报还一报。这种激励方案能被回避。但事实上,BitTorrent的生态比较成功。

分布式P2P体系数据库,DHT

中心式数据库模型
客户/服务器体系,中心数据库存储键值对,客户可用特定键查询值。

分布式散列表(Distributed Hash Table,DHT)
分布式P2P体系,大量对等方维护一个键值对的表,每个对等方只存储该表的一个小子集。
允许任一对等方用一个特定键查询该分布式数据库。分布式数据库定位拥有该键值对的对等方,并返回该键值对。
允许任一对等方向数据库中插入新键值对。

朴素设计

在所有对等方中随机分布键值对,每个对等方维护一个所有参与对等方的表。查询键k时向所有其他对等方发送查询。维护键k的对等方向查询者发送响应。
此方案无扩展性,随对等方数量增多,数据库复杂性大大增加。

基于散列的设计

为每个对等方分配一个标识符id,id为n比特整数。
定义将键映射到n比特整数的哈希函数。

中心问题
定义为对等方分配键的规则。

对键key,为id最邻近hash(key)的对等方分配该键值对。
最邻近:键的最邻近后继

插入键值对:确定最邻近该键hash的对等方,而后向该对等方发送查询报文。
如何确定最邻近该键hash的对等方?恰当组织数据库结构

DHT结构

将DHT组织为连通图
连通度过高,每个对等方需维护的邻居数过多
连通度过低,DHT为解析一个查询而需转发的报文次数过多

环形DHT
将对等方组织为环,每个对等方仅与其直接后继和直接前驱联系。

对等方收到一个查询报文时,判断是否应有自己处理该报文,若不是,则将报文转发给后继邻居

捷径DHT
以环形DHT为基础,为每个对等方维护适量的捷径对等方。

对等方收到一个查询报文时,判断是否应有自己处理该报文,若不是,则将报文转发给最邻近该键hash的邻居

研究表明,DHT可被设计为每个对等方的邻居数和每个请求的报文转发次数都在O(logN),N为对等方总数

对等方扰动

P2P体系中,对等方可不加警示地到来或离去。

为处理对等方扰动,每个对等方应存储冗余的邻居信息。如环形DHT中每个对等方可以同时存储第一后继和第二后继。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,056评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,842评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,938评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,296评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,292评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,413评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,824评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,493评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,686评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,502评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,553评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,281评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,820评论 3 305
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,873评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,109评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,699评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,257评论 2 341

推荐阅读更多精彩内容

  • 我总觉得无论是决定考研还是就业,还是决定考哪所院校,做选择的过程都是很复杂的,要考虑很多因素,不是突然决定的,所以...
    秘耳阅读 75评论 0 0
  • 那天傍晚,结束得很早,只有一个两三个孩子还在等待着父母的到来,我很轻松。现在门口看着车来车往发呆,远远地望见他骑车...
    刘忙不盲阅读 366评论 2 2