关于BT网络的一些改进
这几天一直在研究如何改进现有的BT网络的效率,现在有了一点小小的成果
大概思路是这样的,对于一些已经拓扑结构以及节点之间延迟的网络(并不算太苛刻,对于例如数据中心的网络来说,是可以实现的),
普通的BT网络的tracker部分是随机选择节点作为邻居列表的,但是如果我们能轻松的get到节点的延迟,就可以不再随机选择,而是根据节点之间的延迟排序,
把和当前结点延迟比较小的节点作为邻居返回,这里没有去选择上传量大的节点,因为在已经延迟的网络中,传输延迟来的比上传量更加重要(后期需要验证)。
代码部分就不贴了,很好实现,就是一个排序,(是基于peersim的BT网络,主要修改bittorren.java里有关tracker部分)现在准备开始分析数据。这倒有点麻烦,因为我修改后的BT网络,相较于原来的网络,似乎能在规定时间内,能使得更多节点完成下载,并且下载时间也比原来短,但是同时也会使得每个节点的平均邻居数目减少,最后怎么来权衡,还需要考虑,并且BT网络的衡量因素也需要去了解。
总之能跑出结果,并且能有提升,还好很开心,虽然适用范围可能很局限。。。
关于BT网络的一些改进的更多相关文章
- peersim中BT网络核心代码解析
首先大概介绍BT网络运行的整体流程: 开始阶段,一个节点加入到网络中,并向tracker节点发送信息,tracker返回若干个邻居的列表 得到列表后,向每个邻居发送bitfiled信息,来获取他们的文 ...
- 对 Azure 虚拟网络网关的改进
YU-SHUN WANG Azure 网络高级项目经理 在 2014 年欧洲 TechEd 大会上,我们宣布了对Azure 虚拟网络网关的多项改进: 1. 高性能网关 SKU 2. Azure 虚 ...
- 为什么BT网络中迅雷的速度会这么快,比其它BT软件快
先看迅雷加速通道的几个概论,参考:http://www.cnblogs.com/EasonJim/p/6608544.html 我个人理解,在传统BT软件中,基于P2P的网络是不具备以上条件去加速的, ...
- BT网络中DHT和UPnp的解释(转)
DHT 类似Tracker的根据种子特征码返回种子信息的网络.DHT全称叫分布式哈希表(Distributed Hash Table),是一种分布式存储方法.在不需要服务器的情况下,每个客户端负责一个 ...
- .NET 5网络操作的改进
随着.net 5在11月的发布,现在是谈论网络栈中许多改进的好时机.这包括对HTTP.套接字.与网络相关的安全性和其他网络通信的改进.在这篇文章中,我将重点介绍一些版本中更有影响力和更有趣的变化. H ...
- [搜片神器]直接从DHT网络下载BT种子的方法
DHT抓取程序开源地址:https://github.com/h31h31/H31DHTDEMO 数据处理程序开源地址:https://github.com/h31h31/H31DHTMgr DHT系 ...
- BackTrack5-r3任务栏显示网络图标及自定义DNS
任务栏显示网络连接图标:安装NM工具,在BT终端中执行:apt-get install network-manager按y继续执行,显示:ldconfig deferred processing no ...
- Linux系统网络性能实例分析
由于TCP/IP是使用最普遍的Internet协议,下面只集中讨论TCP/IP 栈和以太网(Ethernet).术语 LinuxTCP/IP栈和 Linux网络栈可互换使用,因为 TCP/IP栈是 L ...
- Windows Server 2016-Hyper-V网络虚拟化概述
在 Windows Server 2016 和虚拟机管理器中,Microsoft 提供的端到端网络虚拟化解决方案. 有构成了 Microsoft 的网络虚拟化解决方案的五个主要组件: Windows ...
随机推荐
- git代码冲突解决
1.git fetch 跟git pull差别是前者不会和本地直接merge code,而后者会,所以git fetch更安全 git fetch origin master:tmpgit dif ...
- AFNetworking到底做了什么?(二)
接着上一篇的内容往下讲,如果没看过上一篇内容可以点这: AFNetworking到底做了什么? 之前我们讲到NSUrlSession代理这一块: 代理8: /* task完成之后的回调,成功和失败 ...
- JavaScript toLocaleString() 方法
JavaScript toLocaleString() 方法 JavaScript Array 对象 定义和用法 把数组转换为本地字符串. 语法 arrayObject.toLocaleString( ...
- 如何实现textarea中获取动态剩余字数的实现
工作中遇到一个案例,之前没有写过,今儿啃了半个下午硬是给写出来,灰常又成就感!当然对于js大牛来说这根本不算啥,但是对于我自己的js能力又向前迈出一小步. 案例介绍:我们常见到有的网站有textare ...
- 生活life
1.想办法努力挣钱,而不是如何省钱. 2.再愤怒也不大吼大叫,保持冷静. 3.喜欢的东西自己努力赚钱买. 4.少说多做,能站不坐,适当运动. 5.不要认为找个有钱男人就什么都有了.世界上年轻的女孩子, ...
- .NET小细节
1.equals()和运算符==的区别 C#中有两种不同的相等:引用相等和值相等.值相等是两个对象包含相同的值:引用相等是两个对象引用的是同一个对象. “==”操作符比较的是两个变量的值是否相等,或两 ...
- EntityFramework CodeFirst SQLServer转Oracle踩坑笔记
接着在Oracle中使用Entity Framework 6 CodeFirst这篇博文,正在将项目从SQLServer 2012转至Oracle 11g,目前为止遇到的问题在此记录下. SQL Se ...
- 移动apache访问日志后如何立即生效
一次偶然测试发现移动了apache下的access_log日志后或者修改了access_log的名称,该移动的日志或修改名称的日志文件仍记录了apache访问信息,即没有实时生效,后来查了资料才知道: ...
- js图片拖放原理(很简单,不是框架,入门基础)
<html> <meta> <script src='jquery-1.8.3.min.js'></script> <script> /* ...
- C++ 类模板的使用
从事C++挺久了,在前段时看书时,发现高手,都是在写模板无,泛型编程,顿感差距.自己连模板都没有写,于是就小小的研究了下模板的用法. 模板简而言之就是对某此对象的相同方法,或处理方式,进行归纳,总结, ...