热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BT种子磁力链接是什么?

[科普向]BT种子、磁力链接到底是什么?BitTorrent我们平时所说的BT种子,实际上指的是由BitTorrent协议所生成的一个包含资源信息的

[科普向] BT 种子、磁力链接到底是什么?


BitTorrent

我们平时所说的 BT 种子,实际上指的是由 BitTorrent 协议所生成的一个包含资源信息的文件。与传统的网络传输协议不同,BitTorrent 协议是一种以 Peer-To-Peer(P2P) ,即 用户对用户 模式为主的资源分享协议,采用的是一种 去中心化 的思想,不需要一个专门的文件发布者或者发布平台。

bt

我们平常所使用的 HTTPFTP 等协议需要一个 中心发布者 在网络上发布文件,即一种 点对多 的形式。当然,如果中心发布者由于某种原因被 ban 或者删除了资源,那么我们就无法下载到心爱的 小姐姐 资源了。

传统协议

所以,从理论上来说,一个 bt 种子只要发布了,种子所包含的资源就 永远 存在于互联网上。



BitTorrent 协议的 思想 是将一个文件划分为 大小相等 的 n 块,块大小必须为 2k2^k2k 的整数次方。例如一个 100M 的文件,按照每块 1024k 的大小被分为 100 个小块,每块块中包含 索引信息Hash 值,而我们的下载过程实际上就是 块的交换过程。

块

BitTorrent 协议的资源发布者会根据要求,制作一个包含资源下载信息,例如 Tracker 服务器地址文件大小文件名块文件大小 等信息的 .torrent 文件,这个过程也就是我们平时说的 做种

下图是我利用 BitComet 软件做的一个种子,大家可以看一下。

做种

如果我们要下载 BT 资源,首先要得到对应的 .torrent 文件,然后用专门的下载软件,例如 BitComet、qBittorrent、utorrent 等进行下载,下载过程大概为:


  • 读取 .torrent 文件信息,载入内存
  • 得到文件内的 Tracker 地址,连接 Tracker 服务器
  • Tracker 服务器回应下载请求,记录你的 IP 并告知其它下载者的 IP 地址
  • 你与其他在线的下载者连接,交换各自没有的块
  • 验证得到的块信息,若不同,则需要重新下载

由此可以看出,Tracker 是很重要的一个东西。一但 Tracker 服务器被封,我们也都无法进行下载了。由此,磁力链接 诞生了。


磁力链接


磁力链接(Magnet URI scheme),是对等网络中进行信息检索和下载文档的电脑程序。和基于“位置”连接的统一资源定位符不同,磁力链接是基于元数据(metadata)文件内容,属于统一资源名称


例如这一串链接:

magnet:?xt=urn:btih:53SWOUDWKG6ORSKTJHHE3QXTIBOGU5WU

magnet 为协议名;xt 表示资源定位点; urn:btih 表示 Hash 方法名,最主要的就是后面唯一的一串 40 位 16 进制的数字。磁力链接利用 DHT 技术(分布式哈希表,Distributed Hash Table)和 PEX (Peer Exchange)实现了资源的 “随意” 传播,根本无法禁止。

磁力链接下载的本质是将每一个人都变为 Tracker 服务器,将资源与下载者对应起来,每位下载者保存 部分 信息。这样,在下载资源时,只需寻找拥有所需资源的下载者。

打个比方,A 认识 B,B 认识 C, C 认识 D 和 E;如果 A 想认识 E,就可以通过 B 和 C 的介绍来认识 D,不需要 A 一个个去寻找 E。


具体原理比较复杂,可以去看 回形针 的 视频 详细了解





如何下载?

讲了这么多,那如何下载 BT种子 或者 磁力链接 呢?


使用专门的客户端

在互联网上的常见的支持 BT 下载的客户端有 BitComet、uTorrent、qBitTorrent、Motrix、FDM 等,当然,最重要的还是 Tracker 服务器,可以通过 GitHub 上的一个 项目 来获取到比较好的 Tracker 地址。


第三方支持

百度网盘、115 网盘、迅雷等软件也可以下载。但由于版权和一些其它问题,大家懂的都懂,效果不是太理想。


自己动手,丰衣足食

有条件的可以使用 Aria2 来自己动手搭建






以上内容仅供简单科普,部分地方措辞等可能不太准确或出现错误,请多多包涵~

错误的地方可向我说明,我会尽量修改~



参考链接

BitTorrent协议与MagNet协议原理

回形针:别再问我什么是 BT 种子

BT种子的原理是什么?

wiki-BT

wiki-磁力链接


推荐阅读
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 在优化Nginx与PHP的高效配置过程中,许多教程提供的配置方法存在诸多问题或不良实践。本文将深入探讨这些常见错误,并详细介绍如何正确配置Nginx和PHP,以实现更高的性能和稳定性。我们将从Nginx配置文件的基本指令入手,逐步解析每个关键参数的最优设置,帮助读者理解其背后的原理和实际应用效果。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
author-avatar
莫嬷嬷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有