2007年10月26日 星期五

[Weekly Report]2007.10.20-2007.10.26

1.Reading Tasks:
1-1."Carrier Grade Voice over IP," p190-196
1-2.A part of RFC 3550" RTP: A Transport Protocol for Real-Time Applications":
Read the document to improve the understanding of RTP and for the assignment of "the Measurement of VoIP".

2.Attend WiMAX Demonstration:
-----
The draft of review report is following:
1.事前準備不足:
預備期太短,讀的東西很少,後來發現一個很方便的方法,就是可以使用google提供的快訊服務,像WiMAX這種熱門的議題,每天的新聞很多,讓搜尋引擎幫忙收集,寄到信箱裡,標題有興趣的再去詳細讀,這樣效率不錯。
e.g.在展覽時有人說我們學校跟仁愛鄉合作的偏遠地區遠距教學計劃(由石勝文老師主導),也是利用WiMAX連線,因為之前沒有讀過相關新聞,所以沒辦法很有把握地回應來賓的詢問。
2.太求好心切:
因為想把事情做好,做事很急,口氣就變差,所以有時候會沒顧到別人的感受。(正好印證了才說嘴就打了嘴,還敢說別人幹嘛這麼在意,最在意的其實是自己。我很怕被老師罵…)
3.學習合作的精神:
要學著只看自己的不足,忘記別人的失誤,這是很難的人生課題,一直都學不好。
4.溝通能力不足:
e.g.在最後一天下午構想3分鐘demo時,可能因為我太急了,沒有將細節想得很清楚,所以跟學姊溝通時只說個大概,跟嘉裕溝通時說得更是籠統,所以可 能大家會錯意了,正式上場時會出包也就在所難免。雖然一心想要把事情做好,但是吃快打破碗更 慘。
5.總務職責:
應該要事前將出差報帳相關注意事項調查清楚。
e.g.我們需要在會場明顯標的物處合照,以利報帳程序,但是因為不清楚這點,所以只照了其它攤位的展示,反而自己攤位和動態展示過程都沒拍到。

2007年10月25日 星期四

[Weekly Report]2007.10.13-2007.10.19

1.Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p175~190
1-1-2."Unix Programming Environment," 4-4:filter-awk
1-1-3. Website,"FreeBSD Developers' Handbook" :
<http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html>

2. Implementation Tasks:
Practice some awk examples about processing method of the /etc/passwd file, like find the user with no password,select specific fields to print out,and some other format output of it.

3.Web Technology Homework:
3-1 Install Apache
http://hsiao-ting.blogspot.com/2007/10/web-teconology-hw2-install-and-study.html
3-2 Use the Netcat utility
http://hsiao-ting.blogspot.com/2007/10/web-teconology-h.html
4. Prepare for the WiMAX Demonstration:
Learn the cooperation skills from the course of preparation, even there are many emotional stories in it.:D

VoIP HW3- Socket Programming

n
HW3
TCP
  • 請寫出TCP Server的多重客戶端,來同時管理多個客戶端
  • Client可以傳送檔案到Server
多客戶端可用select()來實現。
如何上傳檔案?

UDP
  • 每個Client端由鍵盤輸入字串,傳送給Server端時,
  • Server端要能顯示訊息是那一個Client所發送的
如何顯示是誰發送的訊息?

Reference:
Linux Socket Programming by Example
Socket Programming in C

VoIP HW2-如何確保RTP header 中SSRC欄位的獨一性?

題目:
Read RFC 3550 to study how the protocol guarantee the global uniqueness of SSRC.
Draw a flow chart of the algorithm in a powerPoint file and send it to voip-ta@voip.edu.tw
Deadline: 11/7中午12點
(為什麼我每次都要把問題想得這麼複雜????)

SSRC: Synchronization Source
32 bits
隨機選取,獨立於 IP address
用途:使一個RTP session 中的每個participant 都有獨一的識別資訊。
確保獨一性?RFC 3550 Appendix A.6

