你知道无线网络最让我恼火的是什么吗?每个人都觉得它很酷,却从不谈论它的缺点。当然,我可以在Usenix或IETF(互联网工程任务组)的任何地方上网,但那些都是_充满敌意的_ _网络_。见鬼,所有的无线网络都充满敌意。本质上,你不知道谁在和你共享以太网。但人们还是继续做他们的事,自信他们没问题,因为他们有防火墙保护。
让我们面对现实吧:WEP(有线等效保密)就是个笑话。无线网络上根本没有隐私。当你输入密码时,全世界都能看到——并且拿走,并且滥用。很多地方甚至懒得使用WEP,即使在防火墙后面也是如此。想要免费上网?开车到硅谷的任意停车场,停在那些看起来无处不在的大型两层“牧场式住宅”建筑旁边。你会有令人震惊的好机会连上互联网。但不仅仅是互联网:是他们的_内部_网络。如果你嗅探那个网络,你可能会得到一两个密码。或者可能几十个。你甚至可能会偶然发现一些 root 密码。
带宽又如何呢?11 兆位?我不这么认为。那只是理论上的最大值,你永远都不可能看到。今天还有人认为你可以从一个明确标明 100 兆位的以太网中获得 100 兆位吗?我家就运行着一个,有时我能从中获得高达 20 兆位的速度。但通常不会。通常我从中获得的速度略低于 10 兆位。那是一个数量级的带宽浪费。我唯一一次听说以太网获得接近全带宽的速度是在实验室里。在一个私有网络上。网络上有两个节点。使用专门的 IP 协议栈。一个节点发送,一个节点接收。零争用。以及巨大的 MTU(最大传输单元),远远超出以太网规范。即使那样也只获得了大约 80% 的带宽。
好吧,那么我们假设在现实世界中,你从一个争用网络中获得大约 20% 的理论带宽。这可能是可以接受的,因为那是一对一的主机;可能有一些空闲的闲聊,但基本上我的家庭网络在大部分时间里都很安静。如果我有更多的流量,我可能会能够使用更多的带宽,因为很多延迟都在应用程序和 TCP 协议栈开销中。因此,如果有另一对主机同时通信,也许我能够使用,比如说,35% 的带宽。这已经相当不错了,考虑到任何以太网运行在高达 50% 的容量时,都可能处于彻底崩溃的边缘。
但是对于无线网络,你还有各种各样其他的问题。你知道 900MHz 频段是免费的原因是它有一些微小的技术问题吗?比如那是水的谐波频率。就像空气中的水分一样。你有没有注意到你的无线网络在下雨时性能不如晴朗时好?还有建筑物。尤其是像酒店这样的建筑物,Usenix 和 IETF 会议就在那里举行——酒店里有大量的钢梁支撑着 30 层高的建筑。在一次 IETF 会议上,我坐在大厅里,在基站的视线范围内。视线,对吧,就像“直线视线”?对着一个可能离我 10 米远的基站。但我无法获得信号。但如果我向右移动一个座位,我就有四个信号格。如果坐在别人的腿上不是那么粗鲁的话,我就会那样做。至少在被介绍之前是这样。在家里,我有一些半死角,把我的笔记本电脑向一个方向或另一个方向移动 20 厘米,就能在没有信号和可用信号之间产生差异。而且它并不稳定:即使根本没有移动我的笔记本电脑,信号也可能会在一分钟左右后消失又重新出现。即使在干燥的日子里也是如此;如果下雨,那就什么都说不准了。
你能解决这些问题吗?有些可以,当然。我想我不必告诉 IETF 的任何人,世界是一个充满敌意的地方,也许他们应该使用 Secure Shell (SSH) 而不是 telnet,并且永远、永远不要明文输入密码。但在每次 IETF 会议、每次 Usenix 会议、几乎任何会议上,密码都会被嗅探到,真正是从空气中嗅探到的(抱歉,我忍不住)。密码列表会被发布在留言板上,不是为了怀有敌意,而是只是为了让人们知道,也许,仅仅是也许,他们应该考虑更改密码。也许应该考虑加密。当然,那是好人把密码发布在留言板上。坏人,你必须假设他们也拥有密码,他们自己正在使用它们,或者把它们贴在某个地方的厕所墙上。
我运行 SSH。在阅读邮件时,我使用加密的 IMAP(互联网消息访问协议)端口。在发送邮件时,我使用 TLS(传输层安全协议)。我尽量确保唯一通过我的网络接口未加密传输的东西是基本的 Web 浏览,其中“基本”的意思是“没有密码或其他机密数据被交换”。
但有些问题是无法解决的。物理定律在短期内是不会被推翻的。无线网络注定是不可靠的;这只是不可避免的。尽管我非常讨厌它,但我还是在使用它。每天都在用。
只是别告诉我这是一个完美的世界。
ERIC ALLMAN 是 Sendmail 的联合创始人兼首席技术官,Sendmail 是最早的基于开源的公司之一。Allman 之前曾担任加州大学伯克利分校 Mammoth 项目的首席程序员。这是他在伯克利的第二次任职,因为他曾担任 INGRES 数据库管理项目的首席程序员。除了分配的任务外,他还参与了伯克利早期的 Unix 工作。他对 Unix 的最初体验是使用第 4 版。多年来,他编写了许多实用程序,这些实用程序出现在 BSD 的各种版本中,包括 -me 宏、tset、trek、syslog、vacation,当然还有 sendmail。Allman 在伯克利两次任职之间的几年里,曾在 Britton Lee(后来的 Sharebase)从事数据库用户和应用程序界面方面的工作,并在国际计算机科学研究所为用于基于神经网络的语音识别的环形阵列处理器项目做出贡献。他还与人合作为《Unix Review》撰写了“C Advisor”专栏多年。他曾是 Usenix 协会的董事会成员。
最初发表于 Queue 第 1 卷,第 7 期—
在 数字图书馆 中评论本文
Andre Charland, Brian LeRoux - 移动应用开发:Web 与原生
几年前,大多数移动设备,用一个更好的词来说,就是“笨”。当然,有一些早期的智能手机,但它们要么完全以电子邮件为中心,要么缺乏无需手写笔即可使用的复杂触摸屏。即使更少出货时配备了能够显示简单文本、链接以及可能图像之外内容的体面移动浏览器。这意味着,如果你拥有这些设备之一,你要么是沉迷于电子邮件的商务人士,要么是希望今年将成为智能手机之年的 alpha 极客。
Stephen Johnson - 茶杯中的 Java
很少有技术领域像无线行业那样发展迅速。随着市场和设备的成熟,移动应用的需求(和潜力)也在增长。越来越多的移动设备安装了 Java 平台,这使得大量的 Java 程序员可以尝试嵌入式编程。不幸的是,并非所有 Java 移动设备都是相同的,这给新的 J2ME(Java 2 平台,微型版)程序员带来了许多挑战。本文使用一个示例游戏应用程序来说明与 J2ME 和蓝牙编程相关的一些挑战。
- 流媒体和标准:交付移动视频
不相信我?请继续关注…… 手机无处不在。每个人都有一部。想想你上次在飞机上的情景,航班在地面试延误了。在可怕的公告之后,你立即听到每个人都拿起手机开始拨号。
Fred Kitson - 移动媒体:使其成为现实
许多未来的移动应用都建立在丰富、交互式媒体服务的存在之上。此类服务的承诺和挑战是在最恶劣的条件下以及以低成本向具有高期望的用户社区提供应用程序。情境感知服务需要关于用户是谁、在哪里、何时以及在做什么的信息,并且必须以及时的方式以最小的延迟交付。本文揭示了一些当前最先进的“魔力”和研究挑战。