第四周:网络应用(下)

一、P2P应用_原理与文件分发

1、纯P2P架构

2、文件分发:客户机/服务器架构 

3、文件分发:P2P架构

P2P和CS架构对比: 

对于文件分发这类应用来说,P2P架构有着非常好的可扩展性,即当节点数目增大的时候,它所用的时间增长得很缓慢。这也是为什么文件分发或下载服务(应用)广泛使用P2P架构。

4、BitTorrent(BT)协议

P2P文件分发的典型例子就是BT协议

BT协议的原理:

1)首先,交换同一个文件的文件块的节点会形成一个“节点组(torrent)”,这个节点组是动态变化的;对于每个torrent,我们有一台机器(tracker),它负责跟踪有哪些节点参与了这个torrent(就是互相构成了文件共享的动态组织),torrent内的节点互相之间交换的是一个个的文件块(chunk)

2)这是有一个用户Alice进来,她向tracker查询现在这个torrent有哪些节点,获取到节点列表,然后她会和其他人建立TCP连接,她就可以从别人那里获得这些文件块。同时她也会去共享

具体细节如下:

思考:

二、P2P应用_索引技术

本节我们来探讨P2P应用当中的一项关键技术——索引技术。在这一块我们将探讨不同的技术方案

1、P2P:搜索信息

我们在P2P应用中,经常需要搜索信息。即:我们既要形成索引,又要利用索引定位。

既然索引对于P2P应用过如此重要,那么应该怎么设计索引呢?有如下两种方案:

2、方案一:集中式索引

(1)集中式索引的原理

(2)集中式索引的缺点

虽然内容及文件的传输是分布式的,但内容的定位和检索是高度集中式的,那么就会面临如下问题:

单点失效问题:如果采用一个集中式的目录服务器,那么当这个服务器挂掉的时候,整个P2P系统就无法使用了

性能瓶颈:报告、查找都要经过这个目录服务器,服务器压力山大。。。

版权问题:不利于打击盗版,别人可能会以传播盗版为由举报你

3、方案二:分布式索引——洪泛式查询(Query flooding)

分布式索引没有服务器,没有所谓特殊的节点,每个节点负责对自己共享的文件提供索引服务,并且只索引自己的文件。

那么我怎么查询想要的东西呢?比如我想搜指环王,那我就只能全网搜索了,可是又没人持有这种全局的目录啊。。。

这里就引入了一个新概念——覆盖网络(Overlay network)

就是我把我的查询消息发给所有和我建立连接的节点,然后这些节点再转发我的查询消息,直到某个节点有我要的资源,再利用反向路径给我发回来。

洪泛查询的缺点:

查询消息会像洪水一样在网络里泛滥,会给网络带来很大的负担。洪泛式查询会大量消耗网络带宽,导致网络拥塞。

4、方案三:层次式覆盖网络

案例应用:

$、课后作业

三、Socket编程——应用编程接口(API)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值