open80211smailing list 上看到廣告,今年的 MeshTech 2009 是在澳門舉辦耶,跟著 IEEE MASS 2009 是同一時段 都是在 10 月 5 日至 9 日間舉辦,看似是非常的好的機會認識一些鑽研 Mesh Networks 的學長專家。

從 2007 年開始,Mesh Tech 已經舉辦到第三屆了,第一屆在義大利、第二屆在美國。許多議題都是我個人非常感興趣的,例如上一屆的 Keynote speech 中,Georgia Institute of TechnologyIan F. Akyildiz 博士,針對了 Mesh Network Protocols 未來的可能設計方向進行了一段演講 Cross Layer Design in Wireless Mesh Networks

在這段演講與簡報中,Dr. Akyildiz 先分析了幾個可能對網路造成影響的關鍵因素,

  • Radio Techniques (Directional and smart antennas, MIMO, Multi
  • Multi-radio/multi multi-channel systems, Reconfigurable radios, Cognitive radios)
  • Scalability (throughput degradation)
  • Mesh Connectivity
  • Broadband and QoS
  • Compatibility and Inter-Operability
  • Security
  • Ease of Use

然後再從 Mac Layer (Physical Layer) 的問題,一路往上分析 Data Link Layer, Network Layer 到 Transport Layer。

由於傳統的路由設計很多都是只依照某一層協定來開發或最佳化,如此會簡化牽涉的可能問題,比較容易除錯。但是相對的,由於無法兼顧其他層協定的變數,以至於效能不佳。

例如傳統的路由協定可能會選擇對短路由,但是若無線網路受到干擾,這條路徑並不見得是最佳選擇,反而變成系統中的效能瓶頸。而這種瓶頸,很容易就影響到整個 Wireless Mesh Network 系統的吞吐量衰減值 (throughput degradation)。

依照目前的研究說來,利用異層協定的資訊與 Generalized Network Utility Maximization (NUM) 架構來設計跨層式協定,一定會某種程度的提高網路效能,但是相對的這種協定的會帶來複雜性、互通性、可發展性 (Evolution Capability) 等種種的問題。這些都是研究人員需要考慮的問題。分層式設計 (layered design) 跟跨層式設計 (cross layer design) 還沒有一個孰是孰非的定論。

MeshTech 會議中,我感興趣的還有

晚上整理幾個月前看展的型錄時,發現一張品質低劣的傳單,只是一張影印且解低度不高的雙面產品介紹。記得當初路過這個攤位時,還以為景氣已經差到連賣鍋碗瓢盆的廠商都申請到電子展的攤位了。定睛一看,發現這不鏽鋼鐵鍋中央還立了一隻 USB 天線。衝著這個產品外型順手拿了一張傳單。


型號: USB Wireless Socket & Dish Antenna(001)

這家公司是「成坊有限公司」(CHEN FONG METAL CO., LTD, 86861132, 代表人姓名: 高志成),根據產品說明

碟形天線產品名稱: 具有碟型天線的USB無線模組插座
型號: 具有碟型天線的USB無線模組插座
功能: 藉由碟型天線 , 所擁有良好電波反射與聚焦特性 , 增益訊號接收強度.
靈敏度 , 增強傳送距離與穿透力 , 就如同接上一個大型指向型天線 , 即使無線AP 基地台距離很遠 , 只要對準方向 , 也能順利傳送與接收無線訊號 !
特色: 碟型天線附加USB插座 , 可無限更換 , 多種類型的USB無線週邊產品 , 功能強大 , 超越指向型天線 , 所無法廣泛應用之處 !

老實說,稍微研究過無線電波的人,大致上都了解 Parabolic antenna 的原理。但是這家公司的產品厲害的地方是,除了沒有說明天線的增益效果外,直接宣稱可以延長天線範圍從 1.5 公尺變成三倍到 4.5 公尺,更神力的是這些產品可以同時支援 WiFi, HSDPA/WCDMA/EDGA/GPRS, WiMax, Digital TV, Bluetooth!

傳單上其他沒有意義的文字這裡就不多寫,(像是 Wireless USB 1.0 不需集線器可以支援 127 台週邊設備這種事情跟這個天線一點關係都沒有)。這些產品技術上讓我感到困惑的是,他並沒有針對電波來源 (Feed Antenna) 以及針對不同頻段的波長長度做距離調整。

