文件傳輸協議(File Transfer Protocol, FTP)是一個用於在兩台裝有不同作業系統的機器中傳輸電腦文件的軟體標準。它屬於網路協議組的應用層。FTP是一個8位的客戶端-伺服器協議,能操作任何類型的文件而不需要進一步處理,就像MIME或Unencode一樣。但是,FTP有著極高的延時,這意味著,從開始請求到第一次接收需求數據之間的時間會非常長,並且不時的必需執行一些冗長的登陸進程
主動模式(Active Mode)
FTP Client 隨機選擇的TCP port(通常>1024)呼叫FTP server 的port 21請求連線。進行「TCP Three-Way Handshake」當順利完成「TCPThree-Way Handshake」之後,便建立「命令連線」的通道,這個連線通道僅能進行FTP 的「指令」。

被動模式(Passive Mode)
建立「命令連線」的通道的方式和主動模式一樣,但是如果需要資料傳送,就是要建立「資料連線」通道時,Client 會送出PASV(Passive)指令,告訴FTP Server,要利用被動模式建立「資料連線」通道。
當 FTP Server 收到PASV 指令時,便會在某個>1024 port 上Listen,等待
FTP Client 來建立資料連線通道,並利用命令連線通道告知FTP
Client:「我在那個Port 上等你連線」。
然後 FTP Client 會隨機再選一個>1024 的port 向FTP Server 所告知port進行Three-Way Handshake 並建立「資料連線」通道連線。因為這種「資料連線」通道建立方式是FTP Server 被動等FTP Client 來連線,故稱為「被動模式(Active Mode)」。
2.recursive call vs iterated call 之差別性(用N階來做舉例兩者之間的差異)
recursive:
所謂遞迴就是允許一個 Procedure 或 Function 呼叫自己本身。當然,他不能無限制地呼叫自己,否則將造成無窮迴圈,所以它都會伴隨一個「終止狀況」(Termination Condition),當程序執行至此終止狀況成立時,便不再呼叫自己,而獲得所求,並傳遞迴呼叫端。
iterated:
概念上,就是有某 個變數,它的值被一次又一次地代換成新的數值,
而每次代換之後都做同樣的動作。 通常程式語言提供三種迭代的語法:for 迴圈、while 迴圈和 do-until 迴圈。 在此我們先講 for 迴圈
(for-loop)。 技術上,我們要學習各種程式語言所提供的迭代語法。
沒有留言:
張貼留言