計算機網路期末複習 第四講 網路應用工作原理

Jlinkk發表於2020-11-27

2.1 應用層協議工作原理

建立一個網路應用

     1)編寫分散式程式
        ● 執行在不同的端系統
        ● 通過網路互相通訊
        ● 如:瀏覽器和Web伺服器

     2) 不需要為網路核心裝置寫程式
        ● 網路核心裝置不執行使用者應用
        ● 在端系統上開發引用有利於應用的快速研發和部署

2.1.1 網路應用模型

1. 客戶/伺服器(C/S)

計算機網路期末複習 第四講 網路應用工作原理
     1)伺服器
        ● 一臺總線上的主機,執行著伺服器程式,服務於來自許多其他客戶主機的請求。
        ● 具有固定、周知的IP地址。
        ● 使用主機叢集或者資料中心提高處理能力。

     2)客戶
        ● 需要時主動與伺服器建立通訊。
        ● 可能間斷地連上網路。
        ● 通常使用動態的IP地址。
        ● 客戶相互之間不直接通訊

     3)典型例子:Web、FTP、Telnent和電子郵件。

2. 對等方式(P2P)

計算機網路期末複習 第四講 網路應用工作原理
     1)對等方
        ● 應用程式的主機之間使用直接通訊。
        ● 沒有總是在執行的伺服器,不需要龐大的伺服器基礎設施和伺服器頻寬。
        ● 對等方間斷連線,使用動態IP地址。
        ● 具有自擴充套件性,每個對等方可以請求服務,也可以提供服務。

     2)典型例子:檔案共享、等對方協助下載加速器(迅雷)、因特網電話和視訊會議。

2.1.2 程式通訊

     1)同一主機上,兩個程式使用程式間通訊機制(作業系統定義)進行通訊
     2)不同主機上的程式通過網路交換報文進行通訊。

1. 客戶和伺服器程式

     1)客戶程式:發起通訊的程式,比如瀏覽器
     2)伺服器程式:等待聯絡的程式,比如Web伺服器。
     3)在P2P模式的應用中,一個程式可以既是客戶程式又是伺服器程式。

2. 程式與計算網路之間的介面——套接字(socket)

計算機網路期末複習 第四講 網路應用工作原理
     1)套接字:同一臺主機內應用層運輸層之間的軟體介面,也稱為應用程式和網路之間的應用程式程式設計介面(API)。
        ● 應用程式的通訊程式對,通過套接字介面向網路層傳送報文和從網路接收報文。
        ● 類比:程式是一座房,套接字是一扇門,傳送程式將報文推出門,門外的運算設施(因特網)將報文送到接收程式的門口。

     2)應用開發者可以
        ● 控制套接字在應用層端的一切(應用開發)
        ● 對套接字的運輸層的控制權僅限於:
            a.選擇運輸層協議,
            b.也許能設定幾個運輸層的引數(如:最大快取和最大報文段長度等)

3. 程式定址

計算機網路期末複習 第四講 網路應用工作原理
     一臺主機上執行的程式向另一臺主機上執行的程式傳送分組,為了表示該接受程式,需要定義兩種資訊:
     1)IP地址:在網路中用來標識主機的地址。
     2)埠號:在目的主機中指定接受程式的識別符號。
        ● 例如Web伺服器用埠80
        ● 使用SMTP協議的郵件伺服器用25

2.1.3 可提供應用程式使用的運輸服務

     1. 應用需要什麼樣的傳輸服務?
        1) 可靠
           ● 容忍丟失的應用: 如音視訊等應用可以容忍一定程度的資料丟失。
           ● 如文字傳輸等應用要求完全可靠的資料傳輸

        2) 吞吐量
           ● 頻寬敏感應用: 如多媒體等應用要求保證最低可用頻寬。
           ● 彈性應用:如電子郵件、檔案傳輸可以適用各種可能的頻寬。

        3)實時
           ● 如網路電話,互動式網路遊戲,要求延遲保證
           ● 如郵件傳輸等應用對延遲不敏感。

        4)安全
           ● 需要加密,要求資料完整性。

2.1.4 因特網提供的運輸服務

1. TCP服務

     1)面向連線
           ● 程式通訊前,TCP讓客戶與伺服器互相交換運輸層控制資訊,通過這個握手過程建立一個TCP連線。
           ● 這條連線是全雙工,程式雙發可同時收發報文。
           ● 結束報文傳送時,必須拆除改連線。

     2)可靠的資料傳送:無差錯、按適當順序交付所傳送的資料。

     3)流量控制:傳送程式不會“壓垮”接受程式。

     4)擁塞控制:網路超載是抑制傳送程式。

     5)不提供: 實時性,最低頻寬保證

2. UDP服務

     1)無連線:兩個程式通訊前沒有握手過程
     2)不可靠資料傳輸:不能保證傳送的報文能夠到達目的地,也不能保證接受時的順序(亂序到達)。
     3)不提供:建立連線、可靠傳輸、流量控制、擁塞控制、實時性、最低頻寬保證。

注:上面的是運輸層的協議,到運輸層會具體討論,下面才是真正的應用層協^_ ^…

2.1.5 應用層協議

通過把報文傳送進套接字實現網路程式間的通訊

     1)如何構造這些報文?
     2)報文中的各個欄位的含義是什麼?
     3)程式何時傳送這些報文?

1. 應用層協議

          定義執行在不同端系統上的應用如何相互傳遞報。主要包括:

     1)交換的報文型別:例如請求報文和響應報文
     2)各種報文型別的語法:如報文中的各個欄位及這些欄位是如何描述的。
     3)欄位的語義:即這些欄位中的資訊的含義
     4)確定一個程式何時以及如何傳送報文,對報文進行響應規則

2. 不同領域應用層協議

     1)公共領域協議
           ● 在RFC文件中定義
           ● 允許互相操作
           ● 例如:HTTP、SMTP
     1)專用協議
           ● 例如:Skype

注:內容來自老師課件和教材整理

相關文章