2010年3月26日星期五

初涉tcp基础一例

昨天很多同学抱怨说ftp的下载速度慢得要死。ssh进入服务器看了看
ifconfig
发现eth0的txqueuelen是10,其它几个界面都是1000. 某只告诉我,eth0的那个网络接口被学校给搞了,只能等下周去找那帮混蛋

今天起床之后搜索了一下txqueuelen,发现它是可以用
ifconfig eth0 txqueuelen 1000
进行设置的。但是改成1000之后,RTT变成了800ms左右(之前txqueuelen是10的时候RTT是150ms左右)。又尝试了几个不同数量级的txqueuelen值,发现这个值越大,RTT越大,感觉上的网络延迟也越大。但是txqueuelen又无法再继续小下去了,也就是说RTT最小就只能是150ms左右了。
于是,目前的情况看起来是这样:RTT不知道为什么变得十分大,系统自己为了减小RTT而把txqueuelen往小里调了。如果假设系统还没有自动调整的话,RTT可能已经800ms,比起平时的2ms增大了400倍。

那么RTT是如何影响带宽的呢?
根据这篇文章的介绍,我查看了服务器的相应参数
rmem_max=131071
wmem_max=131071
tcp_rmem=4096 87380 4194304
tcp_wmem=4096 16384 4194304
上面这些参数算下来神奇的跟提到的这篇文章中的计算参数十分吻合,算下来接收传输速度是400kbytes/s。而该服务器发起的传输速度为82kbytes/s,对于局域网的ftp,在10kB/s左右,几乎是不可忍受的. 更何况即使是这样高的RTT也是在系统自动调整之后达到的,如果其它参数保持不变,RTT可能会达到800ms,传输速度就只有不到2kB了。

然后就是处理的问题?应该人为的把tcp_rmem和tcp_wmem设定得大一点,还是应该把RTT降低呢?
除了前面提到的那篇文章外,这篇文章也指出,linux内核从2.6.17开始,就支持了自动调整tcp参数以达到最佳。查看了一下/proc/sys/net/ipv4/tcp_moderate_rcvbuf,确实是1,也就是说确实开启了自动调整。那么目前的状态,包括tcp_rmem、tcp_wmem和txqueuelen甚至是RTT,应该都是自动调整后系统认为的最佳状态,而其中系统自动调整作用不大的,应该只有RTT,因为照我的理解,RTT是一个数据交换过程的时间,某一端的处理不会对已经很大的RTT有太大的改善。此外,还可以推断,RTT明显增大是系统进行这一系列自动调节的原因之一。
那就来看一下调整RTT的收益:如果RTT能够恢复原来的2ms左右,那么传输速度可以加快70~80倍,也就是达到6400kbyte/s。另外,此时系统可能会自动对tcp_rmem、tcp_wmem和txqueuelen等参数再次进行微调,实际收益可能不止于此(当然只是我的推测)。不过现在我是没有办法调整RTT了,等下周如果那帮人发善心把RTT恢复到以前的状态,再来核对一下前面的那些参数会发生怎样的变化,再来算算实际传输速度吧

2010年3月10日星期三

被迫升级arch

今天凌晨更新了opera到10.10,无奈无法运行,说我需要libpng12,但你这里是libpng14。
——arch方便之处:以前用ubuntu的时候,遇到这种情况会陷入依赖地狱(可能因为当时手还很生)。而在arch,yaourt一个libpng12即可

今天上午再次打开电脑,smart登录管理器无法载入,awesome也无法加载壁纸,说我需要libjpeg7,但你这里是libjpeg8。于是依葫芦画瓢,yaourt了libjpeg7。

想看部电影,打开mplayer,说我也罢工了。无奈,只好pacman -Syu,好家伙,有800MB的更新需要下载。下着吧,更新完毕之后把libpng12和libjpeg7移除,一切正常。

对于滚动更新的arch,以后我该频繁定期更新还是半年才更新一次呢?

西厢计划试用成功

在twitter上看到同样热衷于翻墙的推友有一条关于“西厢计划”的推,点开一看,原来是一种用于linux系统的基于netfilter的翻墙技术。竟然还有linux专用的翻墙技术也,不试试怎么可能。

