1.FTP協議的功能
- 文件傳輸協議( File Transfer Protocol, FTP)是因特網上使用得最廣泛的
文件傳輸協議。
- FTP提供
交互式的訪問
,允許客戶指明文件的類型與格式,並允許文件具有存取權限
。 - 它屏蔽了各計算機系統的細節,因而適合於在異構網絡中的
任意計算機之間傳送文件
。
FTP提供以下功能:
①提供不同種類主機系統(硬、軟件體系等都可以不同)之間的文件傳輸能力。
②以用戶權限管理的方式提供用戶對遠程FTP服務器上的文件管理能力
。
③以匿名FTP
的方式提供公用文件共享
的能力。
2.FTP工作原理
- FTP採用客戶/服務器(C/S)的工作方式,它使用TCP可靠的傳輸服務。
- 一個FTP服務器進程可同時爲多個客戶進程提供服務。
- 依照FTP協議提供服務,進行文件傳送的計算機就是
FTP服務器
。 - 連接FTP服務器,遵循FTP協議與服務器傳送文件的電腦就是
FTP客戶端
。 FTP的服務器進程
由兩大部分組成:
一個主進程,負責接收新的請求;
若干從屬進程,負責處理單個請求。
其工作步驟如下:
①打開熟知端口21 (控制端口),使客戶進程能夠連接上。
②等待客戶進程發連接請求。
③啓動從屬進程來處理客戶進程發來的請求。主進程與從屬進程併發執行,從屬進程對客戶進程的請求處理完畢後即終止。
④回到等待狀態,繼續接收其他客戶進程的請求。
- FTP服務器必須在整個會話期間保留用戶的狀態信息。
特別是服務器必須把指定的用戶賬戶與控制連接聯繫起來,服務器必須追蹤用戶在遠程目錄樹上的當前位置。
控制連接和數據連接
- FTP在工作時使用兩個
並行的TCP連接
:
一個是控制連接(端口號21)
,
一個是數據連接(端口號20)
。 - 使用兩個不同的端口號可使協議更加簡單和更容易實現。
1.控制連接
- 服務器監聽21號端口,等待客戶連接,建立在這個端口.上的連接稱爲控制連接,
控制連接用來傳輸控制信息(如連接請求、傳送請求等)
,並且控制信息都以7位ASCII格式傳送
。 - FTP客戶發出的
傳送請求
,通過控制連接發送給服務器端的控制進程,但控制連接並不用來傳送文件。
- 在傳輸文件時還可以使用控制連接(如客戶在傳輸中途發一箇中止傳輸的命令),因此控制連接在整個會話期間一直保持打開狀態。
2.數據連接 服務器端的控制進程在接收到FTP客戶發來的文件傳輸請求後,就創建“數據傳送進程”和“數據連接”。
數據連接
用來連接客戶端和服務器端的數據傳送進程
,數據傳送進程
實際完成文件的傳送,在傳送完畢後關閉“數據傳送連接”並結束運行。
- 因爲FTP使用了一個分離的控制連接,所以
也稱FTP的控制信息是帶外(Out-of-band) 傳送的。
- 使用FTP時,
若要修改服務器上的文件,則需要先將此文件傳送到本地主機,然後再將修改後的文件副本傳送到原服務器
。 - 網絡文件系統(NFS)允許進程打開一個遠程文件,並在該文件的某個特定位置開始讀寫數據。這樣,NFS可使用戶複製一個大文件中的一個很小的片段,而不需要複製整個大文件。