OSI參考模型下電子郵件傳輸過程
在OSI參考模型下的電子郵件傳輸過程
電子郵件的工作過程遵循客戶---伺服器模式。每份電子郵件的傳送都要涉及到傳送方和接收方,傳送發構成客戶端,而接收方構成伺服器。其主要用到的協議由SMTP和POP3協議。
應用層:主機A向主機B傳送電子郵件,首先由主機A的傳送程序將資料交給應用層。在應用層中,Email客戶端使用SMTP、POP3和IMAP協議來收發電子郵件。主機A使用SMTP協議來處理該資料,即在資料前加上SMTP的標記,以便使對端在收到後知道使用什麼軟體來處理該資料。同時,該層遮蔽下面物理層的差別,向下一層提供一致的資料格式,此時所形成的資訊單元包括協議頭,報頭AH,資料,可能還有協議尾,傳送至表示層。
表示層:應用層將資料處理完成後會交給下面的表示層,表示層會進行必要的格式轉換,使用一種通訊雙方都能識別的編碼來處理該資料,同時將處理資料的方法新增到資料中,以便對端知道該怎樣處理資料。在此層再次新增計算機B表示層所理解的控制資訊的協議頭PH,資訊單元的大小隨著每一層協議頭和協議尾的新增而增加,這些協議頭和協議尾包含了接收方對應曾要使用的控制資訊。在此層,資料將按照網路能理解的方案進行格式化,這種格式化也因所使用網路的型別不同而不同。
會話層:表示層處理完成之後,將資料交給下一層會話層,會話層在A主機和B主機之間建立一條只用於傳輸該資料的會話通道,並監視他的連線狀態,直到資料同步完成,斷開該會話。此時資料添加了會話層報頭SH。
傳輸層:傳輸層的作用就是在通訊雙方之間利用上面的會話通道傳輸控制資訊TH,完成資料的可靠傳輸。會話通道建立後,為了保證資料傳輸中的可靠性,就需要在資料傳輸的構成當中對資料進行必要的處理,如分段、編號、差錯校驗、確認、重傳等等,這些方法的實現必須依賴通訊雙方的控制。該層的傳輸協議同時進行流量控制或是基於接收方可接受資料的快慢程度規定適當的傳送速率。初次之外,傳輸層按照網路能處理的最大尺寸將較長的資料包進行強制分割。例如,乙太網無法接收大於1500位元組的資料包,傳送方節點的傳輸層將資料分割成較小的資料片,同時對每一資料片安排一序列號,以便資料到達接收方節點的傳輸層時,能以正確的順序重組,該過程即被稱為排序。
網路層:網路層是實際傳輸資料的層次,在網路層中必須要將傳輸層中處理完的資料再次封裝(NH),新增上自己的地址資訊和對端接收者的地址資訊,並且要在網路中找到一條由自己到接收者最好的路徑,然後按照最佳路徑傳送到網路中。
在網路層,使用邏輯定址(比如IP)將每個資料段送到正確的網路中,網路層協議向來自傳輸層的資料段中新增控制報頭,現在所得到資料塊就稱為資料包或資料報。傳輸層和網路層一起工作,以在接收方主機中重建資料流,但他們並不將他們的PDU放在本地網段上,這是得到有關路由器或主機資訊的唯一方式。
資料鏈路層:資料鏈路層將網路層的資料再次進行封裝除了新增資料鏈路層報頭DH外,還要將網路層遞交的資料加上資料鏈路層報尾DT從而形成最終的一幀資料。該層會新增能唯一標識每臺裝置的地址資訊(MAC地址),這個資料在相鄰的兩個裝置之間一段一段的傳輸,最終到達目的地。為了保證資料在不可靠的物理線路上進行資料傳輸,從網路層接收到的資料被分割成特定的可被物理層傳輸的幀。幀是用來移動資料的結構包,它不僅包括原始資料,還包括髮送方和接收方的網路地址以及糾錯和控制資訊。其中的地址確定了幀將傳送到何處,而糾錯和控制資訊則確保幀無差錯到達。如果在傳送資料時,接收點檢測到所傳資料中有差錯,就要通知傳送方重發這一幀。
資料鏈路層將每個資料包封裝成幀,幀的報頭中包含了源和目的主機的硬體地址。如果目的裝置在一個遠端網路中,幀就會被送往路由器,以通過網際網路絡傳送到目的地。一旦它達到了目的網路,就會使用一個新的幀將資料包送往目的主機。在傳輸過程中,幀會變,但是資料包不會變。為了將幀送到網路上,它首先必須被轉換成數字訊號的形式。幀實際上是1和0的邏輯組,物理層負責將這些數值封裝為數字訊號,在同一個本地網路中就可以直接傳輸了。
物理層:物理層將資料鏈路層的資料轉換成電流傳輸到交換機,通過交換機將資料幀發向路由器。
通過物理電路傳遞到B主機後,B主機會將電訊號轉換成資料鏈路層的資料,資料鏈路層再去掉本層的硬體地址資訊和其他的對端新增的內容上交給網路層,網路層同樣去掉對端網路層新增的內容後上交給自己的上層。最終資料到達B主機的應用層。應用層看到資料是用SMTP協議封裝後,就知道應用電子郵件的軟體來處理。其詳細分析如下:
物理層:保證位元的同步,並將接收的二進位制資料放到快取中。再講接收到的訊號解碼成位元流後,通知資料鏈路層已經收到一個幀。因此物理層在媒體上已經提供了傳遞的位元流。
資料鏈路層:資料鏈路層檢查幀尾的幀校驗序列(FCS),判斷傳輸過程中是否有錯誤法傷(差錯控制)。如果有錯誤發生,丟棄此幀。檢查資料鏈路層的地址,使主機B決定是否需要進一步處理這些資料。如果這個地址是主機B的地址,那麼將在資料鏈路層報頭和尾之間的資料傳遞給上一次的軟體。從而,資料鏈路層通過該鏈路實現了資料的傳輸。
網路層:檢查網路層的目的地址。如果該地址是主機B的地址(邏輯地址),處理過程將會繼續進行,將在網路層的報頭之後的資料傳遞給傳輸層的軟體,從而網路層實現了端到端的資料傳輸服務。
如果傳輸層選擇了差錯恢復,標識這段資料的計數器與確認資訊(差錯恢復)一起在傳輸層的報頭中進行編碼。在差錯恢復和對輸入資料進行重新排序後,將這些資料傳遞給會話層。
會話層:該層可以用來保證一系列訊息的完整性。如果沒有完成後續的通訊,收到的資料可能沒有任何意義。會話層的報頭中包含有標識欄位意味著是一個不連續資料鏈的中間流而不是結束流。在會話層保證所有的流都完成後,將在會話層報頭之後的資料傳遞給表示層軟體。
表示層:表示層定義並維護資料的格式。例如,如果資料是二進位制資料而不是字元資料,報頭會指明這一點。接收方並不會用主機B中預設的ASCII字符集轉換這些資料。通常,此類報頭只包括在初始流中,而不包含在每個被傳輸的流(資料格式)中。在完成了資料格式的轉換後,將資料傳遞給應用層的軟體。
應用層:應用層處理最後的報頭,然後檢查真正的終端使用者資料。這個報頭指明瞭主機A與主機B已協商好的應用程度所使用的執行引數,該報頭用於交換所有引數值。因此,通常只在應用程式初始化時才傳送和接收這個報頭。例如,在檔案傳輸是,會相互傳遞所傳輸檔案的長度和檔案格式(應用引數)。
其工作流程圖如下:
注:
SMTP協議:(Simple Mail Transfer Protocol)即簡單郵件傳輸協議,它是一組用於由源地址到目的地址傳送郵件的規則,由它來控制信件的中轉方式。SMTP協議屬於TCP/IP協議族,它幫助每臺計算機在傳送或中轉信件時找到下一個目的地。通過SMTP協議所指定的伺服器,就可以把E-mail寄到收信人的伺服器上了,整個過程只要幾分鐘。SMTP伺服器則是遵循SMTP協議的傳送郵件伺服器,用來發送或中轉發出的電子郵件。
STMP是一種提供可靠且有效電子郵件傳輸的協議。SMTP是建模在FTP檔案傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件資訊並提供來信有關的統治。它獨立於特定的傳輸子系統,即“SMTP郵件中繼”。通常,一個網路可以由公用網際網路上TCP可相互訪問的主機、防火牆分隔的TCP/IP網路上TCP可相互訪問的主機,及其它LAN/WAN中的主機利用非TCP傳輸層協議組成。使用SMTP,可實現相同網路上處理機之間的郵件傳輸,也可通過中繼器或閘道器實現某處理機與其它網路之間的郵件傳輸。這種方式下,郵件的傳送可能經過從傳送端到接收端路徑上的大量中間中繼器或閘道器主機。域名服務系統(DNS)的郵件交換伺服器可以用來識別出傳輸郵件的下一條IP地址。
SMTP協議是為了保證電子郵件的可靠和高效傳送。它提供了中郵件傳輸機制,當收件方和發件方都在一個網路上時,可以把郵件直接傳給對方,當雙方不在同一個網路上時,需要通過一個或幾個中間伺服器轉發。SMTP首先由發件方提出申請,要求與接收方SMTP建立雙向的通訊渠道,收件方可以使最終收件人也可以是中間轉發的伺服器。收件方伺服器確認可以建立連線後,雙方就可以開始通訊。
POP3協議:(Post Office Protocol3)即郵局協議的第3版,它是規定個人計算機如何連線到網際網路上的郵件伺服器進行收發郵件的協議。它是因特網電子郵件的第一個離線協議標準,POP3協議允許使用者從伺服器上把郵件儲存到本地主機上,同時根據客戶端的操作刪除或儲存在郵件伺服器上的郵件,而POP3伺服器則是遵循POP3協議的接收郵件伺服器,用來接收電子郵件的。POP3協議是TCP/IP協議族中的一員,由RFC1939定義。本協議主要用於支援使用客戶端遠端管理在伺服器上的電子郵件。
IMAP協議:(Internet Mail Access Protocol) 網際網路資訊訪問協議,這是一種優於POP的新協議。和POP一樣,IMAP也能下載郵件、從伺服器中刪除郵件或詢問是否有新郵件,但IMAP克服了POP的一些缺點。如,它可以決定客戶機請求郵件伺服器提交所收到郵件的方式,請求郵件伺服器只下載所選中的郵件而不是全部郵件。客戶機可先閱讀郵件資訊的標題和傳送者的名字再決定是否下載所選中的郵件而不是全部郵件。通過使用者的客戶機電子郵件程式,IMAP可讓使用者在伺服器上建立並管理郵件資料夾或郵箱、刪除郵件、查詢某封信的一部分或全部內容,完成所有這些工作時都不需要把郵件從伺服器下載到使用者的個人計算機上。
AH (Application Header) 應用層報頭
PH(Presentation Header) 表示層報頭
SH(Session Header) 會話層報頭
TH(Transport Header) 傳輸層報頭
NH(Network Header) 網路層報頭
DH(Data link Header) 資料鏈路層報頭
DT(Data link Termination) 資料鏈路層報尾