1、下载安装包:目前处于alpha阶段,貌似没有什么现成的包,只有到项目的googlecode页去下载源码包了
2、准备必需工具:除了INSTALL中要求的autoconf,automake,libtool之外,arch用户还需要安装kernel26-headers和ipset4(后者从aur安装)
3、按照INSTALL说明的步骤安装。make install完成之后测试时,iptables会报错说找不到libipt_ZHANG.o什么的,这时候把源码目录中extensions下的libxt_ZHANG.o拷贝到/usr/lib/iptables/libipt_ZHANG.so,并类似处理libxt_gfw.o就可以了,以后还有需要用到的iptables扩展可以做类似处理
4、用firefox测试:关掉autoproxy,连接youtube速度那是刚刚的,比youku、tudou什么的快。不过还是不时会出现连接重置,查看/var/log/iptables.log会发现连接重置果然是由gfw导致的,但是如何解决目前还不知道。。。
5、目前哪些网站要用西厢还要在ipset中自定义,所以我主要用它连接youtube等用翻墙软件无法很好的解决的网站,其它网站还是用autoproxy,不过要在其gfw-list中把对应youtube的项目去掉
6、作为一个linux使用者而非开发者,只有在此默念火星咒希望西厢开发顺利了。感谢开发出这项应用的童鞋们:_)

2010年3月9日星期二

皮蛋粥料理成功!

工具:美的紫砂煲 320W
材料:无铅皮蛋2个,大米,香油,盐
过程:
1、大米淘1次之后倒掉水,加少量香油和盐腌2个小时
2、大米加自来水入锅,开足火力开始加热
3、约1小时后剥1个皮蛋,切得尽量碎丢入锅里,或者用小刀把皮蛋一点一点的刮进锅里
4、熬得差不多时加入另一个切得不那么碎的皮蛋,再熬半个小时左右
5、开始吃了,配卤鸭腿,还算美味
历时:3个半小时
经验教训:
1、水加得太多。其实不必熬3个半小时,只是后来发现水太多又不舍得把溶化了皮蛋的水丢掉所以就多熬了一段时间。这次米加得很少,但是水加了1.5L左右,估计加1L差不多
2、熬的时间太长。缘故是水太多,估计熬两个半小时差不多
3、后来的一个皮蛋没有必要加。其实最开始加的皮蛋已经溶化到了粥里面,粥的味道也是完全来自于这个皮蛋,后来加的皮蛋完全没有起到提升味道的作用,反而喝粥的时候容易觉得有碱味。还是加一些肉类比较好,下次一定要试一下加点瘦肉,估计在熬到1个半小时的时候加就可以了

2010年3月2日星期二

GTD and RSI prevention

前段时间在黑莓上安装了Pocket Informant,用其中的Franklin Covey功能做中期的任务规划,然后用其GTD功能来提示每天要完成的任务。在Getting Thing Down这本书中,有提到2分钟任务的重要性。而这个“2分钟任务”,便是今天要谈到的重点。

题目中的第二个名词,为RSI,即repetitive stress injury,是一个与人体工学ergonomic有关的概念。我之所以想到这个概念,是因为上周末去换眼镜,发现近视度数涨了100度,回来后想安装workrave但是又不想要跟gnome有关的依赖,经过一番搜索,得知了前述的概念。关于RSI prevention,我选用的软件是:电脑上用xwrits,手机上用闹钟的倒计时功能。

下面说到正题:GTD和RSI prevention软件的综合运用

首先,xwrits设置为每工作45分钟休息10分钟。由于xwirts只在键盘或鼠标有动作时计时,所以在进行看电子书或看电影等同样需要用眼睛的任务时需要手动用闹钟软件来倒计时。无论如何,每1小时都会有10分钟多一点的空闲时间,这段时间内是不能看电脑或看书的。

然后就要用到2分钟任务了。2分钟任务可以理解为一种头脑风暴,就是在关于任务的点子跳出来之后及时记录进GTD软件的inbox中,待日后解决。其中部分任务可以在前面提到的10分钟间歇进行,比如洗衣服,收拾房间,到便利店买东西,背诵已经记熟的课文,跟同学讨论讨论课内容,跟家里通电话等等。建立了这些任务之后,还要能够从GTD软件中很快的筛选出这些任务才有意义,因此,任务的context标签就派上了用场。我一般会把需要电脑或书完成的任务和不需要的分别归入不同的context,这样10分钟间歇的时候很方便就可以找到这些任务了。

昨天刚开始这种日程安排方式,觉得眼睛的劳累程度确实有所改善,干的事并没有因为休息而减少,而且觉得整个晚上都过得十分happy(我的日程安排仅针对晚上)。从今天开始做一个健康的人,恩。

2010年1月28日星期四

看网瘾战争,我哭了

