国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

這篇具有很好參考價值的文章主要介紹了計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本章學(xué)習(xí)應(yīng)用層

網(wǎng)絡(luò)應(yīng)用是計算機(jī)網(wǎng)絡(luò)存在的理由。

網(wǎng)絡(luò)應(yīng)用程序體系結(jié)構(gòu)

現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序有兩種主流體系結(jié)構(gòu):客戶—服務(wù)器體系結(jié)構(gòu)和對等(P2P)體系結(jié)構(gòu)

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

客戶—服務(wù)器體系結(jié)構(gòu)(client-server ),在這個結(jié)構(gòu)中,有一個總是打開的主機(jī)稱為服務(wù)器,它服務(wù)于來自許多其他稱為客戶的主機(jī)的請求。

(一個典型的例子是Web應(yīng)用程序,其中總是打開的Web服務(wù)器服務(wù)于來自瀏覽器(運(yùn)行在客戶主機(jī))的請求。當(dāng)它接收到請求后,它向該客戶發(fā)送所請求的對象作為響應(yīng))

這種結(jié)構(gòu)有幾個特點:客戶相互之間不直接通信;服務(wù)器具有固定的、周知的地址(IP地址)

具有這種結(jié)構(gòu)的著名的應(yīng)用程序包括Web、FTP、Telnet、和電子郵件

P2P體系結(jié)構(gòu),在這個結(jié)構(gòu)中對位于數(shù)據(jù)中心的專用服務(wù)器有最小的(或者沒有)依賴,相反,應(yīng)用程序在間斷連接的主機(jī)對之間使用直接通信,這些主機(jī)對被稱為對等方。這種對等通信不必通過專門的服務(wù)器,因此該結(jié)構(gòu)被稱為對等方到對等方的。

這種結(jié)構(gòu)最引人入勝的特征之一是它的自擴(kuò)展性

(例如,在一個P2P文件共享應(yīng)用中,盡管每個對等方都由于請求文件產(chǎn)生工作負(fù)載。但每個對等方通過向其他對等方分發(fā)文件也為系統(tǒng)增加服務(wù)能力)

進(jìn)程通信

用操作系統(tǒng)的術(shù)語來說,進(jìn)行通信的實際上是進(jìn)程(process)而不是程序。一個進(jìn)程可以被認(rèn)為是運(yùn)行在端系統(tǒng)中的一個程序。在兩個不同端系統(tǒng)上的進(jìn)程,通過跨越計算機(jī)網(wǎng)絡(luò)交換報文而相互通信。發(fā)送進(jìn)程生成并向網(wǎng)絡(luò)中發(fā)送報文,接收進(jìn)程接收這些報文并可能通過回送報文進(jìn)行響應(yīng)。

客戶和服務(wù)器進(jìn)程

網(wǎng)絡(luò)應(yīng)用程序由成對的進(jìn)程組成,這些進(jìn)程通過網(wǎng)絡(luò)相互發(fā)送報文。

(在Web應(yīng)用程序中,一個客戶瀏覽器進(jìn)程與一臺Web服務(wù)器進(jìn)程交換報文;在一個P2P系統(tǒng)中,文件從一個對等方中的進(jìn)程傳輸?shù)搅硪粋€對等方中的進(jìn)程)。對于每對通信進(jìn)程,常將這兩個進(jìn)程之一標(biāo)識為客戶(client),而另一進(jìn)程標(biāo)識為服務(wù)器(server),

具體來說就是:在一對進(jìn)程之間之間的通信會話場景中,發(fā)起通信的進(jìn)程被標(biāo)識為客戶,在會話開始時等待聯(lián)系的進(jìn)程是服務(wù)器

進(jìn)程與計算機(jī)網(wǎng)絡(luò)之間的接口

多數(shù)程序是由通信進(jìn)程對組成,每對中的兩個進(jìn)程相互發(fā)送報文。從一個進(jìn)程向另一個進(jìn)程發(fā)送的報文必須通過下面的網(wǎng)絡(luò),進(jìn)程通過一個稱為套接字(socket)的軟件接口向網(wǎng)絡(luò)發(fā)送報文和從網(wǎng)絡(luò)接收報文。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

?套接字是同一臺主機(jī)內(nèi)應(yīng)用層與運(yùn)輸層之間的接口。由于該套接字是建立網(wǎng)絡(luò)應(yīng)用程序的可編程接口,因此套接字也稱為應(yīng)用程序和網(wǎng)絡(luò)之間的應(yīng)用程序編程接口(Application Programming Interface,API),應(yīng)用程序開發(fā)者可以控制套接字在應(yīng)用層端的一切,但是對該套接字的運(yùn)輸層幾乎沒有控制權(quán)。

進(jìn)程尋址

在一臺主機(jī)上運(yùn)行的進(jìn)程為了向在另一臺主機(jī)上運(yùn)行的進(jìn)程發(fā)送分組,接收進(jìn)程需要有一個地址,為了標(biāo)識該接收進(jìn)程,需要定義兩種信息:①主機(jī)的地址②在目的主機(jī)中指定接收進(jìn)程的標(biāo)識符。在因特網(wǎng)中,主機(jī)由其IP地址標(biāo)識(IP地址是一個32比特的量且它能夠唯一地標(biāo)識該主機(jī))。接收主機(jī)用端口號(port number)來標(biāo)識接收進(jìn)程。

