p2p架构

P2P应用:原理与文件分发

纯P2P架构:Peer-to-peer

没有服务器

任意端系统之间直接通信

节点阶段性接入Internet

节点可能更换IP地址

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

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

客户机/服务器

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

P2P

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

文件分发:BitTorrent

文件划分为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

P2P应用:索引技术

P2P: 搜索信息

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

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

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

集中式索引

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

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

洪泛式查询: Query flooding

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

覆盖网络(overlay network): Graph

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

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

边:虚拟链路

节点一般邻居数少于10个

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

节点转发查询消息

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

层次式覆盖网络

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

P2P案例应用:Skype

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

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

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

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

  1. 计算机网络原理(8)——P2P(文件收发、索引技术)

    计算机网络原理(8)--P2P(文件收发.索引技术) 一.文件收发 Peer-to-peer 没有服务器 任意端系统之间直接通信 节点阶段性接入Internet 节点可能更换IP地址 问题:从一个服务 ...

  2. 名词解释P2P计算机网络技术,计算机三级网络技术P2P网络知识考点

    计算机三级网络技术P2P网络知识考点 计算机等考三级网络技术P2P网络考点知识大家一定要熟悉,下面是小编为大家收集的关于计算机等考三级网络技术P2P网络考点知识,希望能够帮到大家! 1.什么是P2P网 ...

  3. 支持m3u8的php视频cms,分享一个苹果CMS可用P2P的M3U8解析代码

    苹果CMS可用P2P的M3U8解析代码,非CDNbye的P2P.<?php /** * @代码开源,透明,请勿用于商业用途,完全开源模式,供大家一起探讨研究 * @支持全网(支持跨域)的M3U8 ...

  4. GO语言实现P2P网络-服务端代码实现

    持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情 GO语言实现P2P网络 P2P是区块链节点通信的基础协议,使用起来比TCP协议要麻烦一些.因为通信的两个节 ...

  5. 【专栏必读】王道考研408计算机网络+湖科大教书匠计算机网络+网络编程万字笔记、题目题型总结、注意事项、目录导航和思维导图

    王道考研复习指导下载(密码7281) 其他科目导航 [专栏必读]王道考研408计算机组成原理万字笔记(从学生角度辅助大家理解):各章节导航及思维导图 [专栏必读]王道考研408操作系统万字笔记.题目题 ...

  6. 计算机网络(一)计算机网络体系

    计算机网络(一)计算机网络体系 一.计算机网络概述 概念 功能 组成 分类 二.体系结构和参考模型 ISO/OSI模型 物理层 网络层 传输层 会话层 表示层 应用层 OSI参考模型与TCP/IP参考 ...

  7. 【计算机网络】第一章--计算机网络概述

    本系统教程参考自: 教程:https://blog.csdn.net/weixin_42146136/category_10581354.html 视频:王道计算机考研 计算机网络_哔哩哔哩_bili ...

  8. 【计算机网络学习笔记】计算机网络

    计算机网络学习笔记 第一章 计算机网络概述 1. 计算机网络概述 1.1 计算机网络的概念 1.2 计算机网络的组成 1.3 计算机网络的功能 1.4 计算机网络的分类 1.5 计算机网络的标准化工作 ...

  9. 计算机网络学习1:计算机网络概论

    计算机网络概论 计算机网络的定义 定义 计算机网络(Computer Network)可以定义为由通信信道连接的主机和网络设备的集合. 因特网术语"主机(host)"或称为&quo ...

  10. 计算机网络知识复习(day01)--计算机网络相关概念及网络分层架构模型

    参考书籍:<图解TCP/IP>.<计算机网络-谢希仁> 1.计算机网络相关概念 1.计算机网络: 计算机网络是将分散在不同地点且具有独立功能的多个计算机系统,利用通信设备和通信 ...

最新文章

  1. 【ACM】杭电OJ 1284(待更)
  2. C# 在异步中使用HttpWebRequest出现的“正在终止线程”错误的解决方案
  3. Dubbo源码解析 --- DIRECTORY和ROUTER
  4. 2.3.10 哲学家进餐问题
  5. MyEclipse之安装SVN1.10.7
  6. mysql最大并行用户设置_mysql 优化配置
  7. Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】
  8. 介绍“又一个” Cloud Foundry Gradle插件
  9. android导入项目出现style错误,menu错误
  10. ​【文末有福利】揭秘阿里中台!一文看懂阿里推荐业务的两项利器
  11. windows CMD.exe下写路径太长的解决方案
  12. 【10天基于STM32F401RET6智能锁项目实战第4天】外部中断的按键实现语音控制
  13. “恭喜那些拿到 Java 月薪 2 万 Offer 的人”
  14. 一致性哈希算法及其应用
  15. 电力拖动自动控制系统复习(一)
  16. Go语言核心36讲(Go语言实战与应用十九)--学习笔记
  17. Arduino温控风扇
  18. 软件开发标准(文档模板)
  19. 系统设计.如何设计一个秒杀系统(完整版)
  20. 桥接路由器总是掉线_tplink路由器桥接掉线怎么办

热门文章

  1. 第一章 基本架设服务器流程
  2. 宽高变化动画代码,旋转动画代码(HTML5)
  3. 22条创业军规(读书)
  4. Daydream播放3D视频(视频左右分屏3D效果)
  5. 【CityHunter】服务器端设计思路
  6. 停用Windows Defender Antivirus Service内存
  7. 服务器的显示器无信号怎么解决办法,显示器无信号怎么办?显示器无信号解决办法大全...
  8. cocos ClippingNode 之绘制六边形战力(一)
  9. linux查看ftp客户端限速配置,vsftpd限速设置
  10. 遇到oracle错误20001,请问ORA-20001错误该如何解决,倒入倒出碰到的。。。