玩電腦的人多少都會養幾隻動物,騎驢獵狐搞變態,BT、Emule、foxy、Winny通通來,抓什麼東西我們就心照不宣、心知肚明、有口難言了,大家搞不好還遇過完完全全的電腦白痴,但操作起foxy卻速度飛快熟練無比。而抓P2P最常遇到的問題大家應該也很清楚,如果上傳不限速,檔案數目拼命拉高,不只會癱瘓整個區域網路,可能連分享器都會被弄到當機。這一點都不誇張,當P2P上傳到達ADSL的速限時,連開個網頁都會頓呆,更別提Skype或玩線上遊戲了。

幾週前,我接到AXIMCom的來電,他們宣稱新產品P2P Gear具備頻寬管理的功能,當下我心裡想的是:「Yeah,right...又一個"QoS"分享器了」,但拿回家安裝之後真的大吃一驚,它解決了前面提到的問題,這完全勾起我的好奇心,數次與他們做長時間的電話討論,只為了弄懂他們是怎麼做到的。

P2P Gear不是一般的QoS或頻寬管理分享器,它是一台有Traffic Shaping、能優先送出ACK封包、可承受超高Session數、針對各種網路應用做優先權排序的特殊產品,有點像硬體式的cFosSpeed。看不懂上面這些字眼沒關係,這篇會徹底講清楚它到底在幹嘛,先來看看機器的外觀和內部。


AXIMCom P2P Gear外觀與內部
現在一般的無線分享器幾乎都是代工出來的產品,硬體本身通常沒什麼特別,嵌入式CPU、記憶體、Flash、外加一張MiniPCI的網卡、加個蓋子和天線就組出來了,多功能分享器的主要價值是在軟體(也就是機器的韌體),它決定機器的所有功能。當然,功能多寡也是依硬體規格而定,越複雜的機器,所用的CPU也就越好,只是硬體結構是大同小異的。而AXIMCom的P2P Gear(PG-108GM) ,機器本身真的沒什麼好說的,硬體規格很不錯,其他就....一切從簡



P2P Gear的包裝盒,主打的就是動態頻寬管理的功能。



包裝內容物,機器本體一台、三根5dbi的天線、網路線、變壓器、快速安裝「紙」和說明書光碟。



P2P Gear是MIMO XR的無線分享器,因此有二進一出的三根天線。



電源、WAN、LAN、無線的燈號指示,其中無線(WLAN)是高亮度的LED燈,半夜起來上廁所連燈都不必開,靠它就夠了。



5個插孔,一個連外WAN,四個連LAN,算是標準配備。



側方的散熱孔。



機器的內部,CPU的散熱片被鎖死了,型號是Realtek的RTL8651B,這是200MHz MIPS的SoC晶片,算是蠻強悍的CPU,一般是用在多功能的分享器上,這顆SoC晶片內含USB的功能,但P2P Gear並沒有做上去,主要是需要它200MHz的CPU,才足以執行它們的頻寬管理機制。至於網卡則是ralink的RT2661T,這是便宜的MIMO方案,三根天線的兩根做接收,一根做傳送(算是...MISO?),可拉大訊號範圍但又不會像真正的MIMO那麼貴。另外,機器有32MB的記憶體和4MB的Flash。


P2P2 Gear的硬體蠻普通的,就是一台隨處可見的MIMO XR分享器(而且還是比較醜的那種),它的賣點是軟體,主要有三個功能,官方有自己的宣傳名詞,但這裡用比較通用的術語,Traffic Shaping、優先權管理和15000超高Session數的乘載能力。


什麼是Traffic Shaping?
QoS(Quality of service)在網路產品中是很常見的名詞,意思是在有限的頻寬裡做各種調整,讓重要的網路應用得到較好的頻寬或速度。這是非常泛用、近乎濫用的功能,從簡單的速度限制,到高度精密、企業用監控封包的大型機器都算QoS。

為什麼要QoS?因為不同的網路應用需要高低不同的優先權,比如Skype語音交談和線上遊戲就要很高的即時性,只要稍微延遲一下,我們就馬上會有感覺;但像P2P或FTP抓檔就不需要,反正放在背景慢慢抓,不會影響正常網路使用就好。而現在新的分享器,就算是便宜的產品也都號稱有QoS,但那通常只是做基本的頻寬限制,比如某個插孔或IP的電腦只能用70%的總頻寬,這勉強算是QoS,但若想要在大量P2P的環境下保持網路品質,那就得有真正的「Traffic Shaping」功能。

