




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、9-1中國科學技術大學 遠程教育9-2中國科學技術大學 遠程教育本章學習要求本章學習要求:掌握:掌握:FTPFTP的概念的概念掌握:掌握:FTPFTP的兩種文件傳輸的數據格式的兩種文件傳輸的數據格式掌握:掌握:FTPFTP的兩種工作模式及其工作原理的兩種工作模式及其工作原理掌握:掌握:FTPFTP的連接的連接了解:了解:TFTPTFTP協議的基本概念及其分組結構協議的基本概念及其分組結構9-3中國科學技術大學 遠程教育9.1 FTPFTP的概念的概念FTP 是是 TCP/IP 協議組中的協議之一,是協議組中的協議之一,是File Transfer Protocol 的縮的縮寫。該協議是寫。該協
2、議是Internet文件傳送的基礎,它由一系列規格說明文檔組成,文件傳送的基礎,它由一系列規格說明文檔組成,目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用目標是提高文件的共享性,提供非直接使用遠程計算機,使存儲介質對用戶透明和可靠高效地傳送數據。簡單的說,戶透明和可靠高效地傳送數據。簡單的說,FTP就是完成兩臺計算機之間就是完成兩臺計算機之間的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為的拷貝,從遠程計算機拷貝文件至自己的計算機上,稱之為“下載下載(download)”文件。若將文件從自己計算機中拷貝至遠程計算機上,則文件。若將文件從自己計算機中拷貝至遠程計算機上,則稱
3、之為稱之為“上載(上載(upload)”文件。在文件。在TCP/IP協議中,協議中,FTP標準命令標準命令TCP端端口號為口號為21,Port方式數據端口為方式數據端口為20。FTP服務器和客戶端服務器和客戶端同大多數同大多數Internet服務一樣,服務一樣,FTP也是一個客戶也是一個客戶/服務器系統。用戶通服務器系統。用戶通過一個客戶機程序連接至在遠程計算機上運行的服務器程序。依照過一個客戶機程序連接至在遠程計算機上運行的服務器程序。依照 FTP 協協議提供服務,進行文件傳送的計算機就是議提供服務,進行文件傳送的計算機就是 FTP 服務器,而連接服務器,而連接FTP服務器,服務器,遵循遵循
4、FTP協議與服務器傳送文件的電腦就是協議與服務器傳送文件的電腦就是FTP客戶端。用戶要連上客戶端。用戶要連上 FTP 服務器,就要用到服務器,就要用到 FPT 的客戶端軟件,通常的客戶端軟件,通常 Windows自帶自帶“ftp”命令,這命令,這是一個命令行的是一個命令行的 FTP 客戶程序,另外常用的客戶程序,另外常用的 FTP 客戶程序還有客戶程序還有 CuteFTP、Ws_FTP、Flashfxp、LeapFTP、流星雨、流星雨-貓眼等。貓眼等。 9-4中國科學技術大學 遠程教育FTP用戶授權用戶授權用戶授權:要連上用戶授權:要連上 FTP 服務器(即服務器(即“登錄登錄”),只有在有了
5、一個用戶),只有在有了一個用戶標識和一個口令后才能登陸標識和一個口令后才能登陸FTP服務器,享受服務器,享受FTP服務器提供的服務。服務器提供的服務。 FTP地址格式:地址格式:ftp:/用戶名用戶名:密碼密碼FTP服務器服務器IP或域名或域名.路徑路徑/文件名文件名上面的參數除上面的參數除FTP服務器服務器IP或域名為必要項外,其他都不是必須的?;蛴蛎麨楸匾椡?,其他都不是必須的。如以下地址都是有效如以下地址都是有效FTP地址:地址:ftp:/list:ftp:/list:listfoolish.6600.or
6、g:2003ftp:/list::2003/soft/list.txt匿名匿名FTP:互連網中有很大一部分:互連網中有很大一部分 FTP 服務器被稱為服務器被稱為“匿名匿名” (Anonymous) FTP 服務器。它不要求用戶事先在該服務器進行登記注服務器。它不要求用戶事先在該服務器進行登記注冊,也不用取得冊,也不用取得FTP服務器的授權。服務器的授權。Anonymous(匿名文件傳輸)能(匿名文件傳輸)能夠使用戶與遠程主機建立連接并以匿名身份從遠程主機上拷貝文件,夠使用戶與遠程主機建立連接并以匿名身份從遠程主機上拷貝文件,而不必是該遠程主機的注冊用戶
7、。用戶使用特殊的用戶名而不必是該遠程主機的注冊用戶。用戶使用特殊的用戶名“anonymous”登錄登錄FTP服務,就可訪問遠程主機上公開的文件。雖然服務,就可訪問遠程主機上公開的文件。雖然目前使用目前使用WWW環境已取代匿名環境已取代匿名FTP成為最主要的信息查詢方式,但成為最主要的信息查詢方式,但是匿名是匿名FTP仍是仍是 Internet上傳輸分發軟件的一種基本方法。上傳輸分發軟件的一種基本方法。9-5中國科學技術大學 遠程教育9.1.1 FTP文件傳輸的數據格式文件傳輸的數據格式假設兩臺計算機通過假設兩臺計算機通過ftp協議對話,并且能訪問協議對話,并且能訪問Internet,就可以用,
8、就可以用ftp命命令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本令來傳輸文件。每種操作系統使用上有某一些細微差別,但是每種協議基本的命令結構是相同的。的命令結構是相同的。FTP的文件傳輸有兩種數據格式:的文件傳輸有兩種數據格式:ASCII傳輸格式和傳輸格式和二進制數據傳輸格式。二進制數據傳輸格式。ASCII傳輸格式:用于傳輸傳輸格式:用于傳輸ASCII碼文本,如果在遠程機器上運行的不是碼文本,如果在遠程機器上運行的不是UNIX,當文件傳輸時,當文件傳輸時ftp通常會自動地調整文件的內容以便于把文件解通常會自動地調整文件的內容以便于把文件解釋成另外那臺計算機存儲文本文件的格式
9、。釋成另外那臺計算機存儲文本文件的格式。如果用戶傳輸的文件不是文本文件,在拷貝任何非文本文件之前,用如果用戶傳輸的文件不是文本文件,在拷貝任何非文本文件之前,用binary 命令告訴命令告訴ftp逐字拷貝,不要對這些文件進行處理,這也是下面要逐字拷貝,不要對這些文件進行處理,這也是下面要講的二進制傳輸。講的二進制傳輸。二進制傳輸格式:在二進制傳輸中,保存文件的位序,以便原始和拷貝二進制傳輸格式:在二進制傳輸中,保存文件的位序,以便原始和拷貝的是逐位一的是逐位一 一一 對應的。即使目的地機器上包含位序列的文件是沒意義的。對應的。即使目的地機器上包含位序列的文件是沒意義的。如果你在如果你在ASCI
10、I方式下傳輸二進制文件,即使不需要也仍會轉譯。這會方式下傳輸二進制文件,即使不需要也仍會轉譯。這會使傳輸稍微變慢使傳輸稍微變慢 ,也會損壞數據,使文件變得不能用。(在大多數計算機上,也會損壞數據,使文件變得不能用。(在大多數計算機上,ASCII方式一般假設每一字符的第一有效位無意義,因為方式一般假設每一字符的第一有效位無意義,因為ASCII字符組合不字符組合不使用它。使用它。9-6中國科學技術大學 遠程教育FTP支持兩種模式,一種方式叫做支持兩種模式,一種方式叫做Standard (也就是也就是 PORT方方式,主動方式式,主動方式),一種是,一種是 Passive (也就是也就是PASV,被
11、動方式,被動方式)。 Standard模式模式 FTP的客戶端發送的客戶端發送 PORT 命令到命令到FTP服務器。服務器。Passive模式模式FTP的客戶端發送的客戶端發送 PASV命令到命令到 FTP Server。下面介紹。下面介紹一個這兩種方式的工作原理:一個這兩種方式的工作原理:Port模式模式FTP 客戶端首先和客戶端首先和FTP服務器的服務器的TCP 21端口建立連端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送道上發送PORT命令。命令。 PORT命令包含了客戶端用什么端口接收數命令包含了客
12、戶端用什么端口接收數據。在傳送數據的時候,服務器端通過自己的據。在傳送數據的時候,服務器端通過自己的TCP 20端口連接至客端口連接至客戶端的指定端口發送數據。戶端的指定端口發送數據。 FTP server必須和客戶端建立一個新的必須和客戶端建立一個新的連接用來傳送數據。連接用來傳送數據。Passive模式在建立控制通道的時候和模式在建立控制通道的時候和Standard模式類似,但模式類似,但建立連接后發送的不是建立連接后發送的不是Port命令,而是命令,而是Pasv命令。命令。FTP服務器收到服務器收到Pasv命令后,隨機打開一個高端端口(端口號大于命令后,隨機打開一個高端端口(端口號大于1
13、024)并且通知)并且通知客戶端在這個端口上傳送數據的請求,客戶端連接客戶端在這個端口上傳送數據的請求,客戶端連接FTP服務器此端服務器此端口,然后口,然后FTP服務器將通過這個端口進行數據的傳送,這個時候服務器將通過這個端口進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。不再需要建立一個新的和客戶端之間的連接。9.1.2 FTP的工作方式的工作方式9-7中國科學技術大學 遠程教育9.1.3 FTP服務命令服務命令 FTP服務命令定義用戶請求的文件傳輸或文件系統功能。此命服務命令定義用戶請求的文件傳輸或文件系統功能。此命令的參數通常是路徑名,其語法要和服務器
14、的規范一致。推薦的默令的參數通常是路徑名,其語法要和服務器的規范一致。推薦的默認值是最近指定的設備目錄或目錄。命令順序通常沒有限制,只有認值是最近指定的設備目錄或目錄。命令順序通常沒有限制,只有“rename from”命令后面必須是命令后面必須是“rename to”,重新啟動命令后面,重新啟動命令后面必須是中斷服務命令。服務命令的響應通常在數據連接上傳輸。下必須是中斷服務命令。服務命令的響應通常在數據連接上傳輸。下面是具體的命令:面是具體的命令:獲得文件獲得文件(RETR) :使服務器:使服務器DTP傳送指定路徑內的文件復制到服傳送指定路徑內的文件復制到服務器或用戶務器或用戶DTP。服務器
15、上文件的狀態和內容不受影響。服務器上文件的狀態和內容不受影響。保存保存(STOR) :使服務器:使服務器DTP接收數據連接上傳送過來的數據,并接收數據連接上傳送過來的數據,并將數據保存在服務器的文件中。如果文件已存在,原文件將被覆蓋。將數據保存在服務器的文件中。如果文件已存在,原文件將被覆蓋。如果文件不存在,則新建文件。如果文件不存在,則新建文件。唯一保存唯一保存(STOU) :此命令和:此命令和STOR差不多,要求在此目錄下的文差不多,要求在此目錄下的文件名是唯一的,對此命令的響應必須包括產生的用戶名。件名是唯一的,對此命令的響應必須包括產生的用戶名。附加附加(APPE) :它和:它和STO
16、R的功能差不多,但是如果文件在指定路徑的功能差不多,但是如果文件在指定路徑內已存在,則把數據附加到原文件尾部,如果不存在則新建文件。內已存在,則把數據附加到原文件尾部,如果不存在則新建文件。9-8中國科學技術大學 遠程教育分配分配(ALLO) :此命令用于在主機上為新傳送的文件分配足夠的存:此命令用于在主機上為新傳送的文件分配足夠的存儲空間。參數是十進制的邏輯字節數。如果是記錄或頁結構,頁或儲空間。參數是十進制的邏輯字節數。如果是記錄或頁結構,頁或記錄的最大大小也需要,這在第二個參數內以十進制指定。第二個記錄的最大大小也需要,這在第二個參數內以十進制指定。第二個參數是可選的,如果有它,它和第一
17、個參數以參數是可選的,如果有它,它和第一個參數以Telnet字符字符 R 分隔。分隔。此命令在此命令在STOR或或APPE命令后,對于不需要分配存儲空間的機器,命令后,對于不需要分配存儲空間的機器,它的作用等于它的作用等于NOOP。重新開始重新開始(REST):參數域代表服務器要重新開始的那一點,此命:參數域代表服務器要重新開始的那一點,此命令并不傳送文件,而是略過指定點后的數據,此命令后應該跟其它令并不傳送文件,而是略過指定點后的數據,此命令后應該跟其它要求文件傳輸的要求文件傳輸的FTP命令。命令。重命名重命名(RNFR) :這個命令和我們在其它操作系統中使用的一樣,:這個命令和我們在其它操
18、作系統中使用的一樣,只不過后面要跟只不過后面要跟rename to指定新的文件名。指定新的文件名。重命名為重命名為(RNTO) :此命令和上面的命令共同完成對文件的重命名。:此命令和上面的命令共同完成對文件的重命名。放棄放棄(ABOR) :此命令通知服務中止以前的:此命令通知服務中止以前的FTP命令和與之相關的命令和與之相關的數據傳送。如果先前的操作已經完成,則沒有動作,返回數據傳送。如果先前的操作已經完成,則沒有動作,返回226。如。如果沒有完成,返回果沒有完成,返回426,然后再返回,然后再返回226。關閉控制連接,數據連接。關閉控制連接,數據連接不關閉。不關閉。9-9中國科學技術大學 遠
19、程教育刪除刪除(DELE) :此命令刪除指定路徑下的文件。用戶進程負責對刪:此命令刪除指定路徑下的文件。用戶進程負責對刪除的提示。除的提示。刪除目錄刪除目錄(RMD) :此命令刪除目錄。:此命令刪除目錄。 創建目錄創建目錄(MKD) :此命令在指定路徑下創建新目錄。:此命令在指定路徑下創建新目錄。 顯示工作目錄顯示工作目錄(PWD):返回當前工作目錄。:返回當前工作目錄。 列表列表(LIST) :服務器傳送列表到被動:服務器傳送列表到被動DTP,如果路徑指定一個目錄,如果路徑指定一個目錄或許多文件,返回指定路徑下的文件列表。如果路徑名指定一個文或許多文件,返回指定路徑下的文件列表。如果路徑名指
20、定一個文件,服務器返回文件的當前信息,參數為空表示用戶當前的工作目件,服務器返回文件的當前信息,參數為空表示用戶當前的工作目錄或默認目錄。數據傳輸在錄或默認目錄。數據傳輸在ASCII或或EBCDIC下進行,用戶必須確下進行,用戶必須確認這一點。因為文件信息因系統不同而不同,所以不可能被程序自認這一點。因為文件信息因系統不同而不同,所以不可能被程序自動利用,但是人類用戶卻很需要。動利用,但是人類用戶卻很需要。名字列表名字列表(NLST):服務器傳送目錄表名到用戶,路徑名應指定目:服務器傳送目錄表名到用戶,路徑名應指定目錄或其它系統指定的文件群描述子;空參數指當前目錄。服務器返錄或其它系統指定的文
21、件群描述子;空參數指當前目錄。服務器返回文件名數據流,以回文件名數據流,以ASCII或或EBCDIC形式傳送,并以或分隔。這形式傳送,并以或分隔。這里返回的信息有時可以供程序進行進一步處理。里返回的信息有時可以供程序進行進一步處理。 站點參數站點參數(SITE):服務器用來提供服務器系統信息,信息因系統不:服務器用來提供服務器系統信息,信息因系統不同而不同,格式在同而不同,格式在HELP SITE命令應答中給出。命令應答中給出。 系統系統(SYST) :用于確定服務器上運行的操作系統。:用于確定服務器上運行的操作系統。9-10中國科學技術大學 遠程教育狀態狀態(STAT) :此命令返回控制連接
22、狀態,它可以在文件傳送過程中發:此命令返回控制連接狀態,它可以在文件傳送過程中發送,服務器返回操作進行的狀態。也可以在文件傳送之間發送,這時送,服務器返回操作進行的狀態。也可以在文件傳送之間發送,這時命令有參數,參數是路徑名,此命令的功能除了數據在控制連接上傳命令有參數,參數是路徑名,此命令的功能除了數據在控制連接上傳送以外和列表命令相似。如果指定部分路徑,服務器以文件名或與說送以外和列表命令相似。如果指定部分路徑,服務器以文件名或與說明相關的屬性返回;如沒有參數,服務器返回服務器明相關的屬性返回;如沒有參數,服務器返回服務器FTP進程的狀態進程的狀態信息,包括傳輸參數的當前值和連接狀態。信息
23、,包括傳輸參數的當前值和連接狀態。幫助幫助(HELP):這條命令我們在平常系統中得到的幫助沒有什么區別,:這條命令我們在平常系統中得到的幫助沒有什么區別,響應類型是響應類型是211或或214。建議在使用。建議在使用USER命令前使用此命令。命令前使用此命令。等待等待(NOOP):此命令不產生什么實際動作,它僅使服務器返回:此命令不產生什么實際動作,它僅使服務器返回OK。FTP在控制連接上使用在控制連接上使用Telnet通信,通信,FTP命令可分為訪問控制標記,命令可分為訪問控制標記,數據傳輸參數或數據傳輸參數或FTP服務請求,特定的命令(如服務請求,特定的命令(如ABOR,STAT)可以)可以
24、在數據傳輸過程中在控制連接上傳輸。有些服務器不能同時監視數據在數據傳輸過程中在控制連接上傳輸。有些服務器不能同時監視數據和控制鏈路,那就要另外采取措施了。請注意下面的幾點建議:和控制鏈路,那就要另外采取措施了。請注意下面的幾點建議: 用戶系統將用戶系統將Telnet的的“Interrupt Process”(IP)信息插入)信息插入Telnet流;流; 用戶系統發送用戶系統發送Telnet的的“Synch”信號;信號; 用戶系統將命令(如用戶系統將命令(如ABOR)插入)插入Telnet流;流; 服務器服務器PI在接收到在接收到IP后,在后,在Telnet流中尋找僅有一個的流中尋找僅有一個的F
25、TP命令。命令。9-11中國科學技術大學 遠程教育9.1.4 FTP客戶和服務器連接客戶和服務器連接 我們以標準的我們以標準的FTP端口號為例,介紹端口號為例,介紹 FTP客戶和服務器連接客戶和服務器連接過程。過程。首先,首先,FTP并不像并不像HTTP協議那樣,只需要一個端口作為連接協議那樣,只需要一個端口作為連接(HTTP的默認端口是的默認端口是80,FTP的默認端口是的默認端口是21),),FTP需要需要2個端個端口,一個端口是作為控制連接端口口,一個端口是作為控制連接端口,也就是也就是21這個端口,用于發送這個端口,用于發送指令給服務器以及等待服務器響應;另一個端口是數據傳輸端口指令給
26、服務器以及等待服務器響應;另一個端口是數據傳輸端口,端口號為端口號為20(僅(僅PORT模式),是用來建立數據傳輸通道的,主要模式),是用來建立數據傳輸通道的,主要有有3個作用:個作用: 從客戶向服務器發送一個文件。從客戶向服務器發送一個文件。從服務器向客戶發送一個文件。從服務器向客戶發送一個文件。從服務器向客戶發送文件或目錄列表。從服務器向客戶發送文件或目錄列表。其次,其次,FTP的連接模式有兩種,的連接模式有兩種,PORT和和PASV。PORT模式是模式是一個主動模式,一個主動模式,PASV是被動模式,這里都是相對于服務器而言的。是被動模式,這里都是相對于服務器而言的。為了讓大家清楚的認識
27、這兩種模式,分別舉例說明。為了讓大家清楚的認識這兩種模式,分別舉例說明。9-12中國科學技術大學 遠程教育PORT模式模式當當FTP客戶以客戶以PORT模式連接服務器時,他動態的選擇一個端口號(本次試驗是模式連接服務器時,他動態的選擇一個端口號(本次試驗是6015)連接服務器的)連接服務器的21端口,注意這個端口號一定是端口,注意這個端口號一定是1024以上的,因為以上的,因為1024以前的端以前的端口都已經預先被定義好,被一些典型的服務使用,當然有的還沒使用,保留給以后會口都已經預先被定義好,被一些典型的服務使用,當然有的還沒使用,保留給以后會用到這些端口的資源服務。當經過用到這些端口的資源
28、服務。當經過TCP的三次握手后,連接(控制信道)被建立(如的三次握手后,連接(控制信道)被建立(如圖圖1和圖和圖2)。)。 圖圖1:FTP客戶使用客戶使用FTP命令建立于服務器的連接命令建立于服務器的連接 圖圖2:用:用netstat命令查看,控制信道被建立在客戶機的命令查看,控制信道被建立在客戶機的6015和服務器的和服務器的20端口端口 9-13中國科學技術大學 遠程教育現在用戶要列出服務器上的目錄結構現在用戶要列出服務器上的目錄結構(使用使用ls或或dir命令命令),那么首先就要,那么首先就要建立一個數據通道,因為只有數據通道才能傳輸目錄和文件列表,此時用戶建立一個數據通道,因為只有數據
29、通道才能傳輸目錄和文件列表,此時用戶會發出會發出PORT指令告訴服務器連接自己的什么端口來建立一條數據通道(這指令告訴服務器連接自己的什么端口來建立一條數據通道(這個命令由控制信道發送給服務器),當服務器接到這一指令時,服務器會使個命令由控制信道發送給服務器),當服務器接到這一指令時,服務器會使用用20端口連接用戶在端口連接用戶在PORT指令中指定的端口號,用以發送目錄的列表(如指令中指定的端口號,用以發送目錄的列表(如圖圖3)。)。 圖圖3:ls命令是一個交互命令,它會首先與服務器建立一個數據命令是一個交互命令,它會首先與服務器建立一個數據傳輸通道。經驗證本次試驗客戶機使用傳輸通道。經驗證本
30、次試驗客戶機使用6044端口端口 9-14中國科學技術大學 遠程教育當完成這一操作時,當完成這一操作時,FTP客戶也許要下載一個文件,那么就會發出客戶也許要下載一個文件,那么就會發出get指令,請注意,這時客戶會再次發送指令,請注意,這時客戶會再次發送PORT指令,告訴服務器連接他的哪個指令,告訴服務器連接他的哪個新新端口,你可以先用端口,你可以先用netstat -na這個命令驗證,上一次使用的這個命令驗證,上一次使用的6044已經處于已經處于TIME_WAIT狀態狀態(如圖如圖4)。圖圖4:使用:使用netstat命令驗證上一次使用命令驗證上一次使用ls命令建立的數據傳輸通道已經關閉命令建
31、立的數據傳輸通道已經關閉 當這個新的數據傳輸通道建立后當這個新的數據傳輸通道建立后(在微軟的系統中,客戶端通常會使用在微軟的系統中,客戶端通常會使用連續的端口,也就是說這一次客戶端會用連續的端口,也就是說這一次客戶端會用6045這個端口這個端口),就開始了文件傳輸,就開始了文件傳輸的工作。的工作。 9-15中國科學技術大學 遠程教育PASV模式模式在初始化連接服務器這個過程和在初始化連接服務器這個過程和PORT模式是一樣的,不同的是,當模式是一樣的,不同的是,當FTP客戶發送客戶發送ls、dir、get等這些要求數據返回的命令時,他不向服務器發送等這些要求數據返回的命令時,他不向服務器發送PO
32、RT指令而是發送指令而是發送PASV指令,在這個指令中,用戶告訴服務器自己要連指令,在這個指令中,用戶告訴服務器自己要連接服務器的某一個端口,如果這個服務器上的這個端口是空閑的可用的,服接服務器的某一個端口,如果這個服務器上的這個端口是空閑的可用的,服務器會返回務器會返回ACK的確認信息,之后數據傳輸通道被建立并返回用戶所要的的確認信息,之后數據傳輸通道被建立并返回用戶所要的信息(根據用戶發送的指令,如信息(根據用戶發送的指令,如ls、dir、get等);如果服務器的這個端口等);如果服務器的這個端口被另一個資源所使用,那么服務器返回被另一個資源所使用,那么服務器返回UNACK的信息,那么這時
33、,的信息,那么這時,FTP客客戶會再次發送戶會再次發送PASV命令,這也就是所謂的連接建立的協商過程。為了驗證命令,這也就是所謂的連接建立的協商過程。為了驗證這個過程我們不得不借助這個過程我們不得不借助CuteFTP Pro這個常用這個常用FTP客戶端軟件,因為微軟客戶端軟件,因為微軟自帶的自帶的FTP命令客戶端,不支持命令客戶端,不支持PASV模式。雖然你可以使用模式。雖然你可以使用QUOTE PASV這個命令強制使用這個命令強制使用PASV模式,但是當你用模式,但是當你用ls命令列出服務器目錄列表,你命令列出服務器目錄列表,你會發現它還是使用會發現它還是使用PORT方式來連接服務器的?,F在
34、我們使用方式來連接服務器的?,F在我們使用CUTEFTP Pro以以PASV模式連接服務器。請注意連接模式連接服務器。請注意連接LOG里這幾句話:里這幾句話:COMMAND: PASV 227 Entering Passive Mode (127,0,0,1,26,108) COMMAND: LIST STATUS: Connecting ftp data socket : 6764. 125 Data connection already open; Transfer starting. 226 Transfer complete. 9-16中國科學技術大學 遠程教育其中,其
35、中,227 Entering Passive Mode (127,0,0,1,26,80). 代表客戶機使用代表客戶機使用PASV模式連接服務器的模式連接服務器的26x256+108=6764端口。(當然服務器要支持這種端口。(當然服務器要支持這種模式)模式)125 Data connection already open; Transfer starting.說明服務器的這說明服務器的這個端口可用,返回個端口可用,返回ACK信息。信息。再讓我們看看用再讓我們看看用CUTEFTP Pro以以PORT模式連接服務器的情況。其中模式連接服務器的情況。其中在在LOG里有這樣的記錄:里有這樣的記錄:
36、其中其中:PORT 127,0,0,1,28,37告訴服務器當收到這個告訴服務器當收到這個PORT指令后,連接指令后,連接FTP客戶的客戶的28x256+37=7205這個端口。這個端口。Accepting connection: :20表示服務器接到指令后用表示服務器接到指令后用20端口連接端口連接7205端口,而且被端口,而且被FTP客戶接受客戶接受 COMMAND: PORT 127,0,0,1,28,37 200 PORT command successful. COMMAND: LIST 150 Opening ASCII mode dataconnection f
37、or /bin/ls. STATUS: Accepting connection: :20. 226 Transfer complete. STATUS: Transfer complete. 9-17中國科學技術大學 遠程教育9.1.6 FTP應答應答FTP命令的響應是為了對數據傳輸請求和過程進行同步,也是命令的響應是為了對數據傳輸請求和過程進行同步,也是為了讓用戶了解服務器的狀態。每個命令必須有最少一個響應,如為了讓用戶了解服務器的狀態。每個命令必須有最少一個響應,如果是多個,它們要易于區別。有些命令是有順序性的,因此其中任果是多個,它們要易于區別。有些命令是有順序性的,
38、因此其中任何一個命令的失敗會導致從頭開始。何一個命令的失敗會導致從頭開始。FTP響應由三個數字構成,后面是一些文本。數字帶有足夠的響應由三個數字構成,后面是一些文本。數字帶有足夠的信息命名用戶信息命名用戶PI不用檢查文本就知道發生了什么。文本信息與服務不用檢查文本就知道發生了什么。文本信息與服務器相關,用戶可能得到不同的文本信息。文本和數字以間隔,文本器相關,用戶可能得到不同的文本信息。文本和數字以間隔,文本后以后以Telnet行結束符結束。行結束符結束。9-18中國科學技術大學 遠程教育三位數字每位都有一定的意義,第一位確定響應是好的,壞的三位數字每位都有一定的意義,第一位確定響應是好的,壞
39、的還是不完全的,通過檢查第一位,用戶進程通常就能夠知道大致要還是不完全的,通過檢查第一位,用戶進程通常就能夠知道大致要采取什么行動了。如果用戶程序希望了解出了什么問題,可以檢查采取什么行動了。如果用戶程序希望了解出了什么問題,可以檢查第二位,第三位留表示其它信息。第一位有五個值:第二位,第三位留表示其它信息。第一位有五個值:1. 確定預備應答確定預備應答 請求的操作正在被初始化;在進入下一個命令前等待另外的應請求的操作正在被初始化;在進入下一個命令前等待另外的應答。這類響應用于說明命令被接受,在實現中如何同步監視有困難,答。這類響應用于說明命令被接受,在實現中如何同步監視有困難,用戶進程現在可
40、以關注數據連接了。服務器用戶進程現在可以關注數據連接了。服務器FTP進程對第個命令幾進程對第個命令幾乎都返回乎都返回1yz響應。響應。2. 確定完成應答確定完成應答 要求的操作已經完成,可以執行新命令。要求的操作已經完成,可以執行新命令。 3. 確定中間應答確定中間應答 命令已接受,但要求的操作被停止,停止接收更新的信息。命令已接受,但要求的操作被停止,停止接收更新的信息。 4. 暫時拒絕完成應答暫時拒絕完成應答 未接受命令,要求的操作未執行,但錯誤是臨時的,過一會兒未接受命令,要求的操作未執行,但錯誤是臨時的,過一會兒可以再次發送消息。用戶應該返回命令序列的開始。這個暫時可是可以再次發送消息
41、。用戶應該返回命令序列的開始。這個暫時可是不好確定,此命令的意思就是讓用戶進程再次嘗試使用此命令。不好確定,此命令的意思就是讓用戶進程再次嘗試使用此命令。 9-19中國科學技術大學 遠程教育5. 永遠拒絕完成應答永遠拒絕完成應答它與暫時拒絕完成應答的區別就在于錯誤條件是一時半會不會它與暫時拒絕完成應答的區別就在于錯誤條件是一時半會不會消失。下面我們來看看第二位所代表的意義:消失。下面我們來看看第二位所代表的意義:0. 格式錯誤;格式錯誤;1. 此類應答是為了請求信息的;此類應答是為了請求信息的;2. 此類應答是關于控制和數據連接的;此類應答是關于控制和數據連接的;3. 關于認證和帳戶登錄過程;
42、關于認證和帳戶登錄過程;4. 未使用;未使用;5. 此類應答是關于文件系統的;此類應答是關于文件系統的;第三個數字是在第二個數字的基礎上對應答內容的進一步細化。第三個數字是在第二個數字的基礎上對應答內容的進一步細化。一般來說,數字代碼后要有文本信息。實現時應該盡量使用現有的一般來說,數字代碼后要有文本信息。實現時應該盡量使用現有的代碼,而不要隨便添加新的意義不大的代碼。代碼,而不要隨便添加新的意義不大的代碼。 下面我們根據數字順序列出各個應答碼及其意義:下面我們根據數字順序列出各個應答碼及其意義:9-20中國科學技術大學 遠程教育應答碼應答碼具體含義具體含義110重新啟動標記應答。在這種情況下
43、文本是確定的,它必須是:重新啟動標記應答。在這種情況下文本是確定的,它必須是:MARK yyyy=mmmm,其中,其中yyyy是用戶進程數據流標記,是用戶進程數據流標記,mmmm是服務器標記。是服務器標記。120服務在服務在nnn分鐘內準備好分鐘內準備好125數據連接已打開,準備傳送數據連接已打開,準備傳送150文件狀態良好,打開數據連接文件狀態良好,打開數據連接200命令成功命令成功 202 命令未實現命令未實現211系統狀態或系統幫助響應系統狀態或系統幫助響應212目錄狀態目錄狀態213文件狀態文件狀態214幫助信息,信息僅對人類用戶有用幫助信息,信息僅對人類用戶有用215名字系統類型名字
44、系統類型220對新用戶服務準備好對新用戶服務準備好221服務關閉控制連接,可以退出登錄服務關閉控制連接,可以退出登錄225數據連接打開,無傳輸正在進行數據連接打開,無傳輸正在進行226關閉數據連接,請求的文件操作成功關閉數據連接,請求的文件操作成功227進入被動模式進入被動模式9-21中國科學技術大學 遠程教育應答碼應答碼具體含義具體含義應答碼應答碼具體含義具體含義230用戶登錄用戶登錄500格式錯誤,命令不可識別格式錯誤,命令不可識別250請求的文件操作完成請求的文件操作完成501參數語法錯誤參數語法錯誤257創建創建PATHNAME502命令未實現命令未實現331用戶名正確,需要口令用戶名
45、正確,需要口令503命令順序錯誤命令順序錯誤332登錄時需要帳戶信息登錄時需要帳戶信息504此參數下的命令功能未實現此參數下的命令功能未實現350請求的文件操作需要進一步命令請求的文件操作需要進一步命令530未登錄未登錄421不能提供服務,關閉控制連接不能提供服務,關閉控制連接532存儲文件需要帳戶信息存儲文件需要帳戶信息425不能打開數據連接不能打開數據連接 550未執行請求的操作未執行請求的操作426關閉連接,中止傳輸關閉連接,中止傳輸551請求操作中止:頁類型未知請求操作中止:頁類型未知450請求的文件操作未執行請求的文件操作未執行552請求的文件操作中止,存儲分配溢出請求的文件操作中止
46、,存儲分配溢出451中止請求的操作:有本地錯誤中止請求的操作:有本地錯誤553未執行請求的操作:文件名不合法未執行請求的操作:文件名不合法452未執行請求的操作:系統存儲空間不足未執行請求的操作:系統存儲空間不足9-22中國科學技術大學 遠程教育9.2 普通文件傳輸協議普通文件傳輸協議TFTPTFTP是網絡應用程序,它比是網絡應用程序,它比FTP簡單也比簡單也比FTP功能少。它在不需要功能少。它在不需要用戶權限或目錄可見的情況下使用。它使用用戶權限或目錄可見的情況下使用。它使用UDP協議而不是協議而不是TCP協議,協議,TFTP在在RFC 1350內得到詳細說明內得到詳細說明 。計算機、網絡設
47、備或外圍設備,可能。計算機、網絡設備或外圍設備,可能需要在不使用需要在不使用FTP建立控制或數據連接時情況下傳輸小文件。例如打印機、建立控制或數據連接時情況下傳輸小文件。例如打印機、集線器或交換機等硬件設備在啟動時可能需要從服務器上下載固件信息,集線器或交換機等硬件設備在啟動時可能需要從服務器上下載固件信息,無盤計算機可能需要從服務器上下載自舉系統文件。在這些情況下,在無無盤計算機可能需要從服務器上下載自舉系統文件。在這些情況下,在無連接連接UDP協議上實現的普通文件傳輸協議是最好的選擇。普通文件傳輸協協議上實現的普通文件傳輸協議是最好的選擇。普通文件傳輸協議(議(TFTP:Trivial F
48、ile Transfer Protocol )提供了這樣的簡單文件傳輸機)提供了這樣的簡單文件傳輸機制。制。9.2.1 TFTP的分組結構的分組結構我們先了解我們先了解TFTP分組的結構,它是該協議中的基本數據傳輸單元。分組的結構,它是該協議中的基本數據傳輸單元。TFTP分組按照結構的不同有分組按照結構的不同有5種分類方法。前兩種類型是讀請求分組和寫種分類方法。前兩種類型是讀請求分組和寫請求分組。讀請求分組或寫請求分組是在連續分組流中發送的初始分組。請求分組。讀請求分組或寫請求分組是在連續分組流中發送的初始分組。當客戶端需要從服務器下載文件時,就向服務器發送一個讀請求分組。當當客戶端需要從服務
49、器下載文件時,就向服務器發送一個讀請求分組。當客戶端需要向服務器傳輸文件時,就向服務器發送一個寫請求分組。第三客戶端需要向服務器傳輸文件時,就向服務器發送一個寫請求分組。第三種分組類型被稱為數據分組,它攜帶著客戶端計算機或設備所需的實際數種分組類型被稱為數據分組,它攜帶著客戶端計算機或設備所需的實際數據。連接在一起的設備還交換確認分組,即第四種分組類型。為了表示錯據。連接在一起的設備還交換確認分組,即第四種分組類型。為了表示錯誤的發生,可以在設備間交換第誤的發生,可以在設備間交換第5種分組類型,即錯誤分組。種分組類型,即錯誤分組。9-23中國科學技術大學 遠程教育Filename:傳送的字段名
50、稱。:傳送的字段名稱。Mode:數據模式。協議傳輸的文件數據格式??梢允牵簲祿J健f議傳輸的文件數據格式??梢允?NetASCII,也可,也可以是標準以是標準 ASCII,八位二進制數據或郵件標準,八位二進制數據或郵件標準 ASCII?;净?TFTP 協議頭結構協議頭結構 16 bitsString16bitsString16 bitsOpcode Filename 0Mode 0Opcode對應的對應的 TFTP 命令命令 opcode命令命令描述描述1ReadRequestRequest to read a file2Write RequestRequest to write to
51、a file3File Data TransferTransfer of file data4Data AcknowledgeAcknowledgement of file data5ErrorError indication 9-24中國科學技術大學 遠程教育所有分組類型都有一個操作碼(所有分組類型都有一個操作碼(Opcode)字段,里面包含一)字段,里面包含一個表示該分組性質的數字值。個表示該分組性質的數字值。例如,例如,0表明該分組是一個讀表明該分組是一個讀請求分組。請求分組也包含了用來描述文件名和傳輸模式的字段。請求分組。請求分組也包含了用來描述文件名和傳輸模式的字段。數據分組包含了一
52、個被稱為塊號門數據分組包含了一個被稱為塊號門lock Number)的附加字段,)的附加字段,該字段通過指定一個塊號來惟一標識分組。除了塊號字段外,數據該字段通過指定一個塊號來惟一標識分組。除了塊號字段外,數據分組還包含存儲了傳輸所需數據的數據字段。確認分組也包含塊號分組還包含存儲了傳輸所需數據的數據字段。確認分組也包含塊號字段,以表示有著相同塊號的特定數據分組已經被確認了。確認分字段,以表示有著相同塊號的特定數據分組已經被確認了。確認分組中的操作碼字段表示該分組的性質。錯誤分組除了包含操作碼字組中的操作碼字段表示該分組的性質。錯誤分組除了包含操作碼字段,還包括一個錯誤碼(段,還包括一個錯誤碼
53、(Error code)字段和一個錯誤報文()字段和一個錯誤報文(Error Message)字段。)字段。在在TFTP中實現的文件傳輸過程非常簡單。首先,客戶端設備中實現的文件傳輸過程非常簡單。首先,客戶端設備向服務器發送一個讀或寫請求分組,以表示客戶端需要讀或者寫一向服務器發送一個讀或寫請求分組,以表示客戶端需要讀或者寫一個特定的文件。接著,實際的傳輸過程通過交換數據分組而實現。個特定的文件。接著,實際的傳輸過程通過交換數據分組而實現。各個分組一經收到就被確認。如果分組的確認沒有在指定的時間內各個分組一經收到就被確認。如果分組的確認沒有在指定的時間內到達,服務器和客戶端上的定時器將控制數據
54、分組的重傳。如果在到達,服務器和客戶端上的定時器將控制數據分組的重傳。如果在傳輸過程中出現了錯誤,就通過錯誤報文分組來通告錯誤報文。傳輸過程中出現了錯誤,就通過錯誤報文分組來通告錯誤報文。9-25中國科學技術大學 遠程教育9.2.2與其它協議的聯系與其它協議的聯系 因為因為TFTP使用使用UDP,而,而UDP使用使用IP,IP可以還使用其它本地可以還使用其它本地通信方法。因此一個通信方法。因此一個TFTP包中會有以下幾段:本地媒介頭,包中會有以下幾段:本地媒介頭,IP頭,頭,數據報頭,數據報頭,TFTP頭,剩下的就是頭,剩下的就是TFTP數據了。數據了。TFTP在在IP頭中不頭中不指定任何數據
55、,但是它使用指定任何數據,但是它使用UDP中的源和目標端口以及包長度域。中的源和目標端口以及包長度域。由由TFTP使用的包標記(使用的包標記(TID)在這里被用做端口,因此)在這里被用做端口,因此TID必須介必須介于于0到到65,535之間。對它的初始化我們在后面討論。之間。對它的初始化我們在后面討論。TFTP頭中包括頭中包括兩上字節的操作碼,這個碼指出了包的類型下面我們看看大體上的兩上字節的操作碼,這個碼指出了包的類型下面我們看看大體上的TFTP包格式,相關的內容我們在后面的章節中進行討論。包格式,相關的內容我們在后面的章節中進行討論。-| Local Medium | Internet |
56、 Datagram | TFTP |- 包頭次序包頭次序9-26中國科學技術大學 遠程教育9.3 網絡文件訪問網絡文件訪問NFS在運行不同操作系統的計算機間提供了一種訪問文件的無縫環境在運行不同操作系統的計算機間提供了一種訪問文件的無縫環境規范。這個協議的正式規范在規范。這個協議的正式規范在RFC 1094中可以找到。中可以找到。RFC 1813中提出了中提出了NFS第三版,旨在實現基于第三版,旨在實現基于Web的文件訪問機制。的文件訪問機制。NFS最初是為了在運行最初是為了在運行UNIX操作系統,或操作系統,或Windows這樣的操作系統這樣的操作系統的計算機之間建立連接而設計的。的計算機之間建立連接而設計的。NFS由一些子協議組成,比如由一些子協議組成,比如 NFS核心核心協議、外部數據表示(協議、外部數據表示(XDR) 則和遠程過程調用(則和遠程過程調用(RPC)。)。當計算機訪問另一臺機器上的文件時,它使用當計算機訪問另一臺機器上的文件時,它使用NFS客戶端以客戶端以RPC數據數據分組的形式來發送請求,其中這些分組的形式來發送請求,其中這些RPC分組包含在分組包含在KP段或段或UDP數據報中。數據報中。RPC分組是分組是NFS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業生實習自我總結范文(5篇)
- 醫師自我鑒定(20篇)
- 2025寒假志愿者心得體會(18篇)
- 合作經營承包合同(4篇)
- 果買賣合同(20篇)
- 百日誓師大會學生代表發言稿(5篇)
- 護理專業實習鑒定300字(6篇)
- 感恩老師演講稿200字(15篇)
- 地鐵圍護施工方案
- 地區貨物運輸合同格式(18篇)
- 中國椎管內分娩鎮痛專家共識(2020版)
- 2023-2024學年天津市紅橋區八年級(下)期中數學試卷(含解析)
- 國開2024年《機械設計基礎》形考任務1-4答案
- ifix培訓教程課件
- 社會單位消防安全風險自查評估報告表模板
- 精神科出院康復指導
- 2024年貴州建筑安全員B證考試題庫及答案(推薦)
- sls打印工藝流程
- PHQ-15軀體癥狀群健康評定量表
- 中醫針灸美容技術操作規范2023版
- 汽車保險防災防損課件
評論
0/150
提交評論