Energy of Love  
          日歷
          <2009年6月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011
          統計
          • 隨筆 - 70
          • 文章 - 0
          • 評論 - 80
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

          原文地址:http://www.csna.cn/viewthread.php?tid=569&sid=FbE5VS

          一、        郵件傳輸協議簡介
          1.        郵件傳輸概念
          郵件服務是Internet上最常用的服務之一,它提供了與操作系統平臺無關的通信服務,使用郵件服務,用戶可通過電子郵件在網絡之間交換數據信息。郵件傳輸包括將郵件從發送者客戶端發往郵件服務器,以及接收者從郵件服務器將郵件取回到接收者客戶端。
          2.        SMTP和POP3
          在TCP/IP協議簇中,一般使用SMTP協議發送郵件,POP3協議接收郵件。
          SMTP,全稱Simple Message Transfer Protocol,中文名為簡單郵件傳輸協議,工作在TCP/IP層次的應用層。SMTP采用Client/Server工作模式,默認使用TCP 25端口,提供可靠的郵件發送服務。
          POP3,全稱Post Office Protocol 3,中文名為第三版郵局協議,工作在TCP/IP層次的應用層。POP3采用Client/Server工作模式,默認使用TCP 110端口,提供可靠的郵件接收服務。
          3.        SMTP和POP3的工作原理
          發送和接收郵件都需要以下兩個組件:用戶代理(UA,常用的是Foxmail或Outlook)和SMTP/POP3服務器。
          SMTP工作原理:
          1)        客戶端使用TCP協議連接SMTP服務器的25端口;
          2)        客戶端發送HELO報文將自己的域地址告訴給SMTP服務器;
          3)        SMTP服務器接受連接請求,向客戶端發送請求賬號密碼的報文;
          4)        客戶端向SMTP服務器傳送賬號和密碼,如果驗證成功,向客戶端發送一個OK命令,表示可以開始報文傳輸;
          5)        客戶端使用MAIL命令將郵件發送者的名稱發送給SMTP服務器;
          6)        SMTP服務器發送OK命令做出響應;
          7)        客戶端使用RCPT命令發送郵件接收者地址,如果SMTP服務器能識別這個地址,就向客戶端發送OK命令,否則拒絕這個請求;
          8)        收到SMTP服務器的OK命令后,客戶端使用DATA命令發送郵件的數據。
          9)        客戶端發送QUIT命令終止連接。
          POP3工作原理:
          1)        客戶端使用TCP協議連接郵件服務器的110端口;
          2)        客戶端使用USER命令將郵箱的賬號傳給POP3服務器;
          3)        客戶端使用PASS命令將郵箱的賬號傳給POP3服務器;
          4)        完成用戶認證后,客戶端使用STAT命令請求服務器返回郵箱的統計資料;
          5)        客戶端使用LIST命令列出服務器里郵件數量;
          6)        客戶端使用RETR命令接收郵件,接收一封后便使用DELE命令將郵件服務器中的郵件置為刪除狀態;
          7)        客戶端發送QUIT命令,郵件服務器將將置為刪除標志的郵件刪除,連接結束。
          (注:客戶端UA可以設定將郵件在郵件服務器上保留備份,而不將其刪除。)

          二、        跟蹤分析Email電子郵件通訊過程
          1.        分析Email的具體流程
          1)        發送郵件
          我們使用科來網絡分析系統5.0捕獲并分析一個使用SMTP協議的發送郵件過程,客戶端主機名為“wangym”,客戶端用戶代理使用Foxmail 5.0 beta2,郵件發送者test1@colasoft.com,郵件接收者test2@colasoft.com。
          在客戶端主機上打開科來網絡分析系統5.0。為避免數據干擾,設定一個過濾器,只捕獲本機的數據通訊。
          打開客戶端主機上的Foxmail 5.0 beta2,新建兩個郵件賬戶,test1@colasoft.com和test2@colasoft.com,設置好賬戶的SMTP/POP3服務器地址、用戶名、密碼等信息并測試成功。
          在科來網絡分析系統5.0中開始數據捕獲,在Foxmail中使用test1@colasoft.com向test2@colasoft.com發送一封郵件,郵件原始信息如圖1所示。發送完成后即可在科來網絡分析系統5.0對剛才的郵件發送操作進行分析(為避免數據包干擾,分析時可停止捕獲。)。
          注意:此文里提到的發送郵件均指使用TCP 25端口的標準SMTP通信,對于非25端口的郵件發送,用戶可在“工程->高級分析模塊->郵件分析模塊->SMTP設置->SMTP端口”處進行更改,系統默認為25,當SMTP服務器有多個端口時,多個端口之間用分號分隔,如25;125。


          科來網絡分析系統5.0對上面發送郵件操作的報文跟蹤,詳細信息如下:
          A.        第1、2、3個數據包是TCP連接的三次握手數據包,連接的雙方是本機與域名ns1.colasoft.com對應的IP地址;
          B.        從第4個數據包開始,客戶端開始通過TCP協議連接SMTP服務器,并與SMTP服務器進行命令的交互,及郵件的發送,具體的交互過程詳見圖3以及對圖3的分析。
          [attach]604[/attach]    

           

          科來網絡分析系統5.0對上面發送郵件操作的TCP原始數據流重組信息。具體分析數據流重組信息,可以得到上面發送郵件操作的詳細過程如下:
          A.        客戶端使用EHLO(或HELO)命令向SMTP服務器發送HELO報文,啟動郵件傳輸過程,并同時將客戶端地址發送SMTP服務器端,此處為wangym;
          B.        SMTP服務器接受了客戶端的連接請求,并請求輸入賬號和密碼進行認證;
          C.        客戶端向服務器端傳送賬號和密碼;
          D.        SMTP服務器通過驗證,客戶端使用MAIL命令將郵件發送者的名稱傳送給SMTP服務器;
          E.        客戶端使用RCPT命令將郵件接收者的名稱傳送給SMTP服務器;
          F.        客戶端使用DATA命令傳送郵件數據給SMTP服務器;
          G.        數據傳送完畢后,客戶端發送QUIT命令關閉連接。
          注意:
          ?        SMTP傳輸使用的是base64編碼,圖4中AUTH LOGIN下的“dGVzdDFAY29sYXNvZnQuY29t”是當前使用賬號對應的base64編碼;
          ?        圖3所示的SMTP數據流中,客戶端向SMTP服務器傳送了兩次發件人名稱和收件人名稱,可能的原因有兩種:
          a.        網絡的延遲較大,客戶端在規定時間內未收到SMTP服務器的響應,認為傳送發件人名稱和收件人名稱的數據包丟失而進行的重傳;
          b.        客戶端主機上的防病毒軟件在郵件發送前對郵件進行的檢測,如Norton Antivirus就會進行這種檢測,禁用此檢測功能即可避免此種情況的發生。


          2)        接收郵件
          我們再使用科來網絡分析系統5.0捕獲并分析一個使用POP3協議的接收郵件過程,客戶端主機名為“wangym”,客戶端用戶代理使用Foxmail 5.0 beta2,郵件接收者test2@colasoft.com。
          在客戶端主機上打開科來網絡分析系統5.0。與上面相同,設定一個過濾器,只捕獲本機的數據通訊,選擇高級分析模塊,在郵件分析模塊的常規設置中,將保存郵件選擇為“是”,并選擇好郵件的保存位置,如圖1所示。
          在科來網絡分析系統5.0中開始數據捕獲,同時在Foxmail中選中test2@colasoft.com,并收取郵件。接收完成后即可在科來網絡分析系統5.0對剛才的郵件接收操作進行分析(為避免數據包干擾,分析時可停止捕獲。)。
          注意:此文里提到的接收郵件均指使用TCP 110端口的標準POP3通信,對于非110端口的郵件發送,用戶可在“工程->高級分析模塊->郵件分析模塊->SMTP設置->POP3端口”處進行更改,系統默認為110,當SMTP服務器有多個端口時,多個端口之間用分號分隔,如110;1110。

          科來網絡分析系統5.0對上面接收郵件操作的報文跟蹤。 
          A.        1、2、3數據包是TCP連接的三次握手數據包,連接的雙方是本機與域名ns1.colasoft.com對應的IP地址;
          B.        從第4個數據包開始,客戶端開始通過TCP協議連接POP3服務器,并與POP3服務器進行命令的交互,及郵件的接收,具體的交互過程詳見圖4以及對圖4的分析。


          科來網絡分析系統5.0對上面接收郵件操作的TCP原始數據流重組信息。具體分析其數據流重組信息,可以得到上面接收郵件操作的詳細過程:
          A.        客戶端使用USER命令向POP3服務器傳送用戶賬號test2@colasoft.com;
          B.        客戶端使用PASS命令向POP3服務器傳送用戶密碼1234567890;
          C.        POP3服務器通過驗證,向客戶端發送一個OK報文;
          D.        客戶端使用STAT命令請求POP3服務器返回郵箱的統計資料信息,POP3服務器返回當前有一封郵件;
          E.        客戶端使用LIST命令列出POP3服務器里的郵件數量,當前為1封郵件;
          F.        客戶端使用RETR命令接收郵件,接收后使用DELE命令將郵件POP3服務器中的郵件置為刪除狀態;
          G.        客戶端發送QUIT命令,郵件服務器將將置為刪除標志的郵件刪除,連接結束。
          注意:
          ?        POP3直接使用明文傳輸;
          ?        直接重組出了接收到的郵件內容,此信息不經過任何編碼或加密處理,直接為明文方式,與圖1所示的郵件原始信息一致。


          3)        SMTP/POP3命令碼
          通過SMTP/POP3協議進行郵件收發操作時,均通過不同的命令碼進行不同的操作,現將其命令碼總結如下:
          SMTP命令如表1所示:
          命令        作用
          HELO        客戶端發送此命令與SMTP服務器建立連接,將發送者郵件地址發送給SMTP服務器
          MAIL        客戶端將郵件發送者的名稱傳送給SMTP服務器
          RCPT        客戶端將郵件接收者的名稱傳送給SMTP服務器
          DATA        客戶端將郵件報文內容傳送給SMTP服務器
          SEND        用于向指定用戶傳送郵件
          SAML/SOML        用于發送郵件
          RSET        取消客戶端與SMTP服務器間的當前事務,釋放與當前事務相關的內存
          EXPN        標識郵件接收者列表
          QUIT        終止客戶端與SMTP服務器間的連接


          POP3命令如表2所示:
          命令        作用
          USER        客戶端向POP3服務器傳送賬號
          PASS        客戶端向POP3服務器傳送密碼
          STAT        客戶端請求POP3服務器返回郵箱的統計信息
          UIDL        客戶端請求POP3服務器返回郵件的唯一標識符
          LIST        客戶端請求POP3服務器返回郵件數量和每封郵件的大小
          RETR        客戶端請求POP3服務器返回由參數標識的郵件的全部文本
          DELE        POP3服務器將由參數標識的郵件標記為刪除
          RSET        POP3服務器重置所有標記為刪除的郵件,用于撤消DELE命令
          NOOP        POP3服務器返回一個肯定的響應
          QUIT        終止客戶端POP3服務器間的連接


          三、        總結
          以上簡單介紹了SMTP和POP3協議,并使用科來網絡分析分析系統5.0跟蹤分析了一個基于SMTP/POP3協議的郵件收發操作。據此,用戶在遇到不能正常收發郵件(使用SMTP/POP3協議)的問題時,即可結合上述的SMTP/POP3相關知識,使用網絡檢測分析軟件(這兒是科來網絡分析系統5.0)對郵件接收和郵件發送的報文進行跟蹤分析,以完成對此類故障的快速排查。


           

           

          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/hyde82/archive/2007/06/13/1650581.aspx

          posted on 2009-06-05 09:42 不高興 閱讀(512) 評論(0)  編輯  收藏 所屬分類: Java
           
          Copyright © 不高興 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 花莲县| 凤凰县| 鹿泉市| 临朐县| 铁力市| 老河口市| 永年县| 卫辉市| 澄迈县| 屏边| 平果县| 河源市| 平乐县| 万载县| 芜湖县| 尚义县| 岫岩| 惠水县| 垫江县| 沂水县| 五大连池市| 吴川市| 凤阳县| 台北市| 会昌县| 凉山| 奉新县| 嵩明县| 乾安县| 富源县| 东城区| 淅川县| 景洪市| 双江| 社旗县| 恩施市| 株洲县| 蓝山县| 汶川县| 彭州市| 平南县|