■隨意網路不需要固定的網路基礎設施,而是靠各個裝置互相連結成網路,以接力的方式傳遞資訊。
■這種網路可以用在傳統行動網路設施建造起來太難或太貴的地方,例如偏遠地區及戰場。
■所有隨意網路都是不斷變化的,必須運用創新策略來避免資料遺失並降低干擾。
身在這個Facebook、推特和iPhone的時代,我們很容易把聯絡外界的能力視為理所當然。然而最需要通訊的時候,往往正是通訊設施失靈的時候。例如2010年初的海地大地震後數天內,當地的通訊大多只能靠救援機構提供的衛星電話。不過,就算只是像停電這樣的普通事故,也會使手機通訊網失靈,讓我們的主要緊急通訊設備變成只會閃閃發光的紙鎮。
這類事故發生時,有個越來越值得考慮的選擇,就是建立「隨意網路」(ad-hoc network)。只要內建專用程式的手機等通訊裝置位在彼此的通訊範圍內,它們就能自己建立隨意網路。網路中的每部裝置都兼具發送器與接收器的功能,最重要的是,它們還身兼附近其他裝置的訊號中繼站,所以就算是距離遙遠的裝置也能通訊,只要位在它們中間的其他裝置能夠幫忙,就能像接力賽跑一樣,一個接一個把訊息傳遞下去。換句話說,網路中的每個節點,不但能為自己收發訊息,也是他人訊息的傳輸管道。
救災只是隨意網路的可能用途之一。在任何建設固定基礎設施太慢、太難或太貴的地方,隨意網路都能派上用場。美軍已投資大筆資金設計這種系統,以供戰場通訊之用。家裡有了隨意網路,客廳或辦公室就不必再拉一堆線路。缺乏寬頻建設的偏遠地區和低收入社區,可透過隨意網路上網。有意研究樹梢或海底熱泉等微環境的科學家,也可以在他們想研究的環境遍撒感應器,而不必煩惱哪些感應器能接收彼此訊號,或資訊如何穿越叢林傳到研究人員的筆記型電腦上。
隨意網路已經發展了30年以上,但直到近幾年,才在網路理論的進步之下,實現了第一個大規模實用案例。美國舊金山的40萬戶居民,在新創公司Meraki Networks的解放網路計畫(Free the Net)下,以隨意網路技術連上網際網路。手機、電腦遊戲系統和筆記型電腦裡的藍牙零件也是用隨意網路技術,讓裝置不用接線或手動設定就能互通。隨意網路也已運用在多種偏遠或不宜人居的環境,蒐集低功率無線感應器回傳的資料。隨意網路要普及,還有些地方尚待突破,但已經逐漸有進展了。
隨時自我修復
隨意網路目前仍很少見。要了解為何進展如此緩慢,可以想想這種新方法和手機、Wi-Fi這類無線技術之間的差別。當你用普通手機打給朋友時,只有手機到最近的基地台之間是無線的,定點設置的各基地台之間是透過龐大的有線網路來通訊;Wi-Fi之類的無線區域網路,也都要靠固定的天線和有線通訊設施。
這種方法有優點也有缺點。傳送資訊需要電力,而典型的無線網路為了幫電池供電的裝置(例如手機和筆記型電腦)省電,盡可能把大部份通訊負擔交給以電力網供電的固定設施。同理,無線頻寬是固定而有限的資源,傳統無線系統為了節省頻寬,大部份資訊也都是透過線路發送。運用固定設施,才能在通訊需求最高的地方,建置大多數時候都很可靠的大型電信與Wi-Fi通訊服務。
然而運用固定設施的網路系統容易受停電及其他中央系統問題影響,導致通訊網路失靈,遇上這種情形,就算手機和筆記型電腦是好的也沒用。相較之下,隨意網路有其獨特的強韌性,如果其中一部行動裝置沒電或關機,其他裝置會盡量修改網路結構來彌補消失的部份。裝置來來去去,網路也會跟著不斷調整與「修復」。
不過這種自我修復的能力是要付出代價的。隨意網路發送資訊的方法必須很聰明,以便就算發送器與接收器中間有些連結在傳輸時中斷,還是能重組出訊息。系統也必須判斷出把訊息傳給接收端的最佳方式,就算發送裝置不知道接收端的位置也一樣。最後,由於許多部裝置可能會幾乎同時傳送訊息,隨意網路還必須克服訊息彼此干擾產生的雜訊。
確保資訊完整傳送的方法
要在一個不斷變動的網路中,決定出有效傳送資訊的路徑,一直以來都是難解的問題,原因有許多個。在傳統手機或其他無線網路中,中央有線設施會持續追蹤各個裝置大概的位置,以便在接收使用者送來的訊息之後,直接導向給訊息接收者。
相較之下,隨意網路裡的通訊裝置必須自己判斷傳送資訊的最佳方式。各裝置的計算能力、記憶體和通訊能力都是有限的,無法像傳統無線網路的中央電腦那樣蒐集或處理所有資訊。
這狀況可以用下面的故事說明:假設你在一個大城市裡(例如倫敦),必須聯絡你的朋友,而他在這個城市另一邊的某個不知名的地方。在這個虛構世界裡,通訊設施是裝在計程車的車頂上,每部車上的接收器有效範圍不到1.6公里,而計程車車速比通訊速度慢多了,因此計程車必須接力傳遞你的訊息。車子在城裡穿梭時,會和鄰近的接收器互相連線,之後不知道什麼時候又會中斷連線。你撥的電話就必須在這個起起伏伏的網路上跳躍前進,穿越城市找到你的朋友,傳遞資訊內容。
僅僅在小型網路裡傳一筆訊息,就已經很困難了,而隨著裝置與訊息的增加,困難度更是往上攀升。要讓這項技術真正派上用場,無論網路規模多大或多小,運作都必須有效率。
研究人員已發展出許多技術來解決這個問題,使用的核心概念就是多多「問道於鄰」。接收器詢問它的鄰居看看附近有什麼裝置,鄰居們再去詢問各自的鄰居,以此類推,直到你朋友收到訊息為止。你朋友的回覆可以沿同一路徑傳送回來,也可以另覓路徑。如此這般,你和朋友之間的每部裝置都會整理出你倆之間可行路徑的清單。有了這張清單,即使你手上的裝置不知道你朋友所在位置,還是能將訊息傳送給他。由於網路結構是動態的,裝置必須不斷重複詢問與回應的過程,隨時更新清單上的可能路徑。
另一個實用方法是同時沿多條路徑發送資訊,以增加訊息傳送成功的機率。問題是,系統應該傳送多少次重複的訊息?一個極端的做法是,沿所有可能的路徑各傳送同一筆完整訊息。這個策略的確會提高訊息傳送成功的機率,但若每筆訊息都採取這個做法,很快就會把網路塞爆。另一個極端是,我們可以把訊息切割成一連串的小塊,每個小塊沿自己的一條路徑傳送出去。這個方法耗費的網路資源較少,但是傳送過程可能會遺失許多位元,接收端只能收到不完整的訊息。
有個稱之為「網路編碼」(network coding)的技術,提供了折衷方案,做法是把訊息切割成小塊,算出每個小塊的詮釋資訊(meta information),然後把詮釋資訊沿多條路徑傳送出去,其特殊設計使得就算有些小塊遺失了,接收端還是能重組出原始資訊。
留言列表