因特網(wǎng)提供的運(yùn)輸服務(wù)

因特網(wǎng)為應(yīng)用程序提供兩個運(yùn)輸層協(xié)議,UDP和TCP, 當(dāng)軟件開發(fā)者為因特網(wǎng)創(chuàng)建一個新的應(yīng)用時,首先要做出的決定是選擇UDP還是TCP,每個協(xié)議為第哦啊用它們的應(yīng)用程序提供不同的服務(wù)集合。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

TCP服務(wù)?

TCP服務(wù)模型包括面向連接服務(wù)和可靠數(shù)據(jù)傳輸服務(wù)。當(dāng)某個應(yīng)用程序調(diào)用TCP作為其運(yùn)輸協(xié)議,該應(yīng)用程序就能獲得來自TCP地這兩種服務(wù)。

  • 面向連接的服務(wù):在應(yīng)用層數(shù)據(jù)報文開始流動之前,TCP讓客戶和服務(wù)器互相交換運(yùn)輸層控制信息,這個握手過程提醒客戶和服務(wù)器,讓它們?yōu)榇罅糠纸M的到來做好準(zhǔn)備,在握手階段后,一個TCP連接就在兩個進(jìn)程的套接字之間建立了,這條連接是全雙工的,即連接雙方的進(jìn)程可以在此連接上同時進(jìn)行報文收發(fā)。當(dāng)應(yīng)用程序結(jié)束報文發(fā)送時,必須拆除該連接
  • 可靠的數(shù)據(jù)傳送服務(wù):通信進(jìn)程能夠依靠TCP,無差錯、按適當(dāng)?shù)捻樞蚪桓端邪l(fā)送的數(shù)據(jù)。當(dāng)應(yīng)用程序的一端將字節(jié)流傳進(jìn)套接字時,它能夠依靠TCP將相同的字節(jié)流交付給接收方的套接字,沒有字節(jié)的丟失和冗余

TCP協(xié)議還具有擁塞控制機(jī)制,這種服務(wù)不一定能為通信進(jìn)程帶來直接好處,但能為因特網(wǎng)帶來整體好處。當(dāng)發(fā)送方和接收方之間的網(wǎng)絡(luò)出現(xiàn)擁塞時,TCP的擁塞控制機(jī)制會抑制發(fā)送進(jìn)程。

UDP服務(wù)?

UDP是一種不提供不必要服務(wù)的輕量級運(yùn)輸協(xié)議,它僅提供最小服務(wù)。

  • UDP是無連接的,因此在兩個進(jìn)程通信前沒有握手過程。
  • UDP協(xié)議提供一種不可靠數(shù)據(jù)傳輸服務(wù),當(dāng)進(jìn)程將一個報文發(fā)送進(jìn)UDP套接字時,UDP協(xié)議并不保證該報文將到達(dá)接收進(jìn)程,而且到達(dá)接收進(jìn)程的報文也有可能是亂序到達(dá)的。

UDP沒有包括擁塞控制機(jī)制,所以UDP的發(fā)送端可以用它選定的任何速率向其下層(網(wǎng)絡(luò)層)注入數(shù)據(jù)

這里需要注意的是無論是TCP還是UDP,都沒有提供任何加密機(jī)制。發(fā)送進(jìn)程傳進(jìn)其套接字的數(shù)據(jù)與經(jīng)網(wǎng)絡(luò)傳送到目的端進(jìn)程的數(shù)據(jù)相同,明文方式傳送,這就可能使得信息在任何中間鏈路被發(fā)現(xiàn)。因此研制了TCP的加強(qiáng)版本——安全套接字(Secure Sockets Layer,SSL)。用SSL加強(qiáng)后的TCP不僅能夠做傳統(tǒng)TCP所能做的一切,而且提供了關(guān)鍵的進(jìn)程到進(jìn)程的安全性服務(wù),包括加密、數(shù)據(jù)完整性和端點鑒別。

應(yīng)用層協(xié)議

應(yīng)用層協(xié)議定義了運(yùn)行在不同端系統(tǒng)上的應(yīng)用程序進(jìn)程如何相互傳遞報文,特別是應(yīng)用層協(xié)議定義了:

  • 交換的報文類型,例如請求報文和響應(yīng)報文
  • 各種報文類型的語法,如報文中的各個字段及這些字段是如何描述的
  • 字段的語義,即這些字段中的信息的含義
  • 確定一個進(jìn)程何時以及如何發(fā)送報文,對報文進(jìn)行響應(yīng)的規(guī)則?

Web和HTTP

HTTP概況?

Web的應(yīng)用層協(xié)議是超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP),它是Web的核心。HTTP由兩個程序?qū)崿F(xiàn):一個客戶程序和一個服務(wù)器程序??蛻舫绦蚝头?wù)器程序運(yùn)行在不同的端系統(tǒng)中,通過交換HTTP報文進(jìn)行會話,HTTP定義了這些報文的結(jié)構(gòu)以及客戶和服務(wù)器進(jìn)行報文交換的方式。

{Web頁面是由對象組成的,一個對象只是一個文件,如HTML文件、JEPG圖形、Java小程序這樣的文件,且它們可以通過一個URL地址尋址,每個URL地址由兩部分組成:存放對象的服務(wù)器主機(jī)名和對象的路徑名}

