计算机网络笔记(3) 网络应用P2P架构
文章目录
- P2P架构(Peer-to-peer)
- 文件分发
- BitTorrent
- 索引技术
- 集中式索引
- 洪范式查询(Query flooding)
- 层次式覆盖网络
P2P架构(Peer-to-peer)
- 互相共享
- 没有服务器
- 任意端系统之间直接通信
- 节点阶段性接入Internet
- 节点可能更换IP地址
文件分发
典型应用:BitTorrent:上传速率高,则能够找到更好的交易伙伴,从而更快地获取文件
BitTorrent
细节:
- 文件被划分为256KB的chunk
- 节点加入torrent
- 没有chunk,但是ui逐渐积累
- 向tracker注册以获取节点清单,与某些节点(“邻居”)建立连接
- 下载的同时,节点需要向其他节点上传chunk
- 节点可能加入或离开
- 一旦节点获得完成的文件,他可能(自私的)离开或(无私的)留下
获取chunk:
- 给定任意时刻,不同的节点持有文件的不同chunk集合
- 节点(Alice)定期查询每个邻居所持有的chunk列表
- 节点发送请求,请求获取缺失的chunk
- 稀缺优先
发送chunk:tit-for-tat
- 比如:Alice向4个邻居发送chunk:正在向其发送chunk,速率最快的4个
- 每10秒从新评估top4
- 每30秒随机选择一个其他节点,向其发送chunk
- 新选择节点可能加入top4
- “optimistically unchoke”
索引技术
P2P系统的索引:信息到节点位置(IP地址+端口号)的映射
类似一本书上面的目录部分
- eg:文件共享
- 利用索引动态跟踪节点所共享的文件的位置
- 节点需要告诉索引他拥有哪些文件
- 节点搜索索引,从而获知能够得到哪些文件
集中式索引
内容和文件传输是分布式的,但是内容定位是高度集中式的
可能存在的问题:
- 单点失效问题
- 性能瓶颈
- 版权问题
洪范式查询(Query flooding)
- 完全分布式架构
- Gnutella采用这种架构
- 每个节点对他共享的文件进行索引,且只对他共享的文件进行索引
- 查询消息通过已有的TCP连接发生
- 节点转发查询
- 如果查询命中,则利用反向路径发回查询节点
覆盖网络(overlay network):Graph
- 节点X与Y之间如果有TCP连接,那么构成一个边
- 所有的活动节点和边构成覆盖网络
- 边:虚拟链路
- 节点一般邻居少于10个
层次式覆盖网络
介于集中式索引和洪范查询之间的方法
- 每个节点要么是一个超级节点要么被分配给一个超级节点
- 节点和超级节点间维持TCP连接
- 某些超级节点对之间维持TCP连接
- 超级节点负责跟踪子节点的内容
计算机网络笔记(3) 网络应用P2P架构相关推荐
- 【学习笔记】斗鱼p2p架构
学习笔记 首先,看斗鱼在web端如何践行p2p架构 其次,看斗鱼的p2p架构设计. 斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量? 斗鱼 H5 直播原理解析,它是如何省了 80% ...
- 计算机网络笔记--1 计算机网络与网络应用(上)
计算机网络笔记–1 计算机网络与网络应用(上) 文章目录 计算机网络笔记--1 计算机网络与网络应用(上) 前言 1.1初识计算机网络 1.2计算机网络结构 1.3网络核心 1.4计算机网络性能 1. ...
- 王道考研 计算机网络笔记 第六章:应用层
本文基于2019 王道考研 计算机网络: 2019 王道考研 计算机网络 个人笔记总结 第一章:王道考研 计算机网络笔记 第一章:概述&计算机网络体系结构 第二章:王道考研 计算机网络笔记 第 ...
- 计算机网络笔记(王道考研) 第六章:应用层
内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记. 感谢LY,他帮我做了一部分笔记.其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的. 课程内容 ...
- 24考研深入浅出计算机网络笔记【更新中】
24考研深入浅出计算机网络笔记 文章目录 24考研深入浅出计算机网络笔记 前言 第一章 概述 1.1 因特网概述 1.2 电路交换.分组交换和报文交换 1.3 计算机网络的定义和分类 1.3.1 计算 ...
- 计算机网络笔记——概述、物理层、链路层(方老师408课程)
文章目录 前言 互联网概述 互联网发展的三个阶段 互联网标准化机构 互联网的组成 边缘部分的通信方式 核心部分的交换方式 我国计算机网络的发展 计算机网络的类别 计算机网络的性能 速率.带宽.吞吐量 ...
- 计算机网络笔记(王道考研) 第五章:传输层
内容基于中国大学MOOC的2023考研计算机网络课程所做的笔记. 感谢LY,他帮我做了一部分笔记.其中第四章网络层各小节的顺序稍微做了下调整,和上课老师讲的先后顺序稍有不同,但内容是完整的. 课程内容 ...
- 计算机网络笔记Part5 传输层(Transport Layer)
本人计算机网络笔记总目录 计算机网络笔记Part1 概述 计算机网络笔记Part2 物理层(Physical Layer) 计算机网络笔记Part3 数据链路层(Data Link Layer) 计算 ...
- 计算机网络笔记(二) 应用层 Chapter2-ApplicationLayer
文章目录 一.Network Application Architectures 1.1 client-server architecture: 1.2 P2P architecture: 1.3 H ...
最新文章
- go语言for的三种形式
- java ctp行情_java-ctp
- Faster RCNN总结
- CentOS 7 安装.NET Core 2.0
- div 隐藏_div的position属性
- Python基础__Python序列基本类型及其操作(1)
- 马云下死命令留人?阿里辟谣:不会高薪聘请黑掉阿里网站的人
- php png缩放,PHP实现对png图像进行缩放的方法(支持透明背景)
- 【语音识别基础】总有一天你会用到,嗯,没有公式~
- 每天一道Rust-LeetCode(2019-06-02)
- 从github下载的项目如何运行??---------本文以vue的项目为例
- Python下载小说 -XXOO
- CAD绘制填充并设置填充透明度
- [OpenAirInterface实战-5] :OAI支持的5G gNB功能集
- 20162316刘诚昊 Java Queue的测试
- Minima:为什么 Web3 需要完全去中心化
- 系统架构演变到Spring Cloud
- android 点击状态栏,“点击状态栏回到顶部”功能的消失原因和实现
- mysql workbench 主从_MySQL Workbench 使用教程 (四)
- Java 对象的克隆Clone和必须了解的浅拷贝与深拷贝
热门文章
- “刷脸”支付强化安全管理 标准制定正在推进
- 计算机软件吸附效应,试举出生活中的例子说明吸附现象的实际意义?
- 重组人表皮生长因子(EGF)原液 ——风口浪尖的明星成分
- Windows cmd 命令行清空
- 字符串分割split:将一个字符串通过指定的分隔符分割成若干子串
- MySQL事务——事务隔离界别,MVCC
- 保险行业如何运营大数据分析技术
- 【从0开始自学C/C++并在2023年10月之前找到一份工作之C++基础】
- ZSD017出货达成率
- 微凉大大,教你一步一步在linux中正确的安装Xcache加速php。