磁力链接由什么构成
磁力链接是一串以 magnet: 开头的统一资源标识,主体由 xt、dn、tr 三部分参数构成。xt 参数携带的是文件内容的哈希值,通常以 urn:btih: 前缀标注,后面跟 40 位十六进制字符;dn 参数给出建议显示的文件名,仅作展示用途,不参与校验;tr 参数列出一组 Tracker 地址,用于向索引服务器询问持有该文件的节点。三部分之间用 & 符号连接,参数顺序并不影响解析结果。一条完整的磁力链接并不包含文件本体,它只描述去哪里找、找的是哪一份内容。正因为如此,同一条链接在不同客户端里打开,得到的文件清单应当完全一致,前提是哈希值没有被改动过。理解这三段参数的分工,是判断一条链接是否完整的第一步。
哈希值为何能定位文件
哈希值是对文件内容做单向运算后得到的一串摘要,长度固定,内容任何一处改动都会让结果完全不同。磁力链接里最常见的 BTIH 采用 SHA-1 算法,对种子信息做运算后取 40 位十六进制表示。检索系统拿到这串字符后,直接与索引表比对,命中即为同一份文件,无需依赖文件名或目录结构。这也是同名文件能够被准确区分的原因:两个文件即使标题一模一样,只要内容不同,哈希值就不会相同。反过来,只要哈希一致,文件内容在理论上就是逐字节相同的。日常使用中,长度不足 40 位或混入非十六进制字符的字符串,基本可以判定为录入错误,检索时会直接返回空结果。
做种状态怎样影响速度
做种指的是某个节点完整持有文件并愿意向其他节点提供数据的状态。做种人数越多,可用的数据来源就越分散,下载过程中的分块请求更容易被及时响应,整体速度也更稳定。条目页显示的做种数是一个瞬时值,它会随着节点上线与离线不断变化,因此单次读数只能作为参考,观察一段时间内的趋势更有意义。最近一次活动时间同样重要:如果某个条目显示有做种节点,但最近活动时间停留在数月之前,实际连接成功的概率会明显下降。检索时把做种数与最近活动时间放在一起看,能够过滤掉相当一部分已经停止流通的记录,减少无效的下载等待。