1. 程式人生 > 其它 >6.09 應用層協議

6.09 應用層協議

6.09 應用層協議

一個應用層協議要包含什麼

  • 報文型別
    • 如請求報文、應答報文
  • 報文型別的語法
    • 報文中的各個欄位及其詳細描述
  • 報文語義
    • 即包含在欄位中的資訊的含義
  • 規則
    • 程序何時、如何傳送報文及對報文進行響應

兩類協議

公共領域協議

由RFC文件定義可供大家使用

例如:HTTP,SMTP

專用協議

例如: Skype

一個應用需要什麼樣的傳輸服務?

分析應用層的服務需求,探討不同服務需求的特性

  • 資料完整性
    • 一些應用 (如:實時音訊)能容忍一定程度的資料丟失
    • 另一些應用(如:檔案傳輸,telnet)需要100%可靠的資料傳輸
  • 定時
    • 一些應用(如:因特網電話、多方遊戲)要求低時延
  • 頻寬和吞吐量
    • 一些應用(如:多媒體)必須要達到所需頻寬
    • 另一些應用(彈性應用)根據需要充分利用可供使用的頻寬
  • 安全
    • 加密,資料完整性等

因特網運輸協議提供的服務

TCP服務

  • 面向連線的服務:在客戶機程式和伺服器程式之間必須建立連線
  • 可靠的傳輸服務: 接收和傳送程序間
  • 流量控制: 傳送方不會淹沒接收方
  • 擁塞控制: 網路出現擁塞時抑制傳送程序
  • 沒有提供:時延保證,最小頻寬保證,安全性

UDP 服務

  • 不可靠資料傳輸
  • 沒有提供:建立連線,可靠性,流量控制,擁塞控制,時延和頻寬保證

對於想快速處理從遠端客戶到伺服器的事務,應該使用UDP還是TCP?為什麼?

UDP。

  • 使用UDP,事務可以在一次往返時間(RTT)內完成——客戶端將事務請求
    傳送到UDP套接字,伺服器將響應傳送回客戶端UDP套接字。
  • 對於TCP,至少需要兩個RTT—一個用於建立TCP連線,另一個用於客戶機發送請求,伺服器傳送回響應

舉例應用和協議

應用 應用層協議 下面的傳輸協議
電子郵件 SMTP [RFC 2821] TCP
遠端終端訪問 Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
檔案傳輸 FTP [RFC 959] TCP
流媒體 通常專用 (e.g. RealNetworks) TCP or UDP
因特網電話 通常專用 (e.g., Skype) 典型用 UDP

TCP安全

TCP與UDP:沒有加密、網路明文傳輸,如使用者名稱和口令資訊等

SSL(Security Socket Layer)

  • 是TLS的前身
  • 提供加密的TCP連線
  • 保證資料完整性
  • 端點認證
  • 應用使用SSL庫呼叫TCP服務介面、lSSL提供套接字API