HTTP定義了Web客戶向Web服務(wù)器請求Web頁面的方式,以及服務(wù)器向客戶傳送Web頁面的方式。當(dāng)用戶請求一個Web頁面(如點擊一個超鏈接)時,瀏覽器向服務(wù)器發(fā)出對該頁面中所包含對象的HTTP請求報文,服務(wù)器接收到請求并用包含這些對象的HTTP響應(yīng)報文進(jìn)行響應(yīng),如下圖所示。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

HTTP使用TCP作為它的支撐運(yùn)輸協(xié)議(而不是UDP)。HTTP客戶首先發(fā)起一個與服務(wù)器的TCP連接,一旦連接建立,該瀏覽器和服務(wù)器進(jìn)程就可以通過套接字接口訪問TCP(客戶端的套接字接口是客戶進(jìn)程與TCP連接之間的門,服務(wù)器端的套接字接口則是服務(wù)器進(jìn)程與TCP連接之間的門。客戶向它的套接字接口發(fā)送HTTP請求報文并從它的套接字接口接收HTTP響應(yīng)報文,類似的服務(wù)器端也是如此,?一旦客戶向它的套接字接口發(fā)送一個請求報文,該報文就脫離客戶控制并進(jìn)入TCP的控制,而TCP為HTTP提供可靠的數(shù)據(jù)傳輸服務(wù))

服務(wù)器向客戶發(fā)送被請求的文件,而不存儲任何關(guān)于該客戶的狀態(tài)信息,假如客戶在短時間內(nèi)連續(xù)請求同一個對象,服務(wù)器會依次對每一個請求做出回應(yīng),不會因為之前的反應(yīng)而不再提供服務(wù)。因為HTTP服務(wù)器不保存關(guān)于客戶的任何信息,所以說HTTP協(xié)議是一個無狀態(tài)協(xié)議(stateless protocol)

非持續(xù)連接和持續(xù)連接

?客戶和服務(wù)器再一個相當(dāng)長的時間范圍內(nèi)通信,其中客戶發(fā)出一系列請求并且服務(wù)器對每個請求進(jìn)行響應(yīng),每個請求/響應(yīng)對是經(jīng)一個單獨的TCP連接發(fā)送(非持續(xù)連接),或者所有的請求和響應(yīng)經(jīng)過相同的TCP連接發(fā)送(持續(xù)連接)。

  • 非持續(xù)連接的HTTP的過程

在非持續(xù)連接情況下,從服務(wù)器向客戶傳送一個Web頁面(假設(shè)該頁面含有一個HTML基本文件和10個JEPG圖形,并且這11個對象位于同一臺服務(wù)器上)

(1)HTTP客戶進(jìn)程在端口號80發(fā)起一個到服務(wù)器的TCP連接,該端口號是HTTP的默認(rèn)端口。在客戶和服務(wù)器上分別有一個套接字與該連接相關(guān)聯(lián)

(2)HTTP客戶經(jīng)它的套接字向該服務(wù)器發(fā)送一個HTTP請求報文

(3)HTTP服務(wù)器進(jìn)程經(jīng)它的套接字接收該請求報文,并向客戶發(fā)送封裝了對象的HTTP響應(yīng)報文

(4)HTTP服務(wù)器進(jìn)程通知TCP斷開TCP連接

(5)HTTP客戶接收響應(yīng)報文,TCP連接關(guān)閉

上面的舉例步驟說明了非持續(xù)連接的使用,其中每個TCP連接在服務(wù)器發(fā)送一個對象后關(guān)閉,即該連接并不為其他的對象而持續(xù)下來。每個TCP連接只傳輸一個請求報文和一個響應(yīng)報文。

往返時間(Round-Trip Time,RTT)是指一個短分組從客戶到服務(wù)器然后再返回所花費的時間。RTT包含分組傳播時延、分組在中間路由器和交換機(jī)上的排隊時延以及分組處理時延

估算一下從客戶請求HTML基本文件到客戶收到整個文件所花費的時間?

當(dāng)用戶點擊鏈接時,引起瀏覽器在它和Web服務(wù)器之間發(fā)起一個TCP連接;這涉及一次”三次握手“過程,即客戶向服務(wù)器發(fā)送一個小TCP報文段,服務(wù)器用一個小TCP報文段做出確認(rèn)和響應(yīng),最后客戶向服務(wù)器返回確認(rèn)。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

三次握手中前兩部分耗費的時間占用了一個RTT,完成后客戶向TCP連接發(fā)送一個HTTP請求報文,服務(wù)器對此HTTP請求做出HTTP響應(yīng),這樣又耗費一個RTT,因此?

總的響應(yīng)時間就是兩個RTT加上服務(wù)器傳輸HTML文件的時間。?

  • 持續(xù)連接的HTTP

非持續(xù)連接有一些缺點。第一,必須為每一個請求的對象建立和維護(hù)一個全新的連接,對于每一個這樣的連接,在客戶和服務(wù)器中都要分配TCP的緩沖區(qū)和保持TCP變量,給Web服務(wù)器帶來嚴(yán)重負(fù)擔(dān);第二,每一個對象經(jīng)受兩倍RTT的交付時延,一個RTT用于創(chuàng)建TCP,另一個用于請求和接收對象。

