2012年10月26日 星期五

作業6


1.FTP的使用流程與解釋

FTP:File Transfer Protocol (client and server),它是一種獲得網際網路世界普遍採用的通訊協定之一


FTP 伺服器種類大致可分為「匿名式」和「非匿名式」兩種。


  • 匿名式的FTP 

這就是俗稱的 FTP 站,在這些 FTP 站裡面存放著各式各樣的檔案,如共享軟體、免費軟體 ... 供 Internet 使用者取用。這些 FTP 站都是開放式的,又稱為「匿名式 FTP 伺服器」(Anonymous FTP Server),因為這些站都有開放一個叫做Anonymous Account(匿名帳號)的公用帳號供大家使用,所以任何人都能登入。當您連上匿名式的 FTP 站時,只要以 Anonymous為username,以您的 E-Mail 位址為 password,即可合法登入,進行檔案傳輸。




  • 非匿名式的FTP 



並非所有 Internet 上的工作站或主機,都允許匿名式的登入進行檔案傳輸。對於那些非匿名式的 FTP Server,您就得擁有該 Server 的使用權。取得帳號及密碼後,才能以該 username 和 password 登入,進行檔案傳輸,而且所傳遞的檔案也只限於您擁有存取權的檔案。


FTP有兩種使用模式:主動和被動。
主動模式要求客戶端和伺服器端同時開啟並且監聽一個埠以建立連線。在這種情況下,客戶端由於安裝了防火牆會產生一些問題。所以,創立了被動模式。被動模式只要求伺服器端產生一個監聽相應埠的行程,這樣就可以繞過客戶端安裝了防火牆的問題。
一個主動模式的FTP連線建立要遵循以下步驟:

  1. 客戶端開啟一個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時一個FTP行程連線至伺服器的21號命令埠。此時,該tcp連線的來源地埠為客戶端指定的隨機埠x,目的地埠(遠端埠)為伺服器上的21號埠。 
  2. 客戶端開始監聽埠(x+1),同時向伺服器發送一個埠命令(透過伺服器的21號命令埠),此命令告訴伺服器客戶端正在監聽的埠號並且已準備好從此埠接收資料。這個埠就是我們所知的資料埠。 
  3. 伺服器開啟20號源埠並且建立和客戶端資料埠的連線。此時,來源地的埠為20,遠端資料(目的地)埠為(x+1)。 
  4. 客戶端透過原生的資料埠建立一個和伺服器20號埠的連線,然後向伺服器發送一個應答,告訴伺服器它已經建立好了一個連線。 

(參考自維基百科)


2.recursive call vs iterated call 之差別性(用N階來做舉例兩者之間的差異)


 Recursive call : 遞回呼叫,在函數之中可呼叫函數本身。函數再進行遞回呼叫時,載期所使用的變數被堆積在堆疊區域,每次執行return敘述,函數在該層呼叫中所使用的變數就從堆疊返回。每次執行return敘述,問題範圍縮小,具有一個中止遞回之條件。


Iterated call: 反覆運算,重複反饋過程的活動,其目的通常是為了逼近所需的目標或結果。美一次對過程的重複被稱為一次「迭代」,而每一次迭代得到的結果會被用來做為下一次迭代的初始執。

2012年10月19日 星期五

課堂筆記



第五周作業


1.找一個HTML語法的 (Client-Server) programming 然後對這支程式內容做解釋
ans:


讓網頁具有 Google 搜尋功能
標準語法:<a href="想連結網址">連結地的名稱</a>===可與其它網站連結

<!-- Search Google -->
<center>
<form method=get action="http://www.google.com/search">
<table bgcolor="#FFFFFF"><tr><td>
<a href="http://www.google.com">
<img src="http://www.google.com/logos/Logo_40wht.gif" border="0"
alt="Google" align="absmiddle"></a>
<input type=text name=q size=31 maxlength=255 value="">
<input type=hidden name=ie value=Big5>
<input type=hidden name=oe value=Big5>
<input type=hidden name=hl value=zh-TW>
<input type=submit name=btnG value="Google搜尋">
</td></tr></table>
</form>
</center>
<!-- Search Google -->



2.如何提高Cache的hit ratio?
一個是提高db_block_buffers的值,也就是擴大數據緩衝區的值,讓塊aged out of memory的機率變小,讓更多的塊住入緩存,這是一種明顯的提高數據塊內存訪問命中率的方法。一個是根據訪問的特徵,使用不同的塊大小,設置不同塊所對應緩衝區的大小,且不同塊之間緩衝區的使用互部影響。

2012年10月6日 星期六

Transparent 與 Virtual 的應用


Transparent透通 : 實際上有,但使用起來好像沒有


         應用:Transparent Proxy
         什麼是Transparent Proxy?
         一般來說,我們為了節省網路頻寬、加快網路瀏覽速度更甚者為了達到控制
         公司內部的網頁瀏覽情況等等時會使用proxy server,但是假設公司內部有
         一千台電腦,使用電腦的人又是電腦白痴的時候,為了不要浪費時間教會
         使用者如何設定瀏覽器Proxy或者是要節省這些功夫,最快的方法就是在網
         路出口的地方像是NAT伺服器或者L4 switch上面,將這些流量自動的導
         到proxy server上面。這樣一來,使用者完全不需要做任何設定,瀏覽網
         頁時自動就會透過ProxyServer連線出去,對使用者來說,這個proxy就像
         是透明的一樣,完全感覺不到它的存在。



Virtual虛擬:實際上沒有,但使用起來好像有

         應用:Java 的 Virtual Stack Machine
         執行Java應用程式必須安裝Java Runtime Environment(JRE),JRE內部有一個Java虛擬
         機器(Java Virtual Machine,JVM)以及一些標準的類別庫(Class Library)。透過JVM的
         虛擬機器才能在電腦系統執行Java應用程式(Java Application)。

         機器是真實的一個物件,但在這裡,他使用起來好像是有這個東西,但實際上它不是實
        體是不存在的。