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