計算機網絡自學筆記:FTP和SMTP

HTTP和FTP都是文件傳輸協議,但FTP使用兩個並行的TCP連接來傳輸文件,一個是控制連接(controlconnection),一個是數據連接(dataconnection)。

控制連接用於在兩個主機之間傳輸控制信息,如用戶標識、口令、改變遠程目錄的命令。數據連接用於實際傳輸一個文件。

也稱FTP的控制信息是帶外(out-of-band)帶外傳送的。

當用戶主機與遠程主機開始一個FTP會話前,FTP的客戶機首先在21號端口上發起一個用於控制的與服務器的TCP連接。

當FTF的服務器端從該連接上收到一個文件傳輸的命令後,在20號端口發起一個到客戶機的數據連接。FTP在該數據連接上傳送一個文件後關閉該連接。

對FTP傳輸而言,控制連接貫穿了整個用戶會話期間,但是針對會話中的每一次文件傳輸都需要建立一個新的數據連接。

F'TP服務器在整個會話期間保留用戶的狀態信息。例如服務器必須追蹤用戶在遠程目錄樹上的當前位置。對每個活躍用戶會話的狀態進行追蹤等。

FTP命令和回答,都是按照7位ASII格式在控制連接上傳送常見的命令如下:

USERusername:用於向服務器傳送用戶標識。

PASSpassword:用幹向服務器傳送用戶口令。

LIST:用於請求服務器返回遠程主機當前目錄的所有文件列表。

RETRfilename:用於從遠程主機的當前目錄下載文件。

STORfilename:用於向遠程主機的當前目錄上傳文件。

要注意區分用戶在FTP客戶端輸入的命令和FTF協議在控制連接上發送的命令之間的區別,儘管它們一般有一一對應關係。

每個命令都對應著一個從服務器返回到客戶機的回答。回答是一個3位數字,後跟一個可選信息。


1:電子郵件系統

電子郵件系統有3個主要組成部分:

用戶代理(usesagent),郵件服務器(mailserver)和簡單郵件傳輸協議(SimpleMailTransferProtocol)。

用戶代理就是郵件客戶端允許用戶閱讀、回覆、轉發、保存和撰寫郵件。可以認為Web瀏覽器也是一種用戶代理,因為現在很多人都使用瀏覽器處理郵件。

郵件服務器組成了電子郵件體系結構的核心。每個接收方在他的郵件服務器上有一個郵箱,郵箱管理和維護用戶接收到的郵件。

一個典型的郵件發送過程是從發送方的用戶代理開始的,傳輸到發送方的郵件服務器,再傳輸到接收方的郵件服務器,然後在這裡被分發到接收方的郵箱中。當接收方在他的郵箱中訪問郵件時,接收方郵件服務器會鑑別用戶的身份(使用用戶名和口令)。

發送方服務器不能將郵件交付到接收方服務器時,會在一個消息隊列中保持該郵件並在以後嘗試再次發送。通常每3分鐘左右進行一次嘗試,如果幾天後仍不能成功,服務器刪除該郵件並以電子郵件的形式通知發送方。

SMTP是因特網電子郵件應用的核心。SMTP用於從發送方的郵件服務器發送郵件到接收方的郵件服務器。

SMTP限制所有郵件消息的主體部分(不僅是其首部)只能採用簡單的7位ASCll碼錶示。

在用SMTP傳送郵件之前,需要將二進制多媒體數據編碼為ASCll碼,並且在使用SMTP傳送後需要將相應的ASCll碼郵件解碼還原為多媒體數據。

SMTP一般不使用中間郵件服務器發送郵件。

SMTP客戶機和服務器的一次交互

計算機網絡自學筆記:FTP和SMTP

計算機網絡自學筆記:FTP和SMTP

SMTP用的是持久連接,如果發送郵件服務器有幾個郵件發往同一個接收郵件服務器,它可以通過同一個TCP連接發送所有這些郵件。對每個郵件,客戶機都用一個新的MAILFROM開始,用一個獨立的句點指示該郵件的結束,並且僅當所有郵件發送完後才發送QUIT。

2 與HTTP的對比

SMTP和HTTP這兩個協議都用於從一臺主機向另一臺主機傳送文件。

HTTP從Web服務器向、瀏覽器、傳送文件(也稱為對象),SMTP從一個郵件服務器向另

一個郵件服務器傳送文件(即電子郵件)。

當進行文件傳送時,持久HTTP和SMTP都使用持久連接。

區別首先在於HTTP是一個拉協議,用戶使用它從該服務器拉取信息。SMTP基本上是

一個推協議,即發送郵件服務器把文件推向接收郵件服務器。特別是,這個TCP連接是由要發送文件的機器發起的。

第二個區別就是我們前面間接提到過的,SMTP要求每個消息(包括它們的主體)都使用7位ASCII碼格式。HTTP數據則沒有這個限制。

