應用層協議原理


網絡核心設備並不在應用層上起作用,而僅在較低層起作用,特別是位於網絡層及下面層次。這種基本設計,也即將應用軟件限制在端系統的方法,促進了大量的網絡應用程序的迅速研發和部署。

一、網絡應用程序的體系結構

  1. 客戶 - 服務器體系架構 (client-server architecture)
    有一個總是打開的主機稱為服務器,服務來自其他許多稱為客戶的主機的請求;客戶相互之間不直接通信。
    常常會出現一台單獨的服務器主機跟不上所有客戶請求的情況。為此,配備大量主機的數據中心常被用於創建強大的虛擬服務器。
  2. P2P體系結構 (P2P architecture)
    對位於數據中心的專用服務器有最小的(或着沒有)依賴。應用的程序在間斷連接的主機對之間使用直接通信,這些主機被稱為對等方。
    目前許多流行的、流量密集型的應用都是P2P體系結構的。包括文件共享、因特網電話、IPTV。
    某些應用具有混合的體系結構。對於許多即時訊息應用而言,服務器被用於跟蹤用戶的IP地址,但用戶到用戶的報文在用戶主機之間直接發送。
    P2P應用具有自擴展性 (self-scalability),也是成本有效的。但未來P2P應用面臨三個挑戰:
    1. ISP友好。ISP受制於“非對稱”帶寬應用,下載要比上載多得多。
    2. 安全性。 P2P是高度開放和分布的。
    3. 激勵。 需要說服用戶自願向應用提供帶寬、存儲和計算資源。

二、進程通信

在操作系統術語中,進行通信實際上是進程 (process)

  1. 客戶和服務器進程
    網絡應用程序由成對的進程組成,這些進程通過網絡互相發送報文。
  2. 進程和計算機網絡之間的接口
    進程通過一個稱為套接字 (socket) 的軟件接口向網絡發送報文和從網絡接收報文。

    套接字是同一台主機內應用層與運輸層之間的接口。由於套接字是建立網絡應用程序的可編程接口,因此套接字也被稱為應用程序和網絡之間的應用程序編程接口。
    應用程序開發者可以控制套接字在網絡層的一切,但對該套接字的運輸層端幾乎沒有控制權。
  3. 進程尋址
    為了標識進程的地址,需要兩個信息:
    1. 主機的地址,即IP地址
    2. 主機中進程的標識符,即端口號

三、運輸層服務

可以從四個方面來考察運輸層協議對應用層程序提供的服務。

  1. 可靠數據傳輸
    如果一個協議提供了確保數據交付服務,就認為提供了可靠數據傳輸 (reliable data transfer)
    當一個運輸層協議不提供可靠數據傳輸時,由發送進程發送的某些數據可能不能夠到達接收進程。這可能能被容忍丟失的應用 (loss-tolerant application) 所接受,最值得注意的是多媒體應用。
  2. 吞吐量
    可用吞吐量就是發送進程能夠向接收進程交付比特的速率,該可用吞吐量將隨時間波動。這導致另一種自然的服務,即運輸層協議能夠以某種特定的速率提供確保的可用吞吐量,該協議能夠確保可用吞吐量總是至少r比特/秒。
    具有吞吐量要求的應用程序被稱為帶寬敏感的應用 (bandwidth-sensitive application),許多當前的多媒體應用是帶寬敏感度。
    彈性應用 (elastic application) 能夠根據情況或多或少地利用可供使用的吞吐量。電子郵件、文件傳輸以及Web傳送都屬於彈性應用。
  3. 定時
    一個保證的例子如:發送方注入進套接字中的每個比特到達接收方的套接字不遲於100ms。這些服務對交互式實時應用程序有吸引力。
    因特網電話中,較長的時延會導致會話出現不自然的停頓;在游戲中,較長的時延使得它失去真實感。
  4. 安全性
    運輸協議可以提供一種或多種安全性服務。

    SSL不是與TCP和UDP在相同層次上的第三種因特網運輸協議,它是對TCP的加強,這種強化是在**應用層**上實現的。
    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM