手撕计算机网络——应用层(四):P2P

2023-11-19

前言

        进入应用层学习也有了一段时间了,接下来的这篇文章中小荔枝会将应用层P2P结构体系于我们客户——端系统体系在分发文件中的机理进行整理,希望今天能结束应用层学习哈哈哈,运输层我来啦~~~


目录

前言

一、P2P的自拓展性

二、BitTorrent

2.1 最稀缺优先技术

2.2 对换算法

总结


        在前面的文章中,不管是HTTP、SMTP还是DNS,都是采用了客户——服务器端这种体系结构来介绍,那么接下来我将会介绍P2P这种对等体系结构。在前面我们大致了解了P2P,也知晓其对于总是保持打开的基础设施服务器的依赖性最小。

一、P2P的自拓展性

        在区别不同的体系结构的特性时,我们可以借助在该体系结构下文件的分发能力来对两种体系结构的特性进行区分。不妨设置一个情景,客户需要将文件分发到该体系结构中N个服务器中时,不妨假设客户端服务器的上载速率为v,体系机构中的服务器上载速率均为u。d表示服务器的下载速率,F为文件的报文长度,设分发时间(N个服务器接收到文件报文需要的时间)为D。

        那么在客户——服务器端的体系结构中,客户需要向N个服务器传输文件的副本,同时还会被服务器端的最小下载速率所限制。我们得到的分发时间为:

D=max\left \{ \frac{NF}{v} ,\frac{F}{_{dmin}}\right \}

        那么在P2P这种对等体系结构中,我们的客户端不再需要向所有的对等方发送文件,因为每个对等方会帮助客户对文件进行分发,即利用了对等方的上载能力,此时客户端也不存在了,大家都是对等的关系,这时的分发时间为:

D=max\left \{ \frac{F}{v} ,\frac{F}{_{dmin}},\frac{NF}{v+Nu}\right \}

从上面的分发时间我们可以看出,P2P体系结构的分发时间总是小于客户——服务器体系结构的分发时间。P2P体系结构的分发时间不会随着体系内对等方数量的增长而线性增加,且对任意的对等方数量N,分发时间总是不会超过上界1h。

P2P自拓展性产生的成因:每一个对等方既是文件接收者也是文件的分发者。

二、BitTorrent

        BitTorrent是一种用于文件分发的流行P2P协议。在一个P2P体系结构中,参与一个特定的文件分发的所有对等方被称为一个洪流。每个洪流都有一个基础的设施节点——跟踪器,它可以在对等方加入洪流实行注册的时候进行追踪。

2.1 最稀缺优先技术

在一个洪流中,任意一个对等方都有来自文件快的子集,且不同的对等方的子集不同。每一个对等方还有来自洪流中其它的对等方的块的列表。那么该对等方应该请求那一部分的块呢?这时候就用到了最稀缺优先技术。最稀缺优先技术就是对当前的洪流中的最稀缺的文件块进行重新分发,达到一种均衡。

2.2 对换算法

        对等方会根据当前能够以最高速率向它传输的对等方该处优先权。一般会确定四个“邻居”。这四个对等方被称为疏通,其余的对等方则被成为阻塞。这四个最优伴侣会动态改变,,能够使得彼此双方达到协调速率上载。


总结

        在这篇文章中荔枝主要是梳理了P2P结构体系于我们客户——端系统体系在分发文件中的优势,同时也简单讲了BitTorrent。当然了,只是作为了解所以没深入去学习。应用层的梳理也快接近尾声了,最近进度有点慢,继续加油。

今朝已然成为过去,明日依然向往未来!我是小荔枝,在技术成长的路上与你相伴,码文不易,麻烦举起小爪爪点个赞吧哈哈哈。

谢谢大家的支持嘻嘻嘻~~~ 