第三個重要區別在於如何處理一個既包含文本又包含圖形的文件,HTTP把每個對象封裝到單獨的HTTP響應消息中,而電子郵件則把所有消息對象放在一個消息之中

最後一個重要區別是HTTP使用帶內控制,而SMTP使用帶外控制。

3:郵件消息格式和MIME

電子郵件的每個首部行都包含了可讀的文本,它們是由關鍵詞後跟冒號、值組成的。某些關鍵詞是必需的,有些則是可選的。

每個首部都必須含有一個From:首部行和一個To:首部行,可以包含一個Subject:首部

行或者其他可選的首部行。

在郵件首部之後,緊接著是一個空白行,然後是以ACII格式表示的郵件主體。

非ACCII碼數據的MIME擴展

多用途因特網郵件擴展(MultipurposeInternetMailExtension,MIME)是對電子郵件格式的擴展。

支持多媒體的兩個關鍵首部是Content-Type和Content-transfer-Encoding。

Content-Type:首部允許接收用戶代理對郵件採取適當的動作。例如,通過它指出消息主體包含一個圖形,接收用戶代理可以為消息主體啟用一個圖形的解壓縮程序。

Content-transfer-Encoding:首部行提示接收用戶代理該消息主體已經使用了ASCII編碼,並指出了所用的編碼類型。因此,當用戶代理接收到包含這兩個首部行的郵件時,就會根據Content-transfer-Encoding的值將郵件主體還原成非ASCII的格式。

4郵件訪問協議

一旦SMTP將郵件從發送方的郵件服務器交付給接收方的郵件服務器,該郵件就被放入了收件人的郵箱中。

用戶可以通過在用戶端系統上運行一個用戶代理(電子郵件客戶端)來閱讀電子郵件。

目前有多個流行的郵件訪問協議,包括第三版的郵局協議(PostOfficeProtocolVersion3,POP3)、因特網郵件訪問協議(InternetMailAccessProtocol,IMAP)以及HTTP。

•POP3

POP3是一個非常簡單的郵件訪問協議,其功能相當有限。當用戶代理(客戶機)打開了一個到郵件服務器(服務器)端口110上的TCP連接後,POP3就開始工作了。

POP3按照三個階段進行工作:認證(authorization),事務處理以及更新。在第一個階段,即特許階段,用戶代理發送(以明文形式)用戶名和口令以鑑別用戶。

在第二個階段,即事務處理階段,用戶代理取回郵件,在這個階段,用戶代理還能進行如下操作;對郵件做刪除標記,取消郵件刪除標記,以及獲取郵件的統計信息。

在第三個階段,即更新階段,它出現在客戶機發出了quit命令之後,目的是結束該POP3會話;這時,郵件服務器刪除那些被標記為刪除的郵件。

特許階段有兩個主要的命令:user<username>和pass<password>。/<password>/<username>

事務處理過程。使用POP3的用戶代理通常由用戶配置為“下載並刪除”或者“下載並保留”方式。

在下載並刪除方式下,用戶代理發出list,retr和dele命令。用戶代理從郵件服務器取回每封郵件並刪除它們在服務器上的備份。

當郵件接收方希望從多個不同的機器訪問他的郵件,如從辦公室的PC、家裡的PC或他的便攜機來訪問郵件。下載並刪除方式會給收件人帶來很多不方便。

•IMAP

因特網郵件訪問協議(IMAP)比POP3具有更多的特色,因此更加複雜。

IMAP服務器把每個郵件與一個文件夾聯繫起來,當郵件第一次到達服務器時,它是放

在收件人的收件箱文件夾裡。收件人則可以把郵件移到一個新的、用戶創建的文件夾中,或閱讀郵件、刪除郵件等。IMAP協議為用戶提供了創建文件夾以及在文件夾之間移動郵件的命令.它還為用戶提供了在遠程文件夾中查詢郵件的命令,按指定條件去查詢匹配的郵件。

與POP3不同的是,IMAP服務器維護了IMAP會話的用戶狀態信息,例如,文件夾的名字以及哪個郵件與哪個文件夾相關聯。

IMAP的另一個重要特性是它具有允許用戶代理獲取郵件組件的命令。例如,用戶代理可以只讀取一個郵件首部。

•基於Web的電子郵件

越來越多的用戶使用他們的Web瀏覽器收發電子郵件。

基於Web的電子郵件,用戶代理就是普通的瀏覽器,用戶和其遠程郵箱之間的通信則

通過HTTP進行。當一個收件人想從他的郵箱中取一個郵件時,該電子郵件從郵件服務器發送到他的瀏覽器,使用的是HTTP而不是POP或者IMAP協議。當發件人要發送一封電子郵件時,使用的也是HTTP而不是SMTP。

但是,用戶的郵件服務器在與其他的郵件服務器之間發送和接收郵件時,仍然使用SMTP。


分享到:


相關文章: