應用層協議 原理

2021-08-26 12:05:28 字數 2815 閱讀 3264

應用層協議的實現,只需要寫出能夠執行在不同的端系統(伺服器、手機、電腦等)和通過網路彼此通訊的程式。因為網路核心裝置(路由器、交換機等,不包括端系統裝置)並不在應用層上起作用,只在網路層及下面層次起作用,所以不需要為網路核心裝置寫對應的應用程式,即開發應用程式的時候只需要考慮適配端系統,不需要考慮網路核心裝置。

目前主流的網路應用程式體系結構有兩種:客戶-伺服器體系結構(client-server architecture)對等體系結構(p2p)

在作業系統中,進行通訊的實際上是程序(process)而不是程式。乙個程序可以被認為是執行在端系統中的乙個程式。

兩個不同端系統上的程序,通過跨越計算機網路交換報文而相互通訊。傳送程序生成並向網路中傳送報文;接收程序接收這些報文並可能通過報文傳送回去進行響應。

每對通訊程序,我們通常將這兩個程序之一標識為客戶(client),另乙個程序標識為伺服器(server)。p2p檔案共享的某些應用中,乙個程序能夠既是客戶又是伺服器。所以我們可以這樣定義客戶和伺服器程序:在給定的一對程序之間的通訊回話場景中,發起通訊(即在該會話開始時發起與其他程序的聯絡)的程序被標識為客戶,在會話開始時等待聯絡的程序是伺服器

在一台主機上執行的程序為了向在另一台主機上執行的程序傳送分組,接收程序需要有乙個位址。為了標識改接收程序,需要定義兩種資訊:①主機的位址;②定義在目的主機中的接收程序的識別符號。

在網際網路中,主機由其ip位址(ip address)標識。ip位址是乙個32位元的量且能夠唯一地標識主機。因為一台主機能夠執行多個網路應用,傳送報文時,傳送程序除了要知道目的地的主機位址外,還需要指定執行在接收主機上的接收程序(接收套接字)。目前比較流行的埠有:web伺服器的80埠、smtp的25埠等。

網路中運輸層的協議不止一種,開發應用時需要根據需求選擇相對應的運輸層協議。根據對運輸層服務的要求,可以將運輸層服務大體分為四類:可靠資料傳輸吞吐量定時安全性

可靠資料傳輸

吞吐量在沿著一條網路路徑上的兩個程序之間的通訊會話場景中,可用吞吐量就是傳送程序能夠向接收程序交付的位元速率。因為其他會話將共享沿著該網路路徑的頻寬,並且因為這些會話將會到達和離開,該可用吞吐量將隨時間波動。這就要求運輸層協議能夠以某種特定的速率提供確保的可用吞吐量,及吞吐量服務。使用這種服務,該應用程式能夠請求r位元/秒的確保吞吐量,並且該運輸協議能夠確保可用吞吐量總是至少為r位元/秒。

定時運輸層協議能提供定時保證,如傳送方注入進套接字中的每個位元到達接收方的套接字不遲於100ms。這種服務隊互動式實時應用程式具有很大的吸引力,如網路**、網路互動遊戲等,這些應用為了有效性而要求資料交付有嚴格的時間限制。

安全性運輸協議能夠為應用程式提供一種或多種安全性服務。例如,在傳送主機中,運輸協議能夠加密由傳送程序傳輸的所有資料,在接收主機中,運輸層協議能夠在資料交付給接收程序之前解密這些資料。運輸協議還能提供機密性以外的其他安全性服務,包括資料完整性和端點鑑別。

網際網路(更一般的是tcp/ip網路)為應用程式提供兩個運輸層協議,即udptcp。當為網際網路建立乙個新的應用時,受限要做出的決定是選擇udp還是tcp。每個協議為呼叫它們的應用程式提供了不同的服務集合。下表為一些應用程式的服務要求。

應用資料丟失

頻寬時間敏感

檔案傳輸

不能丟失彈性不

電子郵件

不能丟失彈性不

web文件

不能丟失

單行(幾kbps)

不容忍丟失

是,100ms

容忍丟失

同上是,幾秒

互動式遊戲

容忍丟視

幾kbps~10kbps

是,100ms

即時訊息

不能丟失

彈性是和不是

tcp服務

tcp服務模型包括面向連線服務和可靠資料傳輸服務。當某個應用程式呼叫tcp作為運輸協議時,該應用程式就能獲得來自tcp的兩種服務。

udp服務

udp是一種不提供不必要服務的輕量級運輸協議,它僅提供最小服務。udp是無連線的,因此在兩個程序通訊前沒有握手過程。udp協議提供一種不可靠資料傳送服務,也就是說,當程序將乙個報文傳送進udp套接字時,udp協議並不保證該報文將到達接收程序。不僅如此,達到接收程序的報文也可能是亂序到達的。

udp沒有包括擁塞控制機制,所以udp的傳送端可以用它選定的任何速率向其下層(網路層)注入資料。

下表指出了一些流行的網際網路應用所使用的運輸協議:

應用應用層協議

支撐的運輸協議

電子郵件

smtp [rfc 5321]

tcp遠端終端訪問

tcp檔案傳輸

ftp [rfc 959]

tcp流式多**

http (如 youtube)

tcp網際網路**

sip [rfc 3261]、rtp [rfc 3550]或專用的(如 skype)

udp 或 tcp

運輸層協議服務有可靠資料傳輸吞吐量定時安全性4個方面的服務。tcp提供了可靠的端到端資料傳送,並且tcp在應用層可以很容易地用ssl來加強已提供安全服務。但是,tcp卻沒有提供吞吐量服務和定時服務,或者說網際網路運輸協議沒有提供這兩種服務。

應用層協議原理(一)

目錄2.程序通訊 分層體系結構的優點可以很好地在這裡體現,應用層應用程式的開發不需要關心網路核心裝置上執行的要求,因為網路核心裝置只能對網路層及以下起作用,夠不到應用層。1.對於研發者來說,網路體系結構是固定的,其提供的服務集合能為之所用。2.網路應用程式體系結構就是研發者設計的,規定如何在各種端系...

應用層學習筆記一 應用層協議原理

研究網路應用程式的核心是寫出能夠執行在不同的端系統和通過網路彼此通訊的程式。客戶 伺服器體系 客戶與伺服器程序 程序與計算機網路之間的介面 程序定址 標識接收程序需要兩種資訊,主機的位址以及定義在目的主機中的接收程序的識別符號。主機由ip位址標識。目的地埠號用於標識目的主機的接收程序。從四個方面對應...

應用層協議

應用層協議定義了執行在不同端系統上的應用程式程序如何相互傳遞訊息。特別是定義了 交換的訊息型別,如請求訊息和響應訊息。各種訊息型別的語法,如訊息中的各個字段及其詳細描述。欄位的語義,即包含在字段中的資訊的含義。程序何時 如何傳送訊息及對訊息進行響應的規則。有些應用層協議是由rfc文件定義的,因此它們...