2008年1月31日 星期四
關於"Packet Classification on Multiple Fields"的報告
為封包分類之所以不能快的原因是因為你想要用多少欄位來分類,你就必需查多少次的表(table lookup),而查表除了用硬體的TCAM能達到O(1)的時間外,用軟體的速度最快也只是O(log n)
在封包的分類上通常是時間和空間的tradeoff,理論上,只要你的記憶體夠大,那麼你可以在一次memory access之後就得到分類結果,完全不需要考慮演算法這種東西,比如說,若要分類的packet header 欄位寬度總合為120bit,那麼你可以建一張2^120大小的表格,然後填入規則,然後在packet到達後,直接用120bit的欄位當index去在取表格,從查表結果就可以知道這個packet該分成哪一類,該採取什麼動作
一般來說,速度快的演算法秏記憶體大,秏記憶體小的演算法速度慢,那麼是不是存在一種演算法可以達到平衡?即,速度讓人滿意,而秏的記憶體空間也可以讓人接受
我想,Packet Classification on Multiple Fields應是可以讓人接受的solution,
Packet Classification on Multiple Fields是sigcomm99的paper,距今快有十年了,paper本身寫得不是那麼容昜讓人看懂(坦白說,我覺得他演算法的psudo code那裡有地方寫錯),不過Idea很好,Idea 簡單講就是利用分類規則之間的相似性,將相同結果的規則算做一類
就結果來看,他可以在使用120bit寬度資料做分類時,只需要9次的記憶體存取(memory access)以及3次的計算就可以完成分類了,速度算很快了,畢竟,查表(table lookup)跟記憶體存取(memory access)這120bit的資料分別是src ip(32), dst ip(32), L4 proto & flags, L4 src port(16), L4 dst port(16), ToS(8)
這篇paper也不是沒缺點,缺點就是
建表的時間無法預測
建表時用到的暫在記憶體大小無法預測
建完表的表格大小也無法預測
不過這些缺點對你來講不甚重要的話,例如,規則不常更動(即不常建表),device的其它功能記憶體需求沒有那麼緊(即,有足夠的記憶體空間留給演算法建表),那麼這篇paper的Idea就很有價值
這是我用來present的power point file
2007年12月19日 星期三
papploc(piaip applocale)的試用心得
1.Applocale造成的亂碼問題
2.建立了捷徑後每次執行卻還要煩你的問題(就是要逼你按一次確定)
安裝的心得是papploc不能執行覆蓋式安裝,也就是如果你本來已經安裝了applocale的話,再執行一次papploc,雖然會告訴你安裝成功,但是實際上卻沒有
一定要移除applocale後,再安papploc才能安裝成功
安裝成功後的心得是,執行捷徑時再也看不到煩人的對話方塊了,世界清淨了,真好
關於BlackICE的反安裝(uninstall)問題
最近在試用老牌的防火牆:ISS BlackICE 3.6 一段時間以後,由於BlackICE一直把我常用的Application視為流氓軟體(Rogue application),我又找不到選項去設定,火大後乾脆將其Application protection的功能關掉,畢竟我更在意的是防火牆的功能
不過沒想到在重開機後BlackICE在右下角的圖像一閃一閃的,原本以為是網路遭到攻擊,可是點進去後發現又沒有event,在一段時間後確認是因為它的Application protection功能被關掉引起的
原本不想管它的,不過在一天後發現我實在受不了一個icon一直閃,所以決定把它幹掉……沒想到
移除不掉……
所幸在ISS的網站上(ISS已經被IBM併購,所以現為IBM ISS)有提供BlackICE的uninstaller:BIRemove,根據網頁上的說法是可移除任何版本的BlackICE
我自己試用的結果是一下子就移除完畢,It deed work
提供給任何有類似因擾的人參考
2007年11月28日 星期三
胖子之又見胖子,評醉劍的混世三國
胖子,又見胖子
好久沒看到能讓我眼睛一亮的作品了,總是落俗套的情節,平鋪直敘沒有經過設計的情節,就像八點檔一樣你總是能夠猜到下來會怎麼演,人物沒有靈魂,智障般的敵人加配角加美女,沒有內容的對話,感覺總是像在看傀儡戲,充滿了不真實,每樣都是假假假,直到最近偶然不小心點到了混世三國,唔,開頭的第一章就讓我眼前一亮,繼續看下去,情節總是一直在轉折,雖然類型是俗套的穿越加三國,不過內容和情節不怎麼俗套。
幾年來,小說界中以胖子為主角的書不少,但是真正混出名堂的人卻不多,混的最好的當屬羅格領主,而王大明混的也不差,而現在我們的主角黎胖子雖然同樣是穿越,儘管沒有羅德裡格茲的傳承,也沒有王大明的福氣啃一啃龍肉,不過他帶著羅格的黑心,韋小寶的機制加無恥,黎胖穿越的起點雖然比別人低,但是未來的發展我很看好。
三國是中國歷史上有名的亂世,其亂到人口從東漢末年的五千多萬,到三國統一後的不足千萬,可見社會多麼動盪,人命多麼不值錢。亂世出英雄,三國時代輩出的英雄及動盪的社會背景激發了了人們的想像力,就連蘇東坡也會遙想公謹當年,穿越到三國的小說不少,但是起點這麼低的黎胖是第一個。
這本小說的第一章就是個亮點,在現今快餐式的文學環境下已經很久沒有這麼紮實的武打描寫,儘管我以為最後的劈下來的雷會救了趙雲一命,造就主角一個很高的起點.......這是作者第一次玩弄讀者。
本書的風格算是輕鬆,主角也沒什麼野心,就連練武的動力也不過是想要很好的在亂世中生存下去而已,而和其他穿越的書不同的是,別人穿要嘛投靠劉備,要嘛投靠曹操,要嘛自立勢力,主角一開始在劉備旗下的劉錡打工,我本來以為主角會投靠劉備的,就連主角自己都這麼以為.........作者又玩弄了我們一次,主角最後投靠的是孫權,這又是眾多穿越文學中的一個亮點。
這世界上本來沒有路,人走的多了路就出來了,這世界上本來沒有玩弄讀者這一回事,玩弄的多了.......作者你再怎麼玩我都不會覺得不稀奇了,沒錯,本書的作者看得出來很心機,很喜歡玩弄讀者的心。
作者一再顛覆我們的慣性思維,從主角的選擇開始(沒錯,典型的主角是又高又帥正義感十足,典型的騎著白馬的王子),再從投靠的勢力繼續顛覆,最後連穿越的時間都和別人不同,人家穿越都嘛是亂世將要開始之時,這樣才給足主角十足的時間練功、挖人、練兵,但是黎胖完全沒有,他可說從一開始就在逃命,這樣也好,造就劇情的節奏緊湊,另外黎胖穿越到三國的中期,也讓我期待黎胖走出一條和別人不同的三國路。
本命獸的設定和戰鬥又是另外一個亮點,當然,別人都是本命"獸",而胖子的本命獸,作者當然又要玩我們一次了,胖子的本命獸是人,是個戲子,雖然本身能力不怎麼樣,但是卻有很高的成長度,這是作者給胖子唯一的財富,希望胖子能夠好好的活下去,當然,中國古代的三國哪來的本命獸啊?嗯,既然是穿越,搞不好是穿越到哪個恰好有本命獸的平行宇宙的玄幻三國時代去了,所以嚴格的說,本書的類型應該算是玄幻加三國加穿越,小說嘛,看的爽就好了。
賤格的主角,本命獸的設定,搞笑(輕鬆?)的風格,紮實的戰鬥描寫,經過設計的劇情,以及和一般穿越小說不同的發展,醉劍生涯帶來的混世三國還算有趣,我喜歡,我想你也會喜歡。
與眾不同的選擇讓黎胖走出不同的路,雖然同樣是穿越,但是顛覆傳統的思路讓舊瓶裝上了新酒,如果只是看到又是三國穿越類型的小說就跳過,那麼真是可惜,看了網路文學也快十年了,只能說,這本書值得推薦,作者的用心我相信你也看得見,這種作者值得鼓勵,這本書值得期待。
Google的其他服務:Google groups以及Goolgle bookmark
最近又發現了google兩個不錯的服務
分別是Google groups和Goolgle Bookmark
Google groups的中文是"網上論壇",簡單的說,就是讓你很輕昜的架好一個論譠,其實這個服務出現在google的首頁很久了,而會試著想要用是因為最近有個私人聚會的計畫,這個計畫的執行還在運釀當中,然而為了計畫的順利進行我認為應該要有一個論譠提供我們發表意見、討論、公佈schedule以及上傳檔案的地方,然後還要有權限控管,以免不相關的人看到我們討論的資料,本來的想法是想在學校的工作站架個php bb,然而要架php bb還需要mysql的權限,那就還要跟管理者溝通,若是架在免費的myPhp之類的host,又會看到廣告,況且其實我們的規模很小,這就有點為喝牛奶就去養一頭牛的味道。
無奈之下問學弟有沒有很快架站的方法,學弟指點我google groups就符合我的需求,經過試用之後發現申請很容昜,只需要google的帳號就可以申請,論壇分三種:開放式 、僅限通知、封閉式,很巧的,封閉式就是我所需要的,建立好之後一開始只有我一個人,試著貼一些文章後發現介面有點淳樸,原本我比較prefer的是php bb之類的討論介面,現在當然有點失望,然後試著上傳檔案,檔案上傳的部份有100MB的限制,其實也夠用了,只是不知道會不會像GMail一樣會隨著時間而將空間變大,另外,上傳檔案的部份有點簡單,就單純的只能上傳檔案,而其實我比較prefer的是可以在檔案後面加上一些comment來註解檔案。
總而言之,目前google groups試用的結果是論壇本身非常好成立( 只需要申請就可以),而功能非常的陽春,但是論壇該有的功能都有,看來是很適合少數人且本身不會架論壇的人使用,畢竟人數的規模若達到一種地步,可能就直接使用myPHP或購買虛擬主機直接架站了。
至於基本的功能都有了,那麼論壇本身到底好不好用呢?我想可能要等到一段時間的試用後才能下結論了。
另外一個無意間找到的服務則是Google bookmarks,其實這個功能本身是沒有被google列出來的(參考這裏);原本我就有使用Google Notebooks將我喜歡的連結存起來的習慣,今天突然靈機一動想說google本身會不會有類似的服務?於是直接搜尋"google bookmark",果不其然,還真的有,不過試用的結果是增加書籤的方式和在我使用google notebook儲書籤的方式一模一樣,然而google notebook還可以加註解並且開放給別人看(點這看我開放的一個書籤),這樣的情況下孰優孰劣就很難說了,不過我想goole若有出plugin讓我們可以和IE一樣使用相同的方法新增連結到google bookmark的話這樣google bookmark就會比較方便一點。
目前我有在使用的google服務都讓我感覺還不錯,google services方便的地方就是可以使用一個帳號存取所有的服務,這點真的非常方便,而且google所有的服務都可以只透過網頁使用,包括google的IM
只能說,如果yahoo是以內容取勝的話,那麼google就是以服務取勝
我實在越來越欣賞google了
2007年11月27日 星期二
看的真 看到美
在網路上經過一翻搜尋,費了一翻功夫才發現這是林強唱的[看的真 看到美]
我覺得非常好聽,與大家分享(點這下載)
眼睛張開就看到妳 單純的幸福真正美
看妳應該嘴笑眠也甜 不願將好夢來打醒
真情的感受最寶貴 奉獻付出沒怨歎自己
看的真 看到美 看到美滿的幸福的
此歌沒有出專輯,最特別的是在林強(lim giong....台語)的網頁上留email他就會用email附檔寄給你
林強的網頁已經著名cc2.0的授權條款,我想直接分享是沒有問題的
可能朋友有注意到 我採用cc2.0的授權條款 意指朋友有使用這些音樂作品的自由 你若喜歡這些音樂 可以有下列的自由
‧ 重製、散佈、展示及演出本著作
‧ 創作衍生著作
‧ 對本著作進行商業利用
可是若要進行商業利用請告知我一聲 我們溝通同意後就可以 但請保留創作人的姓名標示
2007年11月26日 星期一
NS2 2.31的安裝心得
因為需要用到NS2,目前可以下載的版本是ns2-2.31,然而網路上的安裝教學都只有到2.27,在成功的安裝2.31後,我就野人獻曝一下
事實上,我一開始是按照網路上的教學在windows下安裝ns2-2.27的,然而不得不說,在網路下安裝ns2實在是一件痛苦的過程,因為要先安裝Cygwin,而在安裝Cygwin時又要去手動選擇安裝一堆套件,因為Cygwin沒有select/install all之類的選項,而Cygwin又只提供Online Installer,也就是說,所有套件都是要在安裝時下載,而它的Installer在選擇從哪下載時,又不能使用文字選取,也就是說我雖然在學網下,我也知道NTU以及NCTU都在選單內,然而我只能使用眼睛在那一串長長的Ftp list中尋找這兩個Ftp site,然後,就等Cygwin安裝完
在經過一堆時間後,Cygwin終於安裝後,接下來終於要安裝NS2了,下載NS2後需要compile,在Cygwin下compile的速度只能說,慢!
不管如何,我Cygwin和Cygwin下的NS2安裝了好幾次(第一次應該是Cygwin的X-server沒有裝好,所以導致我NS2跑起來沒有畫面,之後又陸陸續續因為各種原因,裝的不是很順利)
而學弟的一席話點話點醒了我,之所以用cygwin是因為我主要的工作環境是在windows下
但是在windows下並不是只有cygwin一個solution
我最後採取了先裝VMWare,然後裝一個VMOS:RedHat FC6,然後在真正的Linux下安裝NS2
沒辦法,Cygwin實在太慢了,透過這樣的solution在linux下ns2 compile起來還蠻快的
而之所以要寫這一篇文章的原因是因為網路上的教學文章都只有教ns2 2.27的安裝,而這一次我裝的是2.31,有一些東西和2.27不同,因此我在這一篇寫出來,希望可以減低有幸看到這一篇文章的人的痛苦
NS2在Linux下的安裝和Windows下的Cygwin大同小異,網路上很多文章在教了,這裡稍微介紹一下就好,重點還是放在裝好之後的設定
以下的教學以Linux為主,Cygwin照表操課就好,而不管Linux還是Cygwin,你都必須要有一個裝好的Linux/Windows,若Linux不知道要安裝什麼module,則一開始安裝時選全部安裝即可,我裝的是FC6,算滿舊的,應該比FC6新的Linux都沒問題才對,Cygwin的部份請參考柯志亨老師的網頁
1.下載ns2 all at once到家目錄(home directory):ns-allinone-2.31.tar.gz (released Mar 10, 2007)
2.解開它,tar zxvf ns-allinone-2.31.tar.gz
3.安裝它,cd ns-allinone-2.31,./install(中間需要按y確定才會往下走)
ns2到這裡為止算安裝完成了,裝完後它會告訴你需要設定一些環境變數才能跑,因此你需要編輯.bashrc,若使用vi,則在bash下,vi ~/.bashrc,若欲使用linux dektop,則需顯示隱藏檔才能看得到.bashrc並編輯它,在# User specific aliases and functions這一行下面,加入以下這一段然後存檔
export NS_HOME=`pwd`/ns-allinone-2.31
export PATH=$NS_HOME/tcl8.4.14/unix:$NS_HOME/tk8.4.14/unix:$NS_HOME/bin:$NS_HOME/ns-2.31:$PATH
export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.14/unix:$NS_HOME/tk8.4.14/unix:$NS_HOME/otcl-1.13:$NS_HOME/lib:$LD_LIBRARY_PATH
export TCL_LIBRARY=$NS_HOME/tcl8.4.14/library
到這為止若沒有意外NS2應該已經裝好了,在ns 2.27的教學中會讓你以測試一個example來判斷ns2是否裝好,然而,由於ns 2.31的結構有改變,2.31的example實在太多,而我在2.31的目錄中也找不到2.27的那個example,不過後來我在NS by Example上有找到一個example可以測試,下載回來後在bash裡面執行
ns ns-simple.tcl
若出現下面這個畫面表示NS2安裝成功了,可以開始把玩NS2了