在采用持續(xù)連接情況下,服務(wù)器在發(fā)送響應(yīng)后保持該TCP連接打開。在相同的客戶和服務(wù)器之間,后續(xù)的請求和響應(yīng)報文能夠通過相同的連接進(jìn)行傳送。HTTP的默認(rèn)模式是使用帶流水線的持續(xù)連接。

用戶與服務(wù)器的交互cookie

我們已經(jīng)知道HTTP服務(wù)器是無狀態(tài)的,然而一個Web站點通常希望能夠識別用戶,為此HTTP使用了cookie。

如圖,cookie技術(shù)有4個組件:①在HTTP響應(yīng)報文中的一個cookie首部行;②在HTTP請求報文中的一個cookie首部行;③在用戶端系統(tǒng)保留有一個cookie文件,由用戶的瀏覽器進(jìn)行管理;④位于Web站點的一個后端數(shù)據(jù)庫。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

cookie可用于標(biāo)識一個用戶。用戶首次訪問一個站點時,可能需要提供一個用戶標(biāo)識。在后繼會話中,瀏覽器向服務(wù)器傳遞一個cookie首部,從而向該服務(wù)器標(biāo)識了用戶。因此cookie可以在無狀態(tài)的HTTP之上建立一個用戶會話層。但是cookie的使用仍有爭議,因為它們被認(rèn)為是對用戶隱私的一種侵害。

Web緩存?

Web緩存也叫代理服務(wù)器,它是能夠代表初始Web服務(wù)器來滿足HTTP請求的網(wǎng)絡(luò)實體。??

?計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

可以配置用戶的瀏覽器,使得用戶的所有HTTP請求首先指向Web緩存器,一旦某瀏覽器被配置,每個對某對象的瀏覽器請求首先被定向到該Web緩存器。

假設(shè)瀏覽器正在請求對象,會發(fā)生如下情況:

(1)瀏覽器創(chuàng)建一個到Web緩存器的TCP連接,并向Web緩存器中的對象發(fā)送一個HTTP請求

(2)Web緩存器進(jìn)行檢查,看看本地是否存儲了該對象副本,如果有,Web緩存器就向客戶瀏覽器用HTTP響應(yīng)報文返回該對象

(3)如果Web緩存器中沒有該對象,它就打開一個與該對象的初始服務(wù)器的TCP連接。Web緩存器則在這個緩存器到服務(wù)器的TCP連接上發(fā)送一個該對象的HTTP請求,在收到該請求后,初始服務(wù)器向該Web緩存器發(fā)送具有該對象的HTTP響應(yīng)?。

(4)當(dāng)Web緩存器接收到該對象時,它在本地存儲空間存儲一份副本,并向客戶的瀏覽器用HTTP響應(yīng)報文發(fā)送該副本(通過現(xiàn)有的客戶瀏覽器和Web緩存器之間的TCP連接)

需要注意的是Web緩存器既是服務(wù)器又是客戶。當(dāng)它接收瀏覽器的請求并發(fā)回響應(yīng)時,它是一個服務(wù)器,當(dāng)它向初始服務(wù)器發(fā)出請求并接收響應(yīng)時,它是一個客戶。

在因特網(wǎng)上部署Web緩存器有兩個原因。首先,Web緩存器可以大大減少對客戶請求的響應(yīng)時間;其次,Web緩存器能夠大大減少一個機(jī)構(gòu)的接入鏈路到因特網(wǎng)的通信量。

因特網(wǎng)中的電子郵件

電子郵件是一種異步通信媒介。

下圖給出因特網(wǎng)電子郵件系統(tǒng)的總體情況。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

?它有三個主要組成部分:用戶代理(user agent)、郵件服務(wù)器(mail server)、簡單郵件傳輸協(xié)議(Simple Mail Transfer Protocol,SMTP)。

一個典型的郵件發(fā)送過程:從發(fā)送方的用戶代理開始,傳輸?shù)桨l(fā)送方的郵件服務(wù)器,再傳輸?shù)浇邮辗降泥]件服務(wù)器,然后在這里被分發(fā)到接收方的郵箱中。

SMTP是因特網(wǎng)電子郵件中主要的應(yīng)用層協(xié)議。它使用TCP可靠數(shù)據(jù)傳輸服務(wù),從發(fā)送方的郵件服務(wù)器向接收方的郵件服務(wù)器發(fā)送郵件。

假設(shè)Alice想給Bob發(fā)送一封簡單的報文,

(1)Alice調(diào)用她的郵件代理程序并提供Bob的郵件地址,撰寫報文,然后指示用戶代理發(fā)送該報文。

(2)Alice的用戶代理把報文發(fā)給她的郵件服務(wù)器,在那里該報文被放在報文隊列中。

(3)運(yùn)行在Alice的郵件服務(wù)器上的SMTP客戶端發(fā)現(xiàn)了報文隊列中的這個報文,它就創(chuàng)建一個到運(yùn)行在Bob的郵件服務(wù)器上的SMTP服務(wù)器的TCP連接。

(4)在經(jīng)過一些初始SMTP握手后,SMTP客戶端通過該TCP連接發(fā)送Alice的報文。