換句話說就是 USB 無線網路的天線輸出是非常發散的,可能只有十分之一的電波會打到天線的投射面上。由於投射的方向未能聚焦,再加上並未嚴謹的為特定的頻段調整焦點。最後很大可能只會達成的反效果,而未能達到文宣上所號稱的三倍效果。再白話一點說明,請想像你取了一個燈光方向不定的燈泡,不管焦距的隨意的擺在一個炒菜鍋前,並且期待鍋子變成強效手電筒

這家公司的產品除了固面與網狀的碟形天線外,甚至還開發了一組有伸縮功能的延長天線組,不得不說有創意。更厲害的是,這些天線申請了新型專利!翻了一下專利資訊檢索系統的編號 M327552,專利名稱「具有碟型天線的USB無線模組插座 」,專利內容是

「一種具有碟型天線的USB無線模組插座,主要由一座體及一碟型天線所構成。該座體具有相連接的一第一USB插座與一第二USB插座,該第一USB插座與一 USB延長線連接,且該第二USB插座與USB無線模組連接。而碟型天線被直立於座體上,且第二USB插座所連接的USB無線模組會位在該碟型天線約中心 位置,以增強USB無線模組接收訊號強度。 」

Source: 新型專利 M327552

更厲害的是專利發明人「許志維」就是展場客服人員。專利的範圍主要涵蓋「具有碟型天線的 USB 無線模組插座」,事實上,這個專利一點都不新,這種天線叫做 WokFi (Wok + Wi-Fi),就是菜鍋加無線網路組合的意思,四五年前在無線網路社群還相當流行。

我其實認為這種 DIY 是較不專業的家庭手工,經典的窮人無線網路。在 “USB adaptors & DIY antenna = “Poor Man’s WiFi” ?” 網站上號稱可以達到 12-15dB 增益,不過我認為這種數據必須選對鍋子大小與深度,再經過一些調整才能達成。當然,你可以用誤試法來嘗試。

市面上也有不少產品是內建無線網路卡的指向性天線,當然,由於天線是固定設計,相較於號稱萬用的碟形天線來說,比較不容易因為誤觸中央的網路卡造成訊號遺失。

市面上看到最接近的產品,應該是 Hawking 的 HWU8DD,號稱 8 dBi gain,不過這是一款已經上市三年的產品。國內的一些廠商,像是訊舟 EW-7317UHgBuffalo WLI-U2-SG54HG崴海尼可Mr. WiFiRF Caste 都有不少延長 USB 線材的 USB WiFi 無線網卡內建指向性天線的產品,其中崴海尼可甚至擺了功率放大器在裡頭 (沒有法規問題嗎?)。

這種延長 USB 連接線的產品相較於直接換接無線網路天線的差別是,USB 資料傳輸線不會造成類比訊號損失,而對為了低射頻損耗的線材價格比較昂貴。相較起來,延長 USB 線比較實惠,通常你所購買的無線網路天線,相當大成本都是在線材上。

另外,碟形天線的波束寬 (Beamwidth) 相較於上述的其他平板指向性天線是比較窄小的,意思是你得對準訊號來源才能得到比較好的效果。因此碟形天線通常用在較遠的點對點傳輸,一般提昇收訊品質的使用情境,我認為指向性平板天線就夠用。

若你是因為想增強點對點無線網路訊號強度而讀到本篇文章,若你可以找到適當大小的鍋子,不彷試試自己做窮人的天線,只要嚴格的依據數據製作,效能不會比成坊公司這種炒菜鍋差。可以參考「How-To: Build a WiFi biquad dish antenna」一文的細節,或者 Cantenna 也是一種簡單便宜的 DIY 方式。

最近看到一個相當有趣的例子是「一個農民女人DIY的遠距離無線上網,農民雄起」,號稱透過自製的碟形天線打了三公里遠,令人印象深刻。

感興趣的話,台灣的網路論壇 PCZone 無線網路版也有相當多無線網路天線 DIY 的討論文章。

揭露: 作者與成坊有限公司無任何往來或接觸,亦無冤仇。敝人不為文中所提任何產品背書。

Continue reading

最近 802.11 無線網路協定中所使用的加密演算協定 WPA 傳出了一些消息,一說可以利用常見的圖形處理硬體加速破解運算速度,另外則是說德國的學術單位研究出 WPA/TKIP 中使用的弱加密方式,足以用以塞入短封包攻擊。

首先是 Slahsdot 上提到俄國的資訊安全公司 Elcomsoft 釋出了一款商業軟體 ElcomSoft Distributed Password Recovery,這款軟體的最大特色是可以利用 NVIDIA圖形處理器來加速猜密碼的時間,根據 Elcomsoft 的網頁說明,運算速度可加快二十倍到百倍。若是搭配大量的硬碟、主機與顯示卡,的確是有機會快速破解 WPA (WPA2)/PSK 阿。