比心心♥~~~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手撕计算机网络——应用层(四):P2P 的相关文章

  • 计算机网络——传输层

    一 传输层概述 传输层功能 完成主机进程 主机进程之间的报文传输 传输层是真正的端对端的通信 传输层协议在端主机上运行 路由器一般没有传输层 传输层从主机层面上对网络层采取相应补救措施 可以提供更高质量的数据传输能力 传输层独立于网络设备
  • TCP/IP、UDP协议

    TCP IP协议是Internet最基本的协议 Internet国际互联网络的基础 由网络层的IP协议和传输层的TCP协议组成 通俗而言 TCP负责发现传输的问题 一有问题就发出信号 要求重新传输 直到所有数据安全正确地传输到目的地 而IP
  • 计算机网络(1)——概念、组成、功能和分类

    文章目录 0 总揽全局 1 计算机网络的概念 2 计算机网络的功能 3 计算机网络的组成 4 计算机网络的分类 视频来源 https www bilibili com video BV19E411D78Q p 1 0 总揽全局 1 计算机网
  • 计算机网络-应用层协议2(FTP)

    1 文件传输协议 FTP 原理 如图所示 FTP工作原理如下 用户或主机通过FTP用户接口与FTP客户进程交互 该用户首先提供远程主机的主机名 使本地主机的FTP客户进程建立一个到远程FTP服务器进程的TCP连接 紧接着该用户提供用户标识和
  • IP数据报的发送和转发过程

    IP数据报的发送和转发过程 源主机如何知道目的主机是否与自己在同一网络中 同一个网络中的主机可以直接通信 这属于直接交付 不同网络中的主机不能直接通信 需要路由器的中转 这属于间接交付 现假设主机C给主机F发送ip数据报 主机C将自己的IP
  • 端口介绍

    文章来源 https m toutiaocdn com group 6680437870504706572 app news article timestamp 1563010542 req id 201907131735410100230
  • 基于ensp的校园无线网络仿真实验

    写在前面 本项目是我们大三的一堂实践课作业内容 之前发过一次但是瞬间反响很好所以怕被抄袭删掉了555 现在成绩也出了尘埃落定发出来和大货分享分享qwq 当然还是仅供学习参考 禁止洗稿噢 摘要 本论文研究了一个基于有线和无线网络的校园网项目的
  • 根据子网掩码算出 IP 地址 的网络号和主机号

    我们如何根据子网掩码算出 IP 地址 的网络号和主机号呢 举个例子 比如 10 100 122 0 24 后面的 24表示就是 255 255 255 0 子网掩码 255 255 255 0 二进制是 11111111 11111111
  • 【计算机网络】湖科大微课堂笔记 p50-53 路由选择协议概述、路由信息协议RIP、开放最短路径优先OSPF、边界网关协议BGP的基本工作原理

    文章目录 路由选择协议概述 小结 路由信息协议RIP的基本工作原理 小结 一些例题 开放最短路径优先OSPF的基本工作原理 小结 边界网关协议BGP的基本工作原理 小结 一些例题 路由选择协议概述 因特网采用分层次的路由选择协议 域间路由选
  • 网络基础知识

    网络编程 2 网络的体系结构 七层模型 四层模型 因为网络通信比较麻烦 所以网络采用分层思想 OSI开放系统互联网模型 七层模型 高层 应用层 表示层 会话层 低层 传输层 网络层 数据链路层 物理层 驱动 网卡 仅仅是一种理想状态 现实中
  • 计算机网络笔记Part2 物理层(Physical Layer)

    计算机网络笔记Part2 物理层 Physical Layer 一 物理层基本概念 二 数据通信 1 一个数据通信例子 2 相关术语 3 三种通讯方式 4 两种数据传输方式 5 码元 Symbol 波特 Baud 速率 带宽 Band Wi
  • 计算机网络 网络层——IP数据报 详记

    IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成 首部的前一部分是固定长度 共 20 字节 是所有 IP 数据报必须具有的 在首部的固定部分的后面是一些可选字段 其长度是可变的 IP数据报首部的固定部分中的各字段 版本 占4位
  • 计算机网络(二)| 物理层上 | 数据通信基础知识 调制 频率范围 信噪比

    文章目录 1 物理层基本概念 2 数据通信基础知识 2 1 数据通信基本概念 2 2 信道基本概念 2 2 1 基带调制 编码 方式 2 2 2 带通调制方式 2 3 信道的极
  • 计算机网络扫盲(3)——网络核心

    一 概述 在之前的文章中 我们已经介绍了计算机网络的边缘 本文我们将继续介绍网络核心部分 即由互联因特网系统的分组交换机和链路构成的网状网络 二 分组交换 在各种网络应用中 端系统彼此交换 报文 message 报文能够包含协议设计者需要的
  • 【计算机网络概述】第一章:概论 1.2什么是网络边缘

    学习目标 网络结构 端系统的客户 服务器模式与对等模式 两种面向网络实施的服务 前言 在第一章 我们学习了什么是 Internet 网络 计算机网络和互联网的知识点 但是由于计算机网络的知识点非常的抽象 内容又多 所以我们要反复的练习 记忆
  • 通信子网在计算机网络中的地位和作用

    一 通信子网是计算机网络的核心组成部分 通信子网是计算机网络的核心组成部分 它负责为计算机网络中的各种设备提供通信支持 无论是主机之间的数据传输 还是主机与终端之间的数据通信 都需要通过通信子网来实现 通信子网是连接各个设备的关键基础设施
  • 计算机网络中的通信子网:架构、协议与技术简介

    在计算机网络中 通信子网是负责实现主机之间以及主机与终端之间数据传输的核心部分 它由一系列硬件设备和通信协议组成 为上层应用提供可靠 高效和透明的数据传输服务 本文将详细介绍通信子网的架构 协议与技术 一 通信子网的架构 星型拓扑 星型拓扑
  • P2P应用

    目录 一 P2P的简介 二 P2P的工作方式 1 具有集中目录服务器的P2P工作方式 2 具有全分布式结构的P2P文件共享程序 一 P2P的简介 P2P 对等连接 是指两台主机在通信时 并不区分哪一个是服务请求方和哪一个是服务提供方 只要两
  • 计算机网络基础——常用的中英文网络述语大全,强烈建议收藏

    系统网络体系结构 System Network Architecture SNA 国际标准化组织 International Organization for Standardization ISO 开放系统互连基本参考模型 Open Sy
  • 【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么挖洞致富的?

    19岁 很多人正是上大学 仍伸手向父母要生活费的年纪 可有一位 00 后阿根廷少年 Santiago Lopez 靠自学成才 赚取了 100 万美元 折合人民币约 670 万元 的 Bug 赏金 成为世界上第一个白帽黑客的百万富翁 美元 少