(5)在Bob的郵件服務(wù)器上,SMTP的服務(wù)器端接收該報文。Bob的郵件服務(wù)器然后將該報文放入Bob的郵箱中。

(6)在Bob方便的時候,他調(diào)用用戶代理閱讀該報文。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)?

SMTP一般不使用中間郵件服務(wù)器發(fā)送郵件,即使這兩個郵件服務(wù)器位于地球兩端也是這樣。如果Bob的郵件服務(wù)器沒有開機(jī),該報文回保留在Alice的郵件服務(wù)器上并等待進(jìn)行新的嘗試,這意味著郵件并不在中間的某個郵件服務(wù)器存留。

SMTP與HTTP的對比

這兩個協(xié)議都是用于從一臺主機(jī)向另一臺主機(jī)傳送文件:HTTP從Web服務(wù)器向Web客戶(通常是一個瀏覽器)傳送文件;SMTP從一個郵件服務(wù)器向另一個郵件服務(wù)器傳送文件(電子郵件報文),當(dāng)進(jìn)行文件傳送時,持續(xù)的HTTP和SMTP都使用持續(xù)連接。

兩者之間的區(qū)別

(1) HTTP主要是一個拉協(xié)議(pull protocol),用戶使用HTTP從該服務(wù)器拉取這些信息。這個TCP連接是由想接收文件的機(jī)器發(fā)起的;另一方面,SMTP基本上是一個推協(xié)議(push protocol),即發(fā)送郵件服務(wù)器把文件推向接收郵件服務(wù)器,這個TCP連接是由要發(fā)送該文件的及其發(fā)起的。

(2)SMTP要求每個報文(包括他們的體)采用7比特ASCII碼格式。如果某報文包含了非7比特ASCII字符或二進(jìn)制數(shù)據(jù),則該報文必須按照7比特ASCII碼進(jìn)行編碼。HTTP數(shù)據(jù)則不受這種限制。

(3)第三個重要區(qū)別是如何處理一個既包含文本又包含圖形(也可能是其他媒體類型)的文檔,HTTP把每個對象封裝到它自己的HTTP響應(yīng)報文中,而SMTP則把所有報文對象放在一個報文之中。

郵件訪問協(xié)議

一旦SMTP將郵件報文從Alice的郵件服務(wù)器交付給Bob的郵件服務(wù)器?,該報文就被放入Bob的郵箱。如下圖所示,Alice的用戶代理用SMTP將電子郵件報文推入她的郵件服務(wù)器,接著她的郵件服務(wù)器(作為一個SMTP客戶)再用SMTP將該郵件中繼到Bob的郵件服務(wù)器。這里為什么要分為兩步?主要是因為不通過Alice的郵件服務(wù)器進(jìn)行中繼,Alice的用戶代理沒有辦法到達(dá)一個不可達(dá)的目的地接收服務(wù)器。

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

Bob是如何通過運(yùn)行其本地PC上的用戶代理,獲得位于他的某ISP的郵件服務(wù)器上的郵件呢?

Bob的用戶代理不能使用SMTP得到報文,因為取報文是一個拉操作,而SMTP協(xié)議是一個推協(xié)議。通過引入一個特殊的郵件訪問協(xié)議來解決這個難題,該協(xié)議將Bob郵件服務(wù)器上的報文傳送給他的本地PC。目前有一些流行的郵件訪問協(xié)議包括第三版的郵局協(xié)議(PostOffice Protocol——Version3,POP3),因特網(wǎng)郵件訪問協(xié)議(Internet Mail Access Protocol,IMAP)以及HTTP?

如上圖(圖2-16),SMTP用來將郵件從發(fā)送方的郵件服務(wù)器傳輸?shù)浇邮辗降泥]件服務(wù)器 ,也用來將郵件從發(fā)送方的用戶代理傳送到發(fā)送方的郵件服務(wù)器,POP3這樣的郵件訪問協(xié)議用來將郵件從接收方的郵件服務(wù)器傳送到接收方的用戶代理。

?POP3

POP3是一個極為簡單的郵件訪問協(xié)議,由RFC1939進(jìn)行定義。當(dāng)用戶代理(客戶)打開了一個到郵件服務(wù)器(服務(wù)器)端口110上的TCP連接后,POP3就開始工作了,隨著建立TCP連接,POP3按照三個階段進(jìn)行工作:特許、事務(wù)處理以及更新。?

?IMAP

基于Web的電子郵件

DNS:因特網(wǎng)的目錄服務(wù)?

因特網(wǎng)的主機(jī)和人類一樣,可以使用多種方式進(jìn)行標(biāo)識,主機(jī)的一種標(biāo)識方法是用它的主機(jī)名(hostname)?,也可以使用IP地址進(jìn)行標(biāo)識。

DNS提供的服務(wù)

識別主機(jī)有兩種方式,通過主機(jī)名或者IP地址。人們喜歡便于記憶的主機(jī)名標(biāo)識方式,而路由器則喜歡定長的、有著層次結(jié)構(gòu)的IP地址,為了折中,我們需要一種能進(jìn)行主機(jī)名到IP地址轉(zhuǎn)換的目錄服務(wù),這就是域名系統(tǒng)(Domain Name System,DNS)的主要任務(wù)。DNS是:①一個由分層的DNS服務(wù)器(DNS server)實現(xiàn)的分布式數(shù)據(jù)庫;②一個使得主機(jī)能夠查詢分布式數(shù)據(jù)庫的應(yīng)用層協(xié)議DNS協(xié)議運(yùn)行在UDP上,使用53號端口。