Note
n
MD5 routines (RFC 1321)其實就能確保兩兩RTP封包的SSRC值碰撞機率僅有百萬分之一。以下是實作時可用的functions:
getdomainname()
getwd()
getrusage()



Web Teconology HW3- paper study about HTTP protocol performance enhancement

Study Paper:
Network Performance Effects of HTTP/1.1, CSS1, and PNG

本篇論文主要就著HTTP/1.1針對HTTP/1.0所作的功能改進,做一效能評估。
HTTP/1.0有一大部分的封包是用來建立及關閉連結,且因為TCP有slow start這個演算法,會用好幾個封包去偵測網路狀況,以達到最好的傳輸率。這麼多非主要payload的封包,是造成網路壅塞的一項主因。(以現行HTTP多採1.1的角度來看,1.0看起來像製造了很多不必要的垃圾封包。)

作者主要分成兩種網路常見的html embeded type來探討兩代的HTTP對其的影響。
1.CSS(Cascading Style Sheets)
2.PNG(Portable Network Graphics)
也研究了兩代HTTP對於傳輸資料(圖像)壓縮的支援及(解)壓縮的效能。

我的想法:
新一代的協定(HTTP/1.1)其設計動機當然就是改良現行協定(也就是論文寫作時的HTTP/1.0),所以可以想見此篇論文的種種測試假設都會有好結果。
因為論文內容很多,老實說在這次作業繳交期限前沒辦法全部看完。看了一下論文架構,作者很著重地描述做了哪些測試,也將種種變因詳述,觀察他做實驗的做法,真的很有實事求是的精神,一次一個變因,一步一步記錄,這是一種很好的研究精神。回想自己常在測試程式時,一次改變好幾個地方,且以為出錯的不會是我改的那個小地方,結果改變了一組變因就突然可以運作,也就不能真正了解到底是調整哪個變數才是關鍵。

雖然是一篇十年前的論文,邏輯清晰、說理明白,應該可算是當代佳作,可以學習的地方很多。

關於Linux Distribution 的選擇

當初在選Linux Distribution 時,單純是因為身邊有高手是Debian的愛用者,那時候連什麼是Linux都傻傻搞不清楚,就跟著用下去了。慢慢地懂了一點這個好像很難用的作業系統,也看了好多人說Debian是「高手」在用的Distro,自認程度很差的我,幾度想換其它的distro玩看看,但就是沒時間重灌。最近研究進度有點落後,壓力來襲之下居然開始亂玩別人研究領域的軟體,像sipp、linphone等等,因為實驗室的server延用FreeBSD當作業系統,所以有人的研究必須先學著在FreeBSD上把sipp裝起來,光是這一步對一般Unix-like OS的初心者而言就是個大工程,可是我花了10分鐘就把source code compile到可以使用。這都要歸功於Debian的套件管理太強悍,而且因為使用的高手多,所以幾乎所有open source的軟體都有人包成deb,比起Fedora,使用者只需花時間在學習使用軟體上,關於作業系統、檔案架構,只要有個基本認識就可以開始玩重點部分。

不過,我也不知道這樣好或不好,因為以後出了社會,在公司裡是一定要使用Linux,但distro就不能自己選擇了,所以好像也得學著一步一腳印編譯程式…

2008.1.15 Reference:
FourDollars Blog

2007年10月15日 星期一

Web Technology Homework Rule

Turn in your report in class.
E-mail an electronic copy to me before deadline.
Deadline: 12:00 p.m. Sunday
Email subject: web-tech, homework#, student-id
Attached document format: ms-word (.doc) or acrobat (.pdf)
Make all your reports accessible through
http://www.ncnu.edu.tw/~youraccount/web_tech
老師的email:
hychen@csie.ncnu.edu.tw
----
寫作業都不看規則,會白做工。

2007年10月14日 星期日

Web Teconology HW2- Install and Study Apache

