FTP的兩種不同工作模式

2021-05-23 19:50:18 字數 1056 閱讀 8754

ftp的兩種不同工作模式:port(主動模式)、pasv(被動模式)

1、port模式:該模式是ftp協議最初定義的連線模式,其連線過程是:在開始乙個ftp連線時,客戶端程式首先會為自己隨機分配乙個tcp端

口,它使用這個埠向伺服器的ftp埠(預設21)發出連線請求,伺服器接受請求後會建立一條控制鏈路,然後客戶程式向伺服器發出port命

令,告訴伺服器它的資料通道的埠開啟了。當需要傳送資料時,伺服器端口通過20埠向客戶端提供的隨機埠傳送連線請求,請求被接受之

後便開始傳輸資料,資料鏈路通道也就開啟了, 在整個過程中,由於伺服器在建立資料連線時主動發起連線,因此稱為主動模式。

注:port模式的問題

由於客戶端提供的埠號是隨機的,如果客戶端處於防火牆內部,由於防火牆大多會限制自問主機連線內部非開放埠,資料連線很可能被防火牆限制,造成無法建立資料連線,從而導致ftp無法正常工作

2、pasv模式:其連線過程是,在開始乙個ftp連線時,客戶端程式首先為自己隨機分配乙個tcp埠,它使用這個埠向伺服器的ftp埠

(預設21)發出連線請求,伺服器接受請求後會建立一條控制鏈路,然後客戶端程式發出一pasv命令,要求伺服器採用pasv模式建立資料連

接,伺服器便為自己隨機分配乙個資料通道埠,並將這個埠號告訴客戶端程式。傳送資料時,客戶端程式採用另乙個隨機埠向伺服器提供

的資料通道埠傳送連線請求,請求被接受之後便開始傳輸資料,資料鏈路通道也就開啟了。在這個方式中,由於伺服器端在建立資料連線時,

被動接受客戶端的連線請求,因此稱為被動方式

注:被動方式,由於兩個連線都由客戶端發起,對於防火牆來說,一般不限制這樣的訪問,因此解決了防火牆內無法進行ftp的問題

附一例子:

用mfc 提供的cinternetsession、cftpconnection進行ftp連線

如果在cftpconnection *pftpconn=test.getftpconnection(_t("127.0.0.1"),null,null,21,true);中將最後的引數true設為

預設(即false),大多數情況下會連線錯誤,因為false代表採用主動方式

ftp的兩種工作模式

ftp 是一種資料傳輸協議 file transfer protocol 它的連線模式有兩種 主動模式 active 和被動模式 passive 以下說明ftp的連線是怎樣建立的 在 active 模式下 一般預設的模式 ftp client 開啟乙個隨機選擇的tcp port 呼叫 ftp ser...

ftp的兩種工作模式

ftp 是一種資料傳輸協議 file transfer protocol 它的連線模式有兩種 主動模式 active 和被動模式 passive 以下說明ftp的連線是怎樣建立的 在 active 模式下 一般預設的模式 ftp client 開啟乙個隨機選擇的tcp port 呼叫 ftp ser...

FTP兩種工作模式介紹

ftp是僅基於tcp的服務,不支援udp。與眾不同的是ftp使用2個埠,乙個資料埠和乙個命令埠 也可叫做控制埠 通常來說這兩個埠是21 命令埠 和20 資料埠 但ftp 工作方式的不同,資料埠並不總是20。這就是主動與被動ftp的最大不同之處。一 主動ftp 在主動模式下 客戶端從乙個任意的非特權埠...