首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络编码Bittorrent库

网络编码Bittorrent库
EN

Stack Overflow用户
提问于 2012-02-16 02:52:14
回答 1查看 324关注 0票数 2

我想写一个bittorrent库(或扩展一些已有的库,如YAIRCC),使其能够使用网络编码发送和接收文件。要做到这一点,我需要向同龄人发送关于我的线性组合的消息。我该怎么做呢?我必须使用像LTEP这样的扩展吗,或者有其他方法可以做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2012-02-17 08:28:17

我建议使用LTEP来宣传对新消息的支持,当两个对等体都支持时,将使用LTEP来代替标准请求和片段消息。这将是向后兼容的。使用网络编码,您的请求消息可能会简单得多。例如,你不必指定你想要的块。指定一些您特别感兴趣的向量的信息可能仍然有用,以最小化线性相关的块。

如果你正在寻找一个要扩展的bittorrent实现,你可能想看看libtorrent。它有一个插件接口,可以添加像这样的扩展消息。

现在,我认为您希望的任何性能改进都将完全被磁盘性能的降低所吞噬。请记住,在下载结束时求解得到的方程系统需要您重新读取(可能还会多次写入)每个块,以解开它们之间的依赖关系。这可能会花费你大量的时间。

在我看来,一种更合理的方法是限制任何给定块可以组合的实际块的数量。这样,您可以权衡网络编码的一些冗余优势,但最终可以在解决这些问题时获得性能。事实上,可以说稀有优先算法工作得非常好,以至于网络编码给你带来的任何好处都是微不足道的。

无论哪种方式,我都推荐一种更简单的方法,简单地让XOR块只组合其他两个块。这样,请求者可能必须明确说明要下载哪个XOR块。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9299410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档