Install Apache in Linux:
要在Linux上設立一個WWW Server需要的套件有下列幾項:
Apache
httpd
mysql
mysql-server
php
php-devel
php-mysql
(如果不是使用像apt之類會自動管理套件相依性的軟體安裝Apache,則需自行注意以上套件是否皆有安裝,否則Apache會無法使用)

都安裝好後網頁放置在/var/www.
Apache設定檔在/ect/apache/httpd.conf

Install Apache in Windows:
在Windows底下,因為之前就以安裝Appserv程式,所以以Appserv來說明這部分。
選擇版本為 AppServ 2.5.7 ,
內含
Apache 2.2.3
PHP 5.1.6
MySQL 5.0.24a
phpMyAdmin-2.9.0.2

2007年10月12日 星期五

A Tip a Day Keeps the Doctor Away!(Keep Updating!!)

10/12
今天可愛的鐘逸學長認真指導學弟,如何在Fedora/Linux的環境下操作複雜的安裝過程時,發出一問:"到底要怎麼樣才可以一直往下點?(註1)"

解答如下:工具列:編輯(E)-->偏好設定→運作方式標籤→總是以瀏覽視窗開啟(圖)
(solved by 帥氣學長Po-Chou)

註1:白話一點的說法就是當我們雙擊一資料夾時,如何在同一視窗開啟,而不是像預設般又再開啟一視窗檢視。
註2:想不到吧!這可是很多人一直以來的疑問呢!雖然它很trivial,但也是個小tip. Enjoy it!!

10/13
如何增加PATH?
(還沒全試出來…)
10/14
Linux底下對網路做了新的設定,就必需重啟網卡。請在命令列下鍵入:
/etc/init.d/network restart
即可
11/3
in vim,using
:make %:r (神奇耶!←鄉巴佬)
就可以用runtime compiler編譯程式
11/4
用vim coding時,在第一行鍵入gg=G,即可將全部的code自動對齊(indent)
(很愛這個vim tip)


12/20
ssh登入畫面請修改/etc/motd
sshd config在/etc/sshd/sshd_config

Web Technology HW1-using netcat

Preamble:
netcat for Windows版本一直沒辦法安裝起來,所以大部分的實驗都是用Cygwin這個在Windows模擬Linux的Emulator實作。
基本用法:

nc [-option] host-name -p port-number

好用參數:
-h 幫助訊息 (help)
-i seconds 可以用來設置發送一行標準輸入訊息的間隔,以減少發送速度
-l 監聽模式 (listening some ports),聽說可以用來欺騙別的主機,為一種hacker手法,還沒試出來
-n 直接指定IP位址。 預設情況下,netcat會向DNS或NIS server 查詢IP位址對應的主機名稱或網路名稱,然而,在排除網路問題時,我們往往沒有DNS server可用,這時候可用-n選項讓netcat以點式四數格式來表示IP位址,而不進行任何查詢動作。
-o logfile 可以將連接往來傳輸的訊息,並將收到的訊息以16進制的形式記錄到logfile中。其中,每行的第一個字符為<或>,分別表示接收的訊息或發送的訊息。
-s ip-address 鎖定本地網路資源位址
-v 將得到的訊息詳細輸出(-vv會更加詳細)
-u UDP模式(因為研究主題與RTP和UDP相關,故此選項以後應該會常用到)
-------------
以下是我對netcat的man page中較有興趣的參數及用法做的實驗:

