新手入門:瞭解網絡應用與網絡協議4

應用所需的服務

  我們知道套接字是應用進程和傳輸協議之間的接口。發送端的應用進程通過這扇門送出消息。在門的另一側,傳輸協議負責把這些消息跨網絡傳送到接收進程的門口。包括因特網在內的許多網絡體系結構提供不止一個傳輸協議。在開發應用程序時,必須選擇一個可用的傳輸協議。如何進行選擇呢?最可能的情形是,先研究一下由可用的傳輸協議提供的服務,再選出其服務與應用程序的需求最爲匹配的協議。這種情形類似於在兩個城市之間旅行時選擇乘火車還是乘飛機。你只能選擇其中一種運輸方式,而每種方式提供的服務是不同的(例如火車提供市區載客服務.飛機提供更短的運輸時間)。

  網絡應用可能要求傳輸協議提供什麼樣的服務呢?我們可以把網絡應用的服務需求按以下3個尺度粗略地進行劃分:可靠性、帶寬、實時性。

  可靠性

  有些應用要求完全可靠地傳送數據,也就是說不能有數據丟失,例如電子郵件、文件傳送、遠程主機訪問、Web文檔傳送、財務應用等。丟失文件數據或財務交易數據的災難性後果是可想而知的。另有一些丟失容忍應用(lose-tolerant application)可以容忍一定數量的數據丟失,例如實時音頻/視頻或倉儲音頻/視頻等多媒體應用。在丟失容忍的多媒體應用中,數據的丟失可能會在播放出的音頻/視頻中引入短時脈衝干擾,不過不是至關緊要的損傷。數據丟失對於應用質量的影響以及實際可容忍的分組丟失量強烈依賴於應用本身及所用的編碼方案。

  帶寬

  有些應用必須以特定的持續速率傳送數據纔會有效。例如,如果某個因特網電話應用32Kbps的速率編碼語音,那麼它必須能夠以同樣的速率把數據發送到網絡,再由網絡遞送到接收應用。如果得不到這個數量的帶寬,應用就得以一個較低的速率編碼,還得獲取足以維持這個編碼速率的帶寬,否則只能放棄,因爲對於這樣的帶寬敏感應用(bandwidth-sensitive application)來說,僅僅得到所需帶寬的一半是沒有用的。許多當前的多媒體應用對帶寬敏感,不過將來的多媒體應用可能用上自適應編碼技術,能夠以與當前的可用帶寬相匹配的速率編碼。帶寬敏感應用需要一個給定數量的帶寬,而與之相對的是,彈性應用(elastic application)卻可以根據臨時可用量隨多隨少地使用帶寬。電子郵件、文件傳送、遠程訪問、web傳送等都是彈性應用。當然帶寬肯定越高越好。

  實時性

  諸如因特網電話、虛擬環境、遠程電話會議、多方遊戲等交互式實時應用要求數據的遞送滿足嚴格的定時限制,以此保證有效。這些應用中有許多要求端到端的延遲在數百毫秒或以下的數量級。例如,因特網電話中的長延遲往往導致交談中不自然的停頓:在多方遊戲或虛擬交互環境中,從採取行動到看見來自環境的響應之間的長延遲(譬如說在某個端到端連接結束時纔看到來自另一個玩家的響應)將使得應用感覺起來不大現實。對於非實時應用來說,低延遲總比高延遲可取,不過它們不會對端到端延遲施加任何嚴格的限制。

  下表彙總了一些流行的和新興的因特網應用的可靠性、帶寬和實時性需求。這僅僅是一些較爲流行的因特網應用的若干關鍵需求的概要。我們的目的並不是提供網絡應用需求的一個完整分類,而是簡單地標識出可由此將網絡應用需求歸類的幾個最重要的軸。


表1:一些網絡應用的服務需求

  因特網(更一般地說,TCP網絡)給應用程序提供兩個傳輸協議:用戶數據報協議(UserDatagram Protocol,UDP)和傳輸控制協議(Transaction Control Protocol,TCP)。當開發人員創建一個新的因特網應用時,他必須選擇UDP或TCP這兩個協議之一用於該應用。這兩個協議給應用提供不同的服務模型。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章