计算机网络什么是p2p,计算机网络-p2p(示例代码)

p2p架构

P2P应用:原理与文件分发

纯P2P架构:Peer-to-peer

50ed88adbc891dd8932d1b1b8e38fe6e.png

没有服务器

任意端系统之间直接通信

节点阶段性接入Internet

节点可能更换IP地址

文件分发:客户机/服务器vs. P2P

从一个服务器向N个节点分发一个文件需要多长时间?

客户机/服务器

e81948c3a7da4fcbee8ddd03971009d4.png

服务器串行地发送N个副本,时间:NF/us,客户机i需要F/di时间下载

846b99f45a69b45928c1183e06baa001.png

P2P

服务器必须发送一个副本,时间:F/us,客户机i需要F/di时间下载,总共需要下载NF比特,最快的可能上传速率:us+ ∑ui

43c9bfbe5f02f7dc86a066dd61023b78.png

494aac73f0de091bf4abad281225f969.png

文件分发:BitTorrent

16c8923407c44e7c19c47af1f9d88a0e.png

文件划分为256KB的chunk

节点加入torrent

没有chunk,但是会逐渐积累

向tracker注册以获得节点清单,与某些节点(“邻居”)建立连接

下载的同时,节点需要向其他节点上传chunk

节点可能加入或离开

一旦节点获得完整的文件,它可能(自私地)离开或(无私地)留下

获取chunk

给定任一时刻,不同的节点持有文件的不同chunk集合

节点(Alice)定期查询每个邻居所持有的chunk列表

节点发送请求,请求获取缺失的chunk

稀缺优先

发送chunk: tit-for-tat

Alice向4个邻居发送chunk:正在向其发送Chunk,速率最快的4个

每10秒重新评估top 4

每30秒随机选择一个其他节点,向其发送chunk

新选择节点可能加入top 4

“optimistically unchoke”10

7672663f2b6014f2caf57308710576f1.png

P2P应用:索引技术

P2P: 搜索信息

P2P系统的索引:信息到节点位置(IP地址+端口号)的映射

文件共享(电驴):利用索引动态跟踪节点所共享的文件的位置,节点需要告诉索引它拥有哪些文件,节点搜索索引,从而获知能够得到哪些文件

即时消息(QQ)?索引负责将用户名映射到位置,当用户开启IM应用时,需要通知索引它的位置,节点检索索引,确定用户的IP地址

集中式索引

Napster最早采用这种设计:1) 节点加入时,通知中央服务器:?IP地址?内容,2) Alice查找“Hey Jude”,3) Alice从Bob处请求文件

2b13a5a5c81a134c43474df20a7b76d8.png

内容和文件传输是分布式的,但是内容定位是高度集中式的,存在:单点失效问题,性能瓶颈,版权问题

洪泛式查询: Query flooding

完全分布式架构,Gnutella采用这种架构,每个节点对它共享的文件进行索引,且只对它共享的文件进行索引

覆盖网络(overlay network): Graph

节点X与Y之间如果有TCP连接,那么构成一个边

所有的活动节点和边构成覆盖网络

边:虚拟链路

节点一般邻居数少于10个

查询消息通过已有的TCP连接发送

节点转发查询消息

如果查询命中,则利用反向路径发回查询节点

ee3b9774201d786d0a7184406c220315.png

层次式覆盖网络

介于集中式索引和洪泛查询之间的方法,每个节点或者是一个超级节点,或者被分配一个超级节点,节点和超级节点间维持TCP连接,某些超级节点对之间维持TCP连接,超级节点负责跟踪子节点的内容

dda8e77b183e7a440a1459e2640ccf49.png

P2P案例应用:Skype

本质上是P2P的:用户/节点对之间直接通信,是私有应用层协议,所以只能猜,采用层次式覆盖网络架构,索引负责维护用户名与IP地址间的映射,索引分布在超级节点上

65326b8644b9ddb730c21d8760b87438.png

所谓P2P(Peer to Peer),其最本质的含义即“对等”,该技术最早是用于网络中对等节点之间的资源和信息共享的技术,通常人们所知道的是将P2P技术用在文件下载过程中,即网络上的对等终端在下载共享文件的同时又作为一个“种子”为其他对等终端提供资源和信息。后来,Skype在网络通话业务系统中灵活应用了该技术

由于冲击了传统通信领域,Skype在引起很多争议的同时也使人耳目一新,可以说,Skype是发展和演进了的P2P应用。对于P2P技术还没有规范的定义,结合其已有的应用,就更广泛的意义而言,P2P技术是指网络中的所有节点都动态参与到路由、信息处理和带宽增强等工作中,而不是单纯依靠服务器来完成这些工作。Skype是P2P技术演进到混合模式后的典型应用,它结合了集中式和分布式的特点,在网络的边缘节点采用集中式的网络结构,而在超级节点之间采用分布式的网络结构

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值