DNS通常是由其他應(yīng)用層協(xié)議所使用的,包括HTTP、SMTP和FTP,將用戶提供的主機(jī)名解析為IP地址。

舉一個例子,考慮運(yùn)行在某用戶主機(jī)上的一個瀏覽器(即一個HTTP客戶)請求URL www.someschool.edu/index.html頁面時會發(fā)生什么現(xiàn)象。為了使用戶的主機(jī)能夠?qū)⒁粋€HTTP請求報文發(fā)送到Web服務(wù)器www.someschool.edu,該用戶主機(jī)必須獲得www.someschool.edu的IP地址。其做法如下

(1)同一臺用戶主機(jī)上運(yùn)行著DNS應(yīng)用的客戶端

(2)瀏覽器從上述URL中抽取出主機(jī)名www.someschool.edu,并將這臺主機(jī)名傳給DNS應(yīng)用的客戶端

(3)DNS客戶向DNS服務(wù)器發(fā)送一個包含主機(jī)名的請求

(4)DNS客戶最終會收到一份響應(yīng)報文,其中含有對應(yīng)于該主機(jī)名的IP地址

(5)一旦瀏覽器接收到來自DNS的該IP地址,它能夠向位于該IP地址80端口的HTTP服務(wù)器進(jìn)程發(fā)起一個TCP連接

除了進(jìn)行主機(jī)名到IP地址的轉(zhuǎn)換外,DNS還提供了一些重要的服務(wù):

  • 主機(jī)別名 有著復(fù)雜主機(jī)名的主機(jī)能擁有一個或多個別名,應(yīng)用程序可以調(diào)用DNS來獲得主機(jī)別名對應(yīng)的規(guī)范主機(jī)名以及主機(jī)的IP地址
  • 郵件服務(wù)器別名??
  • 負(fù)載分配? DNS也用在冗余的服務(wù)器之間進(jìn)行負(fù)載分配

DNS工作機(jī)理概述

假設(shè)運(yùn)行在用戶主機(jī)上的某些應(yīng)用需要將主機(jī)名轉(zhuǎn)換為IP地址。這些應(yīng)用程序?qū)⒄{(diào)用DNS的客戶端,并指明需要被轉(zhuǎn)換的主機(jī)名。用戶主機(jī)上的DNS接收到后,向網(wǎng)絡(luò)中發(fā)送一個DNS查詢報文。所有的DNS請求和回答報文使用UDP數(shù)據(jù)報經(jīng)端口53發(fā)送 。經(jīng)過若干時間的時延后,用戶主機(jī)上的DNS接收到一個提供所希望映射的DNS回答報文,這個映射結(jié)果則被傳遞到調(diào)用DNS的應(yīng)用程序。因此從用戶主機(jī)上調(diào)用應(yīng)用程序的角度看 ,DNS是一個提供簡單、直接的轉(zhuǎn)換服務(wù)的黑盒子。

DNS的一種簡單設(shè)計是在因特網(wǎng)上只使用一個DNS服務(wù)器,該服務(wù)器包含所有的映射。在這種集中式設(shè)計中,客戶直接將所有查詢直接發(fā)往單一的DNS服務(wù)器,同時該DNS服務(wù)器直接對所有的查詢客戶做出響應(yīng),但是這種集中式設(shè)計的問題包括:

(1)單點故障 如果該DNS服務(wù)器崩潰,整個因特網(wǎng)隨之癱瘓

(2)通信容量 單個DNS不得不處理所有的DNS查詢

(3)遠(yuǎn)距離的集中式數(shù)據(jù)庫 單個DNS服務(wù)器不可能”鄰近“所有查詢客戶,所以可能會導(dǎo)致嚴(yán)重的時延

(4)維護(hù) 單個DNS服務(wù)器不得不為所有的因特網(wǎng)主機(jī)保留記錄,這將使這個中央數(shù)據(jù)庫龐大。

因此DNS采用了分布式的設(shè)計方案

(1)分布式、層次結(jié)構(gòu)

為了處理擴(kuò)展性問題,DNS使用了大量的DNS服務(wù)器,它們以層次方式組織,并且分布在全世界范圍內(nèi)。沒有一臺DNS服務(wù)器擁有因特網(wǎng)上所有主機(jī)的映射,相反這些映射分布在所有的DNS服務(wù)器上,大致來說有三種類型的DNS服務(wù)器:根DNS服務(wù)器、頂級域(Top-Level Domain,TLD)DNS服務(wù)器和權(quán)威DNS服務(wù)器?

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

  • 根服務(wù)器 有400多個根服務(wù)器遍及全世界,這些根服務(wù)器由13個不同的組織管理,根服務(wù)器提供TLD服務(wù)器的IP地址
  • 頂級域DNS服務(wù)器? 對于每個頂級域和所有國家的頂級域,都有TLD服務(wù)器。TLD服務(wù)器提供了權(quán)威DNS服務(wù)器的IP地址
  • 權(quán)威DNS服務(wù)器 在因特網(wǎng)上具有公共可訪問主機(jī)的每個組織機(jī)構(gòu)必須提供公共可訪問的DNS記錄,這些記錄將這些主機(jī)的名字映射為IP地址

根、TLD、和權(quán)威DNS服務(wù)器都處在該DNS服務(wù)器的層次結(jié)構(gòu)中,還有另一類重要的DNS服務(wù)器,稱為本地DNS服務(wù)器(local DNS server),嚴(yán)格來說一個本地DNS服務(wù)器并不屬于該服務(wù)器的層次結(jié)構(gòu),但他對DNS層次結(jié)構(gòu)是至關(guān)重要的。每個ISP都有一臺本地DNS服務(wù)器,當(dāng)主機(jī)與某個ISP連接時,該ISP提供一臺主機(jī)的IP地址,該主機(jī)具有一臺或多臺其本地DNS服務(wù)器的IP地址

計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

?DNS緩存

?為了改善時延性能并減少在因特網(wǎng)上到處傳輸?shù)腄NS報文數(shù)量,DNS廣泛使用了緩存技術(shù)。DNS緩存的原理非常簡單,在一個請求鏈中,當(dāng)某DNS服務(wù)器接收一個DNS回答時,它能將映射緩存在本地存儲器中,事實上因為緩存,除了少數(shù)DNS查詢以外,根服務(wù)器被繞過了。

