1. 程式人生 > >計算機網絡之應用層_part -1

計算機網絡之應用層_part -1

之間 使用 程序 對象 請求 spa enter 應用程序 iptv

應用層協議原理

一、網絡應用程序體系結構

  網絡應用程序體系結構是由程序研發者設計的,規定了如何在各種端系統中組織該應用程序,主要流行的有兩種:

1.客戶--服務器體系結構:

  有一個總是打開的主機(稱為服務器),他服務於來自許多的其他的稱為客戶的主機的請求,客戶--服務器體系結構德 一個典型的例子是:Web應用程序,其中總是打開的Web服務器接收到來自其他客戶的對某對象的請求時,它會向該客戶發送所請求的對象作為響應。值得註意的是客戶--服務器體系結構有兩個重要特征:

  a.客戶之間不直接通信

  b.服務器具有固定的、周知的地址(IP地址)

當然現實中 ,在一個客戶--服務器體系結構中,常常會出現一臺單獨的服務器跟不上他的客戶請求的情況。為此,配備大量主機的數據中心常常被用於創建強大的虛擬服務器 。如谷歌就有分布在全世界的30-50個數據中心,這些數據中心共同處理搜索、Gmail和其他服務。

2.對等(P2P)體系結構:

  在一個P2P體系結構中,對於數據中心的專用服務器有最小的(或沒有)依賴,相反,應用程序在間斷連接的主機之間使用直接通信,這些主機對稱為對等方。許多目前流行的、流量密集型的應用都是P2P體系結構,如這些應用包括文件共享(BitTorrent)、對等方協助下載器(迅雷)、因特網電話(Skype)和IPTV(迅雷看看)。

需要提及的是某些應用具有混合的體系結構,結合了客戶--服務器和P2P的元素。

二、進程通信

在操作系統的主術語中,進行通信的實際上是進程而不是程序,進程間的通信可以分為兩種,一種為運行在同一端系統上的,一種是運行在不同端系統上的。在這裏我們只關註後者。

1.客戶與服務器進程

  我們定義客戶與服務器進程如下:

  在給定的一對進程之間的通信會話場景中,發起通信的(即在該會話開始時發起與其他進程的聯系)的進程被標識為客戶,在會話開始時等待聯系的進程被標識為服務器。

2.進程與計算機網絡之間的接口

  多數應用程序是由通信進程對組成的,每對中的兩個進程相互發送報文。從一個進程向另一個進程發送報文必須通過下面的網絡。進程通過一個稱為套接字(Socket)的軟件接口向網絡中發送報文或從網絡中接收報文。我們用一個類比來理解進程與套接字。進程可以類比於一座房子,而他的套接字可以類比於它的門。當一個進程想向位於另外一臺主機上的另外一個進程發送報文時,它把報文推出該門(套接字)。該發送進程假定該門到另外一側之間有運輸的基礎設施,該設施將把報文傳送到目的進程的門,一旦該報文抵達目的主機,它通過接受進程的門(套接字)傳送,然後接收進程對該報文進行處理。

  由於該套接字是建立網絡應用程序的可編程接口,所以套接字也稱為應用程序與網絡之間的應用程序編程接口(API)。應用程序開發者可以控制套接字在網絡層端的一切,而對套接字在運輸層端幾乎沒有控制權。

3.進程尋址

  為了向特定目的地發送郵政郵件,目的地需要有一個地址。類似地,在一臺主機上運行的進程為了向另外一臺主機上的運行的進程發送分組,接受進程需要有一個地址。為了表示該接受進程,需要定義兩種信息:a.主機地址 (IP地址)b.定義在目的主機中的接受進程的標識符(端口號)。

三、可供應用程序使用的運輸服務

1.可靠數據傳輸

2.吞吐量

3.定時

4.安全性

四、因特網提供的運輸服務

1.TCP服務

當某個應用程序選擇TCP作為其運輸層協議是,該應用程序就能獲得來自於TCP的這兩種服務:

(1)面向連接的服務:在應用層數據報文開始流動之前,TCP讓客戶和服務器互相交換運輸層控制信息,也就是握手過程。在握手過程後,一個TCP連接就在兩個進程的套接字之間建立了。

(2)可靠的數據傳輸服務:通信進程能依靠TCP,無差錯、按適當順序交付所有發送的數據報文,並且沒有字節的丟失和冗余。

TCP協議還基友擁塞控制機制,當發送方和接收方之間的網絡出現擁塞是,TCP的擁塞控制機制會抑制發送進程發送數據。

2.UDP服務

UDP是一種不提供不必要的服務的輕量級運輸協議,僅提供最小服務。UDP是無連接的,即在兩個進程通信之前沒有握手過程。UDP協議也只是提供一種不可靠的數據傳輸服務,也就是說,當進程發送一個報文進UDP套接字時,UDP協議不保證這個報文一定能到達接收進城。不僅如此,到達接受進程的報文也可能是亂序到達的。

3.因特網運輸協議所不提供的服務

運輸協議服務主要有四個方面:可靠地數據傳輸,吞吐量,定時,安全性。

我們可以註意到TCP提供了端到端的可靠地數據傳輸服務,並且我們可以在應用層用SSL來加強以提供安全性服務。顯然,TCP和UDP缺少了定時和吞吐量的服務,這也是因特網運輸服務協議並沒有提供的。

計算機網絡之應用層_part -1