來源計算機網路自頂向下方法!!!,侵删!
應用層:
網絡體系結構分類:
1.客戶機/伺服器體系結構
客戶機發送請求,伺服器接收請求,提供響應。
伺服器總是打開的,客戶機主機并不總是。
伺服器使處理所有邏輯的中心。兩個客戶機不能直接通信。
伺服器叢集技術,基礎設施密集的
2.P2P體系結構
客戶機間直接通信使P2P有強大的自擴充性
程序通信
标題客戶機和伺服器程序
給定的一堆程序之間的通信會話中,發起通信(會話開始時與其他程序聯系)的程序被标示為客戶機,等待聯系的程序是伺服器。
程序與計算機網絡之間接口
套接字是同一台主機内應用層與運輸層之間的接口。由于該套接字是在網絡上建立網絡應用程式的可程式設計接口,也可稱為應用程式和網絡之間的應用程式程式設計接口(API)。
可供應用程式使用的運輸服務
運輸層協定能為調用它的應用程式提供什麼樣的服務呢,從四個方面其服務要求分類。
1.可靠資料傳輸
運輸層協定確定應用程式一端發送的資料正确的,完全地傳遞給該應用程式的另一端。
2.吞吐量
運輸層協定能夠確定發送程序能夠向接收程序傳遞比特的最小速率。
3.定時
運輸層協定可設定發送方注入套接字中的每個比特到達接收方的套接字不遲于*ms
4.安全性
運輸層協定能夠加密由發送程序傳輸的所有資料。
網際網路提供的運輸服務
使用兩種運輸層協定:UDP和TCP
1.TCP服務
TCP服務模型包括面向連接配接服務(握手)和可靠資料傳輸服務。
#TCP提供了可靠的端到端資料傳輸服務,TCP到應用層可以很容易地通過SSL來提供安全服務。
2.UDP服務
UDP是無連接配接的,兩個程序通信前沒有握手過程。
3.程序尋址
一個程序如何确定它要與哪個程序通信呢?
需要擷取該主機的名稱或位址,目的主機接收程序的辨別。
IP位址是唯一辨別主機的32比特數
應用層協定
剛剛學習了通過把封包發送到套接字中來使網絡 程序間互相通信。如何構造這些封包呢?封包中各個字段的含義是什麼?
@應用層協定定義了運作在不同端系統上的應用程式上的應用程序如何互相傳遞封包。定義了:
1.交換的封包類型,如請求封包和響應封包
2.各種封包類型的文法,如封包中各個字段及其較長的描述.
3.字段的語義,封包在字段中的資訊的含義
4.程序何時,如何發送封包及封包進行響應的規則。
本章設計到的應用
1.Web;2.檔案傳輸;3.電子郵件;4.目錄服務;5.P2P
web的應用層協定是超文本傳輸協定(HTTP)
HTTP協定由兩部分程式實作,一個客戶機程式和一個伺服器程式,它們運作在不同的端系統中,通過交換HTTP封包進行會話。HTTP定義了這些封包格式以及客戶機和伺服器是如何進行封包交換的。
客戶機從套接字接口發送HTTP請求封包和接收HTTP響應封包,伺服器接收HTTP請求封包和發送HTTP響應封包,一旦客戶機發送請求,TCP為HTTP提供可靠資料傳輸服務。
HTTP不儲存關于客戶機的任何資訊,是以HTTP是一個無狀态協定。
非持久連接配接和持久連接配接
如果每個請求響應對是經過一個單獨的TCP連接配接發送,稱為非持久連接配接;如果所有的請求響應經過相同的TCP連接配接發送,稱為持久連接配接。
下圖為一個非持久連接配接的過程。