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連線建立要遵循以下步驟:
- 客戶端開啟一個隨機的埠(埠號大於1024,在這裡,我們稱它為x),同時一個FTP行程連線至伺服器的21號命令埠。此時,該tcp連線的來源地埠為客戶端指定的隨機埠x,目的地埠(遠端埠)為伺服器上的21號埠。
- 客戶端開始監聽埠(x+1),同時向伺服器發送一個埠命令(透過伺服器的21號命令埠),此命令告訴伺服器客戶端正在監聽的埠號並且已準備好從此埠接收資料。這個埠就是我們所知的資料埠。
- 伺服器開啟20號源埠並且建立和客戶端資料埠的連線。此時,來源地的埠為20,遠端資料(目的地)埠為(x+1)。
- 客戶端透過原生的資料埠建立一個和伺服器20號埠的連線,然後向伺服器發送一個應答,告訴伺服器它已經建立好了一個連線。
(參考自維基百科)
2.recursive call vs iterated call 之差別性(用N階來做舉例兩者之間的差異)
Recursive call : 遞回呼叫,在函數之中可呼叫函數本身。函數再進行遞回呼叫時,載期所使用的變數被堆積在堆疊區域,每次執行return敘述,函數在該層呼叫中所使用的變數就從堆疊返回。每次執行return敘述,問題範圍縮小,具有一個中止遞回之條件。
Iterated call: 反覆運算,重複反饋過程的活動,其目的通常是為了逼近所需的目標或結果。美一次對過程的重複被稱為一次「迭代」,而每一次迭代得到的結果會被用來做為下一次迭代的初始執。