如果把封包當成車子,網路當成大馬路,Traffic Shaping就是指揮交通了,讓重要的先走,不重要的就慢慢丟,說起來簡單,實際上牽涉的東西很多,我們先從ACK封包開始。

ACKnowledgment封包
當要建立連線,比如瀏覽網站時,需要先有三道手續(或叫三方交握),電腦先送出一個SYN封包告知對方說「我要來連線囉~」,對方會回一個ACK封包說「好,我知道了!」,電腦收到對方的ACK之後會再送一個ACK說:「了解,那上吧!」,之後才進行真正的傳輸。



借用一下cFosSpeed的解說圖,綠色就是ACK封包,送出ACK封包之後才能開始真正的傳輸。


現在麻煩的是ADSL的上下傳都是不對等的,比如8M下傳640K上傳,而P2P的概念就是上傳給別人來得到下載的權力,若沒有限速,ADSL的上傳會立刻塞爆頻寬,這時第三道手續的ACK封包就得排很久才能送出去,造成之後的網路傳輸變很頓、或忽快忽慢。但限制上傳又會降低P2P下載的速度,真是矛盾難以取捨....

很多人可能都已經有類似的經驗,如果不信,可以試著用FTP不限速上傳到一個站(像是Hinet FTP:ftp.adsl.hinet.net),或是BT不限速上傳,等到上傳接近ADSL上限時,再來看網頁或連bbs就會明顯感覺很頓,抓檔速度也跟著變慢,這就是ACK封包送得太慢了,玩遊戲就更不用說了,Ping值可能都破錶了。



當上傳封包(藍色)塞滿線路時,ACK就得慢慢排隊,等待上傳封包較不密集的時候才送,直接影響之後的網路傳輸速度。


而cFosSpeed和AXIMCom P2P Gear所具備的一個基本功能,就是把ACK封包的優先權提高,只要出現ACK就馬上送出,建立之後的連線,這樣ADSL上下傳就可以「同時」接近最高速度(只能接近,不可能像單獨上傳或下傳那麼快)。只是cFosSpeed是軟體,而P2P Gear是用分享器的硬體來做。如果有用過cFosSpeed,應該知道它的效果非常好,我認識幾位P2P大戶都覺得它超好用,直接買cFosSpeed了,反正一套也才台幣170元



基本的Traffic Shaping就是手動提高ACK封包的優先權,「見縫插針」立即送出,讓上下傳同時保持在最高速。


頻寬優先權管理
ACK封包提前只是基本功能,最重要的還是看各種網路應用來決定頻寬的優先權,Skype、遊戲要有最高的優先權,網頁或許可以稍慢一點,而P2P則要壓到最低,若沒有「交通指揮」,通常就是P2P把頻寬吃乾抹盡,一滴不剩。

機器要怎麼知道封包是什麼應用程式?這方面的理論和實作就非常多了,簡單的就是看「埠號」(Port),每個網路應用都有常用的Port,比如網頁是用80、FTP用20和21等等,這是最不操機器,也是最沒用的管理,因為Port可以隨便亂改,P2P軟體甚至能每次執行就換一個Port,像Skype還可以用HTTP的Port 80來通過防火牆的限制。如果頻寬管理是用Port來決定,Port一換就會失效,而讓玩家自己手動指定.....嗯,相信大家都懶得弄。

看Port不準,看封包內容總可以了吧?沒錯,直接看封包就能知道它是語音或是P2P,再來決定優先權,但要查看每一個封包得需要強力的機器,通常只有企業或高階SOHO級的路由器才有這種功能,有些甚至是用伺服器而非嵌入式的CPU在執行。而且P2P軟體因為怕被抓或監看內容,現在慢慢都有加密功能,每換一次加密機制,機器就得更新才能辨識,也挺麻煩的。

而AXIMCom找出一個新方法,既不是看Port也不是看封包,它的作法是紀錄一段時間內封包的長度和密集程度,辨識出不同網路應用的特性,機器並沒有真的去看封包內容,只是由封包特性約略「猜」出它是哪一種。比如語音交談就是資料小密集度高,而P2P抓檔就是資料大也很密集,而且一開始建立連線慢,一段時間後會加快。藉由這些特性,P2P Gear就會調整優先權和它們所能用的頻寬,雖然不像檢查封包那麼精準,但一般玩家打電動、抓檔、聊天也夠用了。



AXIMCom官方網站上的解說,若沒有做頻寬管理,P2P會佔用所有的頻寬,而P2P Gear會在一些重要的網路應用封包(語音、遊戲)出現時,保障它們的頻寬。


