1.FTP的使用流程與解釋
FTP就是File Transfer Protocol (client and server),它是一種獲得網際網路世界普遍採用的通訊協定之一,說什麼FTP協定恐怕對一般人來說太深奧了點.其實講白話一點,就是有一組非商業組織 的學者們,在1985年的時候提出了一種開放的協定,提供給想要製作檔案傳輸相關應用的電腦軟體設計者們參考,讓大家可以依照這個標準,獨立製作出支持 FTP協定的檔案傳輸軟體,確又可以確保互相能夠相容.
FTP是一種主從式的架構,也就是Client and Server架構,說什麼主從式對一般人來說恐怕是太難懂了一些,說穿了既然是主從式,那這個協定要運行一定就要有人開FTP Server,也要有人用FTP Client,唯有這兩組軟體搭配,才能達成FTP檔案傳輸的功效.FTP Server就像是錄影帶出租店,裡面放著很多錄影帶(想像為電腦中的檔案),等著客戶來租借或是還片,錄影帶店的客人就像是FTP Client,會到錄影帶出租店中借影帶(想像為FTP中的 下載 動作)或是把片子還給出租店(想像為FTP中的 上傳 動作).因此我們可以很簡單的歸納出,想要提供一個讓別人與自己的電腦透過網路作檔案上下傳服務的人,他就要安裝FTP Server的軟體,也就是所謂的FTP伺服器,想要到別人的FTP Server去抓檔案或是傳檔案給別人的人,就需要安裝FTP Client的軟體.
流程:
- 戶端使用 Three-Way Handshake與 FTP 伺服器端建立 TCP 交談。
- FTP伺服器利用 TCP 21 連接埠來傳送和接收 TCP 控制資訊,以便於傾聽用戶端的連線要求,在連線建立後,此連接埠會全程開啟。
- FTP伺服器使用 TCP 20 連接埠來傳送與接收 FTP 檔案,傳送完成後即關閉。
- 用戶端在向 FTP 伺服器提出連線要求後,會在 1024 ~ 65535 的連接埠中動態指定一個連接埠。並以此動態連接埠與 FTP 伺服器上的 TCP 21 連接埠來建立交談。
- 用戶端會開啟另一連接埠連到 FTP 伺服器上的 TCP 20 連接埠,以便傳輸資料。而且每一次有檔案要傳輸時,用戶端會開啟一個新的連接埠與FTP伺服器連線。
2.recursive call vs iterated call 之差別性
recursive:
所謂遞迴就是允許一個 Procedure 或 Function 呼叫自己本身。當然,他不能無限制地呼叫自己,否則將造成無窮迴圈,所以它都會伴隨一個「終止狀況」(Termination Condition),當程序執行至此終止狀況成立時,便不再呼叫自己,而獲得所求,並傳遞迴呼叫端。