是的,在看你妹最后那吼到嘶哑的告白的时候开始激动,在无数沉默的玩家举起手的时候爆发。
从小学后就没有再哭过,最近却有两次,一次是为一位陷入感情深渊的如家人一般的好友,一次是为这部本来是恶搞不偿命的的电影。
其实我不是魔兽玩家,连网游也从来没玩过。舍友也有玩魔兽的,每次进出看到他那花花绿绿的屏幕只是觉得奇怪不知道有什么吸引人的。网瘾戒除中心死了人的时候也只是哦然后事不关己。但是看到看你妹吼叫说我们去欧服美服被鄙视,去台服被叫做"大陆蝗虫"的时候,想到了前一段时间的谷歌门,和希拉里关于网络自由的演讲,和自己为翻墙做出的各种努力和备选方案,发现我们这些只是想看到真实的东西和新鲜好玩的信息的翻墙爱好者和魔兽玩家的处境竟然十分相似。虽然外面有很多人在帮助我们,我们何尝不是已经沦为了网络的二等公民?有什么好东西都不能公开交流,好网站要用缩址,好软件要通过邮件转发,敏感词要用#号隔开,可能以后短信也得用代码。即使是这样艰难的网络生活所依赖的基础也很脆弱,假如有一天google的服务都被屏蔽,无界和门都失去自由,洋葱也不再发芽,我们也会怒吼,但是我们该如何举起双手?
以前从来没有考虑过出国,心想毕业后找个离爸妈近的城市,安安稳稳的过自己的生活也就罢了。可是现在我急切的想要离开这里,可能无法实现,可能以后也会淡忘,但是几十年后我真的不想变成一个以在开心网上摘菜为业余爱好的大叔。
牢骚一枚,发泄完毕

Startforce(一个网络操作系统)的手机接口

今天收到Startforce的来信,说我们扩充容量了,还有就是可以用手机来连接你的网络操作系统了。
先是用Chrome登录了一下Startforce,东西没怎么变,不过流畅性确实有提高。
然后用手机登录了http://www.startforce.com/os/wap,什么嘛,原来只是一个文件管理界面而已,如果真的要使用操作系统的功能的话,还是得要正常的www界面,不过手机没有这个必要就是。

2010年1月20日星期三

测试黑莓

黑莓上的Gmail发文

--
Sent from my mobile device

测试

电邮发文

2010年1月18日星期一

vimperator与vrome

作为好用vim的非编程人员,能够像控制vim一样控制网页浏览器是我梦寐以求的浏览方式。于是有firefox的插件vimperator,和chrome的插件vrome。

vimperator的确十分强大,完整支持vim的3种模式,帮助也是以vim的方式查看,总体来说完成度十分高

vrome目前正在完善中,不支持vim的命令模式,这样就少了很多功能。而且在网页还在load的情况下以及打开空白标签的情况下好像还没法用。所以怎么说呢,只能说这个插件目前还正在完善。中vim毒者如我还是继续用firefox+vimperator先。

2010年1月16日星期六

终于又用上tor了

前面说了,tor在我这里已经好久没法用了。前几天在某网站下载了GTunnel Bundle,里面有tor。没有任何理由的运行了这个tor,竟然很快的连上了。

我想这可能是因为这个Bundle里面有个叫vidalia的软件的关系,于是在费劲下载了linux版本的vidalia编译安装。然后运行vidalia,连接不上,永远卡在"no current certificate known for authority moria1" blabla。也考虑过可能是节点有问题,参照twitbrowser.net的“如何剔除所有大陆节点”,在torrc中加入了ExcludeNodes {cn},但是没有效果。于是就没招了,依次试了以下方法:
1、导入最新版本的geoip
2、把在windows下试用成功的vidalia和tor的配置文件原封不动拷贝到linux下面
3、升级tor为最新的tor-git
4、让tor用your freedom的代理来连接节点
5、抓狂
结果错误信息还是依旧。

在google上搜索这个错误信息,得到的帖子不多,都没有结果,好像这根本就不是问题似的。还有一个帖子最下面直接说这个issue已经被关闭了,关闭原因是“这不是一个bug”......汗

最后灵机一动想到一点:在windows上试用成功的bundle不是torproject官方的!于是下载了torproject官方的bundle,结果是,错误信息跟linux下的一模一样。想了想,翻墙牛人门你们总不会修改源代码吧,而且综合来看我遇到的问题确实不应该是bug,所以最后还是把问题锁定在欺诈节点上。

重新仔细看“如何剔除所有大陆节点”这篇文章,发现两点问题:
1、原来好像即使编辑了torrc,也要连接成功并开/关连接成功的tor若干次之后才能实现剔除这些节点
2、从一张截图中看到,在实现剔除节点的时候实际上是配置了网桥的(我下载那个能用的bundle的时候原帖很郑重的说了“我们没有配置网桥哦”...T_T)
于是配置最新网桥,连接tor。在出了一些警告之后竟然慢吞吞连上了。再开关几次,没有警告,连接迅速。取消网桥,也可以迅速的连接,看来我猜对了,不知道这算洗具还是一大堆杯具。一念之差,浪费了差不多4个小时