AXIMCom作法的好處是不像看封包的方式那麼操硬體,只需要較快的嵌入式CPU和大容量的記憶體就夠了,而且這方法無關Port或IP,不需要做任何設定,就算軟體再怎麼換Port或加密,封包的特性是不會變的,機器還是能辨識。

至於前面講的cFosSpeed則是個特例,因為它是安裝在Windows裡面,根本不必看Port或封包,它是Layer 7的Traffic Shaping,也就是直接監控應用軟體,只要設定好,就能精準到讓某一套軟體或遊戲擁有最高的優先權,而且桌上型電腦的效能幾乎都是過剩,所以cFosSpeed的效果很好,也不會太操,但cFosSpeed就只能對安裝軟體的那台Windows電腦有效。



cFosSpeed是安裝在Windows裡,它直接抓.exe檔來做頻寬管理,因此精確度非常高,但它的最佳效能只能針對單機,而且一定要是Windows。


[註:在網路模式裡,第七層應用軟體是最高的,所以cFosSpeed可以精準控制每套軟體,而AXIMCom應該是針對第五層的Session做判定。]


AXIMCom P2P Gear 控制介面
由於硬體效能有限,P2P Gear最多只能做八台電腦的頻寬管理,由特定的IP範圍來決定,這部分必須手動固定DHCP派送的IP,並啟動DBM的功能,DBM就是P2P Gear頻寬管理的技術名稱。另外,頻寬管理必須讓機器知道資源的大小,所以一定要在控制介面中選擇你所用的ADSL速度。



P2P Gear的控制介面在http://192.168.1.1:8080,第一頁先設定ADSL的帳號、密碼和速度,速度部分一定要誠實,否則頻寬管理不一定能正常運作。



在「網路存取控制>ACL」下,第一條規則就是DBM所管理的八台電腦,預設的IP範圍是192.168.1.25~192.168.1.32,最多八台電腦。



點一下DBM的規則並按「編輯」,選擇「啟動」。



再到「網路存取控制>MAC」下,這是以Mac位址來限定哪些電腦才能連上P2P Gear,另外也幫助固定電腦的IP,因為P2P Gear派發的DHCP IP並不一定會落在DBM預設管理的IP範圍內,所以必須手動把電腦的Mac位址對應到DBM的IP內,比如圖中新增一條Mac位址規則,勾選「靜態DHCP啟動」,然後把Notebook的IP固定到192.168.1.25,這樣Notebook就加入頻寬管理了。



之後再依序加入其他電腦,一樣用靜態DHCP固定IP,圖中是我後來把DBM的範圍改成192.168.1.2~192.168.1.9,所以電腦的靜態IP也做相對應的修改。



無線網路設定,可選擇加密方式,常見的加密都有支援,不過我個人習慣是用Mac限定,而不是用密碼。另外,這頁裡的WMM是讓無線網路可針對多媒體最佳化,比如VOIP或串流影音會有較好的傳輸品質。在我測試時,無論無線切到哪個頻道,Xbox 360的無線網卡都連不上P2P Gear,原因不明,但AXIMCom已經跟ralink取得最新的驅動程式來測試。



在「管理>系統管理」下可設定語言和密碼、更新韌體、匯出/匯入設定檔,也可啟動遠端管理,雖然遠端管理在一般分享器產品裡都有,但P2P Gear特別需要這個功能。



在「狀態>圖形」下能即時監控P2P Gear的流量,這是很少見的功能,圖表是用SVG plugin畫出來的,每分鐘更新一次,點一下圖表能選到任一時間點的瞬間上下傳流量,底下的統計數據則是開機到現在的上下傳總量,右上角則有開機時間,所有資料都很詳細。開啟遠端管理的話,就可以在任何地方監控P2P的流量。

眼尖的人可能會看到,最底下還有P2P Gear目前連接的Session數,一個Session就代表一個連線,P2P抓檔就是靠超大量的連線來加快下載速度,一般分享器能到3000~5000就很厲害了,一些少見的機種能到8000,若連接的Session超過分享器能承受的量,好一點的就會開始砍Session,爛一點的機器則直接當機。除了Traffic Shaping之外,P2P Gear最大的賣點是能同時承受15000個Session,超過的話機器會開始砍最近沒用到的Session。15000個Session....這得三四台電腦同時狂抓才有機會瞬間衝到這個數字,我自己用兩台電腦抓,最多也才用到7000左右。

