网课是b站中科大郑烇老师,杨坚老师课程,郑烇老师账号发布的
图片均来自郑老师分享的PPT

第二章 应用层

目录

  • 第二章 应用层
    • 2.5纯P2P架构
      • 1、P2P的优点
      • 2、文件分发: C/S vs P2P
        • 1)C/S模式的文件分发时间
        • 2)P2P模式的文件分发时间
        • 3)总结
      • 3、P2P的管理
        • 1)非结构化P2P
        • 2)DHTC(结构化)P2P
      • 4、集中式目录:
        • P2P文件共享:
        • 集中式目录:
      • 5、完全分布式Gnutella(查询洪泛)
        • 1)特点
        • 2)覆盖网络:图
        • 3)Gnutella协议
      • 6、混合体KaZaA(利用不匀称性)
        • 过程
        • 细节
        • Kazaa小技巧
      • 7、P2P文件分发:BitToorent
        • Peer加入torrent的过程
        • BitTorrent: 请求,发送文件块
          • 请求块:
          • 发送块:一报还一报tit-for-tat

2.5纯P2P架构

1、P2P的优点

  • 没有(或极少)一直运行的服务器
  • 任意端系统都可以直接通信
  • 利用peer的服务能力
  • Peer节点间歇上网,每次IP地址都有可能变化

例子:文件分发 (BitTorrent)、流媒体(KanKan)、VoIP (Skype)

2、文件分发: C/S vs P2P

问题: 从一台服务器分发文件(大小F)到N个peer需要多少时间?
Peer节点上下载能力是有限的资源

1)C/S模式的文件分发时间

  • 服务器传输: 都是由服务器发送给peer,服务器必须顺序传输(上载)N个文件拷贝:
    发送一个copy: F/us
    发送N个copy: NF/us
    (us是服务器的带宽)
  • 客户端: 每个客户端必须下载一个文件拷贝
    dmin = 客户端最小的下载速率
    下载带宽最小的客户端下载的时间:F/dmin

2)P2P模式的文件分发时间

  • 服务器传输:最少需要上载一份拷贝
    发送一个拷贝的时间:F/us

  • 客户端: 每个客户端必须下载一个拷贝
    最小下载带宽客户单耗时:: F/dmin

  • 客户端: 所有客户端总体下载量NF
    最大上载带宽是:us+ Sui
    除了服务器可以上载,其他所有的peer节点都可以上载

3)总结

3、P2P的管理

非结构化P2P
DHTC(结构化)P2P

1)非结构化P2P

两个peer 之间有逻辑上的邻居关系,这两个peer是随机的,无序的

  • 集中式目录
  • 完全分布式Gnutella
  • 混合体KaZaA

2)DHTC(结构化)P2P

两个peer 之间有逻辑上的邻居关系,这两个peer是有序的
peer之间可以构成环、树等结构
DHT:Distributed Hash Table
哈希表
DHT方案
环形DHT 以及覆盖网络
Peer波动

4、集中式目录:

P2P文件共享:

所有的对等方都是服务器= 可扩展性好
两大问题:

  • 如何定位所需资源
  • 如何处理对等方的加入与离开

可能的方案:集中、分散、半分散

集中式目录:

(最初的“Napster”设计)

  • 当对等方连接时,它告知中心服务器: IP地址 、内容

  • 集中式目录中存在的问题
    单点故障(目录服务器只有一个)
    性能瓶颈
    侵犯版权
    文件传输是分散的,而定位内容则是高度集中的

5、完全分布式Gnutella(查询洪泛)

1)特点

  • 全分布式(没有中心服务器)
  • 开放文件共享协议
  • 许多Gnutella客户端实现了Gnutella协议(类似HTTP有许多的浏览器)

2)覆盖网络:图

如果X和Y之间有一个TCP连接,则二者之间存在一条边
所有活动的对等方和边就是覆盖网络
边并不是物理链路
给定一个对等方,通常所连接的节点少于10个