不過 Elcomsoft 號稱有專利申請中,不過社群中早已有人實做可以在 Linux, MacOS 上執行的版本,叫做 pyrit (對,他是 Python 寫的)。最新的開發進度與消息可以在 pyrit blog 上找到。

Slashdot 上另外一則消息,則是說德國的 Erik Tews 與 Martin Beck 成功的「破解」WPA/TKIP 加密方式,即將在 PacSec 會議上發表。不過事實是,他們利用了 TKIP 的弱驗證碼演算法與 802.11e 的漏洞,於是可以將小封包如 ARP 封包重新送入網路中。這個技術並沒有取得無線網路使用的密碼,而入侵者也無法盜用該無線網路。

詳細的說明可以參考原始的論文 – Practical Attacks against WEP and WPA,應用程式 tkiptun-ng 也可於 aircrack-ng 網站上下載。ArsTechnicaGlenn Fleishman 寫了十分詳盡的技術說明 – Battered, but not broken: understanding the WPA crack

還記得我在 OSDC.TW 2008 無線網路架設說過 OpenWrt trunk 的 Atheros MadWifi hal binary 有相容性問題,以至於某些網路卡無法連接使用。

HAL 是所謂 Hardware Abstraction Layer,是 MadWifi 驅動程式的核心,也是少數由於版權的緣故無法提供程式碼,而只能以二進位檔案散佈。因此某些驅動程式的問題,在沒有開放原碼的狀態下,大部分的開發者就算想修改也無能為力。

最近幾個月來,Madwifi Team 的幾位成員,包含 OpenWrtnbd, DD-WRTBrainSlayerMaksat Wireless 開始合作以 Atheros 的新 HAL 與 BSD 大神 Sam Leffler 的程式碼為基礎,改進了新版的 HAL 驅動程式,修正許多過去已知的問題與加強訊號抗擾性。目前仍陸續改版測試中,新版 HAL 與程式可於 http://svn.madwifi.org/madwifi/branches/madwifi-hal-testing 取得。

其實這樣的合作一直在進行,但礙於 Atheors 簽訂條款有權可讀相關程式碼的人並不多,許多的討論都是在私下進行的。如此一來造成自由軟體社群間的溝通出現隔閡,造成許多新來後到的人無法了解狀況。於是 mrenzmann 決議將原本封閉的郵遞論壇開放為 madwifi-project,希望可以因此塑造一個比較健康的溝通環境。

最近 MadWifi 社群也在探討未來的發展走向,由於目前的 Code Base 過於雜亂,眾人已無力維護。希望最終目標為從封閉的 HAL 驅動程式改為使用正在開發中的 ath5k/ath9k 等完全開放原碼的驅動程式。為此,madwifi 正在徵求意見調查,希望可以了解大家使用 Atheros 相關無線網路卡的驅動程式時,最需要的功能是哪些 ? 若你也是用 Atheros 的無線網路卡,不妨填填此問卷調查吧。

(對,說得是你們這些 EEEPC/Acer One/Netbooks 使用者阿)

早些時候在參與 PORTA2030 時,也試著去研究了幾個藝術團體的作品,其中一個很快的就引起我的注意。說的是英國的 Blast Theory (關於 Blast Theory) 藝術團體的《你看得到我嗎?》(Can You See Me Now?, 2001),分別已經在 Sheffield, RotterdamTokyo 等幾個都市作過展出,是利用 GPS, 無線網路與手持裝置所設計的虛擬追逐遊戲,玩家透過電腦進入真實都市的虛擬線上地圖,而獵人 (Runner) 則拿著手持裝置與無線電中傳來的線索尋找你的蹤影,若你不幸在虛擬地圖上被靠近逮到,就輸了遊戲。是很有趣的 Urban game (Location-based game)

影片來源: http://www.blasttheory.co.uk/bt/mov/mov_cy.html

Blast Theory 過去十幾年來還進行過許多有趣的計畫研究,如《洛伊叔叔無所不在》 (Uncle Roy All Around You, 2003) 與 Rider Spoke, 2007 等。

其中《洛伊叔叔無所不在》是 Blast Theory 與 Mixed Reality Lab, University of Nottingham 合作的成果,一樣是利用無線網路技術與行動裝置,玩家手持著裝置,根據洛伊叔叔所傳送過來的提示與訊息,來想辦法與洛伊叔叔會合,玩家也可以透過網路協助拿著裝置的玩家,遊戲考驗的與陌生人的信賴關係,探討使用新科技的無線設備對社交關係的影響。細節可以參考 WiredXeni Jardin 對 Blast Theory co-founder Matt Adams 的專訪,On Your Mark, Get Set, Unwire! 江凌青小姐也曾為《你看得到我嗎?》與《洛伊叔叔無所不在》計畫寫了藝術評論

