当前课程知识点:计算机网络 >  第六章 应用层 >  6.5 P2P >  P2P

返回《计算机网络》慕课在线视频课程列表

P2P在线视频

下一节:计算机网络面临的安全性威胁

返回《计算机网络》慕课在线视频列表

P2P课程教案、知识点、字幕

这一节我们一起来学习

P2P应用的若干工作原理

我们这节分为4个部分

概述以及3个P2P的相关应用

具有集中目录结构

服务器的P2P工作方式

具有全分布式结构的

P2P文件共享程序

以及在P2P对等方中搜索对象

传统的客户机/服务器结构中

服务器就是数据源

客户机从服务器端请求数据

主要的应用有WWW

FTP、Web服务等

随着全球接入互联网人数的增长

对互联网应用的服务端

要求越来越高

吞吐量和并发量逐步加大

像国外的Google、Amazon

国内的阿里、百度

等大型互联网企业

十分关注如何使用集群

负载均衡等技术

来提高网站的并发和吞吐量

但对于保存大文件

给用户下载的中小型网站

在互联网爆发式增长下

用户数量越来越多

传输的文件越来越大

使用一台或几台服务器

和传统的FTP、HTTP协议

难以满足用户对下载速度的需求

受限于庞大的用户请求量

磁盘读取速度、带宽等因素

传统的客户机/服务器结构

有如下限制

可伸缩性很难实现

单点故障

需要管理

网络边缘未使用的资源

CPU周期、存储等等

所以P2P试图解决这类问题

对等式网络peer-to-peer

简称P2P

又称点对点技术

是无中心的服务器

依靠用户群peer之间

交换信息的互联网体系

它的作用在于

网络的参与者

共享他们所拥有的一部分硬件资源

处理能力、存储能力

网络连接能力、打印机等

这些共享资源通过网络

提供服务和内容

能被其它对等节点

直接访问而无需经过中间实体

减低了以往网络传输中的节点

以降低资料遗失的风险

与有中心服务器的中央网络系统不同

对等网络中的每个用户端

既是资源服务或者内容提供者Server

又是资源获取者Client

任何一个节点无法直接找到其他节点

必须依靠其用户群进行信息交流

如图 我们可以总结出

P2P网络的一些特征

1.非中心化

P2P是全分布式系统

网络中的资源和服务分散在

所有的节点上

信息的传输和服务的实现都

直接在节点之间进行

可以无需中间环节和服务器的介入

2.可扩展性

用户可以随时加入该网络

系统的资源和服务能力(随之)

同步扩充

理论上其可扩展性

几乎可以认为是无限的

3.健壮性

因为服务是分散在各个节点之间

部分节点或网络遭到破坏

对其他部分的影响很小

故P2P具有耐攻击、高容错的特点

P2P网络一般在部分结点失效时

能够自动调整整体拓扑

保持其它结点的连通性

P2P网络通常都是

以自组织的方式建立起来

并允许结点自由地加入和离开

4.高性价比

P2P架构可以有效地利用互联网中

散布的大量普通结点

将计算任务或存储资料

分布到所有的节点上

利用其中闲置的计算能力或存储空间

达到高性能计算和海量存储的目的

5.隐私保护

在P2P网络中

由于信息的传输

分散在各节点之间进行

而无需经由某个集中环节

用户的隐私信息

被窃听和泄漏的可能性大大缩小

6.负载均衡

由于每个节点

既是服务器又是客户端

减少了传统客户机/服务器模式中

对服务器计算能力、存储的要求

同时因为资源分布在多个节点

更好的实现了整个网络的负载均衡

下面我们来学习

具有集中目录服务器的

P2P工作方式

Napster是一款可以在网络中

下载自己想要的MP3文件的软件

它同时能够让自己的机器

也成为一台服务器

为其它用户提供下载功能

图中给出了某个用户

想下载音乐文件的主要交互过程

用户X向Napster目录服务器查询

这是客户-服务器结构

谁有音乐文件MP3#

Napster目录服务器回答X

有三个地方有文件MP3#

即A,B和C

给出了这三个地点的IP地址

于是用户得到所需的

文件MP3#的三个下载地点

用户X可以随机地

从三个地点中任选一个

也可以使用PING报文

寻找最方便下载的一个机器

在图中

我们假设X向A发送

下载文件MP3#的请求报文

现在X和A都使用P2P方式通信

互相成为对等方

X是临时的客户

而对等方A是临时的服务器

对等方A现在作为服务器

把文件MP3#发送给X

具有全分布式结构的

P2P文件共享程序

在P2P的文件分发应用中

2001年由Brahm Colen开发的

Bit Torrent比特洪流

是很具有时代代表性的一个

在互联网爆发式增长下

用户数量越来越多

传输的文件越来越大

使用一台或几台服务器

和传统的FTP、HTTP协议

难以满足用户对下载速度的需求

受限于庞大的用户请求量

硬盘读取速度、带宽等

BitTorrent协议解决了这些问题

BitTorrent协议

简称BT

是一个网络文件传输技术

能够实现点对点文件分享的技术

组成有.torrent文件

种子提供站点

索引服务器

内容发布者/下载者

BitTorrent协议

处于TCP/IP结构的应用层

根据发布的文件

生成提供一个.torrent文件

即种子文件