Vimperator+Stylish

觉得纯白的背景太伤眼睛,于是装了stylish插件,从userstyles.org/stylish下载了一个叫做midnight surfing的style,又google了一下对眼睛据说最好的浅绿色的html代码并据此修改了一个daylight green的style,对豆瓣兼容基本完美。

然后发现vimperator的hint模式下每个hint的字体颜色都成了白色(原来是红色),大为不爽。下面乃解决过程:
1、进入~/.mozilla/firefox/****.default/extensions/vimperator***blabla/chrome,发现里面只有一个jar而不是一堆.js文件

2、google之发现必须用sun jdk中的jar工具才能把这个jar包解开,害的我又在小妾win server机器上装了jdk

3、进入cmd
cd C:\Program Files\Java\jdk****\
jar xf vimperator.jar,得到一堆文件

4、看了看hints.js,其中没有颜色相关的配置。最后算是找到了style.js,把里面Hint section里的color由原来的white改成red,并且把字号从10pt改到了20pt

5、jar uf common\content\style.js vimperator.jar

6、备份原来的vimperator.jar并用这个替代,问题解决

ps: 使用vimperator后,要下载stylish.js(到vimperator lab的网站搜索)放到~/.vimperator/plugin中才能使用stylish。最常用的用法是:stylish toggle在安装的各种style之间切换
psps:虽然可以在~/.vimperatorrc中自定义初始化设定,但是我想要初始化时便让所有网页放大,在.vimperatorrc中设置了:zo! 120之后没有效果,估计于时间顺序有关

2010年1月14日星期四

软件安装两则

1. Gmail for blackberry 8800
如果你去maxpda下载最新版(2.0.7)的离线包的话,安装完毕之后启动不能,说是有TouchEvent的相关错误;
如果你用BB的自带浏览器浏览m.google.com/mail的话,会被告知没有适合你的BB用的gmail版本(搞笑吧);
于是把系统改成英文(不知道是否必要),然后进入以前安装的Google Mobile Apps,直接点击灰掉的Gmail图标,下载得很顺,安装得也很利落。进入之后,通过help看看快捷键吧,很好用的说

2. Xmarks for firefox
安装这个插件是不需要翻墙的,使用的话要。还要注意一点是第一次用的时候Setup Wizard会出错告诉你Authentication Required blabla,解决方法是在xmarks的“高级”中把加密方式设置为“全部加密”

2010年1月13日星期三

翻墙方法小汇总

之前一直使用Tor+web proxy的方式翻墙,但最近tor的网桥很难连上,手头web proxy的数量也减少到只剩1个。加之最近比较闲,于是研究了一下翻墙方式,这里把近2天试过的放在这里以备不时之需。
1、Your Freedom
基于Java的软件,所以Linux也可以用。连接效率还不错,但免费用户有使用时间限制:每天最多6h,每周最多18h,所以一般只是备用。官方网站需要翻墙。
2、无界浏览器(Ultrasurf)
也就是著名的u.exe,windows专用,据说Linux用wine模拟可用但我是系统洁癖。在动态网下载,需要翻墙。
3、自由门(freegate)
也是十分好用的小软件,windows专用。下载网站同无界。
4、Gtunnel
利用gtalk或skype的加密通道构建本地代理,windows专用,经测试速度不错,下载需翻墙。注意skype必须是官方版本。
5、Jondo
一个(据说)类似于tor的软件,但我觉得绕的圈还是比tor要少多了。基于java,所以Linux也可用,目前主力。使用时注意2个问题,一是有时候可能会要求你自己提供forwarder,这时候需要给japmailservice@infoservice.inf.tu-dresden.de发一封主题为GetForwarder en的邮件,然后按照提示操作。第二点是即使这样很多时候也连不上,这时候合理利用前面限时的your-freedom代理就十分重要了。具体不述。还有一点,就是Jondo官网推荐你用它的JonDoFox浏览器profile,但我用了一下发现跟普通firefox禁掉java和javascript之后差别不大,具体要不要装看个人。
6、Gladder
火狐的插件,所以跨平台,但是我从来没有连上过。还是搞一个foxyproxy代理靠谱。
7、推客浏览器
正准备试呢
8、Tor
最终目标还是把这个东西搞到可用的程度。
9、i2p
详情见http://bit.ly/5zaTqp。实测连接效率和速度都不太理想,毕竟不是专门用来翻墙的嘛