Page 1

資策會網路工程師班 81 期

TCP/IP 報告

檔案傳輸通訊協定 FTP

班級:UC103 學號:C1000212 姓名:段繼祖


FTP 是什麼: 檔案傳輸通訊協定 FTP(File Transfer Protocol),可分為主動模式(FTP Active Mode)與被動模式(FTP Passive Mode),FTP 伺服器使用 TCP 所提供的服務,且有兩條 Port 用於傳送指令的控制通道和檔案傳 輸的資料通道,來讓在兩台電腦(Client 和 Server)之間傳輸檔案的一種通訊協定。 FTP Server

FTP Client

資料通道(data channel)

20

Random Port (大於 1024)

控制通道(control channel)

21

Random Port (大於 1024)

實驗環境: FTP 伺服器(兼 DNS 伺服器)

測試電腦

OS

Windows Server 2008

Windows XP

電腦名稱

FTP1

XPPC

IP

192 . 168 . 8 . 1

192 . 168 . 8 . 2

DNS

192 . 168 . 8 . 1

192 . 168 . 8 . 1

測試電腦安裝以下兩個軟體:

Wireshark 是抓取封包的軟體;而可以連網路的 IP 只有一個,因此用 FileZilla 軟體來傳輸檔案。


開始連線: 首先在測試電腦用 FileZilla 向 FTP 伺服器連線:

開啟 FileZilla,在編輯->設定->連線->FTP 的地方選擇主動或被動的模式。 再到下圖的地方輸入 FTP 伺服器的 IP 和使用者的帳號密碼後,按下快速連線。


三向交握(Three-way Handshaking): 三向交握是兩台電腦溝通和傳輸資料前要建立連線時所採用的方式,步驟的順序如下:

