1. 程式人生 > >計算機網路2——網路應用、應用層(上)

計算機網路2——網路應用、應用層(上)

一、網路應用的體系結構

網路應用與單機應用本質性不同,網路應用需要網路的基礎環境,一部分應用執行在自己的計算機,資料資訊等執行在網際網路的某個硬體伺服器,兩部分軟體互相互動。

1、客戶機/伺服器結構(Client-Server,C/S)

伺服器:7*24小時提供服務;永久性訪問的地址/域名;利用大量伺服器實現可擴充套件性(大量伺服器分散式,同時處理大量使用者的併發請求)。

客戶機:與伺服器通訊,使用伺服器提供的服務;間接性接入網路;可能使用動態IP地址;不會與其它客戶機直接通訊。

  

2、點對點結構(Peer-to-peer,P2P)

沒有永遠線上的伺服器;任意端系統/節點之間可以直接通訊;節點間歇性接入網路;節點可能改變IP地址。

高度可壓縮,但難於管理。

3、混合結構(Hybrid)

Napster:檔案傳輸使用P2P結構;檔案搜尋採用C/S結構(集中式),每個節點向中央伺服器登記自己的內容,每個節點向中央伺服器提交查詢請求,查詢感興趣的內容。

二、網路應用程序通訊

程序是指主機上執行的程式。同一主機上執行的程序之間通訊,作業系統提供程序間通訊機制;不同主機上執行的程序間通訊,訊息(報文)交換。客戶機程序是發起通訊的程序,伺服器程序是等待通訊請求的程序。

不同主機的程序間通訊利用套接字(Socket)機制傳送/接收訊息,socket是作業系統提供的一種抽象,把網路的硬體基礎設施及網路協議棧抽象。類似於寄信,傳送方將訊息送到門外郵箱,依賴門外的傳輸基礎設施將訊息傳到接收方門外,接收方從門外獲取訊息。

傳輸基礎設施向程序提供網路的API——socket,傳輸協議的選擇,引數的設定。

(1)定址程序

不同主機上的程序間通訊,那麼每個程序必須擁有識別符號。

通過IP地址定址主機,為主機上每個需要通訊的程序分配一個埠號Port number。已經約定的埠號,如HTTP Server 80、Mail Server 25。

程序的識別符號,IP地址+埠號。

(2)應用層協議

網路應用需遵循應用層協議。

公開協議,由RFC(Request For Comments)定義,允許互操作,HTTP, SMTP, ……。想要詳細研究協議需要看其RFC文件https://www.ietf.org/standards/rfcs/

私有協議,多數P2P檔案共享應用。

(3)應用層協議的內容

訊息的型別(type):請求訊息、響應訊息;

訊息的語法(syntax)/格式:訊息中有哪些欄位(field)、每個欄位如何描述;

欄位的語義(semantics):欄位中資訊的含義;

規則(rules):程序何時傳送/響應訊息、程序如何傳送/響應訊息。

三、網路應用的需求與傳輸層服務