Sep 032006
 

今天因为搬家换成了有线通宽带,以前用过,因为延迟太高转投adsl,但现在我们这小区只有有线通,所以只能用它了。前几天看到说上海有线通封p2p搞得沸沸扬扬的,本以为只是个别现象,因为对于p2p的封锁牵扯到高层协议的分析和处理,这些处理对于规模不大的网络是可行的,但对于宽带运营商这种拥有巨大客户量的服务商,一般来说是很难做到的,原因是核心设备在进行数据包分析处理时需要很大的资源,而运营商的核心设备为了承载巨大的流量都是使用了硬件三层交换和路由,这些设备基本上无法处理高层协议。
但就我今天几个小时的使用来看,确实BT和ED的下载速度被大大限制了。于是作了些简单的测试并抓包分析了下可能的原因,具体如下:
1,换用了不同的BT软件,并启用了包头加密,无效。说明运营商并没有进行协议分析,并通过acl来过滤p2p。这跟我的猜想是一致的,就是运营商不可能通过数据包的协议分析进行屏蔽。
2,找了些有几千个种子的文件来下载,并抓包分析,发现几乎100%的连接都无法成功建立,外出连接的建立在发送完syn之后没有收到任何回应,说明确实有连接限制。而如果有连接限制,但又不是通过协议分析结果限制的话,那肯定限制的是有某些特征的连接。猜想可能是并发连接总数限制,源和目的ip限制,以及端口范围限制这几种,并且也只有可能是这几种了。
3,继续深入分析,通过抓包和连接状态跟踪,能发现一些比较有趣的事情。首先并发连接限制很可能是有的,但这个数目可能不是很严格,因为在测试过程中经常是只能连到个位数的节点,但其他方式下载可达到的并发数比这要高得多。其次是ip地址的限制,这个我个人认为可以排除,这种方式的限制只能是把各大tracker服务器的ip加入屏蔽列表,让你得不到种子,如果敢直接屏蔽客户端ip估计那运营商就不用活了。排除了前面的,那剩下的只可能是端口范围限制了。但稍微懂点p2p原理的人都知道,大部分p2p软件的端口是都可以通过设置更改的,所以不可能通过屏蔽某些端口的连接来控制p2p。但要注意的是,这里有个比较有意思的特征,就是一般2个p2p客户之间的连接,都是高端口对高端口的,而普通下载协议的连接,则都是高端口对已知端口的(象http80,ftp21等),并且p2p软件下载,监听的端口都是随机高端口,可能会很高,而普通下载,客户端一般都是从1025端口开始依次往下使用。这样p2p的特征就很明显了。因此我认为有线通很可能是做了对高端口互连之间的并发连接限制和每连接速度限制,通过这样的限制来将BT流量压下来的。
4,通过抓包和连接状态的结果,我发现了一个比较有意思的现象:就是我经常能连上的对端,所监听的端口都是10000以下的,也就是说,有线通很可能是限制了10000以上端口之间的互通。大家可以通过在命令提示符里键入netstat -an,会输出一个连接状态的表。第一列是协议,第二列是你的ip,第三列是对方ip,第四列是连接状态。这里需要注意的是第四列标有ESTABLISHED的和SYN_SENT的,前者是已经建立连接,后者是试图建立连接,后者很可能就是试图建立连接而服务商作了屏蔽,导致一致处于这个状态直至超时,也就是说被封掉的连接。大家通过对比对端的端口号特征来看一下,是否有我所说的现象,如果有,则可以基本确认我的推测是正确的。

如果确实是这样,则解决办法是,所有使用p2p客户端的朋友都将监听端口改小,个人觉得在1025-2000的范围内的端口运营商不太可能屏蔽,只有监听端口在这个范围的人越多,大家可以互联的可能性就越高,下载速度也就越快。

希望懂点技术的朋友帮忙测试并提出意见,来搞倒万恶的有线通。

  4 Responses to “从技术角度研究有线通的p2p限速以及可能的解决办法”

  1. 谢谢你的建议。不懂技术,但是看看你分析还是满有道理的

  2. 是TCP和UDP都改么?

  3. 本人也是有线通用户 我很想知道你是怎么设置的bt 希望大哥帮助一下 qq 594425400

  4. 不懂技术.只能支持下了.
    有线通太恶劣了,宽带服务商居然搞限速,而不是升级服务器。

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>