BT下载速度越来越变得像老牛拉破车一样。只有BT下载速度慢,而其他的网络软件的上网速度并没有变慢(如:打开网页、HTTP下载等)。这到底是怎么一回事呢?
原来,这是因为不少地方的宽带运营商(ISP)对BT下载从技术方面进行了种种限制。难道用户从此就只能使用慢速BT了吗?别急,只要仔细阅读本文,就可以帮你突破ISP限制用BT。
一、BT下载已成ISP的眼中钉
BT软件是目前网民使用最频繁的P2P下载工具。BT下载具有下载人数越多越快、不依赖于下载服务器、下载资源丰富等优点,因此,一天到晚开着BT软件下载资源的网友屡见不鲜。与此同时,BT下载却成了ISP的眼中钉。因为BT下载占用了过多的网络带宽,使得网络设备需要长时间高负荷运行,其它网络协议软件的可用带宽捉襟见肘。
当然,ISP也可以购置更多更好的网络设备以及扩大带宽来缓解BT下载导致的矛盾。然而,不少ISP却采取了自认为最直接有效的方法——限制甚至封锁BT下载。那么,网民从此就不能使用BT软件了吗?正所谓:“你有张良计,我有过墙梯”。面对ISP的封锁,BT爱好者们当然不会坐以待毙了,采取凌厉的反击来保卫他们的自由网络疆域是势在必行的。一场BT下载的攻防战已经打响了。
二、BT下载攻防战的三大战役
兵来将挡,水来土掩。强硬的ISP采取了各种技术手段来限制BT传输,那么,ISP到底有哪些杀手锏呢?而BT爱好者们又该如何进行化解并发起反击呢?
1.第一战役——端口争夺战
(1)ISP
由于BT数据传输使用了TCP6881-6889等监听端口,有些ISP便在局端设备封锁这些端口来达到控制BT数据传输的目的。封锁BT监听端口不会导致BT断流,但将使BT速度变得很慢。
(2)BT爱好者
BT爱好者很快便想到了突破这一限制的方法:修改BT的默认监听端口。这样就躲过了ISP的限制,重新获得了BT的高速下载。那么,BT软件是如何来具体设置的呢?以下以常用的BitComet为例进行设置。
首先,打开“选项”对话框,在“网络连接”标签的“监听端口”旁点击“选择随机端口”按钮设置另一端口即可(见图1)。
注意:ISP已经封杀了6881-6889 ,8881-8889,16881-16889等端口段,选择的随机端口一定要避开这些端口段。
2.第二战役——争夺下载源头
(1)ISP
由于避开封锁的BT监听端口非常容易,于是,ISP又研究出了新的限制方法。ISP采用了可以支持BitTorrent tracker白名单功能的网络设备来限制BT下载。
BitTorrent tracker是可以提供种子以及正在下载和做种的用户连接信息的服务器,BT客户端只有从BitTorrent tracker获得下载资源的用户连接信息后才可以连接这些用户,并在这些用户的硬盘中下载文件的不同部分。使用BitTorrent tracker的缺点是:必须连接到BitTorrent tracker才能开始BT下载。
而ISP的网络设备将只允许白名单中的BitTorrent tracker可以被BT客户端连接,而其他的BitTorrent tracker将无法连接。这样ISP就可以让BT软件无法连接到可用的BitTorrent tracker,相当于切断了BT下载的源头。
(2)BT爱好者
虽然ISP屏蔽BitTorrent tracker的招数看起来是无懈可击,但是迅猛发展的BT技术很快就推出了具有针对性的反击技术。这就是使用DHT(Distributed Hash Table即分布式哈希表,一种分布式存储方法)网络,它可以在不连接BitTorrent tracker的情况下,由每个参与DHT网络的BT客户端负责存储一小部分的用户连接信息,其他BT客户端可以从该BT客户端获得用户连接信息,这样每个BT客户端在下载的同时也承担了BitTorrent tracker的工作。
这样一来,即使BT客户端不能和BitTorrent tracker通信,还是能从其他用户那里得到更多的用户连接信息来完成下载。目前,大多数的BT软件已经支持DHT技术,以BitComet为例,我们可以经过以下操作开启DHT选项。
首先,打开“选项”窗口,进入“高级设置-网络连接”选项,在右侧勾选“允许加入到公用DHT网络”选项即可(如图2)。另外,在制作种子的时候,我们也要设置网络类型为“使用公用DHT网络”(如图3),这样才能在以后使其他用户使用DHT功能进行下载。
3.第三战役——数据流争夺战
(1)ISP
经过前两次交锋的失利,ISP决定吸取教训,从BT数据流入手来限制BT传输。于是,ISP采用了更加精密的网络设备来识别出BT协议的数据流,然后再进行限制。
(2)BT爱好者
针对ISP的BT限制手段,BT软件开发者推出了Encrypted Transport和PRotocol Encryption,这些技术都是通过对BT的协议进行加密来避开ISP的BT下载限制,还可使传输信息不被破解,减少被人偷窥隐私的几率。目前,最成熟的协议加密技术是MSE/PE,包含Message Stream Encryption(MSE,即信息流加密技术)和Protocol Encryption(PE,即协议加密技术)。
MSE/PE使用Diffie-Hellman key exchange(一种密钥交换算法)结合种子的infohash(哈希值)生成一对密钥(密钥其实可以理解为加密数据的钥匙),其中Diffie-Hellman key exchange可以尽可能地避免传输数据被侦听的危险,而infohash可以阻止其他BT用户的攻击。
常见的密钥算法有对称和非对称两种。Diffie-Hellman key exchange属于非对称密钥算法,可以生成两个密钥,分别是公钥和私钥。在发送BT数据流的时候,先用RC4等级(一种加密算法)进行加密,接着用Diffie-Hellman key exchange生成的公钥给传输数据上锁;接受到加密的BT数据流后,先使用Diffie-Hellman key exchange生成的私钥对传输数据解锁,然后对加密数据流进行解密就可以获取原始的BT数据流了。这样的BT加密传输的过程非常安全,俨然给BT数据传输加上了双重保护。
加密后的通信数据流长度是60-80位。这相对于当今的加密标准而言,加密等级不算高。这是因为BT加密协议不是真正的加密传输协议,而只是高效的迷惑方法。RC4等级的加密算法速度较快是最适用于加密BT数据传输的。BT数据传输的加密方式如图4所示。
注:infohash(哈希值)即散列值,就是把任意长度的输入(又叫做预映射,pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。目前最流行的散列函数是md5和SHA1。
目前,MSE/PE技术已经被BT客户端广泛支持,俨然成为BT协议加密的标准。为了确保和其他不支持MSE/PE技术的BT客户端的兼容性,用户也可以选择不加密的输入和输出的BT数据流可以通行。所有的支持该技术的BT客户端在接受到加密的输入数据流时,即使未开启输出数据加密也可以自动开启加密传输。也就是说:支持协议加密的BT客户端可以兼容非加密的BT数据传输,而其他不支持BT加密技术的客户端却无法从加密的BT数据传输中获益。因此,BT客户端全面支持主流的MSE/PE加密技术将是大势所趋。
讲了这么多,肯定有不少读者对于BT加密传输功能已经跃跃欲试了。那么,下面就让我们来看看BitComet的加密传输是如何设置的。
BitComet的设置比较隐蔽。我们可以进入“选项-高级设置-网络连接”标签,设置右侧的“协议加密(防范BT协议过滤)”为“优先”即可(如图5)。
目前,BT用户使用加密传输并不是很普遍,要真正体验BT加密传输的高速,必须参与点对点传输的BT客户端软件都支持该种加密传输协议才可以。因此,只有BT用户都开启加密传输才能真正驶入BT加密传输的快车道。不过,随着BT加密技术的进一步发展和用户加密传输意识的提高,该技术的未来值得看好!