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