P2P文件分發(fā)

截至目前我們所描述的應(yīng)用都采用了客戶——服務(wù)器模式,極大地依賴總是打開的基礎(chǔ)設(shè)施服務(wù)器,而使用p2p體系,對總是打開的基礎(chǔ)設(shè)施服務(wù)器有最小的(或者沒有)依賴,成對間歇連接的主機(jī)(稱為對等方)彼此直接通信,這些對等方并不為服務(wù)提供商所擁有。

在客戶——服務(wù)器模式下進(jìn)行文件分發(fā),該服務(wù)器必須向每個對等方發(fā)送該文件的一個副本,即服務(wù)器承受了極大的負(fù)擔(dān),并且消耗了大量的服務(wù)器帶寬。在P2P文件分發(fā)中,每個對等方能夠向任何其他對等方重新發(fā)送它已經(jīng)收到的該文件的任何部分,從而在分發(fā)過程中協(xié)助該服務(wù)器。

具有P2P體系結(jié)構(gòu)的應(yīng)用程序能夠是自擴(kuò)展的。這種擴(kuò)展性的直接成因是:對等方除了是比特的消費者外還是它們的重新分發(fā)者。

?

?計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)文章來源地址http://www.zghlxwxcb.cn/news/detail-494512.html

到了這里,關(guān)于計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 《計算機(jī)網(wǎng)絡(luò)-自頂向下》04. 網(wǎng)絡(luò)層-數(shù)據(jù)平面

    《計算機(jī)網(wǎng)絡(luò)-自頂向下》04. 網(wǎng)絡(luò)層-數(shù)據(jù)平面

    從表面上看網(wǎng)絡(luò)層的作用:將分組從一臺發(fā)送主機(jī)移動到另一臺接收主機(jī)。 完成該功能需要兩個重要的網(wǎng)絡(luò)層功能: 轉(zhuǎn)發(fā):當(dāng)一個分組到達(dá)某路由器的一條輸入鏈路時,該路由器必須將該分組移動到適當(dāng)?shù)妮敵鲦溌贰?路由選擇:當(dāng)分組從發(fā)送方流向接收方時,網(wǎng)絡(luò)層必須決

    2023年04月15日
    瀏覽(21)
  • 《計算機(jī)網(wǎng)絡(luò)——自頂向下方法》精煉——3.7(2)

    《計算機(jī)網(wǎng)絡(luò)——自頂向下方法》精煉——3.7(2)

    讀書有三到:謂心到,眼到,口到?!鳌ぶ祆?為了簡化對一條TCP連接吞吐量的描述,我們首先忽略連接過程中處于慢啟動狀態(tài)的時間,因為這一狀態(tài)時間極短,而且相比于其他狀態(tài)的線性增長,該狀態(tài)的指數(shù)式增長會將計算復(fù)雜化;而對于快速恢復(fù)狀態(tài),這一狀態(tài)僅在網(wǎng)

    2024年02月07日
    瀏覽(23)
  • 計算機(jī)網(wǎng)絡(luò)自頂向下WireShark實驗:TCP

    計算機(jī)網(wǎng)絡(luò)自頂向下WireShark實驗:TCP

    計算機(jī)網(wǎng)絡(luò) WireShark 實驗記錄可供參考 1:What is the IP address and TCP port number used by the client computer (source) that is transferring the file to gaia.cs.umass.edu? To answer this question, it’s probably easiest to select an HTTP message and explore the details of the TCP packet used to carry this HTTP message, using the “details of

    2023年04月15日
    瀏覽(22)
  • 《計算機(jī)網(wǎng)絡(luò):自頂向下方法》第五章--網(wǎng)絡(luò)層:控制平面

    《計算機(jī)網(wǎng)絡(luò):自頂向下方法》第五章--網(wǎng)絡(luò)層:控制平面

    控制平面作為一種網(wǎng)絡(luò)范圍的邏輯,不僅控制沿著從源主機(jī)到目的主機(jī)的端到端路徑間的路由器如何轉(zhuǎn)發(fā)數(shù)據(jù)報,而且控制網(wǎng)絡(luò)層組件和服務(wù)如何配置和管理 傳統(tǒng)上,控制平面功能與數(shù)據(jù)平面的轉(zhuǎn)發(fā)功能在一起實現(xiàn),在路由器中作為統(tǒng)一的整體 在網(wǎng)絡(luò)層:數(shù)據(jù)平面中有轉(zhuǎn)發(fā)

    2024年02月12日
    瀏覽(21)
  • 計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第四章學(xué)習(xí)記錄)

    計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第四章學(xué)習(xí)記錄)

    本章學(xué)習(xí)網(wǎng)絡(luò)層:數(shù)據(jù)平面 前一章中我們學(xué)習(xí)了運(yùn)輸層依賴于網(wǎng)絡(luò)層的主機(jī)到主機(jī)的通信服務(wù),提供了各種形式的進(jìn)程到進(jìn)程的通信。在本章中我們將看到與運(yùn)輸層和應(yīng)用層不同的是,在網(wǎng)絡(luò)中的每一臺主機(jī)和路由器中都有一個網(wǎng)絡(luò)層部分。 網(wǎng)絡(luò)層能夠被分解為兩個相互作

    2024年02月11日
    瀏覽(29)
  • 計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

    計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第二章學(xué)習(xí)記錄)

    本章學(xué)習(xí)應(yīng)用層 網(wǎng)絡(luò)應(yīng)用是計算機(jī)網(wǎng)絡(luò)存在的理由。 現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序有兩種主流體系結(jié)構(gòu):客戶—服務(wù)器體系結(jié)構(gòu)和對等(P2P)體系結(jié)構(gòu) 客戶—服務(wù)器體系結(jié)構(gòu) (client-server ),在這個結(jié)構(gòu)中,有一個總是打開的主機(jī)稱為服務(wù)器,它服務(wù)于來自許多其他稱為客戶的主機(jī)的請求

    2024年02月09日
    瀏覽(22)
  • 計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第三章學(xué)習(xí)記錄)

    計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第三章學(xué)習(xí)記錄)

    本章學(xué)習(xí)運(yùn)輸層 運(yùn)輸層位于應(yīng)用層和網(wǎng)絡(luò)層之間,是分層的網(wǎng)絡(luò)體系的重要部分,該層為運(yùn)行在不同主機(jī)上的應(yīng)用進(jìn)程提供直接的通信服務(wù)起著至關(guān)重要的作用。 運(yùn)輸層協(xié)議為運(yùn)行在不同主機(jī)上的應(yīng)用進(jìn)程之間提供了 邏輯通信 (logic communication)功能。從應(yīng)用程序的角度看,通

    2024年02月11日
    瀏覽(23)
  • 計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第一章學(xué)習(xí)記錄)

    計算機(jī)網(wǎng)絡(luò)——自頂向下方法(第一章學(xué)習(xí)記錄)

    可以從兩個不同的方面來理解Internet。(它的構(gòu)成。它的服務(wù)) 1.因特網(wǎng)的主要構(gòu)成 ? ???????處在因特網(wǎng)的邊緣部分就是在因特網(wǎng)上的所有主機(jī),這些主機(jī)又稱為 端系統(tǒng) (end system),端系統(tǒng)通過 因特網(wǎng)服務(wù)提供商 (Internet Service Provider,ISP)接入因特網(wǎng),端系統(tǒng)通過 通信

    2024年02月10日
    瀏覽(26)
  • 《計算機(jī)網(wǎng)絡(luò)--自頂向下方法》第四章--網(wǎng)絡(luò)層:數(shù)據(jù)平面

    《計算機(jī)網(wǎng)絡(luò)--自頂向下方法》第四章--網(wǎng)絡(luò)層:數(shù)據(jù)平面

    每臺路由器的數(shù)據(jù)平面的主要作用是從其輸入鏈路向其輸出鏈路轉(zhuǎn)發(fā)數(shù)據(jù)報 ;控制平面的主要作用是協(xié)調(diào)這些本地路由器轉(zhuǎn)發(fā)動作,使得數(shù)據(jù)報沿著源和目的地主機(jī)之間的路由器路徑進(jìn)行端到端傳送 路由器具有截斷的協(xié)議棧,即沒有網(wǎng)絡(luò)層之上的部分,因為 路由器不運(yùn)行應(yīng)

    2024年02月12日
    瀏覽(20)
  • 《計算機(jī)網(wǎng)絡(luò):自頂向下方法》學(xué)習(xí)筆記——第六章:鏈路層

    《計算機(jī)網(wǎng)絡(luò):自頂向下方法》學(xué)習(xí)筆記——第六章:鏈路層

    兩種截然不同類型的鏈路層信道 廣播信道 :這種信道用于連接有線局域網(wǎng)、衛(wèi)星網(wǎng)和混合光纖同軸電纜接入網(wǎng)中的多臺主機(jī)。 點對點通信鏈路 :這在諸如長距離鏈路連接的兩臺路由器之間,或用戶辦公室計算機(jī)與它們所連接的鄰近以太網(wǎng)交換機(jī)之間等場合經(jīng)常能夠發(fā)現(xiàn)。

    2024年02月03日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包