上週末的 COSCUP 2008,由於第一天現場網路斷線,臨時跟幾位長輩借用了 3G SIM Card/Modem/AP 來擋一下。感謝 Custom Wu, ik, in2, Kinght Feng, Lloyd Hung (sort by letters) 的大德大力相挺。

為了能夠讓 3G 轉成無線網路 (802.11b/g) 訊號,連忙將有 USB Ports 的 ASUS WL-HDD2.5 與 FON2202 改裝含撥接工具新的 OpenWrt 版本。特意將先前未安裝的 kmod-usb-serial、kmod-ppp、comgt 等套件再補裝進新編譯的軔體。

華為 (Huawei) 的 E220 先前曾經試用過,這張卡的行為頗為詭異,它會提供 Virtual CD 與 USB serial 介面,Virtual CD 裡面擺的是驅動程式、手冊、設定檔 (for Windows) 等。

麻煩的是,大約是 Hotplug 或某種 race condition 的問題,有時 Linux 不會偵測到 serial interface,有時可抓到介面,可是在卸載 Virtual CD 前是無法使用的,很多時候就算卸載或不載入 Virtual CD 也無法使用! 所幸 bobovsky 做了一個初始化程式,執行後可以確保 USB Modem 被正確啟用。(顯然是用 USB sniffer 之類的工具做出來的)

因此我唯一需要做的是將程式編譯成 MIPS (LSB) 給 WL-HDD2.5, MIPS (MSB) 給 FON2202,丟到機器上並稍加設定。

必須先為系統添加一組 hotplug script /etc/hotplug.d/usb/20-usg-3g,目的在於判斷 E220 被插入時,自動執行初始化指令,讓 Modem 變成可撥接的狀態。

#!/bin/sh

# Copyright (C) 2006 OpenWrt.org

case "$ACTION" in
	remove)
		[ ${PRODUCT} == "12d1/1003/0" ] && {
			ifdown wan
			echo 1 > /proc/diagled/usb		    		    	    	    	    	    		    		   
		}
		;;
	add)
		[ ${PRODUCT} == "12d1/1003/0" ] && {
			/bin/huaweiAktBbo
			echo 0 > /proc/diag/led/usb
		}
		;;
esac

另外,由於 usbserial 還不認得 E220,因此必須將 vendor/product id 先餵給它,如此插入設備時就可以自動產生 device file 等。作法是更改 /etc/modules.d/60-usb-serial

usbserial vendor=0x12d1 product=0x1003 maxSize=4096

上述是將硬體驅動的方法,此外就是要加入撥接工具。這件事情 comgt 可以代勞,OpenWrt 已經整合好相關的 Script,只要利用 UCI (Unified Configuration Interface) 對 /etc/config/network 進行更改如下即可

#### 3G
config interface	wan
    option device       "/dev/usb/tts/0"
    option proto        "3g"
    option apn          "internet"
    option service      "hsdpa" # or cdma, evdo, umts_only, or gprs_only
    # option pincode      "0000"
    option mtu          "1492"

由於大家的 SIM Card 都關掉了 PIN Code 檢驗機制,為了避免系統對 Modem 輸出錯誤 PIN Code 而鎖死 SIM Card,我也稍加更改了 /lib/network/3g.sh,避免系統在初始化時試圖對 Modem 設定 PIN Code.

--- ../../package/comgt/files/3g.sh	2008-04-17 09:29:56.000000000 +0800
+++ lib/network/3g.sh	2000-01-01 08:23:32.000000000 +0800
@@ -73,10 +73,12 @@
 		fi
 		# Don't assume Option to be default as it breaks with Huawei Cards/Sticks
 		
-		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
-			echo "$cfg(3g): Failed to set the PIN code."
-			set_3g_led 0 0 0
-			return 1
+		test -z "$pincode" || {
+	  		PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
+				echo "$cfg(3g): Failed to set the PIN code."
+				set_3g_led 0 0 0
+				return 1
+		    	}
 		}
 		test -z "$mode" || {
 			MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom

只要將上述所需的套件都編譯、選定,在稍加修改特定幾個 Scripts 後,就可以利用方便的 ImageBuilder 產出所需的軔體了。本次也借用了 Knight 的 BandLuxe C120,基本用法是一樣的。