MIUI的贴心功能

目录 应用软件, 无线和移动

预先声明:这不是一篇软文,我真的是出于对 MIUI 系统的喜爱才写的。

我的手机型号是华为 U8800,联通定制机,自带的 ROM 里太多乱七八糟的软件,后来就刷了华为官版的海外 ROM。这个 ROM 是比较干净的版本,但不知道为何老是黑屏重启,基本上每天会重启了一两次。毕竟追求的是性价比,这点儿缺陷我就忍了。

不过基于安卓用户的刷机习惯,后来我还是忍不住刷了修改的 MIUI ROM——因为我的手机型号不在 MIUI 的支持列表里。第一次刷的是 2011 光棍节版,前两天又更新到 2.3.2 版。MIUI 很多贴心改进让我爱不释手,下面我会列举一下。

  1. 菜单键+音量- 执行屏幕截图,下面的图片有些是用这个功能截的。

  2. 拨号键盘使用 T9 拼音直接搜索联系人,支持模糊查询。

    拨号键盘

  3. 通知栏内置很多有用的功能快捷开关。

    通知栏

  4. 系统自带防打扰过滤器功能,可以按照规则过滤垃圾短信和电话。

    防打扰

  5. 可在联系人列表中直接查看到手机号码的归属地,这样当某些朋友有多个手机号码时,容易判断该打哪一个。

    联系人
  6. 陌生人的未接电话可以显示号码归属地和响铃次数,而且第一声响铃静音。这对判断来电是否是垃圾电话非常有帮助。

    陌生人来电
  7. 内置流量监控和防火墙功能,可以为每个应用程序设置网络访问权限。

    流量监控和防火墙
  8. 内置音乐播放器与百度合作,提供在线音乐功能。

    音乐播放器
  9. 内置手电筒功能,且在锁屏时可以长按 Home 键打开手电筒。这个功能实在是太有用了!

    手电筒
  10. 电话功能设置很多贴心小功能:自动录音、接通挂断时振动、来电挂断时提供短信回复、通话记录点击显示联系人信息等等。

    电话设置
  11. 最后值得一提的是,虽然不算个功能,但刷了 MIUI 之后,每天重启的现象居然没了!我完全没想到第三方修改的第三方 ROM 居然比官版 ROM 还稳定,这个出乎了我的意料。

TCP Fast Open by Google 浅析

目录 IT杂谈, 无线和移动

Google 将在今年 12 月的 ACM CoNEXT 会议上发表他们在改善 Web 应用响应时延方面的一个工作,通过修改 TCP 协议利用三次握手时进行数据交换的“TCP Fast Open”。虽然 paper 是两天前才释出,但相关的 RFC 草案则早在 2011 年 3 月份就提交到了 IETF,并且在两周前进行了一次 UPDATE,这里是 DIFF

对于 TCP Fast Open 方案的内容,淘宝的一个朋友已经根据 RFC 草案进行了解读。我就不再赘述,感兴趣的朋友可以去看 paper 或者 RFC。我这里只是想讨论一下这个东西的应用前景。

由于对背景并没有做深入了解,我相信已经有很多人尝试去做过类似的工作,但我想类似的工作应该没有得到过大规模的应用。对于已经成型很久很久的 TCP 协议,让人很难有修改它的欲望,因为改那么底层的东西意味着很多很多的麻烦。

但是是否愿意付出代价,有一个前提是有没有足够的好处。TFO 给出的好处是:在 RTT (Round Trip Time) 比较低时,客户端页面加载时间优化大约在 4%~5%;RTT 越长,好处越大,平均大约在 25%。

Google TCP Fast Open Evaluation
Google TCP Fast Open Evaluation

除了页面加载变快改善了用户体验之外,TFO 给服务器端也带来了一些好处。由于每个请求都节省了一个 RTT,相应地也减少了服务器端的 CPU 消耗。paper 中给出的数据是每秒事务数由 2876.4 上升到 3548.7。

虽然 paper 中大部分时间在强调 TFO 对 web 页面加载的显著加速作用,但我认为即使 TFO 能成为互联网标准,它目前的状态离成为标准还有很长一段距离,因而在短期内它是无法影响到主流互联网世界的。但这并不意味着它没有机会,依小弟的愚见,目前它的推广应用可能有两个方向:

1. 移动互联网。移动互联网的 RTT 目前远大于传统互联网(常理推测,需数据支撑),因而一个 RTT 节省的效果无法被忽视;另外移动互联网终端操作系统多样化,不像桌面终端系统那么单一。 Google 自己就掌握着其中一个很重要的 android,百度也计划推出自己的“易平台”。这些互联网公司有动力去改善移动用户访问自身网站的用户体验。

2. 互联网企业数据中心。虽然数据中心内部访问时延很低,但对于典型的请求/响应的服务而言,减少一次 RTT 带来的好处还是有吸引力的,最起码能减少计算能力浪费和增加吞吐吧。再加上很多企业内部使用的都是定制的开源操作系统和定制的网络库,升级的代价并不是那么高。如果我是企业基础设施的负责人,我想我会很慎重地考虑这个方案的。

无线Wi-Fi路由器的信道选择

目录 无线和移动

早上起来看到一个朋友抱怨 Kindle 无法连接无线路由器,我有感而发,写了下面这篇微博

很多人从来没有注意过路由器的 wifi 频道,以为只要笔记本电脑能连上,无线路由就没问题。但有个问题是很多移动设备不能支持全频道,其中即有功耗考虑,也有销售目标国家考虑。因此有条件时最好检测一下信噪比,选择一个最适合自己的频道,而不是让路由器启动时自己去选择。