(1)在命令提示字元中用「ftp 192.168.8.1」和 FTP 建立連線,此時用戶端會隨機產生一個 Port(大於 1024) ) 並傳送[Flag] SYN seq=0 的封包給 Server,表示要和 Server 建立連線。 (2)如果 Server 端的 Port 有開放的話,就會回傳一個[Flag] SYN ACK seq=0 ack=1 的封包給 Client。 (3)最後 Client 收到 Server 回傳的封包後,就會再傳一個[Flag] ACK seq=1 ack=1 封包給 Server 來表示連 ( 線成功。


FTP Active Mode(主動模式): 主動模式又稱標準模式或 Port 模式,此模式的用戶端和伺服器溝通過程如下:

(1)用戶端要建立和 Server 之間的控制通道連線(建立連線時伺服器 IP 為 192.168.8.1、Port 21,用戶端 (1)IP 為 192.168.8.2、Port m)。

圖中可以看出 6、9、10 號封包就是此步驟由用戶端所傳送給伺服器的封包(三向交握),且 Port m=Port 1054。


(2)當用戶端開始下載(或上傳)檔案時,用戶端會透過控制通道傳送 PORT 指令(此指令包含用戶端的 IP (2)位址和另一個 Port n)給 Server,用指令裡的 IP 和 Port 傳送檔案給用戶端。

在 34 號封包可以看出由用戶端傳送的 PORT 指令封包,用 IP:192.168.8.2 和 Port 1055(Port n)來傳送檔 案。 (3)伺服器建立與用戶端之間的資料通道連線(建立連線時伺服器 IP 為 192.168.8.1、Port 20,用戶端 IP (1)為 192.168.8.2、Port n)。

在 35 號封包中,伺服器用三向交握(35.36.38 封包)和用戶端建立資料通道連線(建立連線時伺服器 IP 為 192.168.8.1、Port 20,用戶端 IP 為 192.168.8.2、Port 1055)。


補充:(1)之後每傳一檔案,用戶端的 Port 就改成現在的 Port 再加 1。 (2)從下圖可以得知,FTP 主動模式在傳輸使用者帳號和密碼時完全沒有加密,安全性非常低。

FTP Passive Mode (被動模式): 被動模式又稱為 PASV 模式,此模式的用戶端和伺服器溝通過程如下:

(1)用戶端要建立和 Server 之間的控制通道連線(建立連線時伺服器 IP 為 192.168.8.1、Port 21,用戶端 (1)IP 為 192.168.8.2、Port m)。

圖中可以看出 8、11、12 號封包就是此步驟由用戶端所傳送給伺服器的封包(三向交握),且 Port m=Port 1060。


(2)用戶端透過控制通道傳送 PASV 指令給伺服器,表示要用被動模式和 Server 溝通。

35 號封包就是用戶端透過控制通道傳送 PASV 指令給伺服器,表示要用被動模式來傳送檔案。 (3)伺服器透過控制通道將用來接聽用戶端要求的 IP 位址和 Port x(動態產生)傳給用戶端。

36 號封包是伺服器建立資料連線時,自己用的 IP 和 Port 49164(Port x)傳給用戶端。


(4)用戶端建立與伺服器之間的資料通道連線(建立連線時伺服器 IP 為 192.168.8.1、Port x,用戶端 IP (1)為 192.168.8.2、Port n)。

用戶端用三向交握(37、39、40 封包)和伺服器建立資料通道連線,建立連線時伺服器 IP 為 192.168.8.1、 Port 49164,用戶端 IP 為 192.168.8.2、Port 1061(Port n)。 補充:(1)之後每傳一檔案,用戶端的 Port 就改成現在的 Port 再加 1。 (2)從下圖可以得知,FTP 被動模式在傳輸使用者帳號和密碼時也完全沒有加密,安全性非常 :(1) 低。所以可以得知,無論是用主動或被動模式來傳輸檔案,FTP 可以說是完全沒有安全性。


實驗主題:以 OSI 七層來解釋 FTP Active Mode 與 FTP Passive Mode。 因為主動模式和被動模式在 OSI 七層的內容都一樣,因此只由主動模式的封包來說明: 1.實體層(Physical Layer):

雖然無法看出所用的網路實體架構和傳輸媒介規格為何,但可以看到封包位元組 的地方有位元訊號顯示,所以確定有位元訊號的傳輸過程。


2.資料連接層(Data Link Layer) :

將實體層傳來的位元訊號組成一個訊框,並加上來源和目的地的 MAC Address 後,傳輸到上一層的實體媒介(例如 Router),並且在傳輸的過程中會進行偵錯與 復原。


3.網路層(Network Layer):

在下一層所接收到的訊框,再加上來源與目的地的 IP 位址後,就稱為封包,再 找出此封包在網際網路中的最佳傳輸路徑(協定);上圖所選的協定為 TCP。


4.傳輸層(Transport Layer):

傳輸層會提供可靠的傳輸路徑(此圖為 TCP 的三向交握),給已建立好連繫的兩節點能安全無誤地送達 ,也負責流量控制(windows size)及錯誤偵測(checksum);在 TCP 這階段會事先收到要轉往應用層的 Port (Server 為 21,Client 取得的隨機 Port 是 1074)。上圖封包裡沒有任何資料,只有一些控制命令,所以 它的 sequence number 為 0。


5.交談層(Session Layer)、表達層(Presentation Layer)、應用層(Application Layer): 在 TCP 協定中只有五層,而第 5 層即是應用層,且包含了 OSI 的第五、六層,因此只說明應用層的 地方: 應用層是使用者平常操作時的介面,首先用命令提示字元登入 FTP 站台來看封包的部份:

1883 號封包為在登入 FTP 站台時輸入使用者帳號的內容,在應用層的地方可以看到使用者在程式介 面上所看到的訊息和文字。 最後從應用程式的介面來看,下面兩張圖分別為用 IE 瀏覽器和檔案總管,連接上國立台灣大學計中 FTP 目錄的圖片:


IE 瀏覽器:

檔案總管:


我的報告到此結束,謝謝

ftp  

tcp/ip report

Read more
Read more
Similar to
Popular now
Just for you