計算機網路之應用層

2021-10-06 03:49:19 字數 2960 閱讀 3303

應用軟體通常在網路邊緣的端系統中執行,而不是在網路核心的交換機和路由器上執行,這種模式促進了大量應用的開發和部署。網路核心的交換機和路由器只專注於資料報(分組)

的**。

1 網路應用程式體系結構

應用程式都有乙個體繫結構。網路應用程式所使用的兩種體系結構包括:客戶機/伺服器(c/s)體系結構或對等(p2p)體系結構。

在客戶機/伺服器體系結構中,有乙個總是開啟的主機稱為伺服器,它服務於來自許多其他稱為客戶機的主機請求。

乙個典型的例子是 web 應用程式,當 web 伺服器接收到來自某客戶機瀏覽器對某物件的請求時,它向該客戶機傳送所請求的物件作為響應。注意到客戶機/伺服器體系結構中,客戶機相互之間不直接通訊。伺服器具有固定的、周知的位址,稱為 ip 位址,並且總是處於開啟狀態。

在客戶機/伺服器體系結構中,常用主機群集之類的虛擬伺服器對客戶機提供服務。

在 p2p 體系結構中,對作為基礎設施的伺服器依賴很少。相反,主機與主機之間—稱為對等方,直接相互通訊,互相提供服務。很多應用程式都是 p2p 體系結構的,包括檔案分發、網際網路** skype 等。p2p 體系結構的最突出特性之一是它的可擴充套件性。

某些應用具有混合的體系結構,由客戶機/伺服器和 p2p 結合而成。例如,對於許多即時訊息應用(qq 等)而言,伺服器用於跟蹤使用者的 ip 位址,但使用者到使用者的訊息在使用者主機

之間直接傳送(無需通過中間伺服器)。

2 程序通訊

執行在多個端系統上應用程式之間的互相通訊,對於作業系統來說,實際上是程序之間的通訊。程序可以被認為是程式的一次執行。同一臺主機上的程序間通訊的可以使用作業系統的程序間通訊機制例如共享記憶體、訊號量等。但執行在不同端系統(可能具有不同的作業系統)上的程序間的通訊,需要交換訊息(message )來實現相互通訊。傳送程序建立並向網路中傳送訊息,接收程序接收這些訊息並負責回送訊息。這個過程是通過呼叫作業系統提供的傳送接收函式來實現的。

客戶機和伺服器程序

程序與計算機網路之間的介面

從乙個程序向另乙個程序傳送的訊息必須經過下面的網路進行傳輸。

系統提供的稱為套接字(socket)的程式設計介面在網路上傳送和接收訊息,傳送和接收函式是這個程式設計介面提供的最基本的兩個函式。

應用程式開發者對於傳輸層的控制僅限於:①選擇傳輸層協議。②設定幾個傳輸層引數,如最大快取、最大報文段長度等。

程序在通訊時,必須給接收方指定接收位址,這個位址包括兩個部分:對方主機的ip位址和應用程式的標識—埠號

3 可**用程式使用的傳輸服務

網際網路提供了不止一種傳輸層協議。當開發乙個應用時,在選擇可用的傳輸層協議時需要從四個方面對應用程式所需的傳輸服務進行考慮:是否要求可靠資料傳輸、吞吐量、時效性和安全性。

•可靠資料傳輸

有些應用例如網路**對話音傳輸有最小的頻寬要求,當話音以 32kbps 的速率進行編碼,那麼在通話過程中一直以這個速率向網路傳送資料,並向接收應用程式交付資料。如果傳輸層不能提供這種吞吐量保證,那麼該應用程式或以較低速率進行編碼,或者放棄傳送。而彈性應用能夠根據需要充分利用可供使用的吞吐量。電子郵件、檔案傳輸以及web 傳輸都屬於彈性應用。

•時效性

例如,網際網路**中較長的時延會導致會話中不自然的停頓。在網路遊戲和虛擬互動環境中,在動作及響應之間較長的時延會使遊戲失去真實感。在非實時的應用中,對端到端的時延沒有嚴格的約束。

•安全性

傳輸層協議能夠為應用程式提供一種或多種安全性服務。傳輸層協議也能提供除了機密性以外的其他安全性服務,包括資料完整性和端點鑑別。

4 網際網路提供的運輸服務

網際網路(更一般地說是 tcp/ip 網路)為應用提供了兩個傳輸層協議:udp 和tcp(對應於socket 程式設計的 sock_streamsock_dgram)。

•tcp 服務

tcp 服務模型是面向連線的可靠資料傳輸服務。

面向連線服務:使用 tcp 協議時,在應用程式開始交換訊息之前,客戶機程式和伺服器程式之間互相交換傳輸層控制資訊,做好傳輸分組的準備。在握手階段後,就在兩個程序的套接字之間建立了乙個 tcp 連線。這個連線是全雙工的,即連線雙方的程序都有傳送和接收緩衝區,可以在此連線上同時進行報文段的收發。當應用程式結束訊息傳送時,必須拆除該連線。

可靠資料傳愉服務:進行通訊的程序依靠 tcp 協議,無差錯、按適當順序交付傳送的數 據。其主要原理是報文段丟失了會進行重傳。

tcp 協議還具有擁塞控制機制,這種服務能為網際網路帶來整體好處。

•udp 服務

udp 是一種不提供可靠傳輸服務的輕量級傳輸層協議。udp 是無連線的,因此在兩個程序通訊前沒有握手過程。 udp 沒有擁塞控制機制。

•網際網路傳輸層協議所不提供的服務

不提供吞吐量和時效性保證的服務。

5 應用層協議

應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了:

交換的訊息型別,如請求訊息和響應訊息

各種訊息型別的語法,如訊息中的各個字段及其詳細描述。

欄位的語義,即包含在字段中的資訊的含義。

程序何時、如何傳送訊息及對訊息進行響應的規則。

有些應用層協議是由 rfc 文件定義的,因此它們位於公共領域,例如 http。

有些應用層協議是公司或者個人私有的,位於私人領域,例如 qq。

《計算機網路》之應用層

應用層作為和使用者互動的最高層,其任務是直接為使用者的應用程序提供服務。應用層的具體內容就是規定應用程序在通訊時所遵循的協議。網際網路的應用層協議有很多,如最為熟知的http 埠號80 和ftp 埠號21 支援電子郵件的smtp 埠號25 網域名稱系統dns 埠號53 等。下面我們來簡單介紹網域名稱...

計算機網路之應用層

dns完成了網域名稱到ip位址之間相互轉換的服務,由若干個網域名稱伺服器程式完成,每個伺服器只保留一部分資料,是乙個分布式資料庫。網際網路採用了層次樹狀結構的命名方法,任何乙個連線在網際網路上的主機或路由器,都有乙個唯一的層次結構的名字,即網域名稱。從上到下依次為 根網域名稱 頂級網域名稱 二級網域...

計算機網路之應用層

一.一些概念 1.程序通訊 程序之間進行訊息的傳遞 2.套接字 位於程序之間,程序從套接字中接收訊息,並可以傳送訊息給套接字 3.應用層協議 定義了程序何時,如何傳送何種資訊 4.程序定址 主機由ip位址標識,目的主機中指定接收程序的識別符號為目的地埠號,程序通過主機和目的主機的識別符號進行程序定址...