但接着又有朋友说:“求普及...”。参考 Avinash Kaushik 在他的网站统计博客“Occam's Razor”成立 5 周年时的感慨(这篇文章很值得一读,very inspiring),我想即使我不是专家,分享一下自己知道的这点儿事也不错。

切入正题,现在很多家庭都有了自己的无线 Wi-Fi 路由器,也有了各种接入互联网的移动设备:笔记本、上网本、手机、平板电脑、电纸书、MID(已没落)。很多移动设备联网时都会出现诡异问题,这篇文章仅仅关注其中一种诡异问题:错误的信道(Channel,也译为频道、频段)配置导致无法联网或者信号较差。

精确的技术知识我就不解释了,感兴趣的同学可以去读 Wikipedia Wi-Fi 或者 IEEE 802.11 等词条。下面主要说明为什么需要配置无线信道以及如何选择无线信道。

为什么需要配置无线信道?

相信大家都使用过收音机。使用收音机时,都有一个选台的问题,无论你是用旋钮、按键或者触摸,你总要选定某个台,才能收听该台的节目。无线路由也一样。你家里的无线路由器会广播一个 SSID (就是你看到的无线连接名),点击该连接,就会使你的电脑调制到该连接所在信道进行通信。

但是使用收音机时,可能会有这样的问题:1. 有些台根本收不到,比如你的收音机不是全波段的;2. 有些台杂音太大听不清,比如某些唢呐电台。同理到你的无线环境上,问题 1 转化为“笔记本电脑(全波段收音机)能连接无线路由器,但平板电脑(非全波段收音机)却无法连接”;问题 2 转化为“能连接到无线路由器,但干扰太多,达不到最大的网速(这个网速指 Wi-Fi 连接速度,与 ADSL 网速无关)”。

如果没有手动配置过,无线路由器会自动选择一个默认或者随机的信道进行广播和连接建立。在设备没有联网问题和周围没有别人使用时,这是 OK 的。

但如果你周围的人家都有无线设备,且大家用的都是同一款运营商赠送的无线路由器(或无线猫)时,那么极有可能所有人都选择了同一个信道进行通信。这就会造成很大的信号干扰,这一般影响不到网速——除非你家用的 ADSL 大于 4M,但会造成家里两台设备之间数据传输速度极慢,例如用豌豆荚往手机上无线发送视频文件时。

如果不巧的是你家无线路由器会随机选择信道,那么它极有可能选择到一个你设备不支持的信道。我就曾经遇到过爱国者某型号 MID 只支持信道 1-9 但无线路由器自己选择了信道 11 的情况,那是死活也连不上啊!移动设备出于降低功耗或其它考虑,不支持某些信道是很正常的;再加上不同国家对无线信道管制情况不同(参见 List of WLAN Channels),其它国家的水货设备到了国内可能也会水土不服。

幸运的是,你不能控制广播电台的波段,却可以控制自家无线路由器的无线信道。修改无线信道的方法请参考各路由器厂商的帮助文档,或者在网上寻求帮助。不过在修改之前,你还面临着,我该改到哪个信道呢?

如何选择无线信道?

首先,要选择自己通信设备都支持的信道。不过在此之前,首先确认所有设备都支持同一协议,比如你移动终端不支持 IEEE 802.11n,你非得在路由器上用 802.11n 协议,这就是找不自在了。这些知识要参考设备的手册,或者自己尝试。在 Linux 系统中,可以用 iwlist channel 列出移动终端支持的所有信道,比如 Kindle 支持的信道就是(看到这里我基本可以肯定那哥们 Kindle 问题不是因为信道了,除非他用的是日本产路由器):

[root@kindle root]# iwlist channel
lo        no frequency information.

wlan0     13 channels in total; available frequencies :
          Channel 01 : 2.412 GHz
          Channel 02 : 2.417 GHz
          Channel 03 : 2.422 GHz
          Channel 04 : 2.427 GHz
          Channel 05 : 2.432 GHz
          Channel 06 : 2.437 GHz
          Channel 07 : 2.442 GHz
          Channel 08 : 2.447 GHz
          Channel 09 : 2.452 GHz
          Channel 10 : 2.457 GHz
          Channel 11 : 2.462 GHz
          Channel 12 : 2.467 GHz
          Channel 13 : 2.472 GHz
          Current Frequency:2.412 GHz (Channel 1)

其次,在干扰不能容忍情况下,再去选择干扰较少的信道。这个可以通过扫描周围信号强度比较高的 SSID 都在使用哪些信道,通过和信道列表图谱比较,选择可能干扰较小的信道进行尝试。RSSI 和 SNR 测试需要专门的知识和工具(例如 Linux 下的 iwconfig),对普通人来说可能比较费力。

[root@kindle root]# iwconfig      
lo        no wireless extensions.

wlan0     AR6000 802.11g  ESSID:"mosaic" 
          Mode:Managed  Frequency:2.412 GHz  Access Point: 00:23:EB:B7:E6:94  
          Bit Rate=54 Mb/s   Tx-Power=16 dBm   Sensitivity=0/3 
          Retry:on  
          Encryption key:off
          Power Management:off
          Link Quality:49/94  Signal level:-46 dBm  Noise level:-96 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

最后总结一下,随着移动终端的发展,越来越多的移动终端支持更全的信道,但总有那么个别的终端厂商比较变态。因此本文谈到内容仅仅是作为一个提醒,在解决无线连接问题时作一个参考。