美文网首页
13-P2P 协议

13-P2P 协议

作者: Mr_十九 | 来源:发表于2018-11-11 23:54 被阅读0次

本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第17讲(第17讲 P2P协议)的课程笔记。


1.下载文件的方式

1)通过HTTP进行下载。只要文件稍微大点,下载的速度就奇慢无比。
2)通过FTP,也即文件传输协议。FTP 采用两个 TCP 连接来传输一个文件。

  • 控制连接:服务器以被动的方式,打开众所周知用于 FTP 的端口 21,客户端则主动发起连接。该连接将命令从客户端传给服务器,并传回服务器的应答。常用的命令有:list——获取文件目录;reter——取一个文件;store——存一个文件。
  • 数据连接:每当一个文件在客户端与服务器之间传输时,就创建一个数据连接。
  • FTP 的两种工作模式
    每传输一个文件,都要建立一个全新的数据连接。FTP 有两种工作模式,分别是主动模式(PORT)和被动模式(PASV),这些都是站在 FTP 服务器的角度来说的。
    • 主动模式下,客户端随机打开一个大于 1024 的端口 N,向服务器的命令端口 21 发起连接,同时开放 N+1 端口监听,并向服务器发出 “port N+1” 命令,由服务器从自己的数据端口 20,主动连接到客户端指定的数据端口 N+1。
    • 被动模式下,当开启一个 FTP 连接时,客户端打开两个任意的本地端口 N(大于 1024)和 N+1。第一个端口连接服务器的 21 端口,提交 PASV 命令。然后,服务器会开启一个任意的端口 P(大于 1024),返回“227 entering passive mode”消息,里面有 FTP 服务器开放的用来进行数据传输的端口。客户端收到消息取得端口号之后,会通过 N+1 号端口连接服务器的端口 P,然后在两个端口之间进行数据传输。

3)无论是 HTTP 的方式,还是 FTP 的方式,都有一个比较大的缺点,就是难以解决单一服务器的带宽压力, 因为它们使用的都是传统的客户端服务器的方式。

2. P2P 协议是什么?

1)P2P就是peer-to-peer。资源开始并不集中地存储在某些设备上,而是分散地存储在多台设备上。

2)种子(.torrent)文件

  • .torrent 文件由两部分组成,分别是:announce(tracker URL)和文件信息。

  • 文件信息里面有这些内容。
    • info 区:这里指定的是该种子有几个文件、文件有多长、目录结构,以及目录和文件的名字。
    • Name 字段:指定顶层目录名字。
    • 每个段的大小:BitTorrent(简称 BT)协议把一个文件分成很多个小段,然后分段下载。
    • 段哈希值:将整个种子中,每个段的 SHA-1 哈希值拼在一起。

  • 这种工作方式有一个弊端,一旦 tracker 服务器出现故障或者线路遭到屏蔽,BT 工具就无法正常工作了。

3)去中心化网络(DHT)

  • 每个加入这个 DHT 网络的人,都要负责存储这个网络里的资源信息和其他成员的联系信息,相当于所有人一起构成了一个庞大的分布式存储数据库。
  • 有一种著名的 DHT 协议,叫Kademlia 协议。

4)DHT 网络中的朋友圈是怎么维护的?

  • DHT 网络的朋友圈也是一样,远近都有,并且按距离分层。
3.总结
  • 下载一个文件可以使用 HTTP 或 FTP,这两种都是集中下载的方式,而 P2P 则换了一种思路,采取非中心化下载的方式;
  • P2P 也是有两种,一种是依赖于 tracker 的,也即元数据集中,文件数据分散;另一种是基于分布式的哈希算法,元数据和文件数据全部分散。

相关文章

  • 13-P2P 协议

    本人在“极客时间”上购买了一套“趣谈网络协议”的课程,本文为该课程第17讲(第17讲 P2P协议)的课程笔记。 1...

  • git协议

    git支持的协议 local协议 https协议 ssh协议 git协议 github常用的协议

  • Dubbo服务 上传文件解决方案以及Hessian协议

    协议支持Dubbo支持多种协议,如下所示: Dubbo协议 Hessian协议 HTTP协议 RMI协议 WebS...

  • Procotol 和 Delegate

    目录 Procotol 协议的概念 协议的分类 协议的定义 协议的遵循 协议的方法 协议的属性 Delegate ...

  • 计算机网络题目

    几种协议分别属于哪一层传输层协议:TCP协议、UDP协议应用层协议:FTP、HTTP、SMTP网络层协议:IP协议...

  • ARP协议

    地址解析协议ARP 网络层四大协议:ARP协议,IP协议,ICMP协议,IGMP协议。 ARP(Address R...

  • IP数据报格式

    前言 先回顾一下TCP/IP协议栈 网络层的协议有IP协议、ARP协议、ICMP协议和IGMP协议。其中IP协议是...

  • 名词解析

    网络层:IP协议 : 网络协议ICMP协议: Internet互联网控制报文协议 ->IP协议的附属协议 IP...

  • 如何将Git仓库备份到本地

    git常用的传输协议传输协议.png哑协议:哑协议传输进度不可见;智能协议传输可见。传输速度:智能协议比哑协议传输...

  • NSURLSession学习笔记

    �Http协议-超文本传输协议 Http协议是应用层协议,底层要求的传输协议必须是可靠的传输协议,通常是TCP协议...

网友评论

      本文标题:13-P2P 协议

      本文链接:https://www.haomeiwen.com/subject/wzfzxqtx.html