上帝視角 我們前面介紹過 TCP/IP 模型的下三層,分別是
網(wǎng)絡(luò) 接入層、網(wǎng)絡(luò)層和傳輸層。它們都是為應(yīng)用層服務(wù)的,傳輸應(yīng)用層的各種數(shù)據(jù),現(xiàn)在我們就來看看最高層的
應(yīng)用層 。
應(yīng)用層 在 TCP/IP 模型中,應(yīng)用層提供的服務(wù)相當(dāng)于 OSI 模型的應(yīng)用層、表示層和會(huì)話層的服務(wù)總和。不僅包含了
管理通信連接 的會(huì)話層功能、
數(shù)據(jù)格式轉(zhuǎn)換 的表示層功能,還包括
主機(jī)間交互 的應(yīng)用層功能。
應(yīng)用層功能 應(yīng)用層的目的是向應(yīng)用程序提供網(wǎng)絡(luò)接口,直接向用戶提供服務(wù)。 相比于下層的網(wǎng)絡(luò)協(xié)議,應(yīng)用協(xié)議要常見得多,可能大家都聽過 HTTP 、HTTPS 、SSH 等應(yīng)用層協(xié)議。
應(yīng)用層協(xié)議 TCP/IP 模型中應(yīng)用層位于傳輸層之上,傳輸層的端口號用于標(biāo)識數(shù)據(jù)所對應(yīng)的應(yīng)用層協(xié)議。也就是說,有端口號的協(xié)議都是
應(yīng)用層協(xié)議 。應(yīng)用協(xié)議是終端設(shè)備之間的應(yīng)用通信規(guī)則。應(yīng)用之間交互的信息叫
消息 ,應(yīng)用協(xié)議定義這些消息的格式以及消息的控制或操作的規(guī)則。
應(yīng)用協(xié)議與端口號 應(yīng)用協(xié)議的通信方式可分為兩類:
在
服務(wù)器和客戶端模型 中,始終公開固定 IP 地址的主機(jī)為其它主機(jī)的應(yīng)用程序提供服務(wù),請求服務(wù)的主機(jī)之間不會(huì)互相通信。這些為其它主機(jī)提供服務(wù)的終端設(shè)備稱為
服務(wù)器 ,那些請求服務(wù)的主機(jī)則稱為
客戶端 。大多數(shù)應(yīng)用層協(xié)議,都是這種模型。
服務(wù)器和客戶端模型 在
P2P 模型 中,沒有特定的服務(wù)器或客戶端,這些設(shè)備上安裝的應(yīng)用程序,可以在主機(jī)間建立對等連接,既可以提供服務(wù),也可以接受服務(wù)。通常是大流量的應(yīng)用程序采用 P2P 模型,比如:下載器等。
P2P模型 開發(fā)
應(yīng)用程序 時(shí),為了實(shí)現(xiàn)相應(yīng)的功能和目的,可以使用現(xiàn)有的應(yīng)用協(xié)議,也可以自己定義一個(gè)新的應(yīng)用協(xié)議。同時(shí),應(yīng)用程序可以直接使用傳輸層以下的網(wǎng)絡(luò)傳輸服務(wù),開發(fā)者只需要關(guān)心選擇哪種應(yīng)用協(xié)議、如何開發(fā)即可,而不用考慮數(shù)據(jù)是如何傳輸?shù)侥康牡亍_@也是 TCP/IP 分層模型的特點(diǎn)。
網(wǎng)絡(luò)傳輸服務(wù) 應(yīng)用程序 有很多,包括 Web 瀏覽器、電子郵件、遠(yuǎn)程登錄、文件傳輸、網(wǎng)絡(luò)管理等。這些應(yīng)用程序都會(huì)使用應(yīng)用協(xié)議進(jìn)行通信,應(yīng)用協(xié)議正是為了實(shí)現(xiàn)應(yīng)用程序的功能而設(shè)計(jì)和創(chuàng)造的。
應(yīng)用程序 遠(yuǎn)程登錄 網(wǎng)絡(luò)設(shè)備的管理方式,分為本地管理和遠(yuǎn)程管理。
遠(yuǎn)程管理 是從本地主機(jī)登錄到網(wǎng)絡(luò)對端設(shè)備,向網(wǎng)絡(luò)對端的設(shè)備發(fā)送管理數(shù)據(jù),以實(shí)現(xiàn)設(shè)備管理的操作方式。通過遠(yuǎn)程管理,不僅可以直接使用主機(jī)上的應(yīng)用,還可以對主機(jī)進(jìn)行參數(shù)設(shè)置。遠(yuǎn)程登錄主要使用 Telnet 和 SSH 兩種協(xié)議管理網(wǎng)絡(luò)設(shè)備。
遠(yuǎn)程登錄 女神叫大劉去她公司修理網(wǎng)絡(luò),大劉都不用去女神的公司,直接遠(yuǎn)程登錄解決問題。 Telnet 在實(shí)際工作中,除了個(gè)別無法遠(yuǎn)程管理設(shè)備外,大多會(huì)采用遠(yuǎn)程管理的方式,來管理設(shè)備的配置文件和系統(tǒng)文件。對比本地管理,遠(yuǎn)程管理不受物理位置限制,連上網(wǎng)絡(luò)就可以對世界另一端的設(shè)備進(jìn)行操控,更省去了插拔設(shè)備線纜、終端設(shè)置的過程,可以通過一個(gè)遠(yuǎn)程應(yīng)用同時(shí)管理大量的網(wǎng)絡(luò)設(shè)備。
Telnet 協(xié)議 定義了一臺設(shè)備通過 IP 網(wǎng)絡(luò)向遠(yuǎn)端設(shè)備發(fā)起明文管理連接的通信標(biāo)準(zhǔn),可以在一臺設(shè)備上通過 Telnet 協(xié)議與一臺遠(yuǎn)端設(shè)備建立管理連接,并對遠(yuǎn)端設(shè)備實(shí)施配置和監(jiān)控,這種方式的體驗(yàn)與本地登錄設(shè)備并無區(qū)別。發(fā)起管理的設(shè)備為
Telnet 客戶端 ,被管理的設(shè)備是
Telnet 服務(wù)器 。因此,Telnet 協(xié)議是一個(gè)典型的服務(wù)器和客戶端模型的應(yīng)用層協(xié)議。
Telnet協(xié)議 Telnet 協(xié)議通過 TCP 協(xié)議建立服務(wù)器和客戶端的一條連接,并通過這條連接向服務(wù)器發(fā)送用戶名、密碼和命令。 Telnet 協(xié)議使用的是
TCP 23 端口 ,表示客戶端在發(fā)起 Telnet 連接時(shí),默認(rèn)連接服務(wù)器的 TCP 23 號端口。
當(dāng) Telnet 客戶端輸入命令后,這些命令通過 TCP 連接發(fā)送到 23 號端口,監(jiān)聽請求的守護(hù)進(jìn)程 Telnetd 收到后,將命令發(fā)送給 Shell ,Shell 為操作系統(tǒng)進(jìn)行命令解釋,然后操作系統(tǒng)執(zhí)行 Telnet 客戶端發(fā)出的命令。 同理,操作系統(tǒng)按照相反的順序,將命令執(zhí)行的結(jié)果發(fā)回給 Telnet 客戶端。Telnet 協(xié)議實(shí)現(xiàn)了遠(yuǎn)程命令傳輸,但是客戶端和服務(wù)器跨越不可靠的公共網(wǎng)絡(luò)時(shí),在命令傳輸過程中可以截獲 Telnet 通信的所有數(shù)據(jù),然后使用截獲的用戶名和密碼來通過 Telnet 服務(wù)器的身份認(rèn)證,并登錄到設(shè)備上對配置文件進(jìn)行修改。
Telnet協(xié)議的安全隱患 Telnet 協(xié)議存在
重大安全隱患 ,不推薦在實(shí)驗(yàn)室之外的環(huán)境使用。
SSH SSH 協(xié)議 全程是安全外殼協(xié)議,目的就是為了取代 Telnet ,SSH 是
加密 的遠(yuǎn)程登錄協(xié)議,提供更加安全的遠(yuǎn)程登錄服務(wù)。使用 SSH 后會(huì)加密通信內(nèi)容。即使信息被截獲,由于無法解密,也無法了解數(shù)據(jù)的真正內(nèi)容。
SSH協(xié)議 SSH 協(xié)議常用版本是
SSHv2 ,SSH 客戶端通過 SSHv2 協(xié)議與 SSH 服務(wù)器建立
一條 TCP 的加密信道 ,建立這條安全信道的方式是讓客戶端使用服務(wù)器的 RSA 公鑰來驗(yàn)證 SSH 服務(wù)器的身份。SSH 協(xié)議默認(rèn)使用
TCP 22 端口 。如果客戶端成功驗(yàn)證了服務(wù)器的身份,它們之間就會(huì)創(chuàng)建出一個(gè)會(huì)話密鑰,并用雙方協(xié)商出來的加密算法和會(huì)話密鑰,對這個(gè)信道傳輸?shù)臄?shù)據(jù)進(jìn)行
加密 。這樣,兩臺設(shè)備之間就建立了一條安全的信道,使用這條安全信道發(fā)送密碼,密碼以密文的形式傳輸,通過服務(wù)器的
身份認(rèn)證 。SSH 就是通過這種方式建立加密信道,確保 SSH 服務(wù)器,也就是被管理設(shè)備的 Shell 免遭非法用戶操作。
文件傳輸 除了遠(yuǎn)程登錄,我們還需要從遠(yuǎn)端設(shè)備傳輸文件,文件傳輸協(xié)議提供的應(yīng)用服務(wù)可以滿足我們的需求。
FTP 是網(wǎng)絡(luò)上文件傳輸?shù)臉?biāo)準(zhǔn)協(xié)議,F(xiàn)TP 使用
TCP 作為傳輸協(xié)議,支持用戶的
登錄認(rèn)證 和
訪問權(quán)限的控制 。另一種常見的文件傳輸協(xié)議是
TFTP 協(xié)議,TFTP 是一種簡單的文件傳輸協(xié)議,不支持用戶的登錄認(rèn)證,也沒有復(fù)雜的命令。TFTP 使用
UDP 作為傳輸協(xié)議,并有重傳機(jī)制。
文件傳輸 FTP FTP 用于服務(wù)器和客戶端之間傳輸文件,是 IP 網(wǎng)絡(luò)上傳輸文件的通用協(xié)議。FTP 采用客戶端和服務(wù)器的模式,使用
TCP 協(xié)議提供可靠傳輸。FTP 可以對登錄服務(wù)器的
用戶名和密碼進(jìn)行驗(yàn)證 ,允許客戶端指定文件的
傳輸類型 ,并且可以設(shè)置文件的
傳輸權(quán)限 。FTP 使用兩條 TCP 連接實(shí)現(xiàn)文件傳輸。一條是
FTP 控制連接 ,用來控制管理;另一條是
FTP 數(shù)據(jù)連接 ,用于數(shù)據(jù)傳輸。
FTP 控制連接 用于傳輸 FTP 控制命令和命令執(zhí)行的應(yīng)答信息,比如登錄用戶名和密碼的驗(yàn)證、發(fā)送文件的名稱、發(fā)送方式的設(shè)置。這條連接在整個(gè) FTP 會(huì)話過程中一直保持打開,通過 ASCII 碼字符串發(fā)送請求和接收應(yīng)答。在控制連接上無法發(fā)送數(shù)據(jù),而
FTP 數(shù)據(jù)連接 用于文件和文件列表的傳輸,僅在需要傳輸數(shù)據(jù)時(shí)建立數(shù)據(jù)連接,數(shù)據(jù)傳輸完畢后終止。
FTP協(xié)議 FTP 控制連接使用的是
TCP 21 號端口 ,也是 FTP 服務(wù)器的偵聽端口,等待客戶端的連接。在 TCP 21 號端口進(jìn)行文件 GET( RETR )、PUT( STOR ),以及文件表( LIST )等操作時(shí),每次都會(huì)建立一個(gè)用于數(shù)據(jù)傳輸?shù)臄?shù)據(jù)連接。數(shù)據(jù)和文件表的傳輸正式在這個(gè)數(shù)據(jù)連接上進(jìn)行的。數(shù)據(jù)連接的 TCP 連接通常使用
端口 20 。也可以使用 PORT 命令修改為其它值。相同的一個(gè)文件,不同的操作系統(tǒng)可能有不同的存儲方式。為了確保文件能夠準(zhǔn)確的傳送給對方,常用 2 中傳輸模式:
ASCII 模式ASCII 模式 是默認(rèn)的文件傳輸模式。發(fā)送方把本地文件轉(zhuǎn)換成標(biāo)準(zhǔn)的 ASCII 碼,然后在網(wǎng)絡(luò)中傳輸;接收方收到文件后,根據(jù)自己的文件存儲方式,把它轉(zhuǎn)換成本地文件。ASCII 文件傳輸模式通常用于傳輸文本文件。 二進(jìn)制流模式二進(jìn)制流模式 也稱為圖像文件傳輸模式。發(fā)送方不做任何轉(zhuǎn)換,把文件按照比特流的方式進(jìn)行傳輸。二進(jìn)制文件類型通常用于傳送程序文件。 在 FTP 數(shù)據(jù)連接過程中,有兩種數(shù)據(jù)傳輸方式:
主動(dòng)方式 和
被動(dòng)方式 。FTP 主動(dòng)傳輸方式,也稱為
PORT 方式。采用主動(dòng)方式建立數(shù)據(jù)連接時(shí),F(xiàn)TP 客戶端會(huì)通過 FTP 控制連接向 FTP 服務(wù)器發(fā)送 PORT 命令,PORT 命令攜帶參數(shù):A1 、A2 、A3 、A4 、P1 、P2 ,其中 A1 、A2 、A3 、A4 表示需要建立數(shù)據(jù)連接的主機(jī) IP 地址,而 P1 和 P2 表示客戶端用于傳輸數(shù)據(jù)的臨時(shí)端口號,臨時(shí)端口號的數(shù)值為 256*P1 P2 。當(dāng)需要傳輸數(shù)據(jù)時(shí),服務(wù)器通過 TCP 端口號 20 與客戶端提供的臨時(shí)端口建立數(shù)據(jù)傳輸通道,完成數(shù)據(jù)傳輸。在整個(gè)過程中,由于服務(wù)器在建立數(shù)據(jù)連接時(shí)主動(dòng)發(fā)起連接,因此被稱為
主動(dòng)模式 。
主動(dòng)模式 如果客戶端在防火墻內(nèi)部,主動(dòng)方式可能會(huì)有問題,因?yàn)榭蛻舳说亩丝谔柺请S機(jī)的,防火墻并不知道。默認(rèn)安全策略,防火墻只會(huì)允許外部主機(jī)訪問部分內(nèi)部已知端口,阻斷對內(nèi)部隨機(jī)端口的訪問,從而無法建立 FTP 數(shù)據(jù)連接。這時(shí),就需要使用 FTP 被動(dòng)方式來進(jìn)行文件傳輸。被動(dòng)方式也被稱為
PASV 方式。FTP 控制通道建立后,希望通過被動(dòng)方式建立數(shù)據(jù)傳輸通道的 FTP 客戶端會(huì)利用控制通道向 FTP 服務(wù)器發(fā)送 PASV 命令,告訴服務(wù)器進(jìn)入被動(dòng)方式傳輸。服務(wù)器選擇臨時(shí)端口號并告知客戶端,命令參數(shù)和主動(dòng)傳輸方式一致。當(dāng)需要傳輸數(shù)據(jù)時(shí),客戶端主動(dòng)與服務(wù)器的臨時(shí)端口建立數(shù)據(jù)傳輸通道,并完成數(shù)據(jù)傳輸。在整個(gè)過程中,服務(wù)器是被動(dòng)接收客戶端的數(shù)據(jù)連接,所以被稱為
被動(dòng)模式 。
被動(dòng)模式 采用被動(dòng)方式時(shí),兩個(gè)連接都由客戶端發(fā)起。一般防火墻不會(huì)限制內(nèi)部的客戶端發(fā)起的連接,這樣就解決了主動(dòng)方式下的問題。
TFTP TFTP 也是用于服務(wù)器和客戶端之間傳輸文件的,對比 FTP ,TFTP 沒有復(fù)雜的交互接口和認(rèn)證控制,適用于不需要復(fù)雜交互的網(wǎng)絡(luò)環(huán)境。TFTP 采用客戶端和服務(wù)器的模式,使用
UDP 協(xié)議傳輸,服務(wù)器使用端口號 69 偵聽 TFTP 連接。由于 UDP 不能提供可靠的數(shù)據(jù)傳輸,因此 TFTP 使用超時(shí)重傳機(jī)制確保數(shù)據(jù)正確發(fā)送。TFTP 只能提供簡單的文件傳輸能力,包括文件的上傳和下載。不支持文件目錄功能,也不能對用戶的身份進(jìn)行驗(yàn)證和授權(quán)。
TFTP下載 TFTP 協(xié)議傳輸是由客戶端發(fā)起的。當(dāng)需要下載文件時(shí),客戶端向 TFTP 服務(wù)器發(fā)送一個(gè)
讀請求 ,然后從服務(wù)器接收數(shù)據(jù),并向服務(wù)器發(fā)送確認(rèn);當(dāng)需要上傳文件時(shí),由客戶端向服務(wù)器發(fā)送一個(gè)
寫請求 ,然后向服務(wù)器發(fā)送數(shù)據(jù),并接收服務(wù)器的確認(rèn)。
TFTP上傳 與 FTP 類似,TFTP 傳輸文件有兩種模式:
netascii 模式 和
octet 模式 。octet 傳輸模式對應(yīng) FTP 的二進(jìn)制流模式,用于傳輸程序文件;netascii 模式對應(yīng) FTP 的 ASCII 模式,用于傳輸文本文件。TFTP 進(jìn)行文件傳輸時(shí),將傳輸文件看成是由多個(gè)連續(xù)的
文件塊 組成。每一個(gè) TFTP 數(shù)據(jù)報(bào)文中包含一個(gè)文件塊,同時(shí)對應(yīng)一個(gè)
文件塊編號 。每次發(fā)完一個(gè)文件塊后,就等待對方的
確認(rèn) ,確認(rèn)時(shí)指明塊編號。發(fā)送方發(fā)完數(shù)據(jù)后,如果在規(guī)定時(shí)間內(nèi)沒收到對端的確認(rèn),那么發(fā)送方就會(huì)重新發(fā)送數(shù)據(jù)。發(fā)送確認(rèn)的一方如果在規(guī)定時(shí)間內(nèi)沒收到下一個(gè)文件塊數(shù)據(jù),則重發(fā)確認(rèn)報(bào)文。這種方式可以確保文件的傳送不會(huì)因某一個(gè)數(shù)據(jù)的丟失而失敗。每次 TFTP 發(fā)送的數(shù)據(jù)報(bào)文中包含的文件塊大小
固定 為
512
字節(jié),如果文件長度恰好是
512
字節(jié)的整數(shù)倍,那么在文件傳送完畢后,發(fā)送方還必須在最后發(fā)送一個(gè)不包含數(shù)據(jù)的報(bào)文,用來表示文件傳輸完畢。如果文件長度不是
512
字節(jié)的整數(shù)倍,那么最后傳送的數(shù)據(jù)報(bào)文包含的文件塊肯定小于
512
字節(jié),正好作為文件結(jié)束的標(biāo)志。
電子郵件 電子郵件 ,顧名思義,就是指網(wǎng)絡(luò)上的郵政。通過電子郵件,可以發(fā)送文字
內(nèi)容 、
圖片 ,還可以發(fā)送
報(bào)表數(shù)據(jù) 等所有計(jì)算機(jī)可以存儲的信息。電子郵件不受距離限制,可以與世界上任一的互聯(lián)網(wǎng)用戶互相聯(lián)系。由于使用簡易、投遞迅速、易于保存、不受距離限制等特點(diǎn),使得電子郵件已經(jīng)成為人們普遍使用的一種應(yīng)用。
電子郵件 大劉向女神發(fā)的第一封郵件。 通信架構(gòu) 電子郵件在幾十年的發(fā)展過程中出現(xiàn)了明顯的變化,從原始的發(fā)送方電腦直接向接收方電腦發(fā)送電子郵件,演變成
收發(fā)雙方都使用郵件服務(wù)器代為收發(fā)郵件 。通過這種方式,電子郵件通信不再依賴接收方當(dāng)前是否在線,而電子郵件的通信過程由簡單的發(fā)送方到接收方,演變成
發(fā)送方電腦到發(fā)送方郵件服務(wù)器 ,
發(fā)送方郵件服務(wù)器到接收方郵件服務(wù)器 ,以及
接收方郵件服務(wù)器到接收方電腦 的三個(gè)通信過程。并且參與通信的四方都不是直接相連,而是分別獨(dú)立連接到互聯(lián)網(wǎng)中。這個(gè)架構(gòu)中,郵件發(fā)送方和接收方使用的電腦稱為
用戶代理 。
郵件架構(gòu) 郵件地址 使用電子郵件時(shí),需要擁有一個(gè)地址,這個(gè)地址叫做
郵件地址 ,也叫
郵箱地址 。它相當(dāng)于通信地址和姓名。我的電子郵件如下:networkfox@qq.comnetworkfox 表示
用戶的名稱 ,同一個(gè)通信地址內(nèi),名稱必須是唯一的,不能出現(xiàn)重復(fù);@ 表示
分隔符 ;qq.com 是
用戶郵箱的郵件接收服務(wù)器的域名 。電子郵件的發(fā)送地址由
DNS 管理。DNS 中注冊了郵件地址和對應(yīng)郵件服務(wù)器的域名。這些映射信息被稱為
MX 記錄 。比如:qq.com 的 MX 記錄中指定了 mail.qq.com。那么任何發(fā)送給 qq.com 結(jié)尾的郵件都被發(fā)送到 mail.qq.com 服務(wù)器。就這樣,根據(jù) MX 記錄中指定的郵件服務(wù)器,可以管理不同郵件地址與特定郵件服務(wù)器之間的映射關(guān)系。
SMTP 協(xié)議 提供電子郵件服務(wù)的協(xié)議叫做
SMTP 。SMTP 用于收發(fā)雙方的郵件服務(wù)器之間,而不是用戶代理和郵件服務(wù)器之間的通信方式。在實(shí)際使用中,發(fā)送方用戶代理與發(fā)送方服務(wù)器之間也常采用 SMTP 協(xié)議。
SMTP協(xié)議 SMTP 為了實(shí)現(xiàn)高效發(fā)送郵件內(nèi)容,在傳輸層使用了
TCP 協(xié)議 ,
端口號是 25 。在一臺郵件服務(wù)器向另一臺郵件服務(wù)器發(fā)送郵件時(shí),首先向?qū)Ψ降?TCP 25 端口發(fā)起一條連接。然后利用這條 TCP 連接發(fā)送控制消息和數(shù)據(jù)。
SMTP握手階段 盡管 SMTP 協(xié)議的邏輯簡單,也足以順利完成郵件的傳輸工作,但難免存在一些安全缺陷:
SMTP 傳輸?shù)泥]件是明文 的形式,沒有提供數(shù)據(jù)加密機(jī)制,可以看到郵件傳輸?shù)木唧w內(nèi)容,用戶信息的機(jī)密性無法得到保障。 SMTP 沒有提供任何認(rèn)證機(jī)制 ,即使使用了偽造的發(fā)件人郵件地址也無法識別,會(huì)出現(xiàn)冒名頂替的安全問題。 漫天的廣告郵件和包含釣魚鏈接的垃圾郵件成為日益嚴(yán)重的問題。為了修正 SMTP 出現(xiàn)的問題,IETF 定義了擴(kuò)展的 SMTP ,即 ESMTP 。
ESMTP 提供的擴(kuò)展功能中包括
認(rèn)證機(jī)制 和
加密機(jī)制 等。在整個(gè)郵件傳輸?shù)倪^程中,SMTP/ESMTP 協(xié)議定義了郵件服務(wù)器之間的消息傳輸方式。在接收服務(wù)器收到電子郵件后,接收方(用戶代理)是如何訪問郵件則需要其它的協(xié)議來處理。
POP3 協(xié)議 電子郵件通過 SMTP 協(xié)議到達(dá)接收方服務(wù)器,個(gè)人電腦不可能長期處于開機(jī)狀態(tài),用戶希望一開機(jī)就能收到郵件,然而 SMTP 沒有這種功能。為了解決這個(gè)問題,就引入了 POP3 協(xié)議。
POP3 協(xié)議是用于接收電子郵件的協(xié)議。發(fā)送端的郵件使用 SMTP 協(xié)議將電子郵件轉(zhuǎn)發(fā)給一直在線的 POP3 服務(wù)器??蛻舳嗽俑鶕?jù) POP3 協(xié)議從 POP3 服務(wù)器接收郵件。這個(gè)過程中,為了防止別人盜取郵件內(nèi)容,還要進(jìn)行用戶認(rèn)證。
POP3協(xié)議 POP3 協(xié)議和 SMTP 協(xié)議一樣,是基于 TCP 的應(yīng)用層協(xié)議,使用
TCP 110 端口 連接郵件服務(wù)器。接收方的郵件客戶端程序首先使用 TCP 連接到 POP3 服務(wù)器的 TCP 端口 110 ;再進(jìn)行
用戶認(rèn)證 、
郵件列表查詢 、
郵件下載 、
郵件刪除 等操作;操作完成后,客戶端與郵件服務(wù)器之間再斷開 TCP 連接。
POP3消息傳輸流程 POP3 僅負(fù)責(zé)郵件的下載,郵件從客戶端上傳到郵件服務(wù)器由 SMTP ?協(xié)議完成。 IMAP 協(xié)議 POP3 協(xié)議的郵件客戶端能夠在郵件服務(wù)器上執(zhí)行的操作很少,而且郵件要下載到客戶端本地,而不保留在郵件服務(wù)器,實(shí)際使用時(shí)很不方便。目前使用更廣泛的接收電子郵件的協(xié)議是
IMAP 。
在 IMAP 中郵件則由服務(wù)器進(jìn)行管理。 IMAP協(xié)議 使用 IMAP 時(shí),不必從服務(wù)器上下載所有的郵件也可以查看。 由于 IMAP 是在服務(wù)器端處理 MIME 信息,它可以實(shí)現(xiàn)郵件附件的選擇性下載功能。比如:一封郵件有 5 個(gè)附件時(shí),可以只下載其中的 3 個(gè)附件。IMAP 還會(huì)在服務(wù)器上對 “ 已讀/未讀 ” 信息和郵件分類進(jìn)行管理,所以在不同的電腦上打開郵箱,也能保持同步,使用起來非常方便。
WWW 萬維網(wǎng) (
WWW )是將互聯(lián)網(wǎng)的信息以超文本形式展現(xiàn)的系統(tǒng),也叫做
Web ??梢燥@示 WWW 信息的客戶端軟件叫做
Web 瀏覽器 ,有時(shí)簡稱為瀏覽器。目前常用的 Web 瀏覽器包括微軟的 Internet Explorer 、谷歌公司的 Google Chrome 、騰訊公司的 QQ 瀏覽器以及 Apple 公司的 Safari 等。使用瀏覽器,我們不需要關(guān)心信息保存在哪個(gè)服務(wù)器,只需輕輕點(diǎn)擊鼠標(biāo),就可以訪問頁面上的鏈接并打開相關(guān)信息。
WWW 通過瀏覽器進(jìn)行訪問后,顯示在瀏覽器上的內(nèi)容叫做
Web 頁 。訪問一個(gè)網(wǎng)站時(shí)看到的第一個(gè)頁面稱為
首頁 (又稱為主頁)。很多公司的主頁地址形式如下:http://www.公司名稱.com.cn這類主頁中通常有公司概況、產(chǎn)品信息、招聘信息等內(nèi)容。我們可以點(diǎn)擊這些標(biāo)題的圖標(biāo)或鏈接,就可以跳轉(zhuǎn)到對應(yīng)的頁面上。這些頁面上的信息不僅僅是文字內(nèi)容,還有圖片或動(dòng)畫,甚至是聲音或其它程序等各種各樣的信息。我們不但可以通過 Web 頁獲取信息,還可以自己制作 Web 頁向全世界發(fā)布信息。WWW 有 3 個(gè)重要的概念,它們分別是訪問信息的方式和位置(
URI )、信息的表現(xiàn)形式(
HTML )以及信息傳輸(
HTTP )等操作。
URI URI 用于標(biāo)識資源,是一種高效的識別碼,被應(yīng)用于主頁地址、電子郵件、電話號碼等。http://www.rfc-editor.org/rfc/rfc4395.txthttp://www.ietf.org:80/index.htmlhttp://localhost:321通常主頁地址被叫做
URL 。URL 常用來表示網(wǎng)絡(luò)資源的具體位置。但是 URI 不限于標(biāo)識互聯(lián)網(wǎng)資源,可以作為所有資源的標(biāo)識符。簡單說就是 URL 是 URI 的一個(gè)子集。WWW 主要使用
http 和
https 表示 Web 頁的位置和訪問 Web 頁的方法。http 的具體格式如下:http://主機(jī)名/路徑
http://主機(jī)名:端口號/路徑
http://主機(jī)名:端口號/路徑?訪問內(nèi)容#部分信息其中主機(jī)名可以用域名或 IP 地址表示,端口號表示傳輸端口號。省略端口號時(shí),表示使用 http 的默認(rèn)端口 80 。路徑是指主機(jī)上信息的位置,訪問內(nèi)容表示要傳給 CGI 的信息,部分信息表示頁面當(dāng)中的位置等。這種表示方法可以標(biāo)識互聯(lián)網(wǎng)中特定的數(shù)據(jù)。由于 http 展現(xiàn)的數(shù)據(jù)隨時(shí)都有可能發(fā)生變化,所以記住頁面的 URI( URL ),也不能保證下次能夠訪問到這個(gè)頁面。
HTML HTML 是用來描述 Web 頁的一種語言。它可以指定瀏覽器中顯示的文字、文字的大小和顏色,還可以對圖像、動(dòng)畫或音頻進(jìn)行設(shè)置。
HTML舉例 在頁面中 HTML 不僅可以文字或圖片附加
鏈接 ,點(diǎn)擊鏈接時(shí)還可以呈現(xiàn)鏈接所指的內(nèi)容?;ヂ?lián)網(wǎng)中任何一個(gè) WWW 服務(wù)器中的信息都可以以鏈接的方式展現(xiàn)。
瀏覽器顯示的內(nèi)容 HTML 也可以說是 WWW 的數(shù)據(jù)表現(xiàn)協(xié)議。 只要是用 HTML 展現(xiàn)的數(shù)據(jù),即使是在不同的計(jì)算機(jī)上,效果基本上是一樣的。
HTTP 當(dāng)用戶在瀏覽器的地址欄里輸入 Web 頁的 URL 后,HTTP 的處理就開始了。
HTTP 默認(rèn)使用 80 端口。它的工作機(jī)制,
首先是客戶端向服務(wù)器的 80 端口建立一個(gè) TCP 連接,然后在這個(gè) TCP 連接上進(jìn)行請求和應(yīng)答以及數(shù)據(jù)報(bào)文的發(fā)送。 HTTP的工作機(jī)制 HTTP 中常用的有兩個(gè)版本,一個(gè)是
HTTP 1.0 ,另一個(gè)是
HTTP 1.1 。在HTTP 1.0 中每一個(gè)命令和應(yīng)答都會(huì)觸發(fā)一次 TCP 連接的建立和斷開。而從 HTTP 1.1 開始,允許在一個(gè) TCP 連接上發(fā)送多個(gè)命令和應(yīng)答,這種方式也叫
保持連接 ( keep-alive )??梢源罅繙p少 TCP 連接的建立和斷開操作,提高傳輸效率。
兩個(gè)版本HTTP工作方式對比 網(wǎng)絡(luò)管理應(yīng)用 很多應(yīng)用層協(xié)議廣為人知,是因?yàn)槲覀冊谌粘I暇W(wǎng)的過程中,會(huì)大量使用與這些應(yīng)用協(xié)議有關(guān)的應(yīng)用程序,這類應(yīng)用協(xié)議稱為
終端用戶應(yīng)用協(xié)議 ;另外還有一些應(yīng)用協(xié)議在網(wǎng)絡(luò)中廣泛使用,但我們對它們卻少有聽聞,最多在網(wǎng)絡(luò)無法正常使用時(shí),才會(huì)意識到它們的存在,這類
應(yīng)用層 協(xié)議稱為
系統(tǒng)應(yīng)用協(xié)議 。在日常工作中,網(wǎng)絡(luò)工程師經(jīng)常使用到的系統(tǒng)應(yīng)用協(xié)議有 DHCP 協(xié)議和 DNS 協(xié)議。
DHCP協(xié)議 詳細(xì)內(nèi)容可以查看往期文章《37 張圖詳解 DHCP :給你 IP 地址的隱形人》和《[36 張圖詳解 DNS :
網(wǎng)絡(luò) 世界的導(dǎo)航](
https://mp.weixin.qq.com/s/flmHhfnfbh_pzIaKu59AXQ)》。
DNS協(xié)議