實作一:
nc ftp.ncnu.edu.tw 21
530 Please login with USER and PASS.
實作二:
nc http://www.ncnu.edu.tw 80
(一開始一直會time out就結束連線了)
實作三:
用兩台電腦A、B測試,A設為server端,則可用netcat使A的某個port處於監聽狀態:
nc -l -p 2000
(-l -p表示A的port 2000處於監聽狀態,實驗用的port最好不要設在well-known port的區間內)
而電腦B可使用netcat去傳遞資訊:
(這次實驗用的A 主機位於實驗室NAT下的IP Address:10.10.21.97)
nc 10.10.21.97 -p 1000
如此一來,在B鍵入任何字元,都可即時出現在A端。(理論上應該是即時,但是實驗時覺得delay有點嚴重)
此法也可用來在A、B兩端傳遞檔案,只要以root進入B主機,鍵入:
bzip2 -c /dev/sda | netcat 10.10.21.97 2000
(這個實驗我在Debian/Linux下實作的,因為需要一個完整的Linux OS和其root權限)

實作四:

以個人網站http://ms11.voip.edu.tw/~martensite/index.html

為測試網頁。

測試messages:

(1)一開始測netcat ms11.voip.edu.tw/~martensite 80

會得到forward host lookup failed: Unknown host : Connection timed out response

(2)netcat ms11.voip.edu.tw 80

get /~martensite/index.html 即可成功,並隨即關掉TCP連線。

(3)接下來我想測試若檢索圖片會有怎樣的效果:

netcat ms11.voip.edu.tw 80

get /~martensite/image/hsiao.JPG

目前http成功的就是這幾個步驟,其它的還待測試,推測應該是指令不熟和對網路架構不熟的緣故。



Epilog:
因為很多功能還沒有真正測試出來,所以還未能感受到所謂網路瑞士刀的功力。但是已可體會它應該是一個很有用的工具,在這次作業繳交後仍會繼續測試,且應用在研究上。
Reference:
Linux.com的介紹文章
http://www.linux.com/articles/114093

某論壇netcat介紹文章
http://bb.stormer.com.tw/viewthread.php?tid=522
傳遞檔案的部分參考:
cyberciti.biz的一篇簡介
http://www.cyberciti.biz/tips/howto-copy-compressed-drive-image-over-network.html
man page of GNU Netcat's

[Weekly Report]2007.10.6-2007.10.12

1. Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p166-175
1-1-2."Unix Programming Environment," 4.2~4.3
Practice sed and awk using the resource of "Unix Programming" class taught by prof. Klim(張克寧老師).
http://www.csie.ncnu.edu.tw/~klim/
(It is a helpful page for me.)

2. Implementation Tasks:
Besides sed and awk practice, I also study a tutorial about GNU make tool.("The Linux Programming Environment," adopted from Computer Science Department Texas State University)
It is easy enough for me containing lots of step-by step examples to practice. But I have not finished it this week.

2007年10月11日 星期四

本月學習重點:SED & AWK

練習題:
http://www.csie.ncnu.edu.tw/%7Eklim/unix-intro/exer-2.html
1.寫一個 sed 的 script file, 使以下二行指令的執行效果類似.
$ ps -ef | sed -f your-sed-script
$ ps -ef -o user,pid
解答:
#your-sed-script
s/\(................\).*/\1/
另解:
#(一個字串+一段空白+再一個字串)+一堆字串→\1:
#印出第一個group,即為所求。
#,在column name 為靠左對齊時,格式會有錯誤(e.g:cygwin)
s/\([^ ]* *[^ ]*\).*/\1/

ps.其實用awk就可以用很trivial的解法
ps -ef | awk '{print $1,$2}'
#簡單到不行,但會被人家說殺雞用牛刀。

---
AWK應用(系統管理者愛用的工具?)
1.從/etc/passwd檔案中,用 awk找出pid 不連續的區段。
2.找出沒有密碼的使用者
awk -F: 'NF > 1 && amp; $1 !~ /^[#+-]/ && $2=="" {print $0}'
3.列出所有帳號
awk -F: '{if ($3>=500) print $1}' /etc/passwd

2007年10月10日 星期三

about嘸蝦米

使用嘸蝦米也好幾年了,但是還是有字打不出來,要使用 '+某個同音字,這樣很遜,所以在網誌上加個entry記一下常忘的字好了。
慶LYHP(第二碼是Y,不是F,F被L合併了!)
懶LJCB(為什麼我每次最後一碼都拆成T,不懂自己在想什麼,應該是不會寫字…→文盲!XD)
碎 待解,目前用 'ZS代過。


