September 7, 2006 – 6:33 am
有线通的限制看来近期是不太有可能缓解了,BT和ED都是牛速,还好目前HTTP速度牛快,玩游戏也很爽。每天DDO个2小时还是比较舒服的。
昨晚忽闻Windows Server Codename “Longhorn”发布了与Vista同期build的5600,虽然不是RC1的分支,不过估计是按照类似Vista的分支树编出来的,这个超级期待了。
不过BT和ED这种速度下载个1.7G的ISO估计要到下周,无奈选择了IRC,没想到竟然可以跑满1M速度,没什么意外今晚就可以看到新Longhorn了
September 3, 2006 – 4:19 pm
今天因为搬家换成了有线通宽带,以前用过,因为延迟太高转投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的范围内的端口运营商不太可能屏蔽,只有监听端口在这个范围的人越多,大家可以互联的可能性就越高,下载速度也就越快。
希望懂点技术的朋友帮忙测试并提出意见,来搞倒万恶的有线通。
September 3, 2006 – 3:38 pm
在换了居所之后无奈和又用上了上海有线通这个已经被千夫所指万人所骂的宽带品牌。不过刚好最近发生了一些有意思的事情。据说近期上海有线通大规模封锁了p2p软件下载,BT,ED下载均被限速至30k以内。
本来从技术层次想估计可能性不大,因为如果是在有着数万客户的总出口做此种限制对于目前的设备是很难实现的,因为牵扯到协议分析,动态连接状态跟踪机制等。今天一搬好家就接上网线测试,没想到结果是BT真的速度慢得一塌糊涂,但普通http下载则飞快,很容易达到1M带宽的极限。真的有意思了。
经过一阵子研究发现,似乎是通过限制高端口互连的连接频率和并发连接数来实现控制的,慢的最大原因是连不上源。如果是这样的话那就讲得通了,近期想想办法看看有没可能突破限制。
不过更有意思的是,BT限速之后,有线通玩游戏明显感觉变快,看来最近可以很爽的DDO了。
August 17, 2006 – 3:33 pm
今天阿晓同学说我的主页打不开,自己试验了一下发现www.dawnh.net确实打不开,而我一般都只是打dawnh.net或者blog.dawnh.net进来的,所以这么久没发现。
最后发现原因是www的子域名解析没做,丢人丢大了。
今天下载了IISDiag大体玩了一下,发现这东西真不错,诊断IIS故障有多了一个利器。
刚好有客户反映他的ASP站点老是出问题,刚好把新武器演练一下,结果居然揪出了导致IIS6种ASP请求挂起的首恶(第一恶是也,非首要恶)—-Scripting.Dictionary组件。
debug纪录显示有5个页面请求被block,原因是这些页面都请求了Scripting.Dictionary这个组件,同时这个组件被另外一个页面调用并执行,所以一旦这个页面的请求出现问题,会导致所有后续页面被block,根本原因为Scripting.Dictionary这个组件为STA模式设计,所以页面在处理Scripting.Dictionary请求时会将请求串行话,而第一个请求处理如果出现意外情况,则后续请求皆会被block。
继续检查更详细的信息,发现调用此组件是在Session处理中,具体代码为:
Set Session(strName) = Server.CreateObject(”Scripting.Dictionary”)
然后又在网上发现了这样一句话:
如果在session级保存一个dictionary对象会降低系统的性能,而在application级保存一个dictionary对象会导致web服务器崩溃
—–wrox: asp程序员参考手册里第137页
至此原因找到,一方面为客户程序没有考虑MTA环境下ASP编程的注意事项(其实很多从ASP2.0 under IIS5 过来的程序都没考虑过此问题,只是恰好出问题的几率比较小而已),另一方面是客户程序在不恰当的位置调用了不恰当的组件,导致很容易使程序被block。
相信以后会慢慢找出更多存在类似遗留问题的组件,那时对于IIS6 ASP hang故障将会有更快更准确地定位能力。
三点结论:
1,要佩服MS在新技术应用上的能力与决心,COM的STA->MTA的转换能在短时间内完成,并将绝大多数底层架构升级为MTA环境,同时考虑了兼容问题,这是需要佩服的。反观某些开源软件,底层数据结构说改就改,几天一编,同版本号的内核竟然都敢做成不兼容,虽然号称Free,但谁敢用这些产品作服务?你以为每家都有IBM的实力?
2,即使存在问题,不是掩盖而是积极解决,请看关于此问题的KB,同时又提供了如此快捷方便的工具来定位问题,试问谁能做的更好?
3,敬告国内某ASP程序提供商,你们的产品存在类似问题。尽快改进你们的产品吧。现在还可以以兼容性作为理由,但不要等所有问题日后暴露出来再想办法。
问题1:自治系统的指示符是一个16BIT的数,范围是从1~65535,64512~65535的AS编号是留作私
用的。
问题2:在Zebra上配置BGP成功的范例:
Current configuration:
!
hostname bgpd
password zebra
log stdout
!
bgp config-type cisco
!
router bgp 65500
neighbor 10.0.0.200 remote-as 65500
!
address-family ipv4
neighbor 10.0.0.200 activate
network 192.168.1.0
no auto-summary
no synchronization
exit-address-family
!
line vty
!
end