計算機網絡總結:第二章 應用層

第二章 應用層

2.1 應用層協議原理

2.1.1 網絡應用程序體系結構

  • 主流體系結構:客戶-服務器體系結構,對等(P2P)體系結構
    –客戶-服務器體系結構:有一個總是打開的主機稱爲服務器,它服務於來自許多 其他稱爲客戶的主機的請求。客戶相互之間不直接通信
    –對等(P2P)體系結構:應用程序在間斷連接的主機之間使用直接通信,這些主 機對被稱爲對等方。它有着自擴展性的特點

2.1.2 進程通信

  • 客戶和服務器進程:網絡應用程序由成對的進程組成,這些進程通過網絡互相發送報 文。通常把進程之一稱爲客戶,另一個稱爲服務器
  • 進程與計算機網絡之間的接口:進程通過一個稱爲套接字(socket)的軟件接口向網 絡發送報文和從網絡接收報文
  • 進程尋址:爲了標識該接收進程,需要定義主機的地址(IP地址)和定義在目的主機 中的接收進程的標識符(端口號)

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

  • 可靠數據傳輸、吞吐量、定時、安全性

2.1.4 因特網提供的運輸服務

  • TCP服務
    –面向連接服務:在握手階段後,一個TCP連接在兩個進程的套接字之間建立了。 當應用程序結束報文發送時,必須拆除該連接
    –可靠數據傳輸服務:無差錯、按適當順序交付所有發送的數據
  • UDP服務
    –不提供不必要服務的輕量級運輸協議
    –無連接,無握手過程,提供不可靠數據傳送服務

2.1.5 應用層協議

  • 定義了運行在不同端操作系統上的應用程序進程如何互相傳遞報文

2.2 Web和HTTP

2.2.1 HTTP概況

  • Web的應用層協議是超文本傳輸協議(HTTP)
  • Web界面組成元素:對象(一個文件,可以是HTML、JPEG等),用URL尋址
  • URL地址的組成:存放對象的服務器主機名+對象的路徑名
    在這裏插入圖片描述
  • HTTP使用TCP作爲它的支撐運輸協議,因爲HTTP服務器並不保存關於客戶的任何信息,即它是一個無狀態的協議

2.2.2 非持續連接和持續連接

  • 採取非持續連接的HTTP:每個請求/響應都是經過一個單獨的TCP連接發送
    –往返時間(Round-Trip Time,RTT):指一個短分組從客戶到服務器然後再返回客戶所花費的時間
    –響應時間:2個RTT+服務器傳輸HTML文件的時間
    在這裏插入圖片描述
  • 採取連續連接的HTTP:所有請求及其響應經相同的TCP連接發送
  • HTTP的默認模式是使用帶流水線的持續連接

2.2.3 報文格式

  • HTTP請求報文
    在這裏插入圖片描述在這裏插入圖片描述

  • 實體主體(Entity body):使用GET方法時實體主體爲空,使用POST方法時,實體主體包含用戶在表單中輸入的需要提交的內容

  • 方法類型
    –HTTP/1.0:GET、POST、HEAD(類似於GET,但不返回請求對象)
    –HTTP/1.1:GET, POST, HEAD、PUT(將實體主體中的文件上載到URL字段中指定的路徑)、DELETE(刪除URL字段中指定的文件)

  • HTTP響應報文
    在這裏插入圖片描述

  • 常見的狀態碼
    –200 OK
    –301 Moved Permanently
    –400 Bad Request
    –404 Not Found
    –505 HTTP Version Not Supported

2.2.4 用戶與服務器的交互:cookie

  • 四個組件
    –HTTP響應消息的cookie首部行
    –HTTP請求消息的cookie首部行
    –cookie文件保存在用戶的主機上,由用戶的瀏覽器管理
    –網站的後端數據庫
    在這裏插入圖片描述

2.2.5 Web緩存(別名代理服務器)

  • 它有着自己的磁盤存儲空間,並在存儲空間中保存最近請求過的對象的副本
  • 它既是服務器,又是客戶端
    在這裏插入圖片描述
  • 作用:
    –大大減少對客戶請求的響應時間
    –大大減少一個機構的接入鏈路到因特網的通信量

2.2.6 條件GET方法

  • 作用:解決代理服務器內容過舊的問題
  • 例子
    在這裏插入圖片描述

2.3 文件傳輸協議:FTP

  • 與HTTP的區別
    –HTTP協議在傳輸文件的同一個TCP連接中發送請求和響應首部行,即帶內(in-band)發送控制信息
    –FTP使用了兩個並行的TCP連接來傳輸文件,一個用於控制連接(用於在兩主機之間傳輸控制信息),一個用於數據連接(實際發送文件),即帶外(out-of-band)傳輸控制信息

2.4 因特網的電子郵件

  • 主要組成部分:用戶代理(user agent)、郵件服務器(mail server)、簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP)
    在這裏插入圖片描述
  • 一些特性
    –它不使用中間郵件服務器發送郵件,如果接受方服務器沒開機,待發送的報文會留在發送方服務器上,等待進行新的嘗試
    –利用TCP將電子郵件從客戶端傳輸到服務器,使用端口25、
  • 郵件訪問協議
    –POP3
    –IMAP

2.5 DNS(域名系統):因特網的目錄服務

2.5.1 DNS提供的服務

  • 主要任務:進行主機名到IP地址轉換的目錄服務
  • 定義:一個由分層的DNS服務器實現的分佈式數據庫;一個使得主機能夠查詢分佈式數據庫的應用層協議
  • 端口號:53
  • 重要服務
    –主機別名(host aliasing)
    –郵件服務器別名(mail server aliasing)
    –負載分配(load distribution)

2.5.2 DNS工作機理概述

  • 集中式DNS的缺點
    –單點故障
    –通信容量
    –遠距離的集中式數據庫
    –維護
  • 分佈式、層次數據庫
    在這裏插入圖片描述
  • DNS緩存
    –在一個請求鏈中。當某DNS服務器接收一個DNS回答時,它能將該回答中的信息緩存在本地存儲器中

2.5.3 DNS記錄和報文

–資源記錄(Resource Record,RR)
在這裏插入圖片描述
–DNS報文
在這裏插入圖片描述
–在DNS數據庫中插入數據

2.6 P2P應用

  • 對比:
    A)客戶-服務器體系結構
    在這裏插入圖片描述
    B)P2P
    在這裏插入圖片描述
  • 例子
    A)BitTorrent

2.7 TCP套接字編程

  • 套接字:應用程序進程和端到端傳輸協議(UDP或TCP)之間的一扇門
  • TCP服務:從一個進程到另一個進程的可靠字節傳輸

2.7.1 TCP

  • 客戶必須聯繫服務器:
    –服務器進程必須首先運行
    –服務器必須創建歡迎客戶聯繫的套接字(門)
  • 客戶聯繫服務器:
    –創建客戶端本地TCP套接字
    –指定服務器進程的IP地址,端口號
    –當客戶端創建套接字時:客戶端TCP建立與服務器TCP的連接
    –當客戶端聯繫時:服務器TCP爲服務器進程創建新的套接字以與客戶端通信
    A)允許服務器與多個客戶端通信
    B)用於區分客戶端的源端口號

2.7.2 UDP

  • UDP:客戶端和服務器之間沒有“連接”
    –沒有握手
    –sender明確地將IP地址和目標端口附加到每個數據包
    –服務器必須從收到的數據包中提取IP地址,發送端口
  • UDP:發送的數據可能無序接收或丟失
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章