2008年12月26日 星期五
常用簡體字意思
帧 -> 封包 (EX: 以太网帧长度 ->乙太網路封包長度)
数据库->資料庫
素數定理->質數定理
散列表 -> 雜湊表(Hash Table)
析构函数 -> 解構函數
續~
2008年12月20日 星期六
基地台定位
全球LBS技術與服務發展現況分析_950117
http://blog.yam.com/victor0221/article/16202379 from 維克多的日記
01上 有趣的GOOGLE MAP討論串
http://www.mobile01.com/topicdetail.php?f=129&t=555183&last=7865653 from mobile01
看完以上兩個 最重要的就是..
GSM Location-沒有GPS怎麼辦?用行動電話機地台來定位吧 from 阿修的部落格
2008年12月14日 星期日
字元分割
ex:
var stringArray = "123,456,789" ;
var getElement = stringArray.split(',')[1] ;
getElement 輸出即為 456 ~~~
PHP 提供 explode() //可以用特定字元切割字串,並存入陣列中
語法: $要被存入的陣列變數 = explode("分隔符號",要被切割的字串);
ex :
$engWords = "abc,def,ghi,jkw" ;
$words = explode(",", $engWords);
echo $words[0]; // abc
echo $words[1]; // def
ref: http://tw.php.net/explode
2008年11月15日 星期六
在BLOG貼程式碼
進入以後 貼上程式碼 點擊encode
就會自動產生
<
"
再繼續測試上面的話咧
&lt;
&quot;
&amp;lt;
&amp;quot;
...別無聊了
測試 string 於 javascript & php
題外話~~
重點~~~~~~~~~~~~~~
傳過來是
<input name="phonenumer" type="text" value="phone" >
<input name="checknum" type="text" value="chk" >
這個來接收
accept.php
<?php
$phonenumber = $_POST['phonenumer'] ;
$checknum = $_POST['checknum'] ;
$_SESSION['phonenumber']=$_POST['phonenumer'] ;
echo '$phonenumber='.$phonenumber ; //$phonenumber=phone
echo $phonenumber ; //phone
echo "$checknum" ; //chk
?>
<script type="text/javascript">
//<![CDATA[
alert("ffff") ; //ffff
var phonenumber1 ="4536" ;
//表單傳遞資訊存入javascript
alert("<?php echo 'fssfdsfsdf' ?>") ; //fssfdsfsdf
alert("<?php echo "$phonenumber" ?>") ; //0988...
alert('phonenumber1') ; //phonenumber1
alert("phonenumber12") ; //phonenumber12
alert(phonenumber1) ; //phone
var phonenumber = <?php echo "\"$phonenumber\"" ?> ;
alert(phonenumber) //phone
var phonenumber = "<?php echo $phonenumber ?>" ; //存成 phone 字串
alert(phonenumber + '000') // //phone000
var checknum = "<?php echo "$checknum" ?>" ; // 存成 chk 字串
alert(checknum + '000') //chk000
alert("http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+"&phonenumber="+ phonenumber) ;
// XMLHttpRequest通訊 ;
// function getLonLat(url){
// var request = GXmlHttp.create();
// var theDate = new Date(); //為了避免瀏覽器快取
// request.open("GET","http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+"&//phonenumber="+ phonenumberr="+ phonenumber , true) ;
//失敗...
var url="http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp="+theDate.getDate()+theDate.getMinutes()+theDate.getSeconds()+"&phonenumber="+ phonenumber ;
alert(url); //http://140.1xx.xxx.xxx/ixxxx/mxxxl.php?temp=165349&phonenumber=phone
2008年11月12日 星期三
xmlHttp
http://blog.roodo.com/jiing/archives/1052181.html
http://www.microsoft.com/taiwan/msdn/columns/ASPNET_2/aspnet_2_20051212.htm
http://newweb.syups.tp.edu.tw/documents/memo/PHP/php_develop.htm
http://audi.tw/AJAX/
2008年11月6日 星期四
phpmyadmin 安裝
之前講過 IIS 和 PHP安裝了 接下來講 phpmyadmin
我們使用 appserv-win32-2.5.9.exe
憑剛裝好的印象簡要:
1. 設定安裝路徑: C:php
2. 取消勾選安裝apache phphypertext
3. 於IIS 預設的網站點擊右鍵->新增 ->虛擬路徑 路徑為phpmyadmin剛裝好的地方(c:/php/www/phpmyadmin)
這樣就OK了~
2008年10月30日 星期四
SystemState.OwnerPhoneNumber 取得手機電話號碼
SystemState.OwnerPhoneNumber 來得到~
但 為什麼我們抓不到呢~?
因為 這裡抓到的電話號碼是 事先已被設定在手機裡頭的 (非sim卡)
你可以看看 (開始->設定->個人資訊)
那如何實做抓取SIM卡的電話號碼呢?
在路徑
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Samples\CPP\Win32\GetPhoneNumber\
有sample可以學習~
但要注意不是所有GSM的sim卡都支援號碼內建
2008年10月15日 星期三
Page has Expired (php)
最近發現 之前寫的網頁有問題嚕~
網頁裡面的表單送出後,再按"上一頁"
就會出現
"Warning: Page has Expired The page you requested was created using information you submitted in a form. This page is no longer available. As a security precaution, Internet Explorer does not automatically resubmit your information for you.
To resubmit your information and view this Web page, click the Refresh button. "
目前看到的解決方法~
所以囉~到php.ini 找找"session.cache_limiter" 把值設為"private"看看~
2008年10月3日 星期五
C# 聯結mysql
先到 mysql 官網
http://dev.mysql.com/downloads/connector/
選擇Connector/Net
選第二個
安裝步驟:
http://dev.mysql.com/doc/refman/5.0/en/connector-net-installation-windows.html
法二
MySQLDriverCS
http://sourceforge.net/project/showfiles.php?group_id=63165
2008年9月29日 星期一
於vs2005開啟一PDA專案檔
點擊.sln檔案時,跳出一個錯誤視窗
從使用者資料存放區擷取資訊時發生錯誤。找不到平台。
確定後又跳一個 : 無法開啟專案,因為它參考了您的資料存放區中沒有的裝置平台。
這個原因是因為開發這個PDA程式時是在某個平台上的SDK開發的
要怎麼看呢~ 用筆記本開啟.csproj檔, 找到下面幾行敘述
PocketPC 5.01 是 WIndows Mobile 5.0的平台,要安裝相關的SDK,可以到下載中心下載.
http://www.microsoft.com/downloads/details.aspx?FamilyID=83a52af2-f524-4ec5-9155-717cbe5d25ed&DisplayLang=en
2008年6月14日 星期六
實驗八 影像傳輸效能分析與評估
實驗步驟與實驗七差不多
STEP3
利用mp4trace將影片中每一個frame相關資訊取出存在foreman_qcif.st檔案中
STEP4
接下來就可以使用ns2模擬工具開始模擬網路效能啦
2008年6月13日 星期五
實驗七 MyEalvid-NT
定義: 可解畫面比例 = 所有可解碼的畫面數除以一個影像的所有畫面數
所以囉~可解畫面比例的值越大代表影像品質越好囉!
STEP3
再進行評估分析前,須先轉換trace file的格式
STEP4
使用et這個程式進行記錄檔sd、rd、Verbose_StarWarsIV.st做比較,就可得知在此種情晃下可解畫面數及可解畫面比例的大小為多少
可知,這次網路模擬傳輸中共送出163682 packets,其中 I-frame:28770 p-frame:45339 B-frame:89573
總共遺失:1595 其中I-frame:281 p-frame:433 B-frame:881
可解畫面比例為0.913543
total directly decodable frame 代表的意義為這個畫面所分割出來的封包全部被接收端所接收到的數目
STEP5
經由下面操作可得平均延遲時間及最大延遲時間
先把資料收集起來 $awk'{print $1, $2}' delay_pkt.txt > delay_pkt
開始繪圖
2008年6月11日 星期三
php 寫入檔案問題
$handle = fopen("c:/phpsid.txt" , "w+") ;
fwrite($handle , $contents) ;
fclose($handle) ;
出現
Warning: fopen(c:/phpsid.txt) [function.fopen]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 452
Warning: fwrite(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 453
Warning: fclose(): supplied argument is not a valid stream resource in C:\Inetpub\wwwroot\php_pratice_gmapuser\setarea_1.0\setarea.php on line 454
怪哉~
IIS 主目錄 下: 讀取 、 寫入 指令碼來源存取 都以勾選
使用權限也選擇 指令碼及執行檔
一直無法寫入,不知道哪裡有問題 悶~~
程式碼換成
$handle = fopen("c:/phpsid.txt" , "r") ;
$contents = fread($handle , filesize("phpsid.txt")) ;
fclose($handle) ;
讀取,是可行的~~~
2008年6月5日 星期四
實驗六: MyEvalVid
Video Server 傳送影像至 Video Receiver,中間經過Internet 、無線網路,我們討論無線連接造成的封包遺失。
我們針對影像使用MyEvalvid 做Peak to Signal Nosie Ratio 評估,PSNR(峰值訊號雜訊比程式)是一種較為被大眾接受的影像品質鑑定客觀指標。 步驟如下
用mp4trace.exe 將每一個frame的資訊擷取出來存到forman_qcif.st中
其中 192.168.0.2 is destination ip ,destination port number is 12346
(這邊設定不重要,因為沒有真的傳上網)
現在在lab6裡頭有這四檔案
foreman_qcif.st 裡面有400筆資料
between H and P or P and P have 2 B frame (與壓縮時的參數相關)
STEP4
開始用NS2模擬工具模擬網路效能 (lab6_1.tcl)
參數為 :
opt(0) = good->good 的機率
opt(1) = bad->bad 的機率
opt(2) = 在 good state下,封包發生錯誤的機率
opt(3) = 在 bad state下,封包發生錯誤的機率
opt(4) = seed number
opt(5) = 把每一畫面切成多少size大小的封包
STEP6
再次使用ffmpeg將重建的foreman_qcife.mp4 轉回foreman_qcife.yuv
使用avgpsnr針對重建後的 foreman_qcife.yuv 及原始foreman_qcif.yuv,獲得重建後foreman_qcife.yuv的PSNR值為34.839083
STEP8接下來用YUViwer.exe真正觀察影片差異
左邊為原始影像,右邊為重建影像
因為封包遺失率為0.01 所以好像也不怎麼明顯
不過放大後看就有差了,畫面會比較霧些
2008年6月4日 星期三
gmap進度
但是這個變數存在於function內,非廣義變數,要看完全部才能確定是否另設成廣義變數
因為endPointsMarker[i]出現在很多函式內,用不同名稱的引數做傳遞。
目前想到兩個方法:
1.用廣義變數,一但對點做任何變動或更新,就改變值(字串)。但是會更動很多地方..
2.也許只要在端點移動結束且勾選已設定好區域在抓函式內的變數就好(物件)。
終於有點進度了~
但是資料庫那邊出現
Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on '140.115.51.5' (10060) in C:\Inetpub\wwwroot\php_pratice_gmapuser\db.php on line 8
Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Inetpub\wwwroot\php_pratice_gmapuser\db.php on line 10
連線無法建立,孤狗結果是資料庫server那邊有問題,要重開,再跟他們說吧~
2008年5月22日 星期四
準備工具
"MmApp" generate packet , transform by "UdpMmAgent","UdpMmAgent"衍生自"UdpAgent"類別
封包是用"hdr_mm"結構來描述。
程式路徑:
packet.h c:\cygwin\home\STD416\ns-allinone-2.29\common
ns-packet.tcl c:\cygwin\home\STD416\ns-allinone-2.29\tcl\lib
agent.h c:\cygwin\home\STD416\ns-allinone-2.29\common
app.h c:\cygwin\home\STD416\ns-allinone-2.29\apps
ns-default.tcl c:\cygwin\home\STD416\ns-allinone-2.29\tcl\lib
timer-handler c:\cygwin\home\STD416\ns-allinone-2.29\common
2008年5月21日 星期三
無線隨意網路路由協定
- proactive routing protocol:
Wireless Routing Protocol , Destination-Sequenced Distance-Vector protocol
- reactive routing protocol :
Dynamic Source Routing , Ad hoc On-Demand Distance Vector Routing
比較 DSDV vs. AODV vs. DSR
DSDV
DSDV中美一個無線節點必須儲存並持續更新一個路由表,路由表內記錄著"目的地位置(destination)"、"下一個節點(next hop)"、"路徑節點數(hop count)"、"循序號碼(sequence number)"與 "第一次相連時間(install)"
路徑表的更新擁有time-driven & event-driven ,可以定期向周圍傳送路由表資訊,也可能因為網路拓樸劇變而向周圍傳送...
AODV
當無線節點要傳送封包出去時,先查找自己的路徑表,若無目的地節點的資訊,則廣播Route Requests(RREQs)封包尋找路徑。
每個RREQs都配有一個ID當無線節點收到RREQs時,先看ID之前有沒有收過,有的話就丟棄,以免RREQs充斥在網路上,再檢查自己是不是封包裡的目的地位置,不是,則看此中繼點(intermediate node)是否有可用的路徑可以到達目的地節點,沒有,則根據封包內資訊修改路徑表後再廣播出去。
每一個收到RREQs的無線節點都會cache住如何返回當時發出Route Reply要求來源端的路徑,因此當中繼點收到RREQ時,可以利用單點廣播方法送出RREP從目的地端到來源端,途中的無線節點根據RREP的位置序號更改路徑表,最後來源端的路徑表就含有到目的地節點的entry,接下來開始資料的傳送。
DSR
利用source routing觀念,即Tx知道Rx完整的跳躍路徑(hop-by-hop route)。
每個節點都有路徑暫存器,而路徑資訊直接記錄在每個封包的header中。
路徑發現程序(route discovery)與AODV類似,欲傳送封包時,先看自己的路徑表,若找不到到達目的地端的route entry,則作廣播動作發送RREQs,而收到RREQ的節點會回覆RREP給原本的來源端或中繼點,藉此產生路徑。不同的是,路徑記錄每經過一個跳耀,就會將跳躍ID季在RREQ的路徑記錄中,這樣,路徑記錄到目的地時就會有該路徑所有節點的資訊,目的端會在中多的REQUEST中挑選最佳路徑,根據路徑記錄傳送一個Route Reply回到來源端,來源端再將紀錄再route reply裡的路徑記錄儲存在路由表中。
2008年5月8日 星期四
實驗十 無線網路效能分析探討(二) Ad Hoc網路路由協定效能分析
實驗目的
1.了解如在在NS2中建立無線隨意網路(wireless Ad Hoc network)。
2.學習分析無線隨意網路路由協定(Ad Hoc routing protocols)的效能。
背景知識
行動式手提設備(手機、PDA、筆電),都屬於可移動的無線裝置,而無線傳輸方式可分成兩大類
- Infrastructure:透過基地台,由中央控制的傳輸模式
- Wireless Ad Hoc Network:特色是所有節點以對等方式進行無線網路存取,不需透過無線基地台 (wiki. Sony PSP 網路對戰就是這樣一個應用,還沒玩過,殘念~~)
無線隨意網路路由協定 :
- Proactive routing protocol (table-driven protocol)
每個無線節點固定一段時間就會發送路徑訊息,各個無線節點依據收集近來的資料更新自己的路徑表,網路拓樸更動時,所有節點都會收到最新的路徑資訊,這種持續的更新會讓所有節點隨時有完整的路徑。
優點:Proactive routing protocol 讓每個送出的封包立刻得知到達目的地的路徑,沒有任何延遲 缺點:這種協定因為週期性的廣播訊息,浪費大量頻寬與無線網路節點的電源
現存的協定有:
Wireless Routing Protocol Destination-Sequenced Distance-Vector protocol
- Reactive routing protocol (demand-driven routing protocol)
當一個節點要傳送資料給另一個節點時,來源節點會呼叫一個路徑發現程序(route-discovery process)並將此保存在暫存器中,直到過期或路徑無效
優點:只有在有需要時才主動發現路徑,不需要保存對整個網路環境的路由資訊,所以頻寬使用量較小。
缺點:路徑發現程序會造成延遲,平均延遲時間較長,所以尋找路徑時間較長。
評估參數(Performance Metrics)
下面列出在此類效能分析實驗中最常用到的幾個評估參數 1.封包送達比例(Packet delivery fraction):CBR 來源端傳送封包數/到達目的地端封包數 2.封包平均點到點延遲時間 (Average end-to-end delay of data packets):所有延遲時間的總和,包括 發現路徑的緩衝時間、MAC層的重傳時間、傳遞時間 等。 3.第一個封包收到的時間 : 用來評估路由表收斂時間,若越早收到則表是收斂速度越快,這樣才能越早把封包從Tx送到Rx 實驗步驟 intruduce tools : cbrgen & setdest cbrgen (~/ns-allinone-2.29/ns-2.29/indep-utils/cmu-scen-gen/cbrgen.tcl): generate TCP flow or CBR flow 用法 ns cbrgen [-type cbrtcp] [-nn node] [-seed seed] [-mc connections] [-rate rate] 舉例: p1
2008年4月26日 星期六
lab9 無線網路效能分析探討(-) 隱藏節點和暴露節點問題
實驗目的:
- 了解什麼是隱藏節點和暴露節點
- 了解 RTS/CTS如何降低隱藏節點問題發生的機會,以提升系統效能 3. 了解 NS2 中無線傳輸模型和門檻的觀念
背景知識:
- 隱藏節點問題:
節點B在節點A和節點C傳輸範圍內的交集區域內,但是A和C都不在互相的傳輸範圍內,這時有兩個節點A,C同時想傳送資料給節點B,節點A傳送資料給B時,節點C會認為目前網路閒置,同時也會傳送資料給節點B,同時傳送給節點B的資料就會發生碰撞(Collision).
這種因傳送距離而發生的誤判的問題稱為隱藏節點問題(Hidden Terminal Problem).
- 降低隱藏節點問題
當Tx在送出資料前先發送一個控制封包 (Request to Send),告知Tx傳送範圍內的所有節點不要有任何傳輸的動作,而Rx如果目前是空閒的,則回應一個Clear to Send 封包告訴Tx可以開始傳送料,如此一來就可以降低隱藏節點的問題,但是並不能完全解決! - 暴露節點問題Tx:C 要傳送資料給D時,發現(聽到)傳輸範圍內的B正在傳送資料給A(C是B的暴露節點),Tx:C就會延遲傳送,但這種延遲是不必要的,因為B傳送資料給A與C傳送資料給D並不衝突,因此這種因為聽到傳輸範圍內有節點在傳輸,而延遲傳輸就是暴露節點的問題
- 使用RTS/CTS
我們可能想到使用RTS/CTS,當C聽到B送出的RTS,但卻沒聽到相對應的CTS,那麼不就可以推論出C是自己是暴露節點了嗎?!所以C可以同時傳送資料出去,但在這種情況下,如果是別人傳送資料給C,那麼就可能預B傳送的資料發生碰撞,所以使用RTS/CTS並不能解決暴露節點的問題 - 傳輸模型及門檻
NS2實做了一些傳輸模型:
Free Space 是最理想的傳輸模型(檔案在~/ns-2.29/mobile/propagation.h & propagation.cc)
Two Ray Ground 除了考慮直線 path loss也考慮地面反射(reflection of ground)
(檔案在~/ns-2.29/mobile/tworayground.h & tworayground.cc)
Shadowing 是用來模擬Tx到Rx中間有障礙物時對傳送訊號的影響,常用於indoor
(檔案在~/ns-2.29/mobile/shadowing.h & shadowing.cc)
關於"門檻",NS2主要利用訊號強度門檻(Threshold)方式,判斷封包是否成功收到
NS2設定一個訊號偵測(Carrier Sense)的門檻CSThresh_ ,決定封包是否能被Rx偵測出來 (於PHY Module)
NS2會設定另一個RxThresh_ ,用來判斷封包是否能被Rx所接收 (於MAC)
(檔案在~/ns-2.29/mobile/wireless-phy.h & wireless-phy.cc)
開始實驗步驟
STEP1.
ns2提供一個小工具程式threshold.cc(在ns-allinone-2.29/ns-2.29/indep-utils/propagation),他可以藉由輸入想要使用的傳輸模型和有效傳輸距離,而輸出相對應的參數值
用g++編譯它
沒關係 不影響我們的作業
編譯完後在同目錄下會產生一個threshold.exe
STEP2
執行
它告訴我們使用方法囉
來測試看看 設定傳輸模式TwoRayGround 有效傳輸距離250m
顯示參數
STEP3
用TCL模擬程式驗證(home/clark/lab9/test_2nodes.tcl)
這程式設定有兩節點n0(30,30),n1(280,30) n0要傳輸給n1,參數如上設定
執行
模擬結束,會產生接收紀錄檔,打開來看看,確實有接收到
STEP4
那如果變更超過可接受距離呢?
可知n1完全沒接收到n0傳來的資料
接下來要討論隱藏節點問題了
如圖一nA-nB d=100m ,nB-nC d=100 m,節點之間的carrier sense d=150m 傳送有效距離為120m
利用小工具知道我們要設定的參數
對於CSThresh_的設定 ,因為用的公是相同,只要把RXThresh_結果拿來用即可
TCL模擬程式
執行
$ns test_hidden_terminal.tcl
我們看執行後產生的紀錄檔
sd1:
sd2:
rd1:
rd2:
接下來討論暴露節點問題
如圖2所示
S1,S2同時想分別傳送 資料給R1,R2,節點之間距離都是100m ,carrier sense 距離120m,有效傳輸距離100m用小工具算出相對應參數
執行 $ns test_exposed_terminal.tcl
記錄檔封包
更改 ctsrts rd1
rd2
結果顯示 使用RTS/CTS不能有效解決暴露節點的問題