随机推荐

  • 逻辑回归(二):Loss易导

    目录 回顾 梯度下降 对Loss函数求偏导 更新公式 多分类问题 总结 回顾 书接上回 讲到了逻辑回归的Loss函数的一般形式 大体如下 L 1
  • AWVS使用教程

    AWVS可以用来 Site Crawler 爬取URL Target Finder IP端口扫描 Subdomain Scanner 用DNS进行域名解析 找域名下的子域及其主机名 Blind SQL Injector 在相应参数位置按 添
  • sql的几种约束,非空,不重

    NOT NULL 用于控制字段的内容一定不能为空 NULL UNIQUE 控件字段内容不能重复 一个表允许有多个 Unique 约束 PRIMARY KEY 也是用于控件字段内容不能重复 但它在一个表只允许出现一个 FOREIGN KEY
  • 位移运算使用技巧

    位移运算使用技巧 左位移 lt lt 右位移 gt gt 左位移 lt lt 将二进制数向左位移操作 高位溢出则丢弃 地位补0 int a 11 int b a lt lt 1 b 22 位移前 0000 1011 位移后 0001 011
  • 达芬奇传

    列奥纳多 迪 皮耶罗 达 芬奇 出生于1452年 1519年逝世 享年67岁 画家 发明家 科学家 生物学家 工程师 达 芬奇的意思是 来自芬奇镇 他的名字叫做列奥纳多 达 芬奇的父亲叫瑟 皮耶罗 达 芬奇 是佛罗伦萨的法律公证员 因此十分
  • git:批处理启动Git-Bash窗口并显示特定目录

    参考 使用批处理脚本 在特定目录中启动Git Bash窗口
  • 【数据结构】复杂度

    博客主页 小王又困了 系列专栏 数据结构 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 什么是数据结构 二 什么是算法 三 算法的效率 四 时间复杂度 4 1大O渐进表示法 4 2常见时间复杂度计算举例 4 3例题 消失的数字
  • StarkNet 批量交互 mint 铸造 js 脚本

    代码使用 starknet 模块与 StarkNet 网络进行交互 通过读取私钥文件和执行铸造操作来创建 NFT 非同质化代币 它通过批量运行的方式处理多个私钥和地址对 并将结果输出到控制台和日志文件中 代码的详细步骤 导入模块和变量 co
  • QT5串口编程----线程循环发送不成功问题

    今天想写一个QT5的串口编程 能够循环发送数据 想具体到us级别 不需要设置ms发送 所以想用一个线程一直发送 关键问题是碰到在线程循环发送竟然发不出去 见鬼了 最后找到问题是要在每次发送后要判断waitForBytesWritten是否发
  • jmeter接口测试,CSV数据文件引用,参数化

    1 新增一个Excel文件 填写会用到的变量数据 2 将文件保存为CSV格式文件 3 在jmeter里添加 CSV数据文件配置 导入登录的用户和密码数据等信息 在jmeter里引用Excel转化的CSV格式数据文件 说明 带入的数据依次是
  • RTKLIB源码解析(一)、单点定位(pntpos.c)

    目录 pntpos satposs estpos raim fde estvel ephclk satpos satsys seleph eph2clk ephpos eph2pos rescode lsq valsol matmul do
  • 计算机视觉入门之构建一个扫描仪

    源代码 import the necessary packages from transform import four point transform from skimage filters import threshold local
  • tengine [emerg] invalid IPv6 address in resolver “[fe80::1%enp2s0]“ in .../nginx.conf:137

    错误 nginx emerg invalid IPv6 address in resolver fe80 1 enp2s0 in usr local nginx conf nginx conf 137 解决 1 vim etc resolv
  • kafka(三)重平衡

    历史文章 kafka 一 kafka的基础与常用配置 文章目录 一 kafka消费者组 二 重平衡 Rebalance 2 1 重平衡触发条件 2 2 重平衡策略 2 2 1 Range 平均分配 2 2 2 RoundRobin 轮询分配
  • 独家

    作者 Damir Yalalov 翻译 陈超 校对 赵茹萱 本文约1100字 建议阅读5分钟 本文介绍了ChatGPT如何解决简单的机器学习任务并给出了鸢尾花分类和城市预测两个案例 一句话概括 ChatGPT可以帮助你完成简单的机器学习任务
  • ldconfig: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link

    libcuda so
  • 【宠粉福利】这次我们准备了 iPhone 12、AirPods Pro、罗技鼠标等大礼等你来领!...

    喜迎开学季 C 站开豪礼 最高可开 iphone 12 盲盒开出的不只是一份礼物 更是对于一切美好的期待 拆开一个盲盒 就像开始一场未知的爱丽丝梦游仙境 为 两点一线 朝九晚九 的生活 埋下一刻期待的种子 去收获一份未知的惊喜 这次 价格再
  • CentOS 7 关闭网络限制

    1 安装CentOS 7 3操作系统mini版本即可 2 设置关闭Selinux 编辑 etc selinux config vi etc selinux config SELINUX disabled 重启机器 查看selinux状态 s
  • C++中的namespace

    namespace中文意思是命名空间或者叫名字空间 传统的C 只有一个全局的namespace 但是由于现在的程序的规模越来越大 程序的分工越来越细 全局作用域变得越来越拥挤 每个人都可能使用相同的名字来实现不同的库 于是程序员在合并程序的
  • 手撕计算机网络——应用层(四):P2P

    前言 进入应用层学习也有了一段时间了 接下来的这篇文章中小荔枝会将应用层P2P结构体系于我们客户 端系统体系在分发文件中的机理进行整理 希望今天能结束应用层学习哈哈哈 运输层我来啦 目录 前言 一 P2P的自拓展性 二 BitTorrent