1 / 30

FTP 介紹與實作

FTP 介紹與實作. Team 5 597435019 王尹鍾 597435025 彭昭明. Introduction. Job Assign FTP 由來 FTP 運作原理 Code 簡介 Active and Passive( 主動與被動模式 ) Summary Reference. Job Assign. 597435019 王尹鍾 : 組長 , 統籌分配工作與進度 排定專案時程 , 與 meeting 時間 搜集相關 ftp 資料,書面文件撰寫,介面規劃與實作規劃 ftp 環境建置 &test. Job Assign.

almira
Download Presentation

FTP 介紹與實作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FTP 介紹與實作 Team 5 597435019 王尹鍾 597435025 彭昭明

  2. Introduction • Job Assign • FTP 由來 • FTP 運作原理 • Code 簡介 • Active and Passive(主動與被動模式) • Summary • Reference

  3. Job Assign • 597435019 王尹鍾: • 組長,統籌分配工作與進度 • 排定專案時程,與meeting時間 • 搜集相關ftp資料,書面文件撰寫,介面規劃與實作規劃 • ftp環境建置&test

  4. Job Assign • 597435025 彭昭明: • ftp技術survey • 程式撰寫 • 系統測試

  5. FTP 由來 • 檔案傳輸協定〈FTP-File Transfer Protocol〉是學術網路上所提供的眾多服務資源項目中,最常用的項目之一,透過此公共協定,大家傳輸模式才會一致,應用此一方式做檔案交換。 • FTP標準: RFC 959

  6. FTP 運作原理 - cont1 • FTP是一種主從式的架構,也就是Client and Server架構,說什麼主從式對一般人來說恐怕是太難懂了一些,說穿了既然是主從式,那這個協定要運行一定就要有人開FTP Server也要有人用FTP Client,唯有這兩組軟體搭配,才能達成FTP檔案傳輸的功效。

  7. FTP 運作原理 - cont2 • 一般主從架構應用程式(HTTP、SMTP、POP3.. )都只需要一條連線、一個通訊埠 ,只會在伺服器與用戶端建立一個socket連結,此連結同時處理伺服器端與用戶端連線及資料的傳送。 • 但FTP在伺服器端及用戶端之間建立兩條連線、兩個通訊埠 ,一個以FTP通訊協定預設的通訊埠(port 21)作為通訊連結,另一個是資料傳送的連線(一般都設在 port 20 ),FTP資料傳送的模式又分二種:PORT、PASV。兩者主要分別在於它們會向FTP伺服器發出不同的FTP Command。

  8. FTP 運作原理 - cont3 • 資料通訊埠(Data Port) : • 因為初期定義 FTP 通訊定的時候,並沒有考慮到後來防火牆的發展,使得傳統的 FTP 的工作原理無法完全適用在網際網路環境,因此就發展出了另外一種替代模式的 FTP 連線方式,在這種模式底下,Data Port 不再只是 20,也因此造成很多讀到舊資料的人,認為只要將 20、21 兩個通訊不打開,FTP Server 就能正常運作這樣的錯誤觀念。

  9. Code 簡介- ftp GUI client 運用技術 • 1.deploy 工具用ant • 2.java swing 技術做GUI • 3.java 1.4版本 • 4.ftp server用PCManFTP • 5.log檔使用commons-logging- 1.1.jar • 6.ftp api:jakarta-oro-2.0.8.jar

  10. Code 簡介-ftpApplet.htm頁面設定參數-1 • 設定上傳路徑:<param id="UserDownloadDir_applet" name="UserDownloadDir_applet" value="D:/Litho/"> • <param id="Marker1FTPhost_applet" name="Marker1FTPhost_applet" value="127.0.0.1"> • <param id="Marker1FTPusername_applet" name="Marker1FTPusername_applet" value="abserta">

  11. Code 簡介-ftpApplet.htm頁面設定參數-2 • <param id="Marker1FTPpassword_applet" name="Marker1FTPpassword_applet" value="9999"> • <param id="Marker1FTPport_applet" name="Marker1FTPport_applet" value="21">

  12. Code 簡介- 程式執行內容 • 1. ReadFtpConf() function:將ftpApplet.htm參數傳入 • 2. connect() function:設定ftp server連線 ftpclient.connect(serverHost) ftpclient.setFileType(FTP.BINARY_FILE_TYPE); ftpclient.enterLocalPassiveMode();

  13. ftpApplet.htm

  14. FTP 執行畫面-1

  15. FTP 執行畫面-2

  16. FTP 執行畫面-3

  17. Active FTP(主動式)cont-1 • 傳統式 FTP 連線方式是採用主動模式,由用戶端隨機使用一個大於 1023 (也就是1024以上)的通訊埠(為了方便說明我們以 port N 來代表),與 FTP 伺服器的命令通訊埠(port 21) 建立連線,同時用戶端自己開啟一個 N+1 的通訊埠等待伺服器連線。伺服器接到用戶端的命令之後,便使用資料通訊埠(port 20)主動與用戶端的 port N+1 建立資料連線。

  18. Active FTP(主動式)cont-2 • 這樣的模式有點像我們開車去加油的溝通方式,駕駛打開窗戶(port N)對著服務人員(port 21)要求加油命令,同時打開油箱蓋、露出加油孔(port N+1),服務人員及拿著油槍(port 20)對著加油孔(port N+1)加油。 • 所謂的主動式,是以伺服器的觀點來看。

  19. Active FTP(主動式)cont-3 • FTP 伺服器開啟 port 21 接受來自外部任意通訊埠的連線(由用戶端要求建立連線) • FTP 伺服器使用 port 21 連線到外部任一大於 1023 的通訊埠(回應用戶端的命令埠) • FTP 伺服器使用 port 20 連線到外部任一大於 1023 的通訊埠(伺服器主動建立資料連線) • FTP 伺服器開啟 port 20 接受來自外部任一大於 1023 的通訊埠連線 (用戶端回覆伺服器資料連線)

  20. Active FTP(主動式)cont-4 步驟一、用戶端使用 port 1024 與伺服器建立連線,並提供 port 1025 的資訊給伺服器。 步驟二、伺服器回應用戶端的連線。 步驟三、伺服器主動與用戶端的 port 1025 建立連線。 步驟四、用戶端回覆伺服器。

  21. Active FTP(主動式)cont-5 • 由此可知主動式連線的真正問題不在於伺服器,而是在於用戶端的防火牆。由於用戶端程式並不是自行建立資料連線,而是自己開啟一個通訊埠,要求伺服器連線進來,這對用戶端的防火牆來說是一個危險的安全警訊,大部分的網路環境,都不允許防火牆外部的系統連線到內部的用戶端電腦。

  22. Passive FTP(被動式)cont-1 • 為了解決由伺服器連線到用戶端所產生的安全疑慮,因此發展出了另一種不同的連線模式,稱之為被動模式(Passive Mode, PASV)。讓用戶端程式可以在連線的時候,通知伺服器使用被動模式連線。

  23. Passive FTP(被動式)cont-2 • 使用被動模式 FTP ,不論命令連線或是資料連線都是由用戶端建立,以解決防火牆以及相關資安問題。 • 當用戶端開啟 FTP 連線時,用戶端程式先在本機開兩個大於1023的通訊埠(N, N+1),利用 port N 與伺服器的 port 21 建立連線。 • 不同於主動模式的連線方式,用戶端這次不再提供 N+1 port 與 IP 位址給伺服器,而是送出 PASV 的命令。 • 伺服器收到 PASV 的命令之後,即開啟一個大於 1023 的通訊埠(P),並將這個通訊埠連同伺服器 IP 回覆給用戶端,被動等待用戶端連線,用戶端即利用 port N+1與伺服器所提供的 port P 建立資料連線。

  24. Passive FTP(被動式)cont-3 • 以伺服器的觀點來看,要完成一個被動式連線,伺服器必須提供以下幾個溝通管道: • FTP 伺服器開啟 port 21 接受來自外部任意通訊埠的連線(由用戶端要求建立連線) • FTP 伺服器使用 port 21 連線到外部任一大於 1023 的通訊埠(回應用戶端的命令埠) • FTP 伺服器開啟一個大於 1023 的通訊埠,接受來自外部任一大於 1023 的通訊埠連線 (用戶端與伺服器建立資料連線) • FTP 伺服器使用一個大於 1023 的通訊埠,連線到外部任一大於 1023 的通訊埠(伺服器回復資料給用戶端)

  25. Passive FTP(被動式)cont-4 步驟一、用戶端使用 port 1024 與伺服器建立連線,並發出 PASV 的要求。步驟二、伺服器回應用戶端的連線,並通知用戶端,伺服器已開啟 port 1120 等待資料連線。步驟三、用戶端使用 port 1025 與伺服器的 port 1120 建立資料連線。步驟四、伺服器回覆用戶端。

  26. Passive FTP(被動式)cont-5 • 使用被動模式雖然解決了用戶端的問題,卻也為伺服器帶來了一些問題,最大的問題在於伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。 • 另一個問題則是部分作業系統提供的的FTP命令列,不支援被動模式,因此必須使用其他的用戶端程式。

  27. 主動式 FTP :命令連線: 用戶端 port N --> 伺服器 port 21 資料連線: 伺服器 port 20 --> 用戶端 N+1 Summary-1 • 被動式 FTP :命令連線: 用戶端 port N --> 伺服器 port 21 資料連線: 用戶端 port N+1 --> 伺服器 port P

  28. Summary-2 • 兩種模式各有優缺點,主動模式對伺服器來說比較安全,但對用戶端來說卻是可能帶來危險,因此很可能被用戶端的防火牆所阻擋了。 • 使用被動模式雖然解決了用戶端的問題,但相對的伺服器必須開啟一定範圍的通訊埠供用戶端連線,好在目前絕大部分的 FTP 伺服器軟體,皆可以由管理者決定開啟哪些範圍的通訊埠。

  29. Reference • http://vbb.twftp.org/forumdisplay.php?f=17(台灣FTP聯盟) • http://slacksite.com/other/ftp.html

  30. Thank You

More Related