引言
從一台計算機向另一台計算機傳送檔案是在連網或網際網路環境中最常見的任務。而FTP和TFTP就是這樣的協定。
關于檔案傳輸協定FTP?
端口21
使用服務TCP

【FTP模型】
FTP連接配接?
1.控制連接配接
a.伺服器在熟知端口21發出被動打開指令,等待客戶。
b.客戶使用臨時端口發出主動打開指令。
2.資料連接配接
資料連接配接使用伺服器端的熟知端口20。
a.客戶使用一個臨時端口發出被動打開。
b.客戶使用PORT指令把這個端口号發送給伺服器。
c.伺服器收到這個端口号,并使用熟知端口20和臨時端口号發出主動打開。
FTP通信?
兩台計算機可以使用不同的作業系統、不同的字元集、不同的檔案結構以及不同的檔案格式。FTP必須使這種異構性得到相容。
FTP使用了兩種解決問題的方法,一種用于控制連接配接,一種用于資料連接配接。
1.在控制連接配接上的通信
它使用NVT字元集
【圖示】
2.在資料連接配接上的通信
異構性問題可以通過檔案類型、資料結構以及傳輸方式三個通信屬性來解決。
檔案類型(ASCLL檔案、EBCDIC檔案、圖像檔案,非列印,TELNET)
資料結構
傳輸方式(流方式、塊方式、壓縮方式)
FTP指令處理?
接入指令(USER、PASS,ACCT,REIN,QUIT,ABOR)
檔案管理指令(CWD,CDUP,DELE,LIST,PWD等等)
資料格式化指令(TYPE,STRU,MODE)
端口定義指令(PORT,PASV)
檔案傳送指令
雜項指令(HELP、SYST)
響應
每一個FTP指令至少産生一個響應,由三位數字的數以及跟随後面的文本。
FTP檔案傳送?
從伺服器把檔案複制給客戶,這稱為讀取檔案。
從客戶把檔案複制到伺服器稱為存儲檔案。
從伺服器向客戶發送目錄清單或檔案名。是在LIST指令的監督下完成的。
【圖例控制連接配接與資料連接配接】
簡單檔案傳送協定(TFTP)?
有時候我們隻需要複制一個檔案而不需要FTP協定的全部功能。簡單檔案傳送協定應運而生。
TFTP端口69
使用服務UDP
TFTP的封包?
共有五種類型,RRQ,WRQ,DATA,ACK和ERROR。
1.RRQ,讀請求封包
2.WRQ,寫請求
3.DATA,資料封包
4.ACK,确認封包
5.ERROR,錯誤封包
差錯号
0 未定義
1 檔案未找到
2 存取被破壞
3 磁盤滿
4 非法操作
5 未知端口
6 檔案已存在
7 無此使用者
TFTP連接配接?
TFTP使用UDP服務。UDP不提供連接配接建立和終止,是以TFTP自己建立連接配接。
TFTP資料傳送?
UDP沒有流量控制和差錯控制機制。TFTP必須建立流量控制和差錯控制機制,以便傳送由連續資料塊構成的檔案。
1.流量控制
TFTP使用DATA封包發送資料塊,并等待ACK封包。若在逾時之前發送端就收到了确認,它就發送下一個塊。
讀取檔案,發送RPQ封包。存儲檔案發送WRQ封包。
2.差錯控制
對稱的,發送端和接收端都使用逾時。
UDP端口?
【UDP通信過程】
TFTP案例?
客戶打算讀取名叫file1的2000位元組的檔案的内容。客戶發送RRQ封包。伺服器發送第一個封包,攜帶第一個512位元組,它原封不動地被接收和确認了。
攜帶第二個512位元組的資料塊丢失了。逾時後,伺服器重新傳送這個資料塊,被收到了。
第三個512收到了,但确認丢失了。逾時後,接收端重新确認。攜帶剩下464位元組的最後一個資料塊收到了,但受到損傷,是以客戶簡單地把它丢棄。逾時後,伺服器重新傳送。
連接配接終止。
【圖解】
tips:通過這個流程,在大腦中過了一遍,更加清晰了它的具體過程。
本文轉自TBHacker部落格園部落格,原文連結:http://www.cnblogs.com/jiqing9006/p/3142626.html,如需轉載請自行聯系原作者