文件傳輸協議FTP
文件傳輸協議比較多,我們主要掌握FTP協議,了解一下TFTP。
FTP(File Transfer Protocol) 文件傳送協議
TFTP(Trival Transfer Protocal) 簡單文件傳輸協議。
比較容易實現;面向小文件 的文件傳輸協議
FTP 可以提供不同種類計算機(硬件軟件都不同的)之間的文件傳輸能力。可以屏蔽不同操作系統之間的差異性。
FTP服務器和客戶端
FTP是屬於客戶/服務器(C/S)模型
客戶端有一個FTP客戶端程序,服務器端有一個FTP服務器程序 。客戶機程序連接服務器程序。
下載FTP客戶端之后就能與服務器實現文件傳送和交互.
FTP實現可靠傳輸,所以使用的是TCP連接。
一台服務器的FTP進程可以同時為多個客戶端提供服務
FTP服務器進程由一個主進程和n個從屬進程組成。主進程負責打開服務器的FTP總端口,端口號是21。 n個從進程負責和具體的不同FTP客戶端連接,具體處理對應任務。
控制進程是一直打開的,數據進程只在傳送數據的時候打開。服務器端的控制進程在收到FTP請求之后,才創建數據進程和數據進程之間的連接 控制進程傳的是請求,數據進程傳的是文件。控制進程全程始終打開,數據進程在傳輸完文件之后就會結束,關閉,只保持一會。
FTP數據連接端口號21;FTP數據連接端口號20,這里的數據連接端口號不是一直是20,端口號數字和傳輸模式有關 :
傳輸模式要是主動方式,就會使用TCP20端口;建立控制連接后,服務器會主動告知客戶端數據連接的端口號是20,和客戶端之間建立數據連接
服務器的控制連接端口號21,服務器的數據連接端口號是20,HTTP80端口號 這些常見的熟知端口號是指的是服務器的端口號
客戶端的端口號則是隨機分配
傳輸模式要是被動方式,就會使用\(>1024\) 的端口號,服務器和客戶端具體協商解決 建立控制連接之后,客戶端會詢問客戶端發送一個多少的端口號,然后服務器就會返回給客戶端一個端口號大於1024的端口號給客戶端,然后二者就可以建立數據連接了。
FTP傳輸數據模式:
- 文本模式:ASCII模式
- 二進制模式:Binary模式
電子郵件系統組成結構:
用戶代理(電子郵件客戶端軟件,就是電腦上上的郵件客戶端界面):用戶和電子郵件系統的一個接口,通常情況下用戶代理就是運行在客戶端的一個程序。 可以使用的用戶代理:163、Outlook、Foxmail…… 功能:撰寫、顯示、處理、通信
郵件服務器:既然是服務器,就會一直開機。既可以作為客戶端,也可以作為服務器端 功能:發送/接收郵件 向發送人報告郵件傳送結果
協議:SMTP(發送,推出郵件)
POP3(收,抽出郵件)
IMAP(收,抽出郵件)
SMTP (TCP連接、端口號25、C/S)
SMTP客戶並不是一定不能是服務器,如上圖中間紅線,SMTP客戶是在郵件服務器中。
負責發送郵件的SMTP進程就是SMTP客戶,負責接收郵件的就是SMTP服務。SMTP協議就是負責處理這兩個進程之間如何交換信息。
SMTP郵件建立過程
- 連接建立
發送方把郵件放到發送郵件服務器,發送郵件服務器會每隔一段時間掃描整個服務器,然后發送。發送郵件服務器會先發送 220 Service Already給接收方郵件服務器,接收方郵件服務器有能力接收就會返回給發送郵件服務器"250 OK",要是沒能力接收,就會返回給發送郵件服務器"421 Service Not Already"
- 郵件發送
- 連接釋放階段
SMTP缺點
解決方法,對SMTP擴充(改進)——MIME
IDEA:把非ASCII碼轉換成ASCII碼,再通過SMTP
POP3
Pop3 工作方式 下載並保留(在服務器)、下載並刪除
IMAP
客戶程序打開IMAP服務器的郵箱時,用戶可以看到郵箱的首部,包括To…… 和 Subject: ,若用戶需要打開某個郵件,該IMAP服務器才會把郵件上傳到用戶PC上。
它允許只讀文件中的某一部分,比如只看正文,附件可以隨后自行決策下載