也简称为“种子”

包含Tracker信息和文件信息两部分

Tracker信息主要是

下载中需要用到的

Tracker服务器的地址

和针对Tracker服务器的设置

文件信息是根据

对目标文件的计算生成的

把文件虚拟分成大小相等的块

块大小必须是2k的整数次方

种子包含每个块的

索引信息和Hash验证码

即索引

下载时

首先解析种子文件得到Tracker地址

然后连接Tracker服务器

Tracker服务器回应下载者的请求

提供其他下载者的地址

下载者再连接到其他下载者

根据种子文件

两者分别对对方

告知自己已经有的块

然后交换对方没有的数据

下载者每得到一个块

需要算出下载块的Hash验证码

与种子文件的对比

如果一样则说明块正确

不一样则需要重新下载这个块

保证每个块都是正确的

下载步骤

1 从种子发布站点

下载.torrent文件

2 peer解析.torrent文件

得到tracker服务器地址

3 连接tracker服务器

得到seed及所有下载者信息

4 从(seed)及其他下载者

下载、上传资源

我们先来学习一下

P2P中文件存储的结构

1、P2P文件系统中

对等用户的数量非常多

并且处于一种无序状态

2、P2P系统的索引

信息到节点位置

IP地址+端口号的映射

3、Gnutella是采用全分布方式

定位内容的P2P文件共享应用程序

他解决了集中式目录服务器

所造成的瓶颈问题

然而Gnutella

在非结构化的覆盖网络中

采用查询洪泛的方法

来进行查找的

因此查找效率较低

4、分布式散列表DHT

利用好散列函数

把资源名K

以及其存放的结点IP地址N部分

都分别映射为资源名标识符KID

和结点标识符NID

通过散列函数SHA-1

映射得到的标识符额

能够比较均匀而稀疏地

分布在Chord环上

Chord环把结点标识符数值

从小到大沿顺时针排列成

一个环形覆盖网络

1.结点标识符NID

按照其标识符值

映射到Chord环上对应的点

2.资源名标识符KID

则按照其标识符值

映射到与其值最接近的下一个NID

3.每个资源由Chord环上

与其标识符值最接近的

下一个结点提供服务

然后我们来思考一下

如何在Chord环上查找文件

1、在Chord环上查找资源

从理论上讲

任何一个结点

只要从其后继结点

一个一个地遍历下去

一定可以找到

所查询的资源

可见一定要定位一个资源

平均需要沿环发送查找报文N/2个

或遍历O(N)个结点

N为环上的总结点数

显然这种顺序查找的方法效率很低

2、为了加速查找

在Chord环上

可以增加一些指针表

它又称为路由表或查找器表

计算机网络课程列表:

第一章 概述

-1.1 计算机网络的发展历程及其在信息时代中的作用

--计算机网络的发展历程及其在信息时代中的作用

-1.2 互联网的组成

--互联网的组成

-1.3 电路交换和分组交换

--电路交换和分组交换

-1.4 计算机网络的性能

--计算机网络的性能

-1.5 计算机网络体系结构和层次划分

--计算机网络体系结构和层次划分

-第一章

第二章 物理层

-2.1 数据通信系统模型

--数据通信系统模型

-2.2 导向型传输媒体

--导向型传输媒体

-2.3 光导纤维

--光导纤维

-2.4 非导向型传输媒体

--非导向型传输媒体

-2.5 信道的极限容量

--信道的极限容量

-2.6 信道复用技术

--信道复用技术

-2.7 ADSL

--ADSL

-第二章

第三章 数据链路层

-3.1 数据链路层的三个基本问题

--数据链路层的三个基本问题

-3.2 CSMA/CD协议

--CSMA/CD协议

-3.3 虚拟局域网

--虚拟局域网

-3.4 扩展的以太网

--扩展的以太网

-3.5 高速以太网

--高速以太网

-第三章

第四章 网络层

-4.1 分类的IP地址-划分子网

--分类的IP地址-划分子网

-4.2 无分类编址-构造超网

--无分类编址-构造超网

-4.3 ICMP协议

--ICMP协议

-4.4 路由器结构

--路由器结构

-4.5 RIP协议

--RIP协议

-4.6 IP多播

--IP多播

-第四章

第五章 运输层

-5.1 用户数据报协议UDP

--用户数据报协议UDP

-5.2 TCP报文段首部格式

--TCP报文段首部格式

-5.3 可靠传输工作原理

--可靠传输工作原理

-5.4 字节为单位的滑动窗口实现

--字节为单位的滑动窗口实现

-第五章

第六章 应用层

-6.1 网络应用层

--网络应用层

-6.2 DNS

--DNS

-6.3 FTP

--FTP

-6.4 HTTP

--HTTP

-6.5 P2P

--P2P

-6.6 计算机网络面临的安全性威胁

--计算机网络面临的安全性威胁

-6.7 防火墙

--防火墙

--第六章

第七章 网络实验

-7.1 交换机基本配置

--交换机基本配置

-7.2 路由器基本配置

--路由器基本配置

-7.3 交换机端口隔离

--交换机端口隔离

-7.4 跨交换机实现相同VLAN通信

--跨交换机实现相同VLAN通信

-7.5 动态路由

--动态路由

-7.6 静态路由

--静态路由

P2P笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。