----
立志成為快打小蝦!!

2007年10月8日 星期一

[VoIP HW1]92321033

What is the newest RFC document in
ftp.NCNU.edu.tw RFC 4776
ftp.NCHU.edu.tw RFC 2693
ftp.NCTU.edu.tw RFC (2007/10/08-2007/10/09.ftp of nctu was down)
ftp.IETF.edu.tw RFC 5072(IP Version 6 over PPP)

What is the Internet Draft with largest "draft number you can find?
draft number:48
(draft-ietf-dnsext-mdns-48.txt)

What is the status of the following protocol:
POP3:STANDARD(RFC 1939)
DNS:STANDARD(RFC 1035)
DHCP:DRAFT STANDARD(RFC 2131)

Find an RFC document in each of the following category:
*Obsoleted standard- RFC 1725 Post Office Protocol - Version 3 (Obsoleted by RFC1939, STD0053)
*Poetry- RFC 1121 Act one - the poems
*Experimental- RFC 0096 An Interactive Network Experiment to Study Modes of Access the Network Information Center
*History- RFC 0937 Post Office Protocol: Version 2
*Process documents- RFC 2026 The Internet Standards Process -- Revision 3


第二次修的作業版本:

[VoIP HW1] 97321526

1. What is the newest RFC document in
1.1 ftp.NCNU.edu.tw

5380:
Hierarchical Mobile IPv6 (HMIPv6) Mobility Management

1.2. ftp.NCHU.edu.tw

5242:
A Generalized Unified Character Code: Western European and CJK
Sections.

1.3. ftp.NCTU.edu.tw
??Not found

1.4. ftp.IETF.org

5380:
Hierarchical Mobile IPv6 (HMIPv6) Mobility Management

Note: NCNU server maintains the latest mirror of IETF server.


2. What is the Internet Draft with largest "draft number" you can find?

Ans: 48(draft-ietf-dnsext-mdns-48)
(Use awk utility twice that set different field separators getting the
"draft numbers", sorting draft numbers, and get the largest one.)


3. What is the status (proposed standard, draft standard, standard) of
the following protocol
3.1. POP3: STANDARD

3.2. DNS: STANDARD

3.3 DHCP:PROPOSED STANDARD


4. Find an RFC document in each of the following category:
4.1. Obsoleted standard
0821:Simple Mail Transfer Protocol. J. Postel