P2P Gear的web介面寫的很不錯,除了有炫炫的圖表可線上監控各種數據外,大部分的選項都不需要重開機就能生效。不過目前它的Web介面有一個嚴重bug,當下傳速度頂到ADSL的實際上限時,P2P Gear的Web介面反應速度就會變得非常慢,常常連不上去,無論從區網或外部連接都一樣,官方目前正在查這個問題發生的原因。雖然並不影響機器的正常運作,但由於P2P Gear的Web介面有提供監控功能,如果下傳滿載時無法監控,那就很可惜了,希望官方能儘速解決這個問題。


測試與使用心得
講了這麼多理論,P2P Gear到底用起來怎樣?其實整個頻寬管理可以歸納成底下兩個簡單的需求:

1.爆量上傳時不會影響下傳速度。
2.上傳全速狀態下,看網頁或Skype不能頓,遊戲Ping值也不能太高。

我先設定幾個對照組的情況,一是完全沒有開P2P上傳的正常情況,二是全速上傳但沒有裝任何QoS管理,三是安裝cFosSpeed的效果。我家的ADLS是8M/640,簡單的測試表如下:

項目無任何上傳BT上傳不限速(65KB上傳中)BT上傳不限速(65KB上傳中)+cFosSpeed
開網頁超順要等一下才會連上,圖片下載速度慢。很順
FTP下傳820 KB/s50~400 KB/s(速度間歇性跳動,有時會掉到10KB/s以下,和P2P互搶頻寬。)穩定 800 KB/s(但P2P上傳會降到50KB/s左右)
FTP上傳66 KB/s1~5 KB/s,幾乎動不了。50 KB/s(P2P上傳會降)
Skype超順有時語音會斷斷續續很順
TF2遊戲ping值(M01 Server)40~60300~400,很不穩定。120(開啟favour ping選項後,ping值降回60,上傳速度降到58)


由測試結果可看出cFosSpeed的效果真的很好,它幾乎可讓上下傳同時接近原本的全速,而在犧牲一點頻寬的情況下,則能維持遊戲的低Ping值。AXIMCom有辦法達到類似的效果嗎?

在剛開始測試P2P Gear發生一個小插曲,因為P2P Gear是設計成「多人」使用的分享器,不像cFosSpeed是「單人」飆速用的軟體,加上台灣ADSL線路不是穩定,AXIMCom為了確保機器在最差的多人情況下都有最好的效果,所以分享器前端做了保守的75%的限速,來保障連線的品質,但這個限速則影響了單人在最佳環境下的使用效果,即使機器明明有能力做到。

我的ADSL線路算很好的,但只要接上P2P Gear,我的下傳最多就只剩下600KB/s,上傳最多48KB/s,由於線路沒有滿載,當然遊戲、Skype、網頁通通都是順的,但犧牲的頻寬也太大了!所以我把分享器的設定改成10M/2M,讓機器誤以為我有這麼大的網路資源,這時所有上下傳都可以單獨到全速,但其他應用就開始頓了,因為我已經擾亂P2P Gear的頻寬機制。要讓這種機制能正常運作,機器必須知道線路的上限頻寬是多少,就像cFosSpeed使用前要先校正一樣,當我設到10M/2M時,機器就假設我有這麼大的頻寬,就算我衝到全速,機器依然認為我的頻寬還綽綽有餘,因此就沒有使用積極的管理。說起來有點複雜,簡單的說,預設限速75%讓我陷入一個迴圈,無法在「真正」的全速下啟動優先權管理。



這是專門為了這次報告所改的韌體,多了一個Bandwidth Efficiency可手動調整真正的線路速度,官方還在考慮要不要讓這選項開放。


於是我請AXIMCom為我改了一版韌體(吼~惡質的媒體暴力),讓我可以自由調整限速的比例,大家看上圖就會發現多了一個「Bandwidth Efficiency」,這就是在設定ADSL方案之後,由此調整我的線路「真正」能跑到多少,當我設到90%時,我的上下傳就可以分別到達全速,而P2P Gear的能力也終於爆發。在BT接近全速上傳時(57KB),我的FTP下載還能衝到760 KB/s,相當驚人。這時瀏覽網頁還算順暢,Skype也很順,只有遊戲ping值壓不下來,會衝到200~300左右跳動,必須把限速調到80%才能恢復遊戲ping值到60,只是這時上下傳的速度也跟著掉下來了,但如果是玩節奏不快的線上RPG,200~300的Ping值代表可以一邊抓P2P,一邊玩WOW。



