摘要:隨著Internet的普及,電子郵件已經(jīng)逐漸取代傳統(tǒng)郵件日益廣泛地影響著我們的生活與工作,而郵局協(xié)議是保證我們通過客戶端軟件成功獲取電子郵件的協(xié)議。本文結(jié)合目前市場功能最強(qiáng)大的協(xié)議分析軟件Sniffer Pro對(duì)郵局協(xié)議進(jìn)行直觀的分析與研究。
關(guān)鍵詞:Sniffer Pro;POP3;電子郵件
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)06-10ppp-0c
Research and Analysis of POP3 Based on Sniffer
YANG Ming-chuan
(Department of Computer Engineer Shenzhen Polytechnic, Shenzhen 518055, China)
Abstract: With the Internet popularization, E-mail has already taken place tradition mail. It influences widely our life and work.POP3 endure us to receive E-mail successfully by client soft. It also unified the present most popular software of network data packet capturing: Sniffer to direct-viewing research and the analysis the POP3.
Key words: Sniffer Pro;POP3;E-mail
1 郵局協(xié)議(POP3)
郵局協(xié)議即POP,它的全稱是Post Office Protocol,用于電子郵件的接收,它使用TCP的110端口?,F(xiàn)在常用的是第三版 ,所以簡稱為 POP3。POP3采用Client/Server工作模式,Client被稱為客戶端,一般我們?nèi)粘J褂胦utlook或Foxmail是作為客戶端軟件,而Server(服務(wù)器)則是網(wǎng)管人員進(jìn)行管理的。舉個(gè)形象的例子,Server(服務(wù)器)是許多小信箱的集合,就像我們所居住樓房的信箱結(jié)構(gòu),而客戶端就好比是用戶,郵局協(xié)議好比是用戶開啟信息的鑰匙。
2 郵局協(xié)議(POP3)的工作原理
下面就讓我們一起來看看電子郵件軟件收取電子郵件的過程,一般我們?cè)陔娮余]件軟件的賬號(hào)屬性上設(shè)置一個(gè)POP服務(wù)器的URL(比如pop.21cn.com),以及郵箱的賬號(hào)和密碼。當(dāng)我們按下電子郵件軟件中的“收取”鍵后,電子郵件客戶端軟件首先會(huì)調(diào)用DNS協(xié)議對(duì)POP服務(wù)器進(jìn)行解析IP地址,當(dāng)IP地址被解析出來后,郵件程序便開始使用TCP協(xié)議連接郵件服務(wù)器的110端口。當(dāng)郵件程序成功地連上POP服務(wù)器后,其先會(huì)使用USER命令將郵箱的賬號(hào)傳給POP服務(wù)器,然后再使用PASS命令將郵箱的賬號(hào)傳給服務(wù)器,當(dāng)完成這一認(rèn)證過程后,郵件程序使用STAT命令請(qǐng)求服務(wù)器返回郵箱的統(tǒng)計(jì)資料,比如郵件總數(shù)和郵件大小等,然后LIST便會(huì)列出服務(wù)器里郵件數(shù)量。然后郵件程序就會(huì)使用RETR命令接收郵件,接收一封后便使用DELE命令將郵件服務(wù)器中的郵件置為刪除狀態(tài)。當(dāng)使用QUIT時(shí),郵件服務(wù)器便會(huì)將置為刪除標(biāo)志的郵件給刪除了。
3 Sniffer的介紹
Sniffer產(chǎn)品是IT行業(yè)內(nèi)支持的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)范圍最廣,協(xié)議最多,并攜帶具有專家支持系統(tǒng)的網(wǎng)絡(luò)分析儀,同時(shí)也是一個(gè)網(wǎng)絡(luò)故障、性能和安全管理的有力工具,適用于Ethernet、Fast Ethernet、Switched LANs等網(wǎng)絡(luò)。它對(duì)各種現(xiàn)有網(wǎng)絡(luò)協(xié)議進(jìn)行解碼,支持多達(dá)574種網(wǎng)絡(luò)協(xié)議并對(duì)各種應(yīng)用層協(xié)議進(jìn)行解碼。它安裝在網(wǎng)絡(luò)接口層,用于對(duì)網(wǎng)絡(luò)主機(jī)的監(jiān)聽,我們通過分析截獲的報(bào)文,可以理解各種協(xié)議定義的數(shù)據(jù)結(jié)構(gòu), 也可以理解數(shù)據(jù)在每一層上的封裝情況。
4 Sniffer對(duì)郵局協(xié)議的研究與分析
4.1 實(shí)驗(yàn)平臺(tái)
(1)申請(qǐng)電子信箱
以電子郵件yymmcc@21cn.com為例,首先在WWW.21CN.COM,作出申請(qǐng),獲得郵箱名字為yymmcc@21cn.com,密碼為abcd12,記下該郵箱的發(fā)送郵件服務(wù)器的地址為smtp.21cn.com,接收郵件服務(wù)器的地址為pop.21cn.com。
(2)安裝并配置電子郵件客戶端軟件Foxmail
以局域網(wǎng)上IP地址為10.1.14.102的主機(jī)作為操作對(duì)象,在該機(jī)上安裝電子郵件客戶端軟件Foxmail軟件。安裝好后在帳戶-屬性中設(shè)置發(fā)送郵件服務(wù)器的地址為smtp.21cn.com,接收郵件服務(wù)器的地址為pop.21cn.com以及剛才申請(qǐng)的電子郵件帳號(hào)、密碼。
(3)設(shè)置Sniffer捕獲過濾器。
在IP地址為10.1.14.102的主機(jī)上安裝Sniffer Pro,如果該機(jī)安裝多塊網(wǎng)卡,在文件菜單中選擇“選擇設(shè)置”,指定要捕獲數(shù)據(jù)包的IP地址為10.1.14.102的網(wǎng)卡,然后在工具欄上打開捕獲過濾器-高級(jí)標(biāo)簽, 定義要捕獲的協(xié)議數(shù)據(jù),在高級(jí)標(biāo)簽中選擇IP-TCP-POP協(xié)議。
(4)啟動(dòng)Sniffer捕獲過濾器,將Foxmail客戶端連接郵件服務(wù)器,捕獲并用解碼方式查看捕獲到的數(shù)據(jù)包。
4.2 POP3工作過程的研究與分析
POP3允許用戶從服務(wù)器上把郵件存儲(chǔ)到本地主機(jī)(即自己的計(jì)算機(jī))上,同時(shí)刪除保存在郵件服務(wù)器上的郵件。PO3適用于C/S結(jié)構(gòu)的脫機(jī)模型。脫機(jī)模型即不能在線操作,當(dāng)客戶機(jī)與服務(wù)器連接并查詢新電子郵件時(shí),被該客戶機(jī)指定的所有將被下載的郵件都將被程序下載到客戶機(jī),下載后,電子郵件客戶機(jī)就可以刪除或修改任意郵件,而無需與電子郵件服務(wù)器進(jìn)一步交互。POP3客戶向POP3服務(wù)器發(fā)送命令并等待響應(yīng),POP3命令采用命令行形式,用ASCII碼表示。服務(wù)器響應(yīng)是由一個(gè)單獨(dú)的命令行組成,或多個(gè)命令行組成,響應(yīng)第一行以ASCII文本+OK或-ERR指出相應(yīng)的操作狀態(tài)是成功還是失敗。如圖1:
圖1 POP服務(wù)器對(duì)客戶端的響應(yīng)
在POP3協(xié)議中有三種狀態(tài),認(rèn)可狀態(tài),處理狀態(tài),和更新狀態(tài)。 當(dāng)客戶機(jī)與服務(wù)器建立聯(lián)系時(shí),一旦客戶機(jī)提供了自己身份并成功確認(rèn),即由認(rèn)可狀態(tài)轉(zhuǎn)入處理狀態(tài), 在完成相應(yīng)的操作后客戶機(jī)發(fā)出quit命令,則進(jìn)入更新狀態(tài),更新之后最后重返認(rèn)可狀態(tài)。如下圖:
4.2.1 POP3授權(quán)狀態(tài)
在成功和郵件服務(wù)器建立連接之后,客戶端軟件要向郵件服務(wù)器發(fā)送電子郵件的帳號(hào)信息,即發(fā)送命令USER,用戶名是該命令的參數(shù)即yymmcc。捕獲的數(shù)據(jù)如下:
圖2 POP3的USER命令
如果用戶名已注冊(cè),服務(wù)器將返回一條正確的消息,然后客戶端發(fā)出PASS命令,告訴服務(wù)器你的郵箱密碼abcd12。
圖3 POP3的PASS命令
如果用戶名和密碼吻合的話,服務(wù)器會(huì)返回一條正確的消息,隨即進(jìn)入傳送狀態(tài)。
4.2.2 傳送狀態(tài)
客戶端發(fā)出STAT命令請(qǐng)求服務(wù)器發(fā)回關(guān)于郵箱的統(tǒng)計(jì)資料,如郵件總數(shù)和總字節(jié)數(shù)。如下圖:
圖4 POP3 STAT命令
服務(wù)器告訴客戶端郵箱目前的狀態(tài)。服務(wù)器返回信息如下:即郵箱有兩個(gè)郵件,共計(jì)2891字節(jié)。
圖5 郵件服務(wù)器返回信息
如果郵箱中沒有郵件,用QUIT命令就可結(jié)束同服務(wù)器的連接。如果郵箱中有郵件的話,客戶端發(fā)出UIDL命令來返回郵件的唯一標(biāo)識(shí)符,POP3會(huì)話的每個(gè)標(biāo)識(shí)符都將是唯一的。在獲得郵件服務(wù)器確認(rèn)后發(fā)出 LIST命令,用來返回郵件數(shù)量和每個(gè)郵件的大?。▓D略)??蛻舳税l(fā)出RETR2命令將服務(wù)器上的兩封郵件下載到本地機(jī)。
圖6 POP3的RETR命令
RETR僅將郵件服務(wù)器上的郵件副本拷貝到本地機(jī),郵件服務(wù)器上還有郵件的原件,若要?jiǎng)h除它,客戶端發(fā)出DELE 2命令,即刪除服務(wù)器上的兩封郵件。但是這些郵件并不是立即從服務(wù)器上刪除,而只是被做上了一個(gè)刪除的標(biāo)記,當(dāng)客戶端斷開同服務(wù)器的連接后,才真正從服務(wù)器上刪除。
圖7 POP3的DELE命令
4.2.3更新狀態(tài)
客戶端發(fā)出QUIT命令,進(jìn)入更新狀態(tài)。這個(gè)命令來確認(rèn)所做的所有改變,刪除被標(biāo)上刪除標(biāo)記的郵件以及關(guān)閉連接。
圖8 POP3 QUIT命令
5 結(jié)束語
郵局協(xié)議是用戶經(jīng)常使用的協(xié)議,但是它的原理和工作過程比較抽象。本文通過嗅探軟件Sniffer從協(xié)議層的角度對(duì)郵局協(xié)議進(jìn)行了分析和解析,使用戶對(duì)該協(xié)議有更清晰明確的了解。
參考文獻(xiàn):
[1]RFC1939-POP3協(xié)議.
[2]Robert J. Shimonski, Wally Eaton, 等. Sniffer Pro網(wǎng)絡(luò)優(yōu)化與故障檢修手冊(cè)[M]. 北京:電子工業(yè)出版社,2004.8.
收稿日期:2008-01-28
作者信息:楊名川,女,吉林人,講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。