3)Gnutella协议

  • 在已有的TCP连接上发送查询报文
  • 对等方转发查询报文
  • 以反方向返回查询命中报文

可扩展性:限制范围的洪泛查询
TTL限制查询中转次数

6、混合体KaZaA(利用不匀称性)

过程

  • 每个对等方要么是一个组长,要么隶属于一个组长
    对等方与其组长之间有TCP连接
    组长对之间有TCP连接
  • 组长跟踪其所有的孩子的内容
  • 组长与其他组长联系(组长和组长层面是分布式)
    转发查询到其他组长
    获得其他组长的数据拷贝

细节

  • 每个文件有一个散列标识码(哈希值)和一个描述符
  • 客户端向其组长发送关键字查询
  • 组长用匹配进行响应:
    对每个匹配:元数据、散列标识码和IP地址
  • 如果组长将查询转发给其他组长,其他组长也以匹配进行响应
  • 客户端选择要下载的文件
    向拥有文件的对等方发送一个带散列标识码的HTTP请求(发送的是哈希值)

Kazaa小技巧

  • 请求排队
    限制并行上载的数量
    确保每个被传输的文件从上载节点接收一定量的带宽
  • 激励优先权
    鼓励用户上载文件
    加强系统的扩展性
  • 并行下载
    从多个对等方下载同一个文件的不同部分
    HTTP的字节范围首部
    更快地检索一个文件

7、P2P文件分发:BitToorent

文件被分为一个个块256KB
网络中的这些peers发送接收文件块,相互服务

  • Torrent(洪流): 节点的组,之间交换文件块
  • tracker:跟踪torrent中参与节点

Peer加入torrent的过程

(1)一开始没有块,但是将会通过其他节点处累积文件块
(2)向跟踪服务器(BT服务器)注册,获得peer节点列表,和部分peer节点构成邻居关系 (“连接”)

即——>BT客户端向跟踪服务器发出请求
跟踪服务器给BT客户端分配几个peer节点

  • 当peer下载时,该peer可以同时向其他节点提供上载服务 ,Peer可能会变换用于交换块的peer节点
  • 扰动churn: peer节点可能会上线或者下线
  • 一旦一个peer拥有整个文件,它会(自私的)离开或者保留(利他主义)在torrent中

BitTorrent: 请求,发送文件块

请求块:
  • 在任何给定时间,不同peer节点拥有一个文件块的子集
  • 周期性的,Alice节点向邻居询问他们拥有哪些块的信息
  • Alice向peer节点请求它希望的块,稀缺的块
发送块:一报还一报tit-for-tat
  • Alice向4个peer发送块,这些块向它自己提供最大带宽的服务
    其他peer被Alice阻塞 (将不会从Alice处获得服务)
    每10秒重新评估一次:前4位
  • 每个30秒:随机选择其他peer 节点,向这个节点发送块
    “优化疏通” 这个节点
    新选择的节点可以加入这个top 4