這是用P2P Gear跑出來的最佳數據,用DU Meter抓出來的,8M/640的ADSL可以跑出「同時」下傳780KB/s,上傳63KB/s的速度,而且這時候講Skype和看網頁還是蠻順。


所以P2P Gear真的有cFosSpeed的效果,只是優先權的精確度上不如它,畢竟cFosSpeed是靠強力的桌上型CPU在運算,而且只處理單機,P2P Gear必須處理分享器下八台電腦的封包,有這樣的效果已經很厲害了,市場上也還沒見過類似的產品,AXIMCom真的幹的不錯,只是我很龜毛,希望機器能有更多微調選項。

每個人的網路環境、線路品質與使用習慣都不同,我認為AXIMCom應該要把限速的設定開放,而不是大家全鎖死在75%,雖然這個值可確保網路品質,但無法衝上極限,若想找出使用者ADSL的真正的速度上限,可以教大家如何校正(其實只是上ISP的FTP去傳檔而已),再來手動設定限速值,甚至機器本身加入自我校正的功能。而且P2P Gear明顯就是針對抓檔玩家,越多的「進階」選項就有越高的爽度,最好上下傳的速限可以分開調整,或是加入Profile的概念,在機器裡儲存幾組速度設定值,讓玩家依據當下的情況來快速切換,比如外出時想瘋狂抓檔就無限上綱,反正只要速度快就好了,而要玩Game時再犧牲一點上傳頻寬來換Ping值等等。

而最重要的自訂,我覺得是各種網路應用的優先權,我不確定機器能辨識到什麼程度,但如果可讓使用者自由選擇瀏覽網頁、遊戲、VOIP、FTP等等應用的優先程度,相信會適用於更多人,畢竟不是所有人都有相同的習慣,像我的抓檔主力其實是FTP,我就希望它有比P2P更高的優先權;而遊戲Ping值對我最重要,是最高優先的,因為我玩的並不是Ping值300還能忍受的WOW,而是Ping 100以上就受不了的TF2,Ping超過130我就會被踢出伺服器了。



這是使用P2P Gear時發生的靈異現象,由於P2P Gear要讓ACK封包插隊優先送出,所以必須停住其他優先權較低的封包,暫存在緩衝區裡,因此網卡端就會產生錯誤的辨識,以為網路速度超快,但實際上封包只是先傳進分享器裡,並沒有真正發送。這時就會看到像圖中破錶的速度,8M/640的ADSL卻有900KB/s的上傳速度,這個現象過一段時間就會恢復到正常速度。


很有創意,但還可以更好!
整體來說,我覺得P2P Gear在一堆大同小異的分享器產品中做出很不一樣的特色,而且是真正好玩的東西,效果接近cFosSpeed就是一大突破了,我前面的測試很多是在兩台電腦的環境下,一台P2P不限速瘋狂抓檔,另一台照樣可以Skype或順暢瀏覽網頁,這是cFosSpeed做不到的。我上面的要求也許有點過份,但那是因為我真的興奮起來了(別想歪...),希望看到P2P Gear能更上一層樓,不只在多人、最差的環境下有效,同時也能滿足單一宅男追求極速、亂玩選項的渴望。

在測試的一兩週間,AXIMCom一直和我溝通聯絡,他們可以認同我詭異的想法,也願意在未來的韌體修改演算法壓低ping值,並開放較多的自訂選項,12月中就會有改版的韌體釋出,希望也能順便修掉那一堆奇奇怪怪的bug。

最後,P2P Gear蠻貴的,但一台免安裝、多人使用、可適用於所有作業系統的「硬體cFosSpeed」還是很有吸引力,而且現在越來越多人用NAS抓檔、用遊樂器玩Game,而NAS或遊樂器是不可能安裝cFosSpeed的。如果同一區網下有四五個人天天在foxy、玩線上遊戲,那花錢換個穩定的上網品質還蠻值得的。


AXIMCom P2P Gear總結

優點:
.效果類似cFosSpeed,可在P2P不限速上傳時,保持一定的連線品質(看網頁、VOIP)
.上傳接近滿載時不會影響下傳速度
.可多人同時使用,最多做八台電腦的頻寬管理
.能承受15000個Session數
.Web控制介面提供很詳細的流量與Session數據


缺點:
.缺少進階設定功能,無法自訂優先權
.高速下傳時,不容易連上Web控制介面
.Xbox 360無線網卡連不上P2P Gear
.由於重排封包,有時會顯示不正常的上下傳速度
.價格頗高