最近一款名为FireChat的软件因在香港的流行而被广泛关注,本文试图从技术角度追踪FiceChat软件的来龙去脉,并对移动自组网技术进行简单的概述。
FireChat软件是美国OpenGarden公司开发的一款即时通信应用软件,该软件可以在没有因特网或蜂窝网络支持的情况下,利用终端自带的蓝牙、Wifi以及点对点通信(Wifi direct)技术,建立起移动终端间的自组网,支持文字、语音以及文件的传输。
Open Garden是一家位于美国旧金山的移动互联网公司,致力于移动自组网的研究与应用,主要产品包括Open Garden和FireChat。两款产品均用于帮助移动终端建立点对点的移动自组网,可以在没有网络支持的情况下,实现终端设备间的互联互通,以实现更加快速、稳定的数据传输与共享。两款软件的区别在于FireChat是一款针对手机开发的应用(仅支持Android和iOS),主要提供手机间的即时通迅功能。而Open Garden软件可同时运行于手机和桌面操作系统(支持Android,Mac,Windows),主要用于帮助终端共享网络连接,使没有接入互联网的终端,通过蓝牙、点对点Wifi等方式共享其它终端的网络。
图1 FireChat软件运行界面
图2 Open Garden软件运行界面
Open Garden公司由Micha Benoliel创建于2011年。Benoliel以及公司的首席技术官Stanislav Shalunov,首席架构师GregHazel,均具有在互联网以及点对点通信方面的从业背景,并在业界享有一定的影响力。Benoliel在2004年至2005年间曾供职于Skype,为Skype推出了SkypeIn(用于接听普通电话拨入的电话)与SkypeOut(用于拨打普通电话)服务。Shalunov是LEDBAT技术的开发者,该拥塞控制技术被用于BitTorrent技术(一种基于互联网的点对点文件分享技术)和Apple等设备。Hazel曾领导开发了最流行的BitTorrent客户端µTorrent,该软件在全球拥有2.5亿的用户量。
FireChat软件的的第一版发布于2014年3月。由于该版软件采用了苹果公司的多点连接框架技术,因而仅支持iOS操作系统。事实上FireChat并不是第一款实现脱网直通功能的即时通信软件,在此之前,另一款软件See you Around已经实现了类似的功能,该软件同样基于苹果公司的多点连接框架技术(Multipeer connectivity Framework)。
多点连接框架是苹果公司在iOS7操作系统中新推出的一个框架。该框架允许应用程序利用可用的无线手段,包括蓝牙、Wifi和点对点Wifi(Wifi direct)创建一个点对点的网络,并允许加入该网络的终端共享消息、流媒体以及文件。该框架能够帮助用户自动选择最优的无线信道接入网络。利用多点连接,网络中的任何一部接入互联网的设备,均可以将网络共享给与其建立多点连接的其它设备使用。通过该框架,应用开发者无需了解复杂的网络通信流程及协议,就能够开发基于移动自组网的相关应用。
2014年4月,在FireChat iOS版发布后的数周,Open Garden发布了FireChat的Android版。由于Android操作系统不支持苹果公司的多点连接框架,Open Garden公司基于自有的强大Mesh网络技术,迅速在Android操作系统上实现了相似的功能,但在当时还无法实现与iOS操作系统的互通,直到2014年6月,Open Garden再次更新了FireChat软件的版本,实现了两大操作系统终端间的自组网与互通功能,但是没有透露其实现的技术细节。
目前,也有其它一些软件在Android系统上实现了自组网功能,如Serval Mesh和Twimight等。
Serval Mesh软件是一款免费的开源软件,该软件支持在没有蜂窝网络的支持下,依靠终端的Wifi功能实现自组网,其特色是支持终端在自组网中保持原有的用户号码,更方便紧急情况下的用户寻找与定位。
Twimight是一款为Twitter用户定制的基于Android的应用软件。软件提供了“灾难”模式,在该模式下,终端将自动打开蓝牙功能,并将用户需要发布的Tweet内容推送给蓝牙通信范围内的其它Twimight用户,此后该条Tweet内容将以洪泛的方式继续在用户间扩散,一旦获得网络连接,该条Tweet内容将自动发布至Twitter的服务器。
移动自组网又称Ad Hoc网,是一种移动通信和计算机相结合的网络,网络信息交换采用计算机网络中的分组交换机制,用户终端兼有路由器和主机两种功能,既可以运行各种面向用户的应用程序,也需要运行相应的路由协议,以满足在在无基础设施情况下的终端通信需求。
移动自组网最早是由美国国防部高级研究局在1973年提出的,该局在ALOHA基础上结合分组交换技术建立的高速无线分组网PRNET,被认为是Ad hoc网络的先驱。1983年,DARPA在PRNET基础上启动了抗毁自适应网络SURAN(Survivable Adaptive Network)计划,以使PRNET能够支持大型网络,并适应快速变化的战场环境。1994年,DARPA又启动了全球移动信息系统GloMo(Global Mobile Information Systems)项目,旨在对能满足军事应用需求、可快速展开、高抗毁性的移动通信系统进行全面深入的研究。
上世纪90年代以来,随着无线移动通信和移动终端技术的快速发展,Ad hoc网络在民用系统中得到了广泛关注,并逐渐出现了Ad Hoc网络的标准和应用。1997年IETF(Internet Engineering Task Force)专门成立了MANET(Mobile Ad Hoc Networks)工作组,负责MANET网络路由协议的研究与开发,并相继推出了一系列的RFC文档。2003年,IRTF(Internet Research Task Force)也成立了ANS(Ad hoc Network Scalability)研究组。1991年成立的IEEE802.11委员将分组无线网络正式命名为Ad Hoc网络。
由于Ad Hoc网络的特殊性,传统固定网络以及蜂窝移动通信网络中的各种路由协议无法被直接使用,因而路由协议一直是移动自组网的研究热点。早期的移动自组网路由协议主要是在传统固定网络路由协议的基础上进行一些修改,如DSR、AODV、DSDV、TORA等。但随着应用的深入,这些路由协议有些无法被实现,有些无法适应网络规模的不断扩大、结点的快速移动以及结点低功耗等应用需求。当前人们关注的主流路由协议包括OLSR、IEEE 802.11s、B.A.T.M.A.N.以及Babel。这四种协议目前都已有相应的代码实现和项目支撑。
(1)OLSR
OLSR是Optimized Link State Routing Protocol的简称,是IETF MANET工作组于2003年10月为Ad Hoc网络提出的一种标准化表驱动式优化链路状态路由协议。该协议是在传统LS(Link state)协议的基础上优化的,是一个可以收集链路状态并且能动态计算网络内最佳路由的动态链路协议。其关键概念是多点转播(MPRs),MPRs是在广播洪泛的过程中挑选的转发广播的节点。传统的链路状态协议每个节点都转发它收到信息的第一份拷贝,OLSR很大程度上减少了转发的信息。在OLSR协议中,链路状态信息都是由被挑选为MPRs的节点产生的,减少了在网络中洪泛的控制信息。同时,OLSR只选择在MPR或者MPR选择者之间传递链接状态信息。
(2)IEEE 802.11s
802.11是IEEE制定的一个组无线局域网标准,其中IEEE 802.11s是针对无线网状网的标准,于2011年9月正式发布,它规范了无线装置之间如何进行互动,以形成WLAN网状网络,该协议工作于MAC层。在IEEE 802.11s中,Mesh网络可以是2种基本结构:基础设施的网络结构和终端设备的网络结构。在基础设施的网络结构中,IEEE 802.11s工作组定义了一个基于IEEE 802.11 MAC层的结构和协议,来建立一个同时支持在MAC层广播/多播和单播的IEEE 802.11无线分布式系统;而在终端设备的网络结构中,所有设备工作在点对点模式下的同一平面结构上,使用IP路由协议。客户端之间形成无线的点到点的网络,而不需要任何网络基础设施来支持。
(3)B.A.T.M.A.N.
B.A.T.M.A.N.是Better Approach to Mobile Ad-hoc Networking的缩写,是一种先应式的链路状态路由协议。该路由协议由德国Freifunk组织开发维护,第一版发布于2006年,自Linux2.6.38版本开始加入内核代码库中。B.A.T.M.A.N.最初源自一群OLSR协议的开发者,他们发现OLSR协议在Ad Hoc网络中存在重大缺陷,且针对这些缺陷的改进会破坏与原有OLSR协议描述文档(RFC3626)间的兼容性,因此他们决定重新设计一种更新、更简单的路由协议。B.A.T.M.A.N.是一种3层路由协议,后来改进版Batman-adv属于二层路由协议的一种。
B.A.T.M.A.N.协议通过在结点间发送广播信息OGMs,来发现邻居,并选择快速的路由。该协议主动维护网络中通过单跳或多跳通信链路能够访问到的所有节点的状态信息。当网络中的节点需要到目标节点的路由时,B.A.T.M.A.N.将查找目标节点的全局路由分解成查找每一点的单跳路由,先确定一个到目标节点的最佳本地邻居节点作为下一跳路由。
(4)Babel
Babel是一个避免环路的具有快速收敛属性,可用于IPv6和IPv4的基于距离向量的路由协议。该协议不仅支持无线网络也支持有线网络。Babel协议由法国巴黎第七大学的Juliusz Chroboczek在2011年提出的。同B.A.T.M.A.N协议一样,Babel协议提出的最初原因也是为了弥补OLSR协议的不足。
Babel协议不再使用跳数来进行最优路由的选择,而是使用“期望传输跳数”(Expected Transmission Count,ETC)来计算到达某一节点的跳数。ETC不仅考虑了到达某一节点的跳数信息,还综合考虑了链路带宽、拥塞度等一系列指标来作为选路依据。与OLSR不同,Bable在网络收敛后不会在整个网络范围内进行周期路由更新和宣告,只有当节点信息和状态发生变化时才会被动触发更新。
移动自组网技术的快速发展吸引了越来越多的研究力量投入其中,大量私有以及开源的路由协议被陆续实现,并继续推动着移动自组网技术的发展与完善。除了上文中提到的Serval Project以及Twimight外,还有很多开源的项目有助于我们研究和实践移动自组网。
(1)Commotion Wireless
Commotion Wireless项目是由美国政府出资并由开放技术学会(Open Technology Institute)负责研发的,可供电子通信设施(包括计算机、智能手机、无线路由器)使用的开源无线自组网应用软件。该项目的立项源于“阿拉拍之春”,目的是要协助实施网络审查国家的民众,绕过官方审查,突破网络封锁。该项目已于2012年末在底特律进行了初步的实验,并于2013年12月30日正式发布。“动乱无线”采用了OLSR路由协议,并基于OpenBTS以及Several Project等开源项目。
(2)Byzantium
Byzantium是由华盛顿一个黑客空间发起的移动自组网开源项目,该项目旨在通过移动自组网的方式向人们提供最常用的应用与服务,包括即时通信、邮件以及组织服务,软件基于Linux内核,同样采用了OLSR路由协议。
(3)One Laptop Per Child
One Laptop Per Child(OLPC,每童一电脑)是一个由非营利性项目研发的一种价格低廉的便携式计算机“XO笔记本”,他们希望通过给贫穷地区的孩子赠送一台稳固的、低成本、低功耗的可以上网的计算机使他们拥有受教育的机会。为此,该笔记本从硬件到软件包括功能都进行了专门的设计。该组织已经向近四十个国家的300万名孩子赠送了“XO笔记本”。
“XO笔记本”采用了开源的sugar操作系统,能够创建自己的移动自组网。每一台笔记本都是一台全时的路由器,所有笔记本的用户都能够连接在一起,并接入互联网。OLPC的移动自组网基于802.11s协议。
(4)Open 802.11s
该项目是由非营利组织Geeks Without Frontier发布的开源软件,是第一个实现IEEE802.11s协议的无线自组网项目,希望借此帮助人们理解并使用IEEE 802.11s协议。该软件可运行于任何支持Linux的内核上。
(5)Open-mesh
Open-mesh项目是对B.A.T.M.A.N.协议的开源实现,由该协议机构自行开发并维护。该项目提供了可运行于Linux、Arch Linux、Debian、Gentoo、openSUSE以及OpenWRT系统的源文件以及二进制文件。
(6)Babeld、OLSRd
Babeld和OLSRd两个项目是分别对Babel协议和OLSR项目的开源实现,以帮助人们更好的理解和运用Babel以及OLSR路由协议。这两个项目均由对应的协议组织提供开发并维护。
(7)Battle Mesh
Battle Mesh也是一个开源项目,其目的是对主流Mesh协议进行对比测试,如Babel,B.A.T.M.A.N.,BMX,OLSR,802.11s等。该项目基于OpenWRT对每一个待测试的路由协议进行装配,并采用标准化的测试流程对每一个协议开展测试。该测试自2009年起已举办了14届,测试软件已升级到了第7版。
在2000年以前,无线自组网络还只是一个在实验室讨论的概念,而在今天,从iOS操作系统多点连接框架的推出,到“火聊”软件的大规模使用,我们可以看到移动自组网技术已逐步从科研走向商用,并开始在移动通信系统中发挥出重要作用。移动自组织网络以其特有的理念,被认为是未来移动通信技术的核心组成部分之一,甚至有人认为自组织网络会把所有网络组合在一起,从而实现世界通信网络的大统一,移动自组织网络注定会给通信带来具大的影响。
一是让通信不再有中心。移动自组网的最大特色就是,其通信不再依赖于基础设施,通信结点间通过分布式的服务,实现无中心的信息交互与共享。相对于有中心的通信网络,移动自组网有效地提高了通信网络的鲁棒性和抗毁性,避免了因中心结点失效而导致的全网故障。甚至当部分通信结点受到攻击或瘫痪时,通信网络仍能通过残存结点建立路由,保证了整体网络的健壮顽存。当局部区域出现突发通信需求时,分布式的信息交互,将有效缓解中心结点的通信压力,避免因网络拥塞而产生的通信瘫痪,提高通信的稳定性。
二是让网络不再有边界。在移动自组网中,网络的覆盖范围不再取决于中心结点,只要相邻终端位于通信范围之内,网络的规模就能不断增大,网络的边界就能无限扩张。无边界的通信网络,有效拓展了通信的服务保障范围,能够实现全方位的无死角通信,让通信无处不在。
三是让服务不再有地域。移动自组网能够提供真正的伴随保障。基于移动自组织网络的通信服务,网络无需架设,服务快速展开,用户移动到哪,网络就伴随到哪,可满足用户的任意快速移动,从而实现以用户为中心的,按需通信服务。
四是让连通不再有障碍。在移动自组网中,只要有一个结点接入其它网系,就能实现整个移动自组网与其它网系的互通,从而实现“一点通则全网通”的通信能力。
参考文献:
1. Mesh Project, http://www.meshnetworking.org/
2. 何渊淘,李秀清,无线网状网主动路由协议的对比, 无线互联科技,2014(8)