计算机网络学习笔记11(P2P)相关推荐

  1. 【计算机网络学习笔记】(汇总目录)

    计算机网络学习笔记(汇总目录) 文章目录 点击以下标题,跳转到对应章节的详细讲解 [计算机网络学习笔记01]计算机网络概述(上) [计算机网络学习笔记02]计算机网络概述(中) [计算机网络学习笔记0 ...

  2. 计算机网络学习笔记:第二章

    文章目录 计算机网络学习笔记:第二章 前言 2.1.应用层协议原理 2.1.1 网络应用程序体系结构 2.1.2 进程通信 2.1.3 可供应用程序使用的运输服务 2.1.4 因特网提供的传输层服务 ...

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

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

  4. 计算机网络学习笔记(详尽版)

    计算机网络学习笔记 计算机网络 第一章 定义和特点 网络 定义 功能 特点 组成 类别 性能 结构 本章重要概念 第二章 物理层 基本概念和标准 数据通信基础知识 物理层下的传输媒体 引导型传输媒体 ...

  5. 计算机网络学习笔记(2. 什么是网络协议)

    计算机网络学习笔记(2. 什么是网络协议) 1. 协议是计算机网络有序运行的重要保证 硬件(主机,路由器,通信链路等)是计算机网络的基础 计算机网络中的数据交换必须遵守事先约定好的规则 如同交通系统 ...

  6. 计算机网络-学习笔记

    计算机网络-学习笔记 1.1.1 概念.组成.功能和分类 概念:计算机网络:是一个将分散的.具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统.计算机网 ...

  7. 片偏移怎么计算_计算机网络学习笔记(四)之网络层

    点击蓝字关注我吧 越努力越幸运!!! 1 网络层的功能 1.1异构网络互联 网络的互联:指将两个以上的计算机网络,通过一定的方法, 用一种或多种通信处理设备(即中间设备)相互联接起来,以构成更大的网络 ...

  8. 计算机网络学习笔记之数据链路层的介质访问控制

    计算机网络学习笔记之数据链路层的介质访问控制 介质访问控制 信道划分介质访问控制 随机访问介质访问控制 ALOHA协议(不听就说) 纯ALOHA协议 时隙ALOHA协议 比较 CSMA协议(先听再说) ...

  9. 【计算机网络学习笔记17】网络安全、加密技术、“Virtual Private Network”技术

    [计算机网络学习笔记17]网络安全.加密技术."Virtual Private Network"技术 一.网络安全概述 1.1 网络系统的安全目标: 1.可用性(Availabil ...

  10. 计算机网络学习笔记---第一章

    计算机网络学习笔记 第一章 文章目录 计算机网络学习笔记 第一章 前言 一.计算机网络的概念 (一)计算机网络的功能 1.数据通信(连通性) 2.资源共享(硬件 软件 数据) 3.分布式处理 (Had ...

最新文章

  1. 华为实习日记——第四天
  2. iOS linker command failed with exit code 1 (use v to see invocation)
  3. CentOS 初体验十八:grep命令使用
  4. linux停止jar程序,Linux 启动停止SpringBoot jar 程序部署Shell 脚本的方法
  5. 深入浅出自定义标签(二)生成javascript
  6. oracle高水位线
  7. 修改数据库的兼容级别
  8. Android 和 iOS 各有千秋
  9. qq数据泄露_用这个开源项目来解决你团队里猪队友泄露公司敏感信息的问题
  10. 【pygame】微信飞机大战
  11. VS2017+Qt5.12新建.qrc文件报错
  12. [Unity]腾讯SDK踩坑之路(3)--米大师坑 + MSDK坑 (2)
  13. 架构师日记——VCL介绍和使用
  14. gazebo教程(八)场景建模
  15. 从各大APP年度报告看用户画像——标签,比你更懂你自己
  16. vant框架van-field
  17. 如何调动员工的积极性
  18. GPU的发展史,GPU与CPU的关系是什么?为何现在GPU越来越重要?
  19. 从国外的网站上下载包很慢的解决办法
  20. 小觅相机深度版运行Vins-mono

热门文章

  1. Visual Studio 2019 企业版 16.9.x 创建离线包并安装教程(带百度网盘下载地址和序列号)
  2. c语言赋值语句逗号,C++中赋值运算符与逗号运算符的用法详解
  3. java重构工具_Piranha(陈旧代码自动重构工具)
  4. flutter 实现文字竖排以及动画效果(文字逐一显示)
  5. 我叫MT online 公会BOSS百分比、难度、BOSS技能及站位
  6. 链接形式的客服代码 QQ客服代码
  7. Abstraction Functions and Rep Invariants
  8. js获取 本周,本月的日期
  9. 南航率先启用“手机登机”
  10. JAVA接口签名(Signature)实现方案