❤️💕💕计算机网络--TCP/IP 学习。Myblog:http://nsddd.top
[TOC]
对于星际传输协议(IPFS) 使用的就是bittorrent协议。
- 对等式网络(peer-to-peer, 简称P2P),又称点对点技术,是无中心服务器、依靠用户群(peers)交换信息的互联网体系,他的作用在于,减低以往网络传输中的节点,以降低数据丢失的风险。
- 与有中心服务器的中央网络系统不同,对等网络的每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其户群进行信息交流。
- BitTorrent协议(简称BT)是用在对等网络中文件分享的网络协议程序。它是用户群对用户群(peer-to-peer),而且用户越多,下载同一文件的人越多,且下载后,继续维持上传的状态,就可以“分享”,成为其用户端节点下载的种子文件(.torrent),下载该档案的速度越快。
- 分布式散列表(缩写DHT)是分布式计算系统中的一类,用来将一个关键值(key)的集合分散到所有在分布式系统中的节点,并且可以有效地将消息转送到唯一一个拥有查询者提供的关键值的节点(Peers)。这里的节点类似散列表中的存储位置。
- 非结构化p2p:集中化目录,完全分布式,混合体
- 结构化p2p(DHT):数/图:具有一定的结构
- P2P能有效地利用空闲的带宽,从而降低服务器压力,甚至不需要服务器
- 速度快
- 能够自扩展,因为每个人都可以做种
- 参与特定文件的分发的所有对等方的集合称之为一个洪流(torrent)
- 在一个洪流中的对等方彼此下载等长度的文件快(chunk),典型的块长度为256KB
- 种子文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(虚拟逻辑上的分块),并把每个块的索引信息和Hash验证码写入种子文件中;所以,种子文件就是被下载文件的“索引”。
- 下载时,BT客户端首先解析种子文件得到Tracker地址,然后连接Tracker(追踪器)服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据种子文件,两者分别告知对方自己已经有的块,然后交换对方所没有的数据。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
- 下载者每得到一个块,需要算出下载块的Hash验证码与种子文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。
- 为了解决某些用户“下完就跑”的现象,一些种子发布站(PT站)有奖惩机制,上传即加分,下载即扣分。
- 越多人下越快
- 稀缺优先机制:最稀缺的块优先得到分发
- 机灵的对换算法:根据当前能够以最高速率向它提供给数据的邻居,给出优先权
结构:
文件 | 描述 | hash-1 |
---|---|---|
— | 唯美 照片 | — |
通过描述对应的索引找出唯一的hash值,hash值对应的唯一文件,就可以下载
研究分布式散列表的主要动机是为了开发点对点系统,这些系统使用不同的方法来解决如何找到拥有某数据的节点的问题。DHT是解决这种问题的一个方法。
分布式散列表本质上强调以下特性:
- 离散性:构成系统的节点并没有任何中央式的协调机制。
- 伸缩性:即使有成千上万个节点,系统仍然应该十分有效率。
- 容错性:即使节点不断地加入、离开或是停止工作,系统仍然必须达到一定的可靠度。