2.13测试版,修复封禁3次传输错误数据的peer的算法可能失效 情况1. 如果出错的piece是来自单个peer,那么会将其错误计数加一,三次后封禁。 情况2. 如果出错的piece是从多个peer下载到的数据,那么无法判断是哪个peer传输了错误数据,此时不会增加相关peer的错误计数。 情况2a. 如果开启了 bittorrent.separate_sources_for_failed_piece,将会从多个peer分别单独重新下载这个piece,从而准确判断出错的数据来自哪个peer,并将其错误计数加一,三次后封禁。 情况2b. 如果没有开启 bittorrent.separate_sources_for_failed_piece,那么有可能再次从多个peer下载此分块,再次进入情况2,陷入死循环。 bittorrent.separate_sources_for_failed_piece 开启和关闭都试过 只要和他建立连接,然后一直传一直丢,能下载好几百个G不拉黑他。停止任务重新开始都没用,依旧一直传错误的数据过来 我应该是情况1,试了几次,,,这个 112.90.178.250:23891 qb客户端他现在不给我传烂的数据了,导致测不了 还是说和任意一个其它peer握手后,就算没有下载大小也就会标记关联状态,直到删除任务重新创建才能清理掉这串情况2的关系 是不是因为这个种子任务只有1个区块,所以就会必现(peer握手申请的同一个区块),一些1000区块的BT任务也很有概率触发无限下载,不标记3次拉黑一直传错区块数据的peer,这点论坛也有其他人反馈过 同一个区块ID校验失败3次清除peer和区块的关联状态,让其重新创建关联,有没有可能解决这个问题 要么给多个关联的peer一起ban了,避免一直在循环下载几万次丢弃数据,下载几个TB流量都下载不完成 |