1. 程式人生 > >計算機網路自頂向下 :應用層(FTP、SMTP、POP3、IMAP)

計算機網路自頂向下 :應用層(FTP、SMTP、POP3、IMAP)

題外話,最近補習數學課還是很有成效的。
關於應用層是分三次寫的,因此寫的重點是在HTTP協議和DNS協議分析上。而應用層中FTP、SMTP、POP3、IMAP,計算機網路自頂向下中並沒有太詳細的介紹。我也試著看RFC然後抓包分析一下過程,採用的抓包方法是FTP遠端連線騰訊雲linux伺服器,然而由於FTP的不安全性,騰訊雲伺服器預設安裝的是SFTP,抓到的全是亂碼,由於時間緊,我就照本宣科,把書上的內用精要了一下,如下。
如果有時間我還是很樂意去折騰的。

FTP

HTTP和FTP均為檔案傳輸協議。
關係:
1. FTP使用了兩個TCP連線來傳輸檔案,一個用於控制連線一個用於資料連線。控制連線用於兩個主機傳送控制資訊。如使用者標識、口令,以及檔案的存放和獲取。對於FTP而言,控制連線貫穿整個使用者會話期間,而每一次檔案傳輸都需要一個新的資料連線。
2. HTTP使用一個TCP進行的傳送請求和相應首部行的,因此HTTP可是說是帶內的。
3. FTP伺服器必須在整個會話中保留使用者的狀態,比較重要的是使用者賬戶和控制連線聯絡在一起,和必須追蹤使用者當前在遠端目錄樹上的當前位置。

1】關於FTP,RFC959

因特網中的電子郵件

電子郵件的因特網系統由3部分組成:使用者代理、郵件伺服器、簡單郵件傳輸協議(SMTP)


SMTP是因特網電子郵件的“核心”,是一種繼承技術。
它與所有郵件報文體部分(不只是首部)只能採用簡單的七位元ASCII表示。

SMTP一般不使用中間郵件伺服器傳送郵件。
1. 在25埠建立一個到伺服器的TCP連線。
2. 如果伺服器沒有開機客戶會稍後繼續嘗試完成一旦直到伺服器與客戶執行某些應用的握手。
3. SMTP發遠方指示(傳送方的電子郵件)和接收方的郵件地址。
4. 傳送Mail

SMTP與HTTP的對比:
1. HTTP是一個拉協議,SMTP是一個推協議。
2. SMTP要求每個報文(包括它們的體)使用七位元的ASCII碼格式。如果報文中包含了非七位元ASCII字元或二進位制檔案,則該報文必須按照七位元ASCII碼進行編碼。HTTP則不受這種限制。


3. HTTP將每個物件封裝到他的響應報文而SMTP則把所有物件放在一個報文中。

郵件格式 (RF5322
1. 一個包含環境資訊的首部行位於報文體前面。
2. 首部行與該報文的體用回車換行進行分隔。

那麼由於SMTP是一個推協議那麼,我們如何接收SMTP“推”到伺服器上的電子郵件呢?

HTTP協議可以很好的完成,這個工作,除HTTP還有:第三版的郵局協議(POP3),因特網郵件訪問協議(IMAP)

前提:當用戶代理(客戶)打開了一個到郵件伺服器埠以上的TCP連線後,我們把pop3的處理過程分為三個階段。
(所有階段的命令定義在RFC1939 使用者操作命令 和 伺服器應答方式)
1、特許:使用者代理以(明文形式)使用者名稱和口令以鑑別使用者。(user pass 命令進行管理)
2、事務處理階段:使用者代理取回報文,同時進行統計資訊。如:報文刪除、標註取消、刪除標記、獲取郵件統計資訊。
3、更新階段:當用戶發出quit命令,目的結束會話,這時郵件伺服器刪除那些被標記為刪除的報文。

由於POP3並不是很好用所以出現了IMAP:

IMAP和POP3有什麼區別?
POP3協議允許電子郵件客戶端下載伺服器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到伺服器上,比如通過客戶端收取了郵箱中的3封郵件並移動到其他資料夾,郵箱伺服器上的這些郵件是沒有同時被移動的 。
而IMAP提供webmail 與電子郵件客戶端之間的雙向通訊,客戶端的操作都會反饋到伺服器上,對郵件進行的操作,伺服器上的郵件也會做相應的動作。
同時,IMAP像POP3那樣提供了方便的郵件下載服務,讓使用者能進行離線閱讀。IMAP提供的摘要瀏覽功能可以讓你在閱讀完所有的郵件到達時間、主題、發件人、大小等資訊後才作出是否下載的決定。此外,IMAP 更好地支援了從多個不同裝置中隨時訪問新郵件。

**IMAP伺服器把每個報文與一個資料夾聯絡起來。
當一個報文到達伺服器時,它與收件人的INBOX資料夾相關聯。
IMAP伺服器維護了IMAP會話的用話狀態資訊。(資料夾的名字以及哪些報文與哪些檔案)**

最後

基於web的mail

過程:
使用者代理——HTTP——S——IMAP——S——HTTP——使用者代理

在這裡使用者代理一般指的是使用者的瀏覽器。