P2P协议初步

匿名 (未验证) 提交于 2019-12-03 00:39:02

今天看到一个问题,如何把一个文件快速下发到100w个服务器

如果我们将文件集中式地放在一个服务器或缓存上的话,带宽、连接都会遇到问题。

树状:

索引状:
无论哪种方法,好像速度都不够快,主要受制于资源和带宽。

P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快但缺点是对硬盘损伤比较大(在写的同时还要读),还有对内存占用较多,影响整机速度。

P2P的特点:1)无中央服务器,打破了C/S模式;2)用户之间互联并分享文件。

常见的P2P的协议有BitTorrent,这和我们天津大学的PT是一样的协议。

1、BT的简介

BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断向其他下载者上传已下载的数据。而在FTP,HTTP协议中,每个下载者在下载自己所需文件的同时,各个下载者之间没有交互。当非常多的用户同时访问和下载服务器上的文件时,由于FTP服务器处理能力和带宽的限制,下载速度会急剧下降,有的用户可能访问不了服务器。BT协议与FTP协议不同,特点是下载的人越多,下载速度越快,原因在于每个下载者将已下载的数据提供给其他下载者下载,充分利用了用户的上载带宽。通过一定的策略保证上传速度越快,下载速度也越快。

2、BT的原理解析

BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。

根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个torrent文件,即种子文件,也简称为"种子"。

.torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块,块大小必须为2k的整数次方(由于是虚拟分块,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入种子文件(.torrent)中。所以,种子文件(.torrent)就是被下载文件的"索引"。

3、和PT的区别

原文:https://www.cnblogs.com/mini-coconut/p/9255033.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!