【計算機網絡】2.1 應用層協議原理

第二章第一節 應用層協議原理

網絡應用是計算機網絡存在的理由,在本章中,咱們學習有關網絡應用的原理和實現方面的知識。咱們學習包括應用沉香谷所須要的網絡服務、客戶和服務器、進程和運輸層接口。編程

咱們詳細考察幾種網絡應用程序,包括Web、電子郵件、DNS 和 P2P文件分發。緩存

Outline

Notes

## 應用程序體系結構

應用程序體系結構由應用程序研發者設計,規定了如何在各類端系統上組織該應用程序。安全

三種程序結構爲:客戶 - 服務器體系結構、對等(P2P)體系結構混合結構服務器

【客戶-服務器體系結構】網絡

  • 定義:有一個老是打開的主機稱爲服務器,它服務於來自許多其餘稱爲客戶的主機的請求
  • 服務器
    • 對外提供不間斷服務
    • 服務器具備固定的、周知的地址(IP地址)
    • 利用大量服務器實現可擴展性(數據中心)
  • 客戶端
    • 客戶端使用服務,間歇性接入網絡
    • 可能使用動態的IP地址
    • 客戶端之間不相互通訊
  • 栗子:Web服務器、FTP、電子郵件

 

【P2P體系結構】學習

  • 特色:
    • 對於位於數據中心的專用服務器有最小(或沒有)的依賴
    • 任意端系統/節點能夠直接通訊,這些主機被稱爲對等方
    • 端系統間歇性接入網絡,可能改變IP地址
  • 栗子(流量密集型應用):文件共享、對等方協助下載加速器(迅雷)、因特網電話等
  • 優勢:自擴展性(成本可控、經過與其餘對等方分發文件以增長服務能力)
  • 缺點:難以管理
  • 三大挑戰
    • ISP友好:大多數住宅ISP的下載要比上載多得多,ISP已經受制於非對稱的帶寬應用
    • 安全性:由於高度分佈和開放特性,P2P給安全帶來挑戰
    • 激勵:要稅負用戶資源提供帶寬、存儲和計算資源

 

【混合結構】操作系統

P2P難於管理,那咱們就混入C/S的集中管理。C/S中服務器壓力過大,咱們就混入P2P中的P們來爲它減輕負擔。Napster就是這樣作的。計算機網絡

Napster:文件傳輸使用P2P結構,文件搜索使用C/S結構設計

 

## 進程通訊

  • 進程:一個具備必定獨立功能的程序關於某個數據集合的一次運行活動,是系統進行資源分配和調度運行的基本單位
  • 若是同一主機上運行的進程想互相通訊,它們能夠經過進程間通訊機制來完成,這種機制是由操做系統提供的 
  • 兩個不一樣端系統上的進程,經過跨越計算機網絡交換報文(message)而相互通訊
  • 端系統的進程經過套接字進行接受報文或發送報文
  • 網絡應用程序是由成對的進程組成,這些進程經過網絡相互發送報文。對每對通訊進程,咱們將其中的一個標記爲客戶(client,通常爲發起通訊的一方),另外一個標記爲服務器(server,等待聯繫的一方)。 

【套接字(Socket)】3d

  • 套接字是同一臺主機內應用層與運輸層之間的接口

  • 套接字至關於一個公用的中間語言,讓不一樣的主機能夠順利通話。
  • 套接字是創建網絡應用程序的可編程接口,所以套接字也稱爲應用程序和網絡之間的應用程序編程接口(Application Programming Interface,API)
  • 應用程序開發者能夠控制應用層端的一切,但對於套接字運輸端的控制僅限於:
    • 選擇運輸層協議;
    • 也許能設定幾個運輸層參數,如最大緩存和最大報文段長度等(將在第3章中涉及)。

 【進程尋址】

  • 若是想實現不一樣主機上的進程間通訊,每一個主機必須擁有標識符——IP地址,每一個進程須要擁有標識符——端口號
  • 進程的標識符 = IP地址+端口號
  • IP地址是一個32比特的量且惟一的標識主機,更多的內容請參考第4章
  • 端口號如:HTTP Sever:80

 

## 因特網提供的運輸服務

【網絡應用的需求和傳輸層服務】

  • 運輸層協議提供的運輸服務包括:
    • 可靠數據傳輸(容忍丟失)
    • 吞吐量(帶寬敏感)
    • 時序/延遲
    • 安全性
  • 常見的應用所需的運輸服務

 

 【Internet提供的兩類傳輸服務——TCP服務】

  • TCP服務模型包括面向鏈接服務可靠數據傳輸服務,TCP還提供擁塞控制機制
  • 服務的具體描述:
    • 面向鏈接:客戶機/服務器進程間需創建鏈接。握手過程提示客戶和服務器,使它們爲大量分組的到來作好準備。在握手階段後,一個TCP鏈接(TCP connection)就在兩個進程的套接字之間創建了。
    • 可靠的傳輸:通訊進程可以依靠TCP,無差錯、按適當順序交付全部發送的數據。
    • 流量控制:發送方不會發送過快,超過接收方的處理能力。
    • 擁塞控制:當網絡負載太重時可以限制發送方的發送速度。
    • 不提供時間/延遲保障。
    • 不提供最小帶寬保障。

Internet提供的兩類傳輸服務——UDP服務

  • UDP是一種不提供不須要服務的輕量級運輸協議。
  • 無鏈接:它不需在兩主機間創建鏈接。
  • 提供不可靠的數據傳輸
  • 不提供擁堵控制UDP的發送端能夠用它選定的任何速率向其下層(網絡層)注入數據(值得注意的是實際端到端吞吐量可能小於這種速率,這多是由於中間鏈路的帶寬受限或由於擁塞而形成的)
  • 也不提供:可靠性保障、流量控制、延遲保障、帶寬保障。

【常見應用選擇的運輸協議】

 

 ## 應用層協議

  • 運輸服務遵循應用層協議
    • 公開協議:由RFC定義,標準化的HTTP、SMTP等
    • 私有協議:多數P2P文件共享應用
  • 應用層協議的主要內容
    • 消息的類型(type):請求消息,響應消息。
    • 消息的語法(syntax)/格式:消息中有哪些字段,每一個字段如何描述。
    • 字段的語義(semantics):字段中信息的含義。
    • 規則(rules):進程什麼時候發送/響應消息等。
  • 以HTTP爲例;

相關文章
相關標籤/搜索