4.2. Joke
1882: The 12-Days of Technology Before Christmas ,B. Hancock,
(12/26/1995...why proposed this rfc after X'mas?)

4.3. Poetry
1121 Act one - the poems. J. Postel, L. Kleinrock, V.G. Cerf, B.Boehm

4.4. Experimental
4828 on TCP Friendly Rate Control (TFRC): The Small-Packet (SP) Variant

4.5. History
3245 History and Context of ENUM Operational Decisions

4.6. Process documents
2026 Internet Standards Process

Note:Humorous RFCs(http://tangentsoft.net/rfcs/humorous.html)

2007年10月7日 星期日

[Weekly Report]2007.9.29-2007.10.5

1. Reading Tasks:
1-1-1."Carrier Grade Voice over IP," p53-72
1-1-2."Unix Programming Environment," 3.5~4.2
sed and awk are still suspended by me,but I study prof.洪朝貴's homepage first to get a glance at them.

2. Implementation Tasks:
Regex practice and other Linux command in the studying books.
---
明顯還在混...

2007年10月2日 星期二

寫報告or論文時注意事項

一直有個疑問,若reference中引用到網頁上的資訊,該如何將之列在reference中?(格式為何)下面的文章寫得蠻清楚的。
http://apastyle.blogspot.com/2005/10/blog-post_12.html
以後引用網頁資訊時,要記得加類似Retrieve Oct.18,2005這樣的timestamp。

Oct.2

2007年10月1日 星期一

如何用Dev C++ debug

http://www.lis.ntu.edu.tw/~khchen/course/pl/pl2007/trace.htm
用了幾年,還不會用debug....XD

史記:留侯世家

【留侯世家第二十五】

  留侯張良者,其先韓人也。大父開地,相韓昭侯、宣惠王、襄哀王。父平,相釐王、悼惠王。悼惠王二十三年,平卒。卒二十歲,秦滅韓。良年少,未宦事韓。
韓破,良家僮三百人,弟死不葬,悉以家財求客刺秦王,為韓報仇,以大父、父五世相韓故。

  良嘗學禮淮陽。東見倉海君。得力士,為鐵椎重百二十斤。秦皇帝東游,良與客狙擊秦皇帝博浪沙中,誤中副車。秦皇帝大怒,大索天下,求賊甚急,為張良故也。良乃更名姓,亡匿下邳。

  良嘗間從容步遊下邳圯上,有一老父,衣褐,至良所,直墮其履圯下,顧謂良曰:「孺子,下取履!」良鄂然,欲毆之。為其老,彊忍,下取履。父曰:「履我!」良業為取履,因長跪履之。父以足受,笑而去。良殊大驚,隨目之。父去裏所,複還,曰:「孺子可教矣。後五日平明,與我會此。」良因怪之,跪曰:「諾。」五日平明,良往。父已先在,怒曰:「與老人期,後,何也?」去,曰:
「後五日早會。」五日雞鳴,良往。父又先在,複怒曰:「後,何也?」去,曰:
「後五日複早來。」五日,良夜未半往。有頃,父亦來,喜曰:「當如是。」出一
編書,曰:「讀此則為王者師矣。後十年興。十三年孺子見我濟北,穀城山下黃石,即我矣。」遂去,無他言,不復見。旦日視其書,乃太公兵法也。良因異之,常習
誦讀之。
--------

既然我已經算是孺子,那我可以「兩腳」都進實驗室了嗎?
我的心都要碎了…

卡關記錄

www.rtfiber.com.tw/~changyj/recheck.1/recheck.1.html
這個範例真的是測試全為數字的正規表示式嗎?做實驗結果不符合…
(補完)
全為數字的正規表示範例應為:
-bash-2.05b$ echo '12343' | grep '^[0-9][0-9]*(我瘋了!作夢想到爬起來補完2007.10.1 4:19am)
--------
(in the "Unix Programming Environment)
grep 配上一堆\ $字組
e.g.
grep \$
grep \\$
grep \\\$
grep '\$'
grep '\'$'

grep \\
grep \\\\
grep "\$"
grep '"$'
grep "$"
測試檔:
$$$123
test $$ finger
$$
$
\
\\
freedom test tab test 1 2 3
\\\
\\jj//
\$
\\$
\\\$
\$\$
[]\$$$
$$$
$$
\\\\
122\\123\\\$

edede///\\$$
123\/$
解答:
簡言之,就是經過bash和grep各剝一層皮。

ls -l | sort +6nr
(我要按存取時間排序,但不行,還是依size排序,應該是指令下錯了,不過+5nr.+7nr.....都試過了…)
解答:

n>&m
不給append
e.g.
將time wc file >wc.out 2>time.out指令
改寫成time wc file >wc.out 2>&1
cat wc.out應該要append standard error output, but in vain.

不會用uniq(明明就重覆了還給我印出來)


sed 的tab怎麼打不出來(書上用→表示,可是在bash下按沒反應)
解答原來是版本的問題。使用sed 4.1.5就可以\t代表tab,而在ms11上的sed版本居然不可考?(sed --version不鳥我...)
還好有灌cygwin.......我知道電腦裡也有Debian/Linux,可是I am a lazybone.


about sed and awk....
(好想跳過去好想跳過去好想跳過去好想跳過去好想跳過去)
--------