Bojie Li (李博杰)
2014-03-31
昨天受科大 LUG 之邀参加了 CSDN 主办的 2014 开源技术大会(OSTC),结合会上记的笔记和不靠谱的记忆,与诸位分享,如有错漏之处请回复指出。本文部分图片来自 CSDN 官方的图文直播,演讲者的 slides 我显然没有,据说 CSDN 官方随后几天会发布。
早上见到了又高又帅的 Thomas Yao 和 Deepin 的王勇(没拍下来)。
2014-03-21
3月18日是在北京召开的 IEEE 802 全会的学生开放日,受 MSRA 所邀我去打了一圈酱油。参与标准制定的都是专业人士,我基本上是刘姥姥进大观园,止增笑耳。由于会场禁止拍照录音,而且会议所讨论的技术文档是不公开的,只能无图无真相了。
首先科普一下 IEEE 802 是干什么的。IEEE 802 是 IEEE(国际电气电子工程师学会)下属的委员会,负责局域网和城域网标准的制定,计算机网络的物理层和链路层协议基本都是这个组织制定的。IEEE 802 每年都要召开三次全会,大多数都在北美举行。从第三次参加全会开始才有投票权。
IEEE 802 下设若干工作组,例如 802.3 负责以太网(Ethernet),也就是我们用的有线网络;802.11 负责无线局域网络(WLAN),也就是俗称的 wifi。每个工作组要做的事情仍然很多,例如以太网有百兆、千兆、万兆、40G、100G 以及正在研究的 400G,不仅速度不同,所用的传输介质也不同;无线局域网有 802.11a/b/g/n/ac/ad 等标准,不仅速度不同,所用的频段也不同。因此每个工作组下又设任务组(Task Force)和研究组(Study Group)。
2014-03-05
我们所用的网站,数据大多以明文形式存储在服务器上,服务器端程序鉴别用户的身份、授予用户访问权限。不过业务逻辑复杂了,百密一疏,程序总是有这样那样的漏洞,连支付宝这么敏感的应用都不例外。此外,现在越来越多的网站搭建在公共云平台上,一个很大的顾虑是:云平台的所有者会不会窃取我的机密数据?
因此,数据在服务器上最好是加密存储,解密密钥在用户手里,也就是只有用户自己能看到明文,而网站所有者、云服务提供商、可能的服务器入侵者都只能看到密文。即将发表在网络领域顶级会议 NSDI 2014 的 Building web applications on top of encrypted data using Mylar 就是这样一种解决方案。
2014-03-03
前几天做了个内部技术分享,各位同学的看法莫衷一是,因此拿出来跟大家聊聊。本文将讨论 Google 的网络基础设施计划——Google Fiber 和 Google Loon,以及 Google 在网络协议方面的探索——QUIC,其野心在于把互联网变成自家的数据中心。
有线网络基础设施——Google Fiber
Google Fiber 的目标是让千兆互联网走进千家万户。以千兆的速度,下载一部 7G 的电影只需一分钟(如果你还在用机械硬盘的话估计还来不及存呢)。目前这个项目仅在美国 Kansas 和 Provo 两个城市试点。这两个城市的 Google Fiber 都提供了三种套餐,以 Kansas 为例:[1]
- 千兆网络 + Google TV:120 美元/月
- 千兆网络:70 美元/月
- 免月租网络:5Mbps 下载,1Mbps 上传,免月租,但要交 300 美元初装费。
其中第三种方案还不如美国大部分电信运营商提供的服务快,而大多数家庭已经购买了有线电视运营商的电视服务,因此对经济上能承受得起的家庭来说,三种套餐的对比突出了第二种套餐(70 美元/月的千兆网络)的“实惠”。
这里有两个值得争论的地方:
- 每人都有千兆这么快的网络,技术上可以实现吗?
- 70 美元/月的收费能收回 Google 搭建千兆网络的成本吗?
2014-02-26
今天抢了个极路由,用了一个小时才抢到,之前一直都在“人山人海”地排队。不禁想起去年给美丽邂逅做的抢票系统,有人问,我写了个脚本怎么抢不到票呢?谜底将在本文中揭开。
抢票系统要满足的条件是:
- 一人一票,一个人不能拿到两张票;
- 每天欲发行的票必须一张不多一张不少(假定来抢票的人足够多)地发出去;
- 用程序抢票成功的概率不能明显高于人工抢票成功的概率。
2014-02-24
DNS 服务是互联网的重要基础服务,不过它的重要性往往被低估。例如,2013年8月,.cn 根域名服务器遭到 DDoS 攻击,导致 .cn 域名无法访问;2014年1月21日,根域名服务器遭到某著名防火墙污染,导致所有国际域名无法访问。很多国际知名网站在中国大陆无法访问,部分原因就是遭受了 DNS 污染,也就是对域名返回了错误的 IP 地址。
要搭建一个抗污染的 DNS,并不是使用 VPN 解析所有域名这么简单。主要有两个问题:
2014-02-23
帮朋友做个端口映射,由于几个月没碰 iptables 了,遇到两个坑,与大家分享。
2014-02-15
网络虚拟化(Network Virtualization)就是搭建一个与物理网络拓扑结构不同的虚拟网络。例如公司在世界各地有多个办事处,但希望公司的内部网络是一个整体,就需要网络虚拟化技术。
从 NAT 说起
2014-02-10
随着计算机处理能力的提高和软件复杂程度的上升,性能往往并不是衡量软件的最重要标准。但有时我们确实需要把计算机的性能榨干。尤其是做研究的时候,为了让性能指标超过对手,不仅要优化算法(渐进复杂度),还要优化实现(复杂度中的常数)。本文试图总结一些规律,望与大家讨论:
不要使用开源软件
开源软件往往考虑的是一个通用问题,因此有很多几乎永远也用不到的配置参数和条件判断;开源软件对代码可读性、可维护性的要求往往高于对性能的要求,因此一般不使用所谓的“奇技淫巧”。
2014-02-10
比特币经历了去年4月和11月的两次暴涨暴跌,已经不仅仅是 IT 男的玩物,而成为社会各界争论的焦点。不过关于比特币技术原理的文章大多是蜻蜓点水。过年与好基友们聊天时,大家提出了这些问题,希望读完这篇文章后能弄明白:
- 如何证实一次比特币交易,使其不可抵赖?
- 如何避免一个比特币花两次?
- 如果我一个人拥有全网的 10% 算力,是否有可能改写历史?
- 比特币交易为什么要等几十分钟?
- 比特币是如何保证数量有限(2100 万个)的?
- 如何保证每 10 分钟恰好挖出一个比特币?
- 一次挖出 0.1 个比特币是怎么回事?
- 一次交易 10000 个比特币,需要生成 10000 条交易信息吗?
- 比特币这么大的交易量,交易记录如何传输、保存?