計算機網路--應用層

weixin_34194087發表於2018-07-11

計算機網路--應用層

網路應用時計算機網路存在的理由,如果我們不能構想出任何有用的應用,也就沒有任何必要去設計支援它們的網路協議了。

程式通訊

在兩個不同端系統上的程式,通過跨越計算機網路交換報文。而相互通訊,傳送程式生成並向網路中傳送報文。

1.客戶和伺服器程式

網路應用程式由成對的程式組成,這些程式通過網路相互傳送報文。

2.程式與計算機網路之間的介面

多數應用程式是由通訊程式對組成,每對中的兩個程式互相傳送報文。從一個程式向另一個程式傳送的報文必須通過下面的網路。程式通過一個稱為套接字的軟體介面向網路傳送報文和從網路接收報文。我們考慮一個類比來幫助我們理解程式和套接字。

套接字是同一臺主機內應用層與運輸層之間的介面。由於該套接字是建立網路應用程式的可程式設計介面,因此套接字也稱為應用程式和網路之間的應用程式程式設計介面(API)。應用程式開發者可以控制套接字在應用層端的一切,但是對該套接字的運輸層端幾乎沒有控制器。應用程式開發者對於運輸層的控制許可權於:1.選擇運輸層協議,2.也許能設定幾個運輸層引數。一旦應用程式開發者選擇了一個運輸層協議,則應用程式就建立在有該協議提供的運輸層服務之上。

3.程式定址

為了向特定目的地傳送郵政郵件,目的地需要有一個地址,類似的,在一臺主機上執行的程式為了向在另一臺主機上執行的程式傳送分組,接受程式需要有一個地址,為了表示該接收程式,需要定義兩種資訊:1.主機的地址,2.定義在目的主機中的接受程式的識別符號。

在因特網中,主機由其IP地址標識,除了要知道ip地址之外,還必須制定目的主機的接受程式(更具體的說,就是接受套接字)。因為一般而言一臺主機能夠執行許多網路應用,這些資訊是需要的,目的地埠號,用於這個目的,已經給留下的應用分配了特定的埠號。例如:Web = 80.郵件伺服器程式(使用SMTP)用埠25標表示。

4.可供應用程式使用的運輸服務

套接字是應用程式程式和運輸層協議之間的介面,在傳送端的應用程式將報文推送給套接字,在套接字的另一端,運輸層協議負責使該報文進入接受程式的套接字。

包括英特網在內的很多網路提供了不止一種的運輸層協議,當開發一個應用是,必須選擇一種可用的運輸層協議,最可能的方式是,通過研究這些可用的運輸層協議所提供的服務,選擇一個最能為你的應用需求提供恰當服務的協議,這種情況類似於在兩個城市間旅行時選擇交通工具,你必須選擇一種或另一種,

一個運輸層協議能夠為呼叫它的應用程式提供什麼服務呢?我們大體能夠從四個方面對應用程式服務要求進行分類,1.可靠資料傳輸,吞吐量,定時和安全性。

1.可靠資料傳輸

為了支援資料的可靠性(不能丟失)必須做一些工作以確保由應用程式的一端傳送的資料正確,完全的交付給該應用程式的另一端,如果一個協議提供了這樣的確保資料交付的服務,就認為提供了可靠資料傳輸,運輸層協議能夠潛在的嚮應用程式提供一個重要服務是程式到程式的可靠資料傳輸。當一個運輸協議提供這種服務是,傳送程式只要將其資料傳遞進套接字,就可以完全相信該資料能無差錯的到達接受程式。

2.吞吐量

即運輸層協議能夠以某種特定的速率提供確保的可用吞吐量

3.定時

傳送方進入套接字中的每個位元到達接收方的套接字不遲於100ms。

4.安全性

運輸協議能夠加密由傳送程式傳輸的所有資料,在接受主機中,運輸層協議能夠在將資料交付給接受程式之前揭祕這些資料。

因特網提供的運輸服務

因特網(TCP/IP)為應用程式提供了兩個運輸層協議,TCP和UDP。為因特網建立一個新的應用時,首先要做出的決定時,選擇UDP還是選擇TCP。每個協議為呼叫它們的應用程式提供了不同的服務集合。包括(資料可不可丟失,頻寬時彈性的還是更具不同檔案型別的速率,時間敏感度怎麼樣)

1.TCP服務。

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

·面向連線的服務:在應用層資料包文開始流動之前,TCP讓客戶和伺服器互相交換運輸層控制資訊,這個所謂的握手過程提示客戶和伺服器,是他們為大量分組的到來做好準備。再握手階段後,一個TCP連線就在兩個程式的套接字之間建立了,這條連線時全雙工的,即連線雙方的程式可以在此連線上同時進行報文收發。當應用程式結束報文傳送時,必須拆除該連線,

·可靠的資料傳輸服務:通訊程式能夠依靠TCP,無差錯,按適當順序交付所有傳送的資料,當應用程式的一端將位元組流傳進套接字時,它能夠依靠TCP將相同的位元組流交付給接收方的套接字,而沒有位元組的丟失和冗餘。

TCP協議還具有擁塞控制機制,這種服務不一定能為通訊程式帶來直接好處,但能為因特網帶來整體好處,當傳送方和接收方之間的網路出現擁塞時,TCP的擁塞控制機制會抑制傳送程式。TCP擁塞控制也試圖限制每個TCP連線,使他們達到公平共享網路頻寬的目的。

無論是TCP還是UDP都沒有提供任何加密機制。因此因特網屆已經研製了TCP的加強版,稱為安全套接字(SSL)。用SSL加強的TCP不僅能夠做傳統TCP的一切,而且還提供了關鍵的程式到程式的安全性服務,包括(加密,資料完整性,和端點鑑別)

2.